Как довести ваш текущий проект до конца?
Автор: Алексей Егоров
Как довести ваш текущий проект до конца?
Напутствия.
Значение слова напуствие - указание пути, верного пути. Чем я и занимаюсь. Я сам ищу верный путь, и хочу помочь вам.
У меня есть проект. Я хочу его закончить. Что мне делать?
1. Уважение.
Прежде всего, пересмотреть свое отношение к нему. Многие люди, занимаясь подобными вещами (творчеством - от слова "творить" - значит создавать ранее не созданное), делают это незадумываясь. Прежде всего необходимо прояснить для себя природу ваших действий. Почему вы этим занимаетесь? Чего вы хотите добиться? Если у вас все серьезно, необходимо срочно начать уважать проект.
Вывод: уважай свой проект.
2. Представление.
Необходимо знать, что вы создаете и для каких целей. Существует несколько возможных вариантов.
1. Вы создаете игру для себя. Это значит, что вам доставляет удовольствие сам процесс созидания. Такому проекту по определению не обязательно завершение или доведение до логического конца. Обычно над такими проектами работают тихо и незаметно (без постов в форум, вроде «Создается игра», чуть чаще встречается «Зацение игру, плиз»). Никаких признаков заинтересованности привлечь еще кого-то еще. Это самореализация через внутренний мир, характерная для интровертивного типа личности.
2. Вы создаете игру, чтобы самореализоваться через других людей. Это практически значит, что вы хотите каким то образом выделится или получить признание. На форуме встречается исключительно в виде «Зацените игру плиз» или «Зацение супер/пупер/мега игру». Может быть с элементами начального самоунижения, вроде «это мой первый проект, сильно не пинайте…». В этом случае завершение возможно, но как правило не достижимо по причине слепости автора проекта, - он недооценивает фактор завершенности, ему кажется, что чем больше современных эффектов, современной графики и похожести на его идеалы, тем лучше. На самом деле «круто» будет, если он доделает хотя бы тетрис, который он начал писать еще в восьмом классе…
3. Вы пытаетесь создать игру «под впечатлением». Обычно возникает у рядовых людей, не занимающихся ни программированием, ни чем-либо еще, после того, как они поиграют в какую-нибудь легендарную игру. Примеры: Half-Life, Fallout, Starcraft, Quake, Heroes Might And Magic, Age Of Empires и прочее. Если человек амбициозен и пытается продвинутся в направлении создания игр, то возможно ему удастся на данном этапе приобрести достаточно опыта. Но по пришествии неминуемого озарения, которое происходит под воздействием творческого развития личности, он осознает, что оригиналы ему никогда не удастся превзойти. И кроме того появятся собственные гениальные идеи, перед которыми он не сможет устоять.
4. Вы создаете игру своей мечты. Тут дела обстоят серьезнее. Фонтан фантазии. Много энергии. Отличается обычно совершенно утопичными желаниями – создать игру-хит, способную конкурировать со всеми известными на сей момент аналогами. Обычно превосходство предполагается за счет введения ранее не виданных возможностей: огромного мира, большой количества наименований амуниции, огромного количества врагов, которые конечно же каждый живет совей жизнью и не как можно меньше торопится умереть при усиленной атаке со стороны игрока, каждый монстр должен уметь с использованием подручных средств сооружать для игрока ловушку. Все это сопровождается невиданными ранее световыми/звуковыми эффектами, суперсовременной графикой и физикой, такой, что Havok рядом не плавал... Можно закончить, если урезать все фантазии на 500-1000%, убрать современную графику и вплотную заняться проектированием и написанием сюжета. После того, как в процессе проектирования станет ясно, что все вышеизложенное (сокращенное на 1000%) практически невозможно реализовать команде из 40 человек при нормальных условиях труда и заработной плате, превышающей вдвое обычное жалование, за срок в 10 лет, то проект либо бросается, либо срочно находится более реалистичная альтернатива.
3. Продуманность
После того, как вы все осознали, и состоялось признание утопичности вашей текущей цели, необходимо задаться новой целью.
1. Помечтайте или возьмите ваши прежние мечтания и задокументируйте их (представьте себя игроком), затем уйдите в забвение на неделю. После этого забудьте, что все это писали вы – станьте критиком-минималистом. Каждую сторону подвергните жесточайшей критике здравого смысла. Уберите все мелочи, не слишком влияющие на результат. Выделите основу, скелет, тот минимум при котором все получится.
2. Очень серьезным образом подойдите к проектированию программы. Ведь чем больше времени вы потратите на то, чтобы продумать всю структуру, тем меньше времени понадобится на реализацию, и тем меньшее количество раз вы напишете совершенно не нужные вам алгоритмы. Проработайте интерфейсы. Займитесь своим самообразованием на профессиональном уровне. Почитайте книжки профессионалов, вроде «Почему загибаются проекты», автора не помню, да и название передает только смысл.
3. При написании кода руководствуйтесь максимальной расширяемостью (ведь возможно, что именно это вам придется делать, если вдруг возникла ошибка в проектировании. Это гибкость.). Не обращайте внимания на оптимизацию. Делайте лишь оптимизацию, которая не отнимает времени разработки ни никоем образом не нарушает смысла программы. Кроме того, вы должны быть уверены, что оптимизированный вариант работает 100% верно и не нужно время, чтобы это проверить. Еще лучше посоветую не заниматься _НИКАКОЙ_ оптимизацией, даже самой поверхностной и несложной. Есть конечно варианты, в которых нужно оптимизировать и от этого никуда не деться. Например, очень долгая загрузка или генерация чего-либо очень отягощает тестирование программы, или же скорость рендеринга ниже 10 fps, не обусловленная плохим качеством железа. Главное не увлекаться. Это всегда можно сделать потом.
С уважением, Алексей Егоров (EvilSpirit)
2 декабря 2005 (Обновление: 4 дек 2005)
Комментарии [3]