Игры — это просто.
Автор: Дмитрий Васильев
Приветствую, я – Кэлегорм, а по правде – Дима, программист тот еще. Уж кого-кого, а меня точно нельзя назвать ходячим справочником по языкам и функциям. Так что не обессудьте, никто супер секретом своего успеха не поделиться. Готовых до конца проектов у меня почти нет. Зато у меня почему-то есть такая привычка думать, что все просто. Сложным заданием я называл в основном тогда такое, когда понятия не имел, как его надо выполнять. Например, когда я не был знаком с технологиями, которые нужны для решения. Вот примерно об этом речь и пойдет ниже, а именно о том, что делать игры – это достаточно просто и понятно, надо только сесть да написать.
Не спорю, что в результате написания самой игры может возникнуть куча проблем, типа как там искусственный интеллект сделать и прочее. Но это все мелкие задачи, решая которые, мы часто не можем решить задачу побольше.
Как всегда, люди совершают три ошибки. Первая – у них малый опыт написания игры, а они уже лезут «дрова ломать». Вторая – они сразу идут читать кучу статей, идут учить порталы, восьмеричные деревья и прочее. А третья – они начинают придумывать игру, т.е. сюжет, монстров. В результате до написания самой игры дело уже не так быстро доходит. Конечно, если человек не один, есть команда с опытом, с результатами – я не против, пусть придумывают игру, пишут и зарабатывают деньги. Я же сейчас говорю про рядового программиста, начинающего разработчика игр, который пока что не написал ничего хорошего. Вот ему точно нет смысла придумывать игру, когда он её и написать-то до конца не может. Пусть делает прототип, Doom первый или второй, например. Никто из здравомыслящих людей за такое ругать не станет. А если он еще и выложит игру на GameDev, на оценку, думаю, многие старички пустят слезу, поговаривая – растут ведь, растут окаянные программисты, не загнулся род наш!
По поводу второй ошибки. НЕ НАДО делать сложных вещей, да еще и на сложных технологиях. Арканоид или тетрис сами собой, но нельзя же с них сразу переходить на игры с картами, типа BSP. Это вредно. Сразу учить придется много, писать много. Вряд ли вы доделаете игру.
Ну а первая ошибка обратная второй ошибке. Надо просто понабраться опыта программирования, попробовать писать игры проще. Например, мелкие игрушки вроде арканоида или тетриса, логические, типа нард или карт. Или можете свою маленькую, но приятную игру придумать. Можно помучить своего папу или деда – они наверняка вспомнят некоторые игры на бумаге, в которые он в школе или в университете играл со своим напарником.
Ошибки ваши обсудили, теперь до кучи мои разберем. Вспомню, что когда-то я программировал на Visual Basic. Я писал веселые игрушки, начиная с самой первой моей программки. Первой написал игру «мордобой» – это когда по окошку прыгает кнопка (ежесекундно по таймеру случайно меняя свои координаты), или картинка с изображением смайлика, а курсором надо щелкнуть по нему. Никаких очков, ничего лишнего не было в игре. Только курсор в виде кулака, и смайлик. Мне самому было интересно в неё играть (ведь я тогда еще маленький был). Потом была игра – Bags. Это была игра вроде первой, только вместо мордочки были тараканы. И каждую секунду их становилось на одного больше. Их надо было весьма резво давить. Проигрывал игрок, когда тараканов становилось 8. Потом симулятор тотализатора на автомобильных гонках. Потом игра - сбей комету: летит комета в солнце, попадет – и будет всем писец. Надо в определенное время нажать красную кнопку. Полетит ракета, снесет комету и все счастливы. :) Потом на языке Паскаль я так и не смог сделать курсовую работу – игра Крот. Это там, где надо ящики двигать по лабиринту. Потом снова на Бейсике написал еще несколько игр. Затем таки совершил переворот – перешел на Delphi. Около месяца его изучения самостоятельно, без книжек, нашел свойство Canvas, научился рисовать, научился загружать картинки из файла. Обрадовался и написал мини игру в жанре RPG. Там надо перейти пустыню, по которой бегают разбойники. А еще следить за запасами воды. Веселая игра была. Карта поклеточная, туман войны даже был, и зачатки покадровой анимации. Я так парился над морганием экрана при перерисовке кадра, что написал целый экономичный алгоритм, в результате даже моргания не было в игре и вообще все круто было.
Но теперь я хочу вам показать, в чем был, так сказать, успех мой. В общем, игру «Перейти пустыню» я, затем, пытался написать заново несколько раз, так как первая версия прожила полгода и счастливо умерла вместе с винчестером. Но у меня не получилось. За то время я многому обучился, много выучил, изобрел алгоритмов (ни Интернета, ни книжек тогда у меня не было – учился сам и был при этом очень счастлив). И каждый раз, решая возродить игру, я пользовался новыми технологиями, которые были не до конца мною разработаны, требовали много сил и времени. К тому же я часто терял месяцами время на размышления – а как мне сделать то? Так или эдак? Ведь разных велосипедов я изобрел кучу. Простые делать не хотелось, а сложные хотелось. Но они в самом деле были сложными и много приходилось писать кода для их работы. И мне кажется, что когда у меня не было этих «могучих знаний», я с легкостью мог написать игру, хотя и «динозавризм» моего кода и простота поражали меня в последствии. Надеюсь, более эту ошибку комментировать не нужно, наиболее проницательные читатели, верю, уже все поняли. Перехожу уже к делу, после такого долгого обзора популярных ошибок.
26 января 2006