Меня зовут Нгаа-Вайда Ри :: Движок (Gaminator V: Интоксикация)
Содержание: Интро :: Концепция :: Движок :: Релиз
Вот и прошла первая неделя Гаминатора № 5. За это время я успел поднять исходники своего диплома 5 летней давности — многое изменилось: моя вижуал студия из 2005 стала 2010, DirectX вырос на три версии, а я позабыл как работать с STL и совершенно развратился .NET'овским сборщиком мусора. Впрочем с прыжком во времени справился — вроде работает! Реализовал оконный режим и смог ликвидировать багу, из-за которой прямо на защите диплома словил синий экран смерти. :] Подрезал лишнее, добавил нужное и вот, представляю вашему вниманию самопальный движок в Starcraft’овской шкуре:
UPD: Скачать и потестировать демку движка (10,4 Mb)
Собственно, это жалкая пародия на Старик, но вполне себе работоспособная. Около полугода ушло на расковыривание формата ресурсов, возсоздание нужных алгоритмов их использования и создание своих штук — поиск пути, движения группами и прочее. Сыро, но благодаря ребятам из Blizzard’а есть на что посмотреть:
В демке цель игры разбомбить вражеский флаг. Враги тупо атакуют вашу базу (впрочем некоторые сидят на флаге), и победить их несложно — собраться танками в пачку и насмерть заклацать всех по очереди. :) Для запуска игры я сделал несколько батничков (под каждое разрешение экрана), советую начать с 800×600 или 1024×768.
Управление:
Пробел — пауза, во время которой можно отдавать приказы
Стрелки — скролл карты (также работают тычки в миникарту и края экрана)
Esc — выход (с предупреждением)
Мышь — аналогично прототипу: юниты выделяются и правой кнопкой мышки пускаются в бой. Есть несколько управляющих кнопок продублированных на клавиатуре буквами.
F+0 — открыть меню справки по отладочному выводу: весь отладочный вывод висит на комбинациях D+0…9 и F+0.9.
С радостью приму все сообщения об ошибках, которых безусловно очень много. Надеюсь в ближайшие дни прикрутить Нгаа-Вайду Ри на стрелки и приклеить к ней скролл — за получившийся гибридный геймплей ручаться не могу, но надеюсь что получится что-то по крайней мере забавное.
Да, кстати! Желающим вышлю исходники, редактор карт и прочую прилагающуюся ботву в виде проекта под 2010 студию.
UPD 6 октября 2010: Убил три драгоценных дня на борьбу с совместимостью. Не смог всё решить аккуратно, но вроде решение есть, очень прошу — позапускайте на Vista, Win7 и XP с обратной связью в виде текстового описания и скринов, если что не так.
Приделал программку-лаунчер с различными свойствами и аккаунтами пользователей:
Для запуска в Windows 7 и Vista при старте (вкладка «Играть») нужно выставить галку запуска в режиме совместимости. Режим заключается в закрытии процесса Explorer.exe во время работы игры, потом я его восстанавливаю, но, увы, открытые окошки теряются. Также ликвидировал пару хаков в коде — должны перестать пропадать юниты. Если у кого-нибудь будут ещё пропадать — доведу этот процесс (прочистка отрисовки) до победного конца. Вот даже тему на GameDev’е открыл.
- 03 октября 2010, 01:46
- 03
Хм, поиграть нормально не вышло.
На любом разрешении жуткие графические глюки (оригинальный Старкрафт у меня практически не плющит, кстати).
При этом Fraps на скриншоте запечатлел совершенно нормальное игровое поле...
Потому срочно нужно делать оконную версию (кстати, а она требуется по правилам :) ).
О, черт, а DirectX какой? А винда? Можешь прислать мне на почту файлик Log.html, генерящийся в корне после запуска? kozinaka[x]gmail.com
В игре свой обработчик кнопки PrntScrn, скрины кладутся в корень программы - там тоже глюки с графикой?
К оригинальному Стракрафту движок не имеет никакого отношения, кроме ресурсов. :) Оконная версия есть, но играть в неё невозможно - 8 битный цвет, палитра у старика 256 цветов, а винда резервирует 20 цветов под свои нужды. Оконный режим, увы, только для отладки. Но он есть. :) И даже играет. :D При запуске флаг \w.
Винда 7ка, ДиректИкс 11... И все прочие из стандартной поставки...
Логи и скрины чуть позже... Спасибо за информацию.
Скрины по Принтскрину тоже нормальные...
Лог выслал.
Попробую поиграться с совместимостью.
7ка! :( Я её и не видел-то никогда. У меня XP, а игра использует 7-ой DirectX - в 7-ке вроде только начиная с 9-го работают проги.
В висте, естественно, аналогичная фигня. А именно:
- на разрешении ниже 1280x1024 юниты пропадают вообще
- на разрешении 1280x1024 юниты исчезают только при прокрутке экрана вверх (при прокрутке вниз снова появляются), также часто подвисает курсор (как я понял, это происходит, в основном, при отрисовке взрывов)
- иногда при загрузке вылезает совсем жесткий графический глюк (на скриншоте) - лечится повторным запуском (однако все скриншоты, что я снял замечательным Screenshot Creator, всё равно, имеют такой вид)
(глюк с исчезновением юнитов показан на 2-м скриншоте, снятым самой игрой)
ах да, родное разрешение экрана у меня - 1680x1050
Спасибо за столь подробный отчёт. Попробую что-нибудь сделать, если успею. Ээх, грустно всё это. :(
Экранчик слева это ошибка инициализации палитры - так выглядит 8-битное изображение, если ему вместо родной палитры подсовывают системную виндовую.
На экранчике справа штука выглядит как ошибка с последовательностью вывода спрайтов FastBlt и прямым доступом в память. Тайлы ландшафта (из растров рисуются) перекрывают юниты (распаковываются на лету из *.grp попиксельно с прямым доступом в видеопамять).
Надо срочно искать друзей с новыми окошками! У меня и дома и на работе XP'шки.
P.S. Можешь прислать мне на почту файлик Log.html, генерящийся в корне после запуска? kozinaka[x]gmail.com
С 9 директом движок никак не получится собрать?
DirectDraw перестал существовать как раз в DirectX 9. :) Остался Direct3D и перспективы появления Direct2D в 11-ом или 12-ом. Вообще DirectDraw работает на поздних версиях, просто я, видимо, использую какие-то штуки, которые не нужно использовать (или наоброт).
Я попробую поставить себе 7-ку и отладить под неё. Давно собирался сменить систему. :)
Мм, точно могу сказать, что в 7ке есть ddraw.dll, может поможет чем-то))
Ага, я и говорю - оно работает, если уже скомпилировано, главное учесть специфические фишки работы в разных системах. Я вот как раз собрался снести себе винду.
А вот скомпилировать можно только с DirectX 7, т.к. в более поздних SDK просто нет ddraw.h и ddraw.lib. :)