Меня зовут Нгаа-Вайда Ри :: Движок (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
Баг-репорт #1: игра вылетает по непонятной причине после некоторого времени,
Имя события проблемы: APPCRASH
Имя приложения: Ngaa.exe
Версия приложения: 0.0.0.0
Отметка времени приложения: 4cacd0b0
Имя модуля с ошибкой: Ngaa.exe
Версия модуля с ошибкой: 0.0.0.0
Отметка времени модуля с ошибкой: 4cacd0b0
Код исключения: c0000005
Смещение исключения: 00014ef9
Версия ОС: 6.1.7600.2.0.0.256.48
Код языка: 1049
Дополнительные сведения 1: 0a9e
Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789
Дополнительные сведения 3: 0a9e
Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789
23:32:50: Инициализация приложения:
~ 23:32:50: Создание глобальных объектов.
~ 23:32:50: Загрузка файла аккаунта пользователя 'Users/Jazz.ous'
~ 23:32:50: Инициализация объекта отрисовщика:
~ ~ 23:32:50: Инициализация звукового движка:
~ ~ ~ 23:32:51: OK. Графический звуковой инициализирован.
~ ~ 23:32:51: Инициализация графического движка (полный экран 1280x1024):
~ ~ ~ 23:32:51: OK. Графический движок инициализирован.
~ ~ 23:32:51: OK. Отрисовщик инициализирован.
~ 23:32:51: Инициализация игрового движка:
~ ~ 23:32:51: Загрузка карты 'Maps/Demo.omp'
~ ~ 23:32:51: Загрузка предварительно расчитанных данных карты
~ ~ 23:32:51: Инициализация отрисовщика:
~ ~ ~ 23:32:51: Загрузка шрифта...
~ ~ ~ 23:32:51: Загрузка файла палитры 'Resource/Terrain/Badlands/Badlands.act'...
~ ~ ~ 23:32:51: Загрузка файла дерева ландшафта 'Resource/Terrain/Badlands/Badlands.ott'...
~ ~ ~ 23:32:51: Применение палитры...
~ ~ ~ 23:32:51: Загрузка наборов тайлов ландшафта 'Badlands'...
~ ~ ~ 23:32:51: Создание изображения обзорной карты.
~ ~ 23:32:52: OK. Игровой движок инициализирован.
~ 23:32:52: Инициализация объектов пользовательского ввода:
~ ~ 23:32:52: OK. Объекты пользовательского ввода инициализированны.
~ 23:32:52: Захват пользовательского ввода:
~ ~ 23:32:52: OK. Эксклюзивный доступ получен.
~ 23:32:52: OK. Инициализация приложения завершена.
Ошибка вылазит на разрешении экрана 1280х1024, на 800х600 всё норм.
Не видно курсора мыши на мини-карте(
И еще:
О! Тактакатак... Спасибо! Это важно! Дело в том, что во время отрисовки экрана область памяти где формируется кадр в Vista и Win7 в какой-то промежуток времени начиная с начала рендера куда-то перемещается и старый указатель становится неверным. Надо дожимать графический вывод - перестать пользоваться неликвидным указателем.
А ещё:
Галка работает, всё ок, тестовый вывод работает (правда, что значит срезается? просто рисует что-то, какие-то графы или клеточки :) ).
Сегодня игра не вылетала. Прошёл демку. В глазах конечно рябит :))
И от убивания Проводника всё-таки надо бы избавиться :(
Неважно что тестовый вывод выводит лишь бы делал это на весь экран. :) Из-за хака у меня на большом разрешении графы и прочая пирожня не успевают отрисоваться где-то наполовину. Вот я подумал не это ли привело к краху.
А отчего рябит в глазах? Слишком быстро и суетно?
В принципе Проводник можно не убивать - только вода станет розовой, а трава белёсой: минус 10 цветов из начала палитры и конца палитры. Увы, я так и не нашел в инете приемлемого решения - можно отключить программно Windows Aero, но проблему это не решает, Проводник и в обычном состоянии жрёт цвета. Можно срать в реестр ключом о совместимости, но во-первых у меня это не помогает, а во-вторых как-то нехорошо, почти также плохо как убивать Проводник. Со временем перепишу на Direct3D. Убил на это понедельник, но так и не успел сделать, поэтому откатил и вывернулся костылём с DirectDraw. :)
Мерцает слишком сильно, когда камера двигается.
Срать в реестр запрещено правилами...)
Прямо мерцает? 8( Блин, это-то отчего... У меня плавно скроллит без лишних визуальных эффектов на XP и Win7. :(
У меня Win7 и не мерцает ни разу... ошибка, правда, вылазит, но это уже другая история...
Кул! :) А какая ошибка вылазит?
Ну глаза режет.
Я думаю просто оттого, что ресурсы не заточены под 1280, лучше играть на разрешении пониже.
Оригинальный старик 640х480 вроде без возможности увеличить. Он у меня без тормозов шел на Pentium 133. :)
Я уже в проекте приклеил скролл к Нгаа-Вайде Ри - теперь он медленный и печальный, т.к. привязан к живому юниту. Всё будет хорошо!