Начало разработки игры
Имея некий опыт в разработке игр, а именно опыт в разработке:
- программного кода
- алгоритмов
- арта
- немого нарратива (преподнесения игровой истории)
- интерфейса
- игровых механик
- и еще в чем-то, что сейчас не приходит на ум...
В своих постах я хотел бы поделиться тем как я пришел к разработке игр и рассказывать о процессе разработки своей собственной игры.
Заранее извиняюсь за все неточности, которые вы встретите в моих постах. В оправдание могу сказать, что написание постов - это не моя задача, а что-то типа "может кому-то будет интересно".
В этом посте я совсем немного расскажу о процессе разработки, но сначала о предыстории.
Начало:
Итак, далекий 1997 год, мне тогда было лет 6 и я яростно штудировал журнал "МК". До сих пор помню, классный был журнал. Понятно, что я мало чего в нем понимал, но изучать все это было на самом деле круто. Настящий чертеж самолета или корабля и все это в одном журнале. Журналов было штук 450. Точно не скажу, но мой отец собирал все так как ему тоже было интересено.
Годам к 10 я понял, что буду разработчиком. Неважно кем, да я и не понимал, что разработчиков былвает 100500 видов, но главное разработчиком.
Микросхем и прочего у меня не было. Их вообще нигде не было в моей "деревеньке". Часто приходилось выпаивать/распаивать и так далее. Толком ничего не работало потому, что сделать все 1:1, как написано в книжке, не удавалось.
Ну и ладно подумал я, по телеку шла передача "Позвоните Кузе" и это стало моим новым увлечением. Нет, не игра, а само устройсвто - компьютер! Что в 12 лет можно знать о компьютерах, когда их никогда не видел? В общем поговорив с отцом я собрал коробку из бумаги и сделал что-то, что явно не компьютер. Быстро пришло понимание, что компы это что-то сложнее бумаги, веревки и того кто за это все тянет. Да и игра еще как-то не такая как в телеке, совсем... Что-то не то.
Порывшись в журналах, я нашел печатную плату какого-то старого компа "Электроника". Запустить его не удаось так как от электроники была одна лишь плата XD
Вскоре отец купил комп. Совпадение ли эти или еще что-то??? На компе была WindowsXP, которую я быстро освоил, знал чуть ли не все файлики в папке System32.
Что произошло дальше? Я начал изучать то как все работает. Комп с операционкой был для меня настоящим черным ящиком. Как исследуют черные ящики? Впрочем тогда я не знал как их исследуют, но исследовал примерно правильно. То есть я подавал на вход ящика значение и смотрел что будет на выходе.
Итак, я брал приложение "блокнот", открывал в нем dll, exe и все прочее и думал, что читаю настоящие машинные коды. Частично это было так. Потом я вносил изменения в файл, сохранял файл в папке System32 вместо того что там был. Ну и... Ну и я долго не мог понять что блокнотом бинарные файлы нельзя изменять. Так как блокнот сохраняет файл в другой кодировке и, даже, если его не менять, то файл становится испорченным.
Сколько раз я грохал систему таким образом... Часто она падала сама, но там даже не разберешь я ли это был или она сама падала... Но однозначно могу сказать, что доля вины была на мне.
Так я разбирался с тем как работает все класса до 7-го. Узнал про #Assembler, @Ida и прочее.
В школе на уроках информатики нам не могли толком ничего рассказать кроме какой-то черепашки, которая, вместо привития интереса к программированию, лично у меня вызвала отвражение :/
И вот как-то однажды при обмене дисками с товарищами я нашел какую-то среду разработки. Это не была VisualStudio и это не был BorlandC++. Даже не знаю что это было. Сейчас думаю, что эт была чья-то крутая курсовая или что-то типа того.
В общем, у меня была среда и она выводила "Hello World!". Более того, она имела набор примеров вывода картинок, работы с памятью и вообще кучу всего о чем я даже не имел представления. Язык был похож на язык С++. Но это не был ни С++ ни C#.
Итак, делать было нечего, нужно было разбираться с тем, что было. Повозившись с месяц я все же смог собрать без учебников о геймразработке и вообще без всего что-то типа Platupus. Что там было: картинка Су27, облака, горы и враг, который не работал. Самолет летел вверх-вниз, а горы шли на него. Горы рандомно генерировались, убого сбивали самоле, если он касался их.
И да, через какое-то время программа вылетала и я не мог понять В ЧЕМ ДЕЛО. Кажется эта среда разработки не имела отладчика вообще. Код просто компилировался и работал или (чаще) не работал и указывал где есть ошибка.
Несмотря на все это я ликовал и чуть ли не ходил на руках от того что собрал игру. Надо же, ОНО РАБОТАЕТ! Если кому-то интересно, я могу позже опубликовать что-то из игры так как я сохранил ее части на память. Много чего потерялось, но что-то осталось.
Радостный я побежал к сестре и решил посмотреть что она скажет о моей игре. Получить, так сказать, первый отзыв. Ну что, отзыв был нелстный. Даже скажу больше, мою работу конкретно опустили XD
Печально видеть как твою работу критикуют, да еще и чесно. Но, скажу по секрету всему свету, честная критика (даже просто негативная) - это то, что делает разработчика лучше.
На этом этапе тестирования я выявил очень много интересных моментов для себя. Таких, о которых многие гейм-дизайнеры (в основном) не знают.
Ну например:
- человек будет играть в твою игру именно так как он захочет. Не так как разработчик запланировал, а так как ОН захочет. И никто не заставит его играть неудобным для него способом.
Мастерство гейм-дизайнера (не все мастерство, часть) заключается в том, что игрок играет в игру по разработанным гейм-дизайнером правилам.
- ощущение пространства. Игровое пространство ощущается. Это незаметно игрокам, но они это чувствуют. Например стоя на выступе ты имеешь превосходство, больше выбора. А вот спрыгнув с него ты уже можеim и не запрыгнуть назад.
- и многие другие...
Все эти особенность сложно (да и бессмысленно) описать в целом. Их нужно рассматривать в контексте игры. Одни особенности важны в одной игре, а в другой они вообще бесполезны.
(На фотке Trello и документация к игре)
Здесь я выкладываю пока наброски процесса разработки:
https://www.instagram.com/cgaleksey/
https://www.reddit.com/user/CGAleksey
Думаю на сегодня все.
Спасибо за внимание!