1 Отредактировано BallWin (24-09-2009 11:00:10)

Тема: ZMap -- редактор к игре Z, Z95 (проект с открытым исходным кодом, C++)

В июне этого года началась работа над новым редактором к Z (Z95). С помощью Meeky мы добились некоторых успехов и по обоюдной договоренности выкладываем проект.

Все желающие могут судить о состоянии редактора ZMap на сегодняшний (18.09.09) день, опробовав его в деле (прим. предварительно установите дополнительное обновление "Microsoft Visual C++ 2008 Redistributable Package (x86)").
Проект делается в Microsoft Visual Studio 2008 Professional Edition  (Russian). Пробную лицензионную версию студии (на 90 дней) можно скачать на сайте Microsoft. Лицензионную бесплатную версию для студентов и преподавателей ВУЗов можно скачать на сайте проекта DreamSpark от компании Microsoft - www.dreamspark.ru.


Что он умеет на текущий момент:
-- загружает все версии уровней игры Z (DOS, Z95, ZEditor) в полном объеме: показывает стартовые отряды синих и красных армий (желтые и зеленые обозначаются пока только флагами на фортах), все декоративные элементы, все здания и т.д.
www.imget.ru//images/2009/09/14/small_xSbdofxZUY.gif
-- вместо миникарты сделан удобный режим просмотра
www.imget.ru//images/2009/09/14/small_E31ZREx9Gw.gif
-- для изучения AI и организации "хитрых" обходных маневров компьютера сделан режим, в котором вместо ландшафта показывается карта проходимости (недоступная игрокам ни в каком виде)
www.imget.ru//images/2009/09/14/small_fZAtiYWhqy.gif
-- подключена загрузка пользовательских текстур. Если вы умеете рисовать, можете, к примеру, переделать текстуру к планете DESERT (все текстуры и рисунки юнитов лежат в проектной папке BITMAP) и подключить её к загруженному уровню. Вы сразу сможете оценить, как будет выглядеть уровень с подобной текстурой в игре. В первую очередь этот режим расчитан, конечно, для создания новых планет.

Пока это всё, что умеет делать ZMap.

Файлы проекта Visual Studio 2008 Professional Edition можно скачать здесь:
----------------------------------------------------
ZMap_OpenSource_project_1.rar (3.55 мБ)
ZMap_OpenSource_project_2.rar (70,7 кБ)
ZMap_OpenSource_project_3.rar (4.76 мБ)

В дальнейшем планируется постепенное наращивание функционала - рисование альтернативных поверхностей, мостов, дорог, установка зданий и т.д.
Все желающие могут принять посильное участие.
Информация для программистов:
-- проект делается в Visual Studio 2008 Professional Edition (C++), бесплатную версию можно скачать с сайта Microsoft (срок действия  90 дней).
-- код пока не оптимизирован никак
--  комментариев много, они достаточно подробные, разобраться будет несложно даже новичкам

Информация для художников:
-- если кто окажет помощь с рисованием иконок 32х32 и других размеров, будет здорово. А если кто возьмется за текстуры к новым планетам - вообще здорово smile

По всем вопросам телеграфируйте пока мне и Meeky.
PS\ Antares'y еще раз спасибо за патч!  smile

2

Re: ZMap -- редактор к игре Z, Z95 (проект с открытым исходным кодом, C++)

Блин, это очень круто  yikes, молодцы! Игра прям возрождается на глазах  big_smile. Уже качаю.

Добавлено спустя минуту...
Запустить на Win7 x64 к сожалению не удалось, дословно пишет следующее - "Не удалось запустить приложение, поскольку его параллельная конфигурация неправильна". Хотя все Redistributable Packages у меня стоят.

ЛС переполнен, не надо писать туда.

3

Re: ZMap -- редактор к игре Z, Z95 (проект с открытым исходным кодом, C++)

Antares пишет:

Блин, это очень круто  yikes, молодцы! Игра прям возрождается на глазах  big_smile. Уже качаю.

Добавлено спустя минуту...
Запустить на Win7 x64 к сожалению не удалось, дословно пишет следующее - "Не удалось запустить приложение, поскольку его параллельная конфигурация неправильна". Хотя все Redistributable Packages у меня стоят.

А NET Framework 3.5 стоит?
При старте нового проекта в Visual Studio я использовал опцию "поддержка NET Framework 3.5", если ниже - билд ругается, проверено smile

Меня несколько дней не будет, если что -- может Meeky поможет.

4

Re: ZMap -- редактор к игре Z, Z95 (проект с открытым исходным кодом, C++)

Antares пишет:

Запустить на Win7 x64 к сожалению не удалось, дословно пишет следующее - "Не удалось запустить приложение, поскольку его параллельная конфигурация неправильна". Хотя все Redistributable Packages у меня стоят.

Так, я на месте. С Win7 разобрался - проблема была не в ОС. Я выложил debug-билд, отладочный билд из Visual Studio 5-6 всегда запускался без проблем, причем работал значительно стабильнее, поскольку содержал отладочные (защищенные) версии библиотечных функций. Однако в Visual Studio 2008 вне проекта и ОС с установленной студией такой билд запускаться не хочет.
Посему я просто напросто сделал release-билд. Он запускается без проблем (с предварительной установкой  "Microsoft Visual C++ 2008 Redistributable Package (x86)"), в том числе и на Win7:
www.imget.ru//images/2009/09/23/small_mnAdzKhTL2.jpg

Короче, пробуй release-билд. В шапке ссылку поменял.

5

Re: ZMap -- редактор к игре Z, Z95 (проект с открытым исходным кодом, C++)

Под XP SP2 32bit вроде работает. Предлагаю перемещать карту drag'n'drop операцией (курсор мыши в этом случае сделать в виде руки), а не только скроллером. Карту полноразмерную также центрировать на экране (когда по ширине она вмещается полностью), как это сделано на превью. Во время превью непонятно почему не скрывается скроллер справа, ведь по вертикали превью всегда помещается. Кнопку для отображения неграфических блоков разумно сделать с двумя состояниями: нажатой и отжатой. И еще нужен режим для микшированного отображения неграфических объектов поверх реальной карты, т.е. слой неграфич. объектов сделать полупрозрачным.

6 Отредактировано slogic (24-09-2009 23:56:19)

Re: ZMap -- редактор к игре Z, Z95 (проект с открытым исходным кодом, C++)

Программа вылетела когда я попытался открыть BRIDGE01.DAT файл из меню Load LEVEL.

PS. Вообще работает загрузка уровня? У меня всегда вылетает, чтобы я ни открывал (и на MAP файлах).

7

Re: ZMap -- редактор к игре Z, Z95 (проект с открытым исходным кодом, C++)

slogic пишет:

Программа вылетела когда я попытался открыть BRIDGE01.DAT файл из меню Load LEVEL.
PS. Вообще работает загрузка уровня? У меня всегда вылетает, чтобы я ни открывал (и на MAP файлах).

Не надо выделять никаких файлов! Щелкаешь по самой левой иконке на панели инструментов (или из меню), открываешь папку с нужным уровнем и всё - жми кнопку открыть. Т.е. "открыть уровень", это значит только открыть его папку. А вот чтобы "загрузить карту" (вторая слева иконка) нужно конкретно указать нужный файл MAP.
Соответственно разница -- при загрузке уровня загружается всё (получаешь практически игровую картинку), при загрузке MAP файла появляется только картинка поверхности (без обьектов, зданий и прочего). Описание режимов появляется в строке состояния, когда наводишь курсор на пиктограммы панели инструментов.

slogic пишет:

Предлагаю перемещать карту drag'n'drop операцией (курсор мыши в этом случае сделать в виде руки), а не только скроллером. Карту полноразмерную также центрировать на экране (когда по ширине она вмещается полностью), как это сделано на превью.

Карты в общем не такие большие, особенно при разворачивании на полный экран. В любую точку попасть легко с помощью скрола или прокручивая колесиком мыши. К тому же удобно пользоваться кнопкой Просмотра для того, чтобы попасть в любое место на карте. Карта при этом уменьшается, помещается в центр и на ней всё прекрасно видно. Щелчок левой кнопкой мыши переносит в эту точку на карте.
Возможно в будущем подкрутим скролл позже если действительно неудобно...

slogic пишет:

Во время превью непонятно почему не скрывается скроллер справа, ведь по вертикали превью всегда помещается.

Честно говоря не обращал внимания...

slogic пишет:

Кнопку для отображения неграфических блоков разумно сделать с двумя состояниями: нажатой и отжатой.

Это можно сделать. Хотя, конечно, изображение меняется настолько сильно, что сразу ясно - вкл. или выкл. в данный момент smile

slogic пишет:

И еще нужен режим для микшированного отображения неграфических объектов поверх реальной карты, т.е. слой неграфич. объектов сделать полупрозрачным.

Вот это было бы весьма полезно. Сам об этом думал. Просто пока первейшая задача добавить функции редактирования карты. Остальное на втором, и даже третьем плане smile wink

Кстати, опиши пож-ста всё же, что именно ты делал при загрузке уровня. Там прописано довольно много ситуаций и если ты выделял только один файл, то должно было появится окошко с предупреждением о том, что недостаточно файлов для загрузки уровня... Попробуй использовать иконку на панели инструментов и повторить ситуацию с выбросом.

8 Отредактировано KOHAGEN (25-09-2009 14:39:12)

Re: ZMap -- редактор к игре Z, Z95 (проект с открытым исходным кодом, C++)

Аналогичная ситуация, щёлкаю по крайне левой йконке,
выбираю просто любую папку с уровнями, жму открыть,
и редактор падает.

Windows-XP Professional SP3 32bit
Microsoft .NET Framework 3.5 SP1
Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)

9

Re: ZMap -- редактор к игре Z, Z95 (проект с открытым исходным кодом, C++)

KOHAGEN пишет:

Аналогичная ситуация, щёлкаю по крайне левой йконке,
выбираю просто любую папку с уровнями, жму открыть,
и редактор падает.

OK, сегодня постараюсь посмотреть что к чему, правда под руками только Win7, но если проблема есть - и там должно вываливаться (на компьютере с проектом Win XP - там все работает без проблем).

10 Отредактировано AxXxB (30-09-2009 21:11:30)

Re: ZMap -- редактор к игре Z, Z95 (проект с открытым исходным кодом, C++)

BallWin, может, для загрузки уровня удобнее будет использовать не CFileDialog, a CPathDialog (www.codeguru.com/cpp/w-d/dislog/ … .php/c2019)?
ЗЫ. А, да, точно, есть же API-функция SHBrowseForFolder big_smile

11 Отредактировано BallWin (01-10-2009 17:33:45)

Re: ZMap -- редактор к игре Z, Z95 (проект с открытым исходным кодом, C++)

AxXxB пишет:

BallWin, может, для загрузки уровня удобнее будет использовать не CFileDialog, a CPathDialog (www.codeguru.com/cpp/w-d/dislog/ … .php/c2019)?
ЗЫ. А, да, точно, есть же API-функция SHBrowseForFolder big_smile

Изначально проблема действительно была связана с созданием путей. В функции загрузки уровня для получения пути к папке, которую открыл пользователь, использовалась API функция ::GetCurrentDirectory (возвращения пути текущей открытой папки). При сборке (и отладочной и релизной) из проекта все работало отлично - выдавался последний открытый каталог, т.е. папку уровня Z, выбраную в диалоговом окне. Однако в Win7 (а возможно и не только) вместо папки Z после закрытия окна выбора кнопкой ОК выдавался уже путь к текущему каталогу с программой ZMap... Естественно там никаких файлов уровня не было...
В общем, как только это прояснилось, проблема была немедленно устранена (::GetCurrentDirectory подключается теперь только в особом случае, см. измененый файл проекта CZmapDoc).
Однако выявились несколько других багов...
1) требуется изменить функцию загрузки скал (есть ошибка)
2) неверно работает библиотечная функция TransparentBlt!!!!

Если первое исправить достаточно легко, то второе пока затруднительно...
Смысл этой функции в следующем - картинки обьектов, которые устанавливаются на уже собранную из тайлов карту, содержат "прозрачный цвет". При выводе картинки  TransparentBlt указывают, что не нужно выводить на экран  всё, что имеет этот самый "прозрачный" цвет:

// устанавливаем здание в контекст карты
// -- картинки зданий переделаны, на прозрачные участки назначен
// ярко-пурпурный цвет RGB(250,50,230)[/color]
    no_error = m_dc->TransparentBlt(lup_x*16, lup_y*16,
        bm.bmWidth , 
        bm.bmHeight , 
        &dcMemoryBUILD, 
        0,
        0,
        bm.bmWidth ,
        bm.bmHeight,
        COLORREF RGB(250,50,230)); 

Я сделал "прозрачным" ярко пурпурный цвет - COLORREF RGB(250,50,230).
Так вот, на "чистой" машине функция не выполняет своего главного предназначения - выводит картинку объекта полностью, вместе с "прозрачной" областью...  yikes

www.imget.ru//images/2009/10/01/small_K1Urr0ikDi.jpg

Так это выглядит в Windows 7 (проверить в WinXP не могу, негде, на машине с проектом всё работает отлично).

Короче, выкладываю тестовый билд, в котором отключил построение и вывод гор, подключил множество отладочных информационных окошек с сообщениями. Просьба потестить и сообщить результаты (сообщайте на какой ОS тестили).
Файлы:
- тестовая версия ZMap test_NO_Rock_1_10_09.exe.rar (436 кБ)
- измененные файлы проекта (код)  change_file.rar        (40 Кб)

12 Отредактировано (26-03-2011 07:40:18)

Re: ZMap -- редактор к игре Z, Z95 (проект с открытым исходным кодом, C++)

Здравствуйте! Есть ли что-то новое в инструментах картостроения для Z?
У меня неприятная проблема: нарисовал карту, несколько раз пытался переделать ее для игры в одиночку с компьютерным разумом, но... при загрузке карты в игре в лучшем случае форт красных рисуется где-то посередине вместо правого верхнего угла, а в правом верхнем углу на месте красного форта какая-то область из живой материи (постоянно дергающаяся картинка из остатков предыдущих изображений в этом месте экрана). В конце концов, когда мне пришла в голову мысль, почему такое происходит, я вообще не смог загрузить карту в zeditor.exe - ругается при ее открытии, мол, память не может быть прочитана, и вылетает.
Итого:
1) карту рисовал в zeditor.exe;
2) в одиночный уровень пытался переделывать при помощи ztools_0938.exe;
3) пытался поработать с zedmod.exe, но тут вообще глухой номер - сразу при запуске "память не может быть прочитана" с незамедлительным вылетом;
4) открыл карту в zmap.exe, все открылось, показывает как надо (за исключением гор, как тут и сказано), но... ничего ведь не подвинуть и не отредактировать.
Что можно сделать? Может, на сегодняшний день есть какие-либо новые версии? Особенно разочаровал zeditor.exe - сам сохранил, и сам же воняет при открытии своего же...

Если кто может помочь исправить - могу выложить карту, 2-х или уже одноплеерный вариант.


Сейчас попробовал создать новую карту с теми же параметрами, и стал подкладывать в нее по одному файлы из уже нарисованной. Облом происходит, когда я добавляю файл objecta0.dat. Без него зданий на карте (кроме фортов) нет. Что находится в этом файле? Есть возможность как-то поправить?
А так в принципе можно уже восстановить проделанную работу: открыть нарисованную карту в ZMap и далее по изображению вновь понаставить зданий. Но все же вопрос об усовершенствованных/обновленных инструментах остается открытым. А то получается, что перед каждым изменением надо где-то сохранять резервную копию карты, ну или позаполнять все имеющиеся слоты разными версиями одной и той же карты smile


Что-то никто не отвечает...  sad Карту восстановил, но одна напасть осталась: что бы я ни делал, красный форт все так же не на своем месте:

форт красных рисуется где-то посередине вместо правого верхнего угла, а в правом верхнем углу на месте красного форта какая-то область из живой материи (постоянно дергающаяся картинка из остатков предыдущих изображений в этом месте экрана)

Добавлю, что рисуется форт примерно посередине карты, а у меня там остров, т.е. получается форт наполовину в воду и наполовину на суше, причем форт "выключен", безжизненный.


Совсем забыл повторить вопрос - как избавиться от глюка с фортом? Наверняка я не единственный, кто с этим сталкивается...


Решил проблему с красным штабом в игре с компом; как я уже описывал выше, штаб не отображается нормально во время игры и не работает, если он расположен в угловой правой верхней территории; штаб отображается частично нормально и работает, если он расположен на территории, смежной с правой верхней, если верхняя сторона этой смежной территории находится чуть выше нижней стороны правой верхней; и, наконец, со штабом все в порядке, когда территория, на которой он стоит, по-любому ниже правой верхней. Уф.
В итоге, нарисованный уровень ожил, как и положено, после чего началось мучительное освоение особенностей ZTools. Оказалось, что в случае переделки карты для двух игроков (когда все армии расставлены в ZEditor) в карту для игрока с компом нужно указывать координаты только синих начальных армий, а для красных этого делать не нужно и даже нельзя.
Результатом стал выпук, названный "Apple Valley". Тренировал карту на своей подруге, поэтому знаю, что миссия выполнима. Возможно, кто-то будет возмущен явным потенциальным превосходством синих, однако это единственное, что может дать синим надежду на спасение. Да и почему это превосходство именно синих, ведь красные тоже могут успеть урвать для себя жирные крошки, оставшиеся после опускания части долины (на карте правая нижняя) - данное происшествие здорово потрепало коммуникации, завалило технику и фабрики, значительно осложнив к ним доступ. Дороги, конечно, уже не те, от них остались лишь тени, однако пробраться к противнику все же можно - чтобы на деле показать ему, кто здесь главный! smile
Итак, выкладываю вполне играбельный черновичок уровня. Использовать следующим образом:
1) распаковываете архив в папку, в которую установлен Z со всеми последними доработками от Antares'а;
2) запускаете Z;
3) нажимаете F3, в окошке набираете номер "100";
4) играете;
5) если есть что сказать - замечания, предложения и т.д. - милости прошу.
Ну и т.д.

Post's attachments

LEVEL100.zip 21.31 кб, 9 скачиваний с 2011-03-26 

У вас нет разрешения на загрузку прикреплённых файлов.