Четверг, 24.05.2018, 18:57
FDsagizi ГлавнаяРегистрацияВход
Приветствую Вас Гость | RSS
Форма входа
 Главная страница 

Разработка игры – что это вообще, и с чем это едят ?

 

Что такое вообще разработка игры, по чему в Kz. Более 600 IT контор( на момент 2009 года ) и нету не единственной конторы которая сделала бы игру, о которую бы знали и ее можно было купить( ARTA Software – начала более менее серьёзно разрабатывать игры, я там работаю – это уже не робкие шажочки подпольщиков, но это только начало! И тем не менее на момент написания этого текста она еще в разработке, а это значит что нету еще не одной нормальной игрушки – в привычном понимании этого слова )

 

В чем проблема казалось бы…. ???? Ведь что там сложного, в Кз есть программисты, есть моделеры, есть те кто до дыр знает фотошоп… пишите код, рисуйте модельки с хорошими текстурами – что такого, в ЧЕМ ДЕЛО ?

 

А вот не все так просто. К примеру большинство проектов которые заваливались на этапе разработки имели 2 основные проблемы.

            1 – Банальная - деньги, это проблема не требующая комментариев.

2 – Технические проблемы.


Технические проблемы:

 


Технические проблемы: По чему делают программы, а игры нет ? Предположим у вас есть куча денег – большая, но не самая большая в мире. Т.е. вы можете позволить нанять людей не очень много, и не самых профессионалов( т.е. нет возможности пригласить людей из-за кордона… ). И вот вам нужны люди, где вы будете искать кадры для разработки гры? А не где!. Из привычных ныне методов – их не найдешь, ибо нету профессии где учили бы на -  Программиста игровой механики, логики, графики, искусственного интеллекта, физики, спец эффектов, вспомогательных средств( всякие редакторы ),  сетевого взаимодействия, написания плагинов.

 

Есть мнение что обычные программисты(Выпускники высших учеб заведений) это те же самые программисты что и делают игры, и можно их взять и сделать игру. Да это так, но их от программистов игр разделят километр «граблей», сделать игру то можно – но на это уйдет уйма времени т.к. изучение всех тонкостей каждого из перечисленных направлений требует времени и очень много – а самое дорогое у программистов игр это время! Если же не углубляться в тонкости то появиться другая проблема – игра не будет игрой…

 Нужен такой чел:

Сложность игр в том что там все нужно делать на приделе возможностей по производительности, и чем чаще компонент вызывается – тем он должен быть более производителен, к примеру: есть удобные языки типа С# или Java – они просты в том что на них удобно и легко разрабатывать продукты и писать логику, использовать высокоуровневые абстракции – но они медленны в плане логики( их плюс, это их минус ) – они очень хорошо подходят для веб приложений, просто программ( кнопочных приложений ) где если вы нажали кнопку, можно подождать 10 секунд пока программа что-то посчитает. У игр все не так, там нельзя ждать по 10 секунд, представляете – вы стреляете во врага, и тут появляется пауза в 10 секунд. Для игр распространены языки у которых скорость выполнения может идти в разрез удобности и простоты. Тут на сцену появляются такие чудо языки как ( C, C++ ) Это два самых расспространеных языка. Первый очень стар, и на нем писали такие игры как Квэйк1-2-3, Дум 1- 2, вообщем большинство игр до 1998 года, тут уже на сцену вышел и зарекомендовал себя С++.

 

С++ это логическое продолжение С. Он на много наворочение С, и тем не менее он не самый лучший язык с точки зрения программирования, отладки, анализа кода – но он быстр, очень быстр – по этому игры делают на нем.

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

 

Ну ладно. Находите вы программиста который владеет С++( иму было интересно, и он его сам просто так изучил по вечерам– такое бывает  ;) ) , и мало того этот человек знает что такое игровой движок, физический движок, графический движок т.е. база у него есть, и он не просто зеленый новичок, который прочитал С++ за 21 день.

 

Ура можно делать игру.

 

Вам нужен моделер и текстуровшик – это уже не такая проблема, идем на сайты по 3д моделированию и ищем нужных товарищей, или вытягиваем из контор которые занимаются дизайном квартир, интерьеров.

 

Итак у нас есть команда Программист, Моделер, Текстуровщег. Нужно еще больше, Гейм дизайнер, всякие менеджеры, те кто занимается сюжетом и т.д. и т.п.

 

И что дальше ?

 

Нужно придумать что делать, ок – как говорил Джон Кармак( Создатель Doom 3 ) «Сюжет в игре как сюжет в порнушке, он нужен – но он не важен»( На верно по этому в Дуум 3 сюжет говно полное… ). Ладно делаем шутер, тут вроде все просто на первый взгляд – Пушка в руках, тупые боты зомби – которые даже стрелять не умеют, и простые «туннельные» локации. Чем не очередной шедевр про зомби ?

 

Придумали сюжет( приехал он со своей женой … бла бла бла… всех убили, остались тока вы с лопатой … )

 

Взяли какую нибуть игру как экземпляр для графики и геймплея - пошло!

 

Начали делать локации и людей и окружие – тут особых проблем по началу не будет( пока не будут появляться фитчи ) к примеру делаете вы делаете все в 3д максе, есть экспортер который переводит из 3д макса в движок игры( взяли какойнибуть доступный бесплатный двиг ) Моделер рисует домики где каждая ручечка прорисована, где прорисован сливной бачек в туалете, где текстуры хранятся в форматах .jpg .png .bmp … Все как бы хорошо – по началу. Но вот потом появляеться проблема, уровень на котором пару домов грузиться 2 минуты, что какое начали разбиться, потратили неделю – а оказывается текстуры сильно большие 4000х5000 пикселей – ручка стакана на кружке. И вот - вот они грабли, и этих граблей будет тысячи, миллионы – порой вам будет казаться что все против вас – как будто вы попали в лес, где густой туман – не видно дальше своего носа, а времени несу медленно идти, по этому нужно бежать. А дальше … к примеру - ну вот почему текстура в .jpg 1024х1024 занимает на жестком диске 200 кб, а в видео памяти 4 Мб ? Казалось бы не возможное, а так и есть( она храниться на жестком диске не сжатая + когда она грузиться в видео карту создаются MipMap уровни … ) а ведь размер видео памяти не такой уж большой, ладно на момент 2009 года размером видео памяти в 512 мб не кого не удивишь, но у многих всего 256 мб… а по мимо текстур там еще и модели хранятся, да да – не знали, они тоже в видео памяти, конечно их можно хранить в оперативной памяти – ок так и сделаем, но потом оказывается что это жутко медленно гонять их из видео карты в оперативку и обратно… Потом вы смотрите не игру и думаете тут не хватает физики – чтобы объекты со стола падали, шкафы ломались, бочки можно было сдвинуть. И вы понимаете что нужно выходить из ситуации – есть 2 варианта, написать свой плагин для 3Д макса чтобы там можно было настраивать объекты, либо писать свой редактор объектов( Не альтернатива 3д максу, а именно настройка параметров объекта ) написать хороший плагин чтобы тот умел хранить параметры каждого объекта – та еще задача, и вы выберите написание своего редактора – да и так возможностей будет больше. А свой редактор это работа с гуи( кнопочки Windows-a ) это система сохранения объектов, и их же загрузка, это навигация и управление данными это еще туча проблем – о которых вы даже и не догадывались.

 Ну вот уже есть редактор где можно настраивать объектам параметры, и тут нужен еще один редактор – где бы вы эти объекты могли расставлять Редактор карт, опять же проблемы ну уже будет проще, т.к. есть опыт написания редакторов.

 

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

 

Далее вы смотрите, ага в игре нету теней, и освещение не очень. Нужно делать красиво, а как делать, оказывается есть языки программирования для этого – это: HLSL, GLSL, Cg, Asm  в зависимости от того что использует ваш движек, вам нужно будет выучить как работают эти языки. И выбрать нужный.

 

Ну вот у вас OpenGL и вы выбрали GLSL – начали писать шейдеры, все красиво вроде получается, но тут игра снова тормозит – оказывается эти программки которые вы пишите, выполняются миллионы раз в за одну отрисовку кадра( к примеру разрешение в игре 1280х1024 = 1 310 720 – это количество пикселов которые будут обработаны этой программой, и это тока пиксельный шейдер, еще есть вершинный который упереться в кол-во вершин, что опять же дает нагрузку. И вот вы соптимезировали, сделали ветвление за счет дефайнов – для нужного матереала нужный набор инструкций. Включаете игру на другом компьютере, и опочки – вместо красивого света, все матово белое, или криво освещается, что такое скажете вы ? Опытный человек скажет все нормально, другая видео карта от другого производителя – откуда вы это знали, да не откуда! Опять грабли.

 

А знаете ли вы что проще нарисовать 1 объекта в 5000 полигонов или 1000 объектов в 1 полигон. или вы что такое выпуклая геометрия и в чем её приколы ? Конечно нет, этому не учат – а за частую это узнают когда уже была проделана работа, и потом приходиться переделывать часть.

 

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

 

Игра на этапе разработки, это комплекс программных средств,  причем чем лучше игра, тем сложнее весь комплекс программ и инструментов которыми будут оперировать разработчики.

 

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

 

Бывают гениальные игры, которые выходит за счет идеи - они обычно достаточно просты и при этом очаровательны, они завоевывают публику и приносят миллионы создателям – исключение из правил, и придумать такую идею не возможно известными методами.

 

Выводы за вами.


Привет!

Этот сайт посвящен мне – Иванчуку Владиславу и моему главному увлечению по жизни – разработке компьютерных игр.

Story:

Учился я в восьмом классе, и под конец учебного года купила мама мне компьютер, как и все дети кто получил эту чудесную вещь – я начал играть, много играть, играть во все что мог только найти, так сказать наверствовать упущенное время, хотя не упущенное, а прошедшее – т.к. к тому времени уже было множество безусловно хороших игр, таких как - NFS Hot Pursuit, NFS Ungraund 2 , Doom 3, GTA 3, GTA Vice Sity, GTA San Andreas, Mafia, Hitman, Far Cry, Postal, FlatOut и легендарная «Контра» ну и еще многие другие которые завоевали мое сердце, и оставили не изгладимое впечатление после себя.

     Так прошло чуть меньше года - Играл, Изучал, Смотрел Фильмы, Слушал музон… Но потом случилось  кое что.

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

    Собственно все началось примерно тогда, было начало весны, сидел под телефонным инетом( скорость ужасная – не знал чем заняться ) слышал по телеку что для игр нужны хороши игровые движки  и ввел в поисковике «Игровые движки» =). Попал я тогда на сайт www. gamesanatomy.ru ( Не работет щяс ), там я вышел на 2 игровых двига DarkBasic и Blitz3D( BlizBasic )

Движки были хороши тем, что сразу в себе имели языки программирования, оба были бейсики так что особых мучений в изучении не было. Началось все с Дарка, выбор сделал просто – он весил 3 мб а Близ 7 мб – выбор был очевиден с таким интернетом. Прочитав 7 уроков введения, голова была круглая – нечерта не понял, но был доволен тем что могу делать сам! САМ! Да и еще видел работы наших соотечественников – они предавали сил для изучения! По чучуть ковырял, даже немного что то понял – а именно что нужно скачать блитз3д! И я правильно сделал, он был в разы, во много раз лучше этого гуммоза – дарка. Там уже была нормальная среда для программирования ( в дарке экран был черный, текст белый – а вертикальная полоса прокрутки была спрятана в какюто колбу – там все было из какихто 80х годов – причем сам так он не такой допотопный! ).

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

DarkBasic и Blitz3D среда программирования:


Так я начал писать на Blitz 3D – что было дальше, уже отдельная история…



Поиск
Календарь
«  Май 2018  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2018