На чем делать инди игру? Продолжение после непредвиденных проблем...
Очень давно, еще в конце октября того года, я задумал сделать инди-игру. После нескольких "проб пера" для ознакомления с движком GameMaker пришла в голову идея сделать что-то более приличное. Перед глазами вставала прекрасная картина: платформер (по большей части даже шутер) с претензией на реализм. Несколько месяцев я убил на программирование всего и вся (рисовал все не я, а мой знакомый), работал над каждой идеей, как над целой игрой... Папка Let's fight together (так называлась моя игра) разрослась до нешуточных 950 мегабайт. Когда наконец я все протестировал (как мне казалось), решил все это слепить воедино. Я, конечно, ожидал, что будут какие-то несостыковки с разными функциями игры, но беда пришла с другой стороны. Игра едва вытягивала 8 фпс на прекрасной конфигурации... Я решил, что, видимо, недостаточно проследил за некоторыми составляющими игры, по очереди каждую перепроверил и исправил пару-тройку ошибок. Но это никак не исправило ситацию!
И не думаю, что профилировка программы, т.е. игры (а это долго и нудно) сильно улучшит производительность. Короче, выбросил GameMaker на флешку до лучших времен.
Собственно, сабж. Какие движки способны держать производительность на уровне при большом количестве функций и составляющих?
- 25 января 2011, 13:44
- 01
ХАХАХАХА! Почитал пост, почитал комменты и поржал.
Кажется это тот же чел что как то писал уже про "кривость Game Maker".
Конечно круто написать о тормозах и не сказать конкретнее в чём суть игры, и что там должно быть. Настораживает слово "реализм". такое ощущение, что автор делает реалистичную воду, шелест травы и листвы, покачивание деревьев, физику и т.д.. и ВСЁ это средствами ГМ без сторонних ДЛЛ библиотек. Для спецэффектов типа огня можно вообще частицами обойтись. Так же необходимо продумывать логику работы и сразу отсекать ресурсозатратные ветки. Например, если нужно сделать, чтобы враг реагировал на игрока в заданном радиусе, но не мог реагировать через стены, то логично сперва проверять радиус а потом проверку со стеной, т.к. функция collision_line ресурсозатратная.
Хотя я на самом деле думаю что причина тормозов куда более чем банальная, например какие-нибудь объекты-частицы взрыва не уничтожаются, а висят вечно. Или где-нибудь жёсткий цикл написан с collision_point проверкой столкновений в квадрате, вместо collision_rectangle. Если игра тормозит всё время а не в определённых моментах, то очевидно причину нужно искать в step и draw событиях, т.к. они выполняются каждый шаг.
И ещё чует моё сердце, что автор статьи нас в конец добьёт тем, что он делает игру кнопками а не кодом...
Вот пример пары игр на ГМ, в которых не так уж мало объектов, уровней, неплохие спецэффекты и не тормозят:
http://gamin.me/blog/other/5229
http://gamin.me/games/brain-storm-tower-bombarde
А вот убийца ГТА сделанная на ГМ:
http://www.yoyogames.com/games/14296-crimelife-2
http://www.yoyogames.com/games/49250-crimelife-iii
Насчёт игр как сложных систем: игра сама по своей сути является довольно сложной системой (но тут тоже смотря какая), т.к. в игре изначально больше компонент, чем в других программах(управление, гэймплей, сценраий, графика, звук, музыка, физика, логика работы и пр.). А как известно, сложность системы всегда определяется количеством компонент и связей между ними. А уж в играх то все компоненты связанны между собой очень сильно. Это вам не софт писать с парой алгоритмов.
Насчёт Констракта - несмотря на то, что он сам глючный, так и игры на нём сделанные (даже простенькие) на моей машине тормозят... Не знаю за что его хвалят, он вообще неоптимизирован.
Резюмирую: если у автора статьи кривые руки, то никакой движок это не исправит.
P.S. И прежде чем что-то делать, советую ознакомиться с тем, что УЖЕ возможно сделать на том или ином движке. И не делать замашек на убийц Crysis и WOW.
Ваша первая ссылка по играм, которые "не тормозят" на эту же тему. Это похоже на шутку.
Да Вы несомненно правы, я думаю что на Вашем пентиуме в 300Mhz она всё же немного тормозит.
У меня по крайней мере всё нормально (1.2 Mhz (1 ядро), 512RAM, 64 Video
Я думаю, вы либо меня с кем-то путаете, либо ведете себя очень некорректно, позволяя себе необоснованные насмешки в мою сторону, тогда как я просто указал вам на, видимо, неверную ссылку (ведущую на эту же тему, где вы написали сообщение), которую вы указали по невнимательности. Теперь же вы еще невнимательны и к моему комментарию, можете съесть свои 512 рам вместе с фантазиями про мой компьютер. Я с вашими фактами и не спорил, идите проспитесь.
Знаешь, а я прочитал твое сообщение так же как SaintHeiser, то есть я подумал, что игра, которую он указал во второй ссылке -- у тебя тормозит.
Фразу "на эту же тему" я прочитал именно как "на эту же тему", а не "на этот же пост".
Я случайно пропустил слово "выводит". Тем не менее, я не понял этих агрессивных рассуждений про пентиум, потому что без пропущенного слова, я обнаружил, вообще невозможно нормально понять смысл моего комментария. Это не значит, что надо сразу все воспринимать в негативном смысле. Если бы автор проверял, куда ведут его ссылки, он бы понял, что я имею ввиду.
Хорошо, приношу тебе свои извинения за свою грубость и невнимательность. Но в следующий раз и ты со своей стороны пиши подробнее, чтобы твой пост трактовался однозначно.
Я вот эту игру имел в виду:
http://gamin.me/games/tower-bombarde
Насчёт ссылок - три раза пост перенабирал, потому как есть какое-то волшебное сочетание клавиш которое выводит страницу в какой-то мегарежим который вешает весь браузер. Так вот потому как три раза перенабирал - видимо уже не глянул что за ссылку прикрепил.
1. Угу.
2. Я поэтому всегда проверяю, если текст со ссылками, куда они ведут, и не вылезло ли лишнее. У самого часто такая ерунда, что пост либо не отправляется, либо пропадает, потом,если глючит, концов не найдешь.
3. Так-то по теме был согласен.
Резковато, но по делу.
- спасибо, посмеялся
Хотя б одну игру вменяемую сделай, чтобы потом уже подумать: смеяться или нет.
А ты хоть одну игру вменяемую сделал, чтобы умничать тут?)
Сделал. Не сделал бы - не говорил. Не сделал бы - не знал насколько это трудоёмкий процесс. Если бы я не программировал простой софт - я бы не рассуждал о том какая система сложнее.
Это вот критикам из своего кресла видно, как будто игру делать просто и вообще как будто вся индустрия из воздуха рождается, как нефиг делать.
Во всё заложено огромное количество усилий. Особенно понимаешь, когда что-то создаёшь а не пользуешь готовое. Даже простой обычный нормальный стул сделать не так просто, хотя кажется что может быть проще? Даже разработка обычного нормального стула является системой. Обычно люди не задумываются КАК делается та или иная вещь.
Не знаю, что ты там за простой софт пишешь такой, что он у тебя такой простой. Больше похоже на пустую риторику.
Примеры игр можно?
Если тебе будет угодно.
Я участвовал в этом(графика, музыка, движок, инфтерфейс):
http://www.gamedev.ru/projects/forum/?id=143916
Недавно сделал вот это:
http://www.gamedev.ru/projects/forum/?id=143846
И поправочка с моей стороны: разумеется софт тоже бывает разный и тоже может представлять сложную систему. Моя мысль в том что игры делать - тоже задача непростая и любая игра тоже являет собой сложную систему. Если бы это было не так, то мир был бы переполнен не трэшаком, а игровыми шедеврами.
Ну и обрати внимание так же на то, что даже если брать за софт обычный сайт, то хороших сайтов уж гораздо больше чем хороших игр. А о чём это говорит? Это говорит о том что разработку сайта можно более менее автоматизировать. Посмотри на игровую индустрию - сколько инструментов ни созданно а полноценных хороших игр не так уж и много. О чём это говорит? О том что игры - это простая система?
То, что сложно в создании игр ниразу не система, и математически это никак не описать
Хех. Зачем так сразу описывать систему математически? Мы же не математики в конце-концов. Системы обычно описываются блок-схемами. А блок-схемой можно описать любую вещь и любой процесс. Для тех кто не в кусре, советую ознакомиться с термином "Системный Аналитик" - более широкое понятие гэймдизайнера. будете удивленны. Мыслите шире.
Ы, а ты точно уверен, что знаешь, чем занимается наука «системный анализ», что примешиваешь её к разработке игр и отрицаешь математику? :)
Ну сайт сложно назвать софтом.
И полноценных хороших игр достаточно. То есть, я вполне могу покупать себе в месяц по хорошей игре, и не думаю, что это скоро закончится.
Как раз то, что игр огромное количество как хороших, так и вообще, говорит о относительной простоте разработки и развитом инструментарии.
Сперва надо понять что- такое софт.
Это даже не я придумал, а сайт под это опредление однозначно подходит. А разработка сайта дело уже не просотое.
И ещё суть в том, что для каждого человека хорошая игра - имеет свои критерии. Я же говорил об однозначном успехе игр, признанных наибольшим количеством людей, а не о тех играх которые нравятся лично тебе.
Насчёт игр вообще - это тоже как посмотреть. У нас есть инструментарий, да ты прав, что он развитый, но почему-то многие люди не могут нормально им воспользоваться. Дай дураку молток и он начнёт забивать гвозди везде где можно. Именно поэтому я считаю что наличие лишь одного инструментария - недостаточно для создания игры, для создания системы. А для создания системы нужно быть ещё и системным аналитиком (блин, да иначе нахер были бы нужны гэймдизайнеры, если всё так просто?), что ещё раз говорит о том, что любая игра представляет собой сложную систему, в которой нужно уметь разбираться, т.е. быть Гэймдизайнером (тут тоже смотря какая игра. Думаю, что тетрисы и калькуляторы мы не обсуждаем, и то они так же являются системой, хоть и не сложной).
Пока что алгоритмов, автоматизирующих работу гэймдизайнера нету. Но не совсем так. Есть определённый инструментарий который помогает делать работу системного аналитака быстрее - так сказать оформлять результат, но действительно вся работа выполняется в мозгу такого человека.
- да блин, за всю историю выпущены десятки отличнейших игр, в которые поиграли миллионы людей, если я буду их здесь перечислять, это растянется на десятки комментариев.
Я понимаю, что игроделов задел тот факт, что я в некоторой степени ставлю под сомнение их квалификацию, но разработкой систем вы не занимаетесь, максимум, что делаете, это пишете программное обеспечение для систем, тот самый пресловутый софт. Ничего в ваших играх от систем нет.
p.s. ну про сайт смешно, неужели сам сайт это программы обработки информации? Сайт это набор документов, да, но совсем не тех документов, речь про которые идёт в ГОСТе :)