RoboGame blog [RIP]

Журнал

19 дек 2009

Многие наверно заметили что проект не обновлялся с августа. Периодически в личке спрашивают, что с ним случилось.
Поэтому я решил написать официально что проект был закрыт.

Это было сделано по разным причинам - угас энтузиазм, концепция геймплея получилось не такой хорошей, как задумывалась, да и просто надоело делать долгосрочные проекты.
С августа месяца я переквалифицировался на разработку флеш игр, так как считаю что мне, как разработчику одиночке, это более перспективно.

Также меня довольно часто просят дать посмотреть исходники проекта, поэтому решил всё-таки их выложить в публичный доступ:
Движок - http://anegmetex.com/RoboDev/TestEngine_src.rar
Редактор объектов - http://anegmetex.com/RoboDev/ObjectEditor_src.rar
Редактор уровней - http://anegmetex.com/RoboDev/WorldEditor_src.rar

Кстати ещё потребуется файлы библиотек lua, PhysX, Audiere, pugi, Scythe, unzip101e
вот, все они одним файлом:  http://anegmetex.com/RoboDev/libs_src.rar


Дальнейшая моя деятельность в игрострое будет связана исключительно с флешем.
Мой новый бложик по флешу: http://blog.anegmetex.com/

Спасибо всем кто меня читал, спасибо вдвойне тем кто меня комментировал. Всем удачных проектов, быстрой и безошибочной компиляции, и трезвой оценки своих сил.

Покеда :)


-----------------------------
Вот можно скачать всё одним архивом со всеми нужными либами и с файлами проектов:  http://anegmetex.com/RoboDev/Robogeddon_src_all.rar
Запускать надо солюшн TestEngine.sln
Конечно придётся ещё пути к файлам настроить...

Ссылка | Комментарии [18]

8 авг 2009

Программирование и арт: XIRMAC
Наброски звука для демки: Евгений Ярмош (TCVMusic@gmail.сom)
Саундтрек: PitchShifter – «Genius”
Ссылка: http://www.anegmetex.com/RoboDev/RobogeddonDemo04.rar (18 Мб)


Для запуска требуются установленные дрова физикса не менее 2.7.2 версии.
Убедится в его наличии можно проверив существование папки C:\Program Files\AGEIA Technologies\v2.7.2

Управление:
WASD - перемещение
Mышь – наведение и стрельба
ENTER – добавить ещё врага

Основные настройки которые можно поменять в Settings.xml:
ScreenX и ScreenY – разрешение экрана
FullScreen – использовать ли полный экран
GetUserRes – получить разрешение экрана.  ScreenX и ScreenY игнорируются.
RobotsOnArena – сколько одновременно роботов находится на уровне.
PlayerLife – сколько жизней у игрока. Влияет на сложность игры.
MusicVol – громкость музыки. Если 0 – отключить совсем музыку.

Ожидаемая обратная связь:
- запускаемость
- вашу конфигурацию и фпс (+ желательно разрешение экрана и кол-во заспавненых роботов).
- баги\глюки

опционально:
- Критика
- Слова поддержки
- Плевки
- Тухлые помидоры
- Караваны

скрины:
Изображение
Изображение

youtube:

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Ссылка | Комментарии [5]

4 авг 2009

Вообщем, я решил что действительно както низ с верхом не стыкуется, поэтому сделал из этих заготовок два робота :)
Фиолетовыми формами показанно место будущих шасси )

Вот это старый няшка но уже с нормальной большой базой:
Изображение
Изображение

А вот это его маленький колёсный друг :)
Изображение
Изображение

В целом в каждом из них сейчас около 2500 треугольников.. следовательно с оружием и финальными шасси будет не больше 4000-4500 что вообщем то соответствует плану.

Изображение

28 июля 2009

Вообщем, мои немногочисленные читатели, работа над проектом всё ж таки идёт :)
За последнее время я прикрутил к игре скрипт-движок на lua, доработал боевую систему: теперь роботы стреляют реально разными оружиями с разными параметрами и эффектами, а не как было до этого… :)

Изображение

Ещё прикрутил к игре такие не маловажные для геймплея штуки как бонусы. Кстати характер действия бонуса по модному задаётся через скрипт, а не железно зашито в код )

Насчёт внешнего вида бонусов: я сначала хотел их сделать объектами… но потом подумал что они будут теряться в куче ошмётков от роботов и плохо читаться среди прочего хлама, поэтому сделал эдакие олд-скулл стайл бонусы :) Если сильно народ их ругать не будет, то думаю такие и оставлю.

Изображение

12 июля 2009

Работаю над боевой системой роботов. Собственно на ниже приводимом видео можно увидеть некоторое подобие геймплея: вражеские роботы обруливают препятствия, перемещаются по action points и ведут огонь по игроку. При записи видео был включён режим бессмертия ибо без него игрока уж очень быстро зарубают :)

Сейчас геймплей вырисовывается уж очень какой-то зверски-хардкорный чтоли 8) Надо будет ещё работать над балансом параметров оружия, поведением роботов и тому подобное… а вообще всё выглядит довольно не плохо, думаю в конечном счёте неплохая игруля должна получиться :)

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Ссылка | Комментарии [4]

8 июля 2009

Вот на днях наваял ещё одного робота (не на ходу он пока правда). По идее будет одним из боссов. Вообще по концепту был более брутальным чем получился.. даже решётка радиатора выглядит не как оскал а как милая улыбка )))

А вот нижняя часть получилась как то  мелковато по сравнению с верхней массивной башней. Возможно стоит нижнюю базу заменить на другую...

Изображение

5 июля 2009

Приделал к редактору генератор карты препятствий, а к самой игре – поиск пути по ней. Собственно реализовано это было как и задумывалось – карта строится в редакторе по специальным лимитерам. Которые кстати можно сгенерировать по AABB выделенных статичных объектов (что несомненно удобно и сохраняет дофига времени).

Вообще ячейки карты получились весьма крупные, т.к. на более мелких – роботы проскакивали точки пути и постоянно задевали за углы. Собственно они и сейчас не брезгают это делать, но уже гораздо реже. Думаю мне ещё предстоит долго танцевать с бубном, чтобы как-то отучить их от этого.

Ещё одна очень не приятная проблема, которая уже давно нарисовалась в проекте – это роботы сталкивающиеся с другими роботами при движении. Собственно можно конечно попробовать приделать какое-то динамическое обруливание по AABB (я уже что-то подобное пытался реализовать в игре Technozes), но мне кажется всё это кардинально не решит проблему :(

Изображение

26 июня 2009

Провёл некоторый редизайн свалки. Предыдущий вариант мне показался какимто тёмным и фактура свалки совсем не читалась. Надеюсь сейчас стало гораздо лучше :)

Изображение
Изображение

22 июня 2009

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

Кстати если у лимитера стоит только этот флаг – то он грузится только в редакторе, а в самой игре просто не добавляется (что вполне логично, т.к. карта препятствий обсчитывается заранее в редакторе, а в самой игре лимитер только с этим флагом не будет никак воздействовать на геймплей).

Да я решил идти проверенным путём и использовать старый добрый алгоритм А* а не пути или навмеш. Ибо для двух последних очень не очевидно как быстро рассчитывать в каком поинте\треугольнике находится бот, при его смещении например взрывом или при таране другим ботом.

Собсна в редакторе лимитеры выглядят сейчас вот так (цветом показываются разные установленные флаги):
Изображение

Ссылка

6 июня 2009

Всё, наконец-то переехал на новый хостинг. Теперь все ссылки снова будут работать, а картинки - отображаться :)

Ссылка

23 мая 2009

На днях решил проверить на что способен мой редактор. Закинул в движок несколько моделей и собрал из них небольшой участок уровня "Свалка". Ниже можно увидеть пару видео с результата. Собственно этот прототип позволил выделить несколько проблем:
1) Робот часто задевает углы и спотыкается о неровности пола. С этим придётся чтото делать, т.к. раздражает ужасно.
2) Необходимо ввести в движок дополнительную физ геометрию, которая будет реагировать только на игрока и врагов. Ей нужно будет обтягивать все участки с которых игрок может упасть в пропасть, а также участки куда по идее игрок заезжать не должен.
3) поиск пути для роботов скорее всего надо будeт делать с помощью Paths а не AStar. Это позволит ввести более интеллектуальных врагов по средством добавление дополнительной информации о уровне в Path Points.

Видео с геймплея движка:

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Видео с редактора уровней:

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

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

Изображение

21 мая 2009

Наконец то я отладил сериализацию (покрайней мере основных объектов). Последняя ошибка, которую я искал дня два была крайне банальной. Я перерыл по пятьсот раз все коды загрузчиков и отгрузчиков, но так и не мог понять почему периодически в случайном месте файла байты при загрузки съезжают. Не мог понять пока не додумался проверить способ открытия файла.. фак, я бинарный файл открывал как текстовый (!!!). И самое прикольное - периодически уровень грузился нормально ))))
Вообщем поставил я бинарный доступ - и сразу всё заработало как надо.

Такие дела, господа. Не делайте глупых ошибок :)


Изображение

З.Ы. Извините, ребята, что в остальных постах картинки не грузятся. Я меняю хостинг, скоро всё восстановится и картинки появятся.

Ссылка

13 мая 2009

Мир в игре будет тайловый. Т.е. собираться из отдельных мелких (и не очень) объектов в редакторе. Плюсов из этого подхода довольно таки много – большое разнообразие уровней, большая детализация. Также считаю огромным плюсом возможность управлять детализацией – в зависимости от настроек не загружать объекты, помеченные как «только для высокой детализации» (ну например дополнительный мусор, второстепенные элементы уровня и т.д.). Минусы конечно тоже есть- большее количество DIP. Но учитывая наклон камеры и деферред шейдинг я не думаю что это будет сильно влиять на производительность )

Ещё конечно придётся сделать в редакторе функции выравнивания объектов, подгонки друг к другу и убирания зазоров между ними, иначе зашьёшься выравнивать всё в ручную…

Начал работать над тайлами первых уровней – «катакомбы» и «район старой свалки».

Изображение
Изображение
Изображение
Изображение

Довольно долго подбирал тектуру поверхностей свалки, такую, чтобы на ней не терялись активные объекты. Вроде не плохо смотрится:

Изображение

23 апр 2009

Занимаюсь своим редактором. Реализовываю перемещение и поворот объектов. Перемещение работает отлично а вот поворот начал давать на статических объектах интересный глюк – после большого количества поворотов шейпы статического объекта начали не совпадать с их матрицей поворота (та что возвращается функцией getGlobalOrientation).

Вот в исходном состоянии (оранжевыми линиями показано положение физической оболочки):

Изображение

А вот после большого количества поворотов:
Изображение

Что примечательно – при единичных поворотах – всё нормально. При простом перемещении такого глюка вообще замечено не было. Сначала я думал что это из-за накоплении ошибки в матрице - ортонормировал её, но проблема не исчезала… тем более было странно что на динамических объектах такого глюка не возникало! Начал курить доки и вот что я заметил:

Изображение

Вы видите маленькое неприметное слово «dynamic»? Вот и я его заметил только после шестой зачитки документации. Начал гуглить проблему – оказывается у многих такие глюки замечены – на официальном сайте нвидии заметил 3 подобные темы. К слову которые остались без ответа.
Вообщем после на официальном сайте нашёл мелким шрифтом надпись в FAQ что статические объекты НЕЛЬЗЯ двигать после их создания, т.к. они там очень хитро оптимизируются и при их передвижении придётся много чего перерасчитывать.

Решение проблемы было простое – при создании NxActor в редакторе все статические объекты создаются как динамические с флагом NX_BF_KINEMATIC. После этого глюки волшебном образом исчезли! Объекты можно вертеть сколько хочешь и они не рассинхронизируются со своими физическими оболочками :)

Изображение

А теперь несколько риторических вопросов:
1) Почему в документации нет никаких Warling! крупным красным шрифтом насчёт всего этого?
2) Почему вообще библиотека физикса позволяет мне двигать и вращать статические объекты если это приводит к глюкам? Сэкономили на одной проверке if-ом?
3) Почему мне не дают возможности «перерасчитывать чегото там» или отключать всю эту оптимизацию статических объектов по моему желанию? Ведь передвижение статических объектов в редакторе уровня – думаю обычная и часто встречающаяся задача.

Ссылка | Комментарии [5]

20 апр 2009

Пару недель назад начал неспешно работать над редактором уровней. Вспоминая редакторы от прошлых моих игр, я твёрдо решил, что в этот раз он будет более-менее адекватным и по стилю управления\редактирования объектами будет похож на обычный 3d редактор (читай – 3д макс).

В былые то годы, мои тулузы для клепания уровней отличались замысловатым функционалом, причудливыми Ынженерными решениями типа 3d курсора и убийственным количеством горячих клавиш. Но даже в них я умудрялся как то клепать вполне сносные уровни ))

Делать стандартные элементы 3д редактора к удивлению оказалось весьма интересным занятием. Например манипулятор со стрелочками. Я с таким упоением изучал в 3д максе особенности проекции экранного вектора скорости мыши на оси объекта, воздействие на объект в момент захвата… и сразу же переносил полученные знания прямиком в код своей программы :)

Что же касается интерфейса редактора – то тут я сохраняю трогательную верность традициям. Схема интерфейса «Вьюпорт-главнаяПанель-инфоПанели» выработанная на редакторе от Scary Nightmare показала себя в боевых условиях весьма не плохо, поэтому я решил её кардинально не менять.

Выкладываю ниже скрины трёх редакторов, расположенные в хронологическом порядке, эволюция так сказать… сложно сейчас поверить, но редактор для Technozes целиком обходился только горячими клавишами :)

Technozes (2007):
Изображение

Scary Nightmare (2008):
Изображение

Robogeddon (2009):
Изображение

Ссылка

Архив 

Предыдущие записи