2. Выбор движка.

Ну вот, в предыдущем посте я определился с тем, что за игра у меня будет и что я в ней буду реализовывать. Теперь стоит выбрать движок. Ибо свой писать - слишком долго, сложно да и, по большому счету, совершенно не нужно и, даже, глупо. Итак, выбор, естественно, падает на, в той или иной мере, бесплатные движки. Выбор оных Вам предоставит поиск на http://www.google.com и на http://www.sourceforge.net . Выбор огромный, но... Что-то еще в стадии разработки и далеко от релиза. Что-то уже пару лет как не поддерживается. Что-то уже устарело. Что-то не слишком удобно. Что-то не рассчитано под С++. Почему же все-таки С, а не, к примеру, Delphi? А потому что попробовав прикрутить dll-ку к Delphi я понял, что эти бубны не для меня, ибо в Delphi какой-то свой весьма хитрый формат библиотек. Движки на Visual Basic? Я, конечно, понимаю, что современные компы дюже быстрые, но я лучше потрачу часть их производительности на большее количество полигонов в моделях и более качественные текстуры. Это будет лучшим выбором с моей точки зрения (да и не только с моей). Итак остается только С++. Далее мой выбор падает на широкоспециализированные "бесплатные" движки: Nebula, Crystal, Ogre и Irrlicht (сами критерии выбора особо расписывать не буду, уж очень там много интуиции, которой я всецело доверяю). 1. Nebula. Движок староват уже. Хотя на нем было выпущено пару успешных и достойных коммерческих игр. Но рендерер мне в нем не понравился. Лицензия тоже немножко насторожила. 2. Crystal. Рендерер не фонтан. Лицензия - терпимо. А вот API мне не понравился. 3. Ogre. "Боже мой, какой же он сложный!" - это была моя первая мысль. В принципе она пока еще остается доминирующей, что касается этого движка. К тому же лиценизия какая-то хитрая. Рендерер симпотичный, но к ресурсам требовательный. 4. Irrlicht. Достаточной простой. Достаточно мощный. Лицензия сказочная. Выглядит приятно. Довольно шустрый. Ну и разрабатывается по сути только одним человеком. Причем разработка идет постоянно. Наверное последнее меня, так сказать, дособлазнило окончательно. С движком я определился. Хотя были иногда мысли использовать OGRE, но я все-таки решил использовать Irrlicht (в дальнейшем просто Irr или Иррлихт или Иррл). Далее пришлось выкачать IrrNetCP SDK 0.7, IrrNETCP Tutorials, собственно сам irrlicht, ну и Newton, IrrNewtonSharp (враппер под .NET), IrrKlang. Выкачал, распаковал. Обнаружил доки, глянул в них и похолодел, потому что понял, что я в них ничерта понять не могу. Sad Они написаны для опытных программеров. Однако справедливо рассудив, что для Ogre доки в таком же виде, а других мне и не найти, решил все-таки начинать, полагая, что туториалы я качал не зря. Да и интернет шутка информативная бывает, ну и форумы там всякие тоже существуют (господи, как же я тогда ошибался... на русскоязычных форумах, как оказалось, все мнят себя гуру и посылают всех далеко и надолго, обзывая ламерами и прочими идиоматическими выражениями, а вот на офф-форумах Иррла и ИррНетЦП вполне внятно и спокойно отвечают на вопросы, но надо знать английский... хотя без английского в геймдеве вообще делать нечего...). Хочу немножко пояснить один момент. Есть движки специализированные под какие-то виды игр. Например, Unreal Engine - это для FPS и RPG(стоит приличных денег). EVE Trinity - это для космоса (вообще не продают) и т.п. Так вот, по скриншотам на сайтах движков сразу видно для чего движок "затачивается" в первую очередь. Так что выбор еще проводился и по скриншотам. ------------ДОБАВЛЕНО----------- Вопрос, стоит ли постить код с комментариями или лучше продолжить тему описания диздока и общих вопросов? Потому что я не программер все-таки и кому-то мой код может показаться далеко не самым лучшим. Да и вообще, нужны ли мои посты хоть кому?
Последняя правка: ср, 18/04/2007 - 03:01
Submitted by BlackCat on

Комментарии

Посты конечно нужны. Что описывать и как - решай сам. Пиши то, что интереснее тебе - а желающие почитать, я думаю, найдутся. По поводу "кода с комментариями", пока что на сайте нету подсветки синтаксиса, поэтому, что бы сделать его визуально воспринимаемым, придеться повозиться. Решай сам стоит ли это затраченных усилий. В любом случаи - спасибо за посты :)
Submitted by Victor on
Вітаю! :) Па-першае, калі ёсьць жаданьне паспрабаваць увайсьці ў хвалю гульнябуда, дык трэ пачынаць з якой-небудзь прымітыўнай гульні. ( Кажу гэта са свайго вопыта - пачаў займацца гульнябудам з 2002 года і да гэтага часу было выпушчана больш за 10 гульнь ). Прычым, на гэтай гульне мае рацыю адпрацаваць усе ньюансы. Па-другое, ты пішаш пра ліцэнзію... што дзесьці яна цудоўная, дзесьці не Smile Ogre3d ( між іншым, гэта не рухавік, а звычайны рэндэр ) мае ліцэнзію LGPL, Irrlicht ( між іншым, "тармазнуты" рухавічок ) мае zlib/libpng ліцэнзію, ды й у астатніх добрыя ліцэнзіі, што не спадабалася-то? І апошняе, якія праграмавальныя мовы ты добра ведаеш? Smile Бо можа табе спадабаецца Apocalyx ( OpenGL і LUA ), альбо BaJa Engine ( аналягічна ), або ўвогуле Blitz3D ( DX7 + Basic )? А таксама, навошта табе фізічны рухавічок - Newton? Гэта ж сапраўдны "тормаз"! Абірай для сябе ТОЛЬКІ AGEIA PhysX. Жадаю посьпеха, калі што - dev.swargo.com/
2 Victor: Спасибо за поддержку и внимание. Основная идея постов была не в том, чтобы показать, какой я крутой перец, сам игру делаю, а в том, чтобы помочь кому-то начинающему. Потому что я уже на своей шкуре знаю, как это может быть тяжело. Поэтому хотелось бы узнать мнение посетителей, в частности начинающих. В соответствии с ним подправить посты, чтобы были понятнее и подробнее. Чтобы знать, что их еще интересует. Знать о чем писать дальше. Подсветка синтаксиса - это было бы вообще сказочно и если такое планируется реализовать, то думаю стоит подождать немножко. 2 Siarzhuk Piatrouski: Вынужден констатировать, что Вы невнимательно читали либо вообще не читали. 1. Примитив меня не устраивает. Ибо игра, которую я делаю - это в первую очередь хобби, о чем я уже писал. 2. Рекомендую внимтельно изучить лицензии. В них есть очень много неочевидных нюансов. 3. Irrlicht в 1,5 раза быстрее Ogre, так что говорить о том, что он "тормознутый" мягко говоря неправильно. 4. И опять же - я писал о выборе языка. Причем в том посте, который Вы откомментили. Огромная просьба в следующий раз. Если уж задаете вопросы, то по существу. Если уж пишете коммент, то сначала прочтите статью. P.S. Ничего личного, но вместо того, чтобы написать еще пару строк кода пришлось потратить на ответ 15 минут, хотя ответ там и не требовался. Ибо все ответы я дал еще в посте. Печально... :(
Submitted by BlackCat on
Спадар BlackCat, ня разумею Вашых нападак кшталту "невнимательно читали либо вообще не читали". Пройдземся па пунктах? >>>1. Примитив меня не устраивает. Ибо игра, которую я делаю - это в первую очередь хобби, о чем я уже писал.>>2. Рекомендую внимтельно изучить лицензии. В них есть очень много неочевидных нюансов.>>3. Irrlicht в 1,5 раза быстрее Ogre, так что говорить о том, что он "тормознутый" мягко говоря неправильно.>>4. И опять же - я писал о выборе языка. Причем в том посте, который Вы откомментили.
1. Еще раз повторяю - это хобби. Второе, я отвечал уже на этот вопрос - мне не важно, сделаю или нет, мне важен сам процесс. 2. Изучал внимательно, благо знания английского позволяют. 3. Взял две одинаковых сцены и тупо посмотрел кол-во фпс. 4. Читайте внимательно все посты, а не только один. Там сказано, что я не программер. Так же я достаточно доступно объяснил свой выбор.
Submitted by BlackCat on
Ха-ха, 1-2 пункты без каментарыяў Smile 4-ы пункт увогуле цікавы - гэта мо блёг ці што яшчэ? Я адказаў менавіта на гэты запіс і кропка. А 3-ці... ну як сказаць... сьмешна... вельмі сьмешна! Шчыры дзякуй за добры настрой! :)
"А потому что попробовав прикрутить dll-ку к Delphi я понял, что эти бубны не для меня, ибо в Delphi какой-то свой весьма хитрый формат библиотек. " Обычный там формат библиотек Smile Это видать ты там шота нашаманил не того.. "Движки на Visual Basic? Я, конечно, понимаю, что современные компы дюже быстрые, но я лучше потрачу часть их производительности на большее количество полигонов в моделях и более качественные текстуры" Ошибаешься, как и я в своё время.. Например сортировку 2 млн точек по расстоянию до камеры чел на бейсике сделал быстрее, чем я на си и на дельфи. И она работала на 15% быстрее (!!!!) Я сравнил коды потом свой и его - абсолютное тождество. Просто все зависит от кривизны рук программера а не столько от компилятора. "3. Irrlicht в 1,5 раза быстрее Ogre, так что говорить о том, что он "тормознутый" мягко говоря неправильно.
Submitted by Woolf on
2 Woolf Я так и не смог в инете найти простой и легкий способ подключить обычную dll-ку к делфи, поэтому пришлось отказаться от делфи, как от языка написания игры, хотя ему я отдавал предпочтение по той причине, что когда-то неплохо знал паскаль. Тестовая сцена представляла из себя набор мешей в виде планет, тестовый кораблик, точечный источник света, ну и скайбокс. Ирлл оказался быстрее. А насчет бейсика... Даже и не знаю что сказать, всю жизнь видел, как бейсик работает медленнее, чем паскаль, а паскаль подтормаживал относительно сей... Может времена сильно изменились, черт его знает, может оно и так, но менять язык уже не буду. 2 Siarzhuk Piatrouski Уважаемый, Вы мне напоминаете кое-кого. Вы случайно на форуме игромании не бываете? В частности в разделе "Учимся делать игры сами"? Уж очень похоже. P.S. О чем еще написать, что уточнить, о чем еще рассказать? Есть ли какие-то особые пожелания?
Submitted by BlackCat on
Не, ніколі ня быў на гэтым форуме Smile Між іншым, мне падаецца, што Вы вельмі адмоўна ставіцеся да мяне :))
На самом деле говоря о языках программирования не стоит говорить один быстрее или медленнее другого. Язык - это всего лишь семантика. Возмём для примера Бейсик. Первые версии языка грубо говоря брали написанный скрипт и строчка за строчкой выполняли его. Это медленно и неэффекитвно. Потом появились языки с семантикой бейсика, но уже которые могли компилировать скрипт в обычный машинный код. Появившийся позже Visual Basic уже прекомпилировал скрипт в промежуточный байт-код, то есть его собственная форма представления данных, которая быстрее грузится и быстрее работает, но всё же это не голый исполняемый машинный код. Эта же идея была реализована позже в NET и Java языках, при этом пошла дальше, так как наука создания компиляторов пошла очень далеко, появились так называемые HotSpot компиляторы, которые способны на лету оптимизировать Java программу в обычный машинный код. То есть при выполнении программы компилятор смотрит, как часто и насколько эффективно выполняется тот или иной код и если считает нужным - компилирует его в машинный код, повышая эффективность. К примеру такжк для Java - существуют процессоры, специально разработанные для работы Java программ. Так что в принципе, при скорости развития технологий и перспектив не стоит начинать разработки на старых не ООП языках. Даже "гуру" сишники в настоящий момент обречены работать на старых никому не интересных проектах, которые всё равно рано или поздно будут переводить на NET. А какие среды для разработки! Разве можно сравнить Eclipse для Java c блокнотом или другим хакерским прибамбасом? Кстати тотже Irrlicht вполне так хорошо работает через промежуточнцую либу на Java. jirr.sf.net. И скорость за счёт сишного Irrlicht'а отличная. Но в своё время и кармак писал квак на сях, используя ассемблер для ускорения. Времена меняются. Процессоры бегают быстрее, графические карты бегают быстрее, появившаяся Vista уже гарантирует засилье быстрых процессоров и современных 3D карт в самом скором будущем. Так что естественный выбор для нового разработчика - это только C# или Java - это хобби, профессия и хорошая инвестиция в своё будущее.
Submitted by hrm on

"Движки на Visual Basic? Я, конечно, понимаю, что современные компы дюже быстрые, но я лучше потрачу часть их производительности на большее количество полигонов в моделях и более качественные текстуры"

Хочу добавить на счёт языков. Медленность языков не влияет на скорость визуализации в GPU, а влияет только на часть работы CPU. Так что в GPU bound играх вообще без разницы какой язык выбрать. Зато если язык удобный - улучшается настроение и производительнгость разработчика. Smile

Submitted by Hale_32bit on

GameDev.by