Абзац
:: Поиск
:: Поддержка проекта
Webmoney:
  • Z610389805629
  • R427996570517
  • E023541002978
  • :: №3 (23.01.2001) Просмотров: 5216

    Автор: Александр Шушков / axor / Perspective.

    Рубрика: В помощь разработчику.

    Номер: №3 (23.01.2001).



    А не написать ли мне игру?

    Людям, которые спрашивают меня - трудно ли писать игры, я отвечаю - «Конечно же трудно». Но в этой статье я не собираюсь пугать как начинающих, так и хвастаться перед профи, как мне приходилось проделывать какие-нибудь трюки на ассемблере. Здесь я постараюсь описать общие принципы написания игр, да и любой программы в целом. Не утверждаю, что я первый рассуждаю на эту тему, но все-таки, постараюсь в доступной форме высказать свои мысли по этому вопросу. Наверняка статья будет полезна лишь начинающим программистам, чтож, им тоже нужно помогать, ведь сами были когда-то такими!

    Естественно, самое первое, что у вас должно быть - это вдохновение и сама идея игры/программы. Без этого никуда не денешься. Как можем заметить, сейчас уже никто не пишет Color Lines, Xonix и т.п. игры. Все пытаются или придумать что-то свое (самый лучший вариант) или качественно перенести красивую игру с другой платформы (в этом вопросе, конечно, нужно отметить Вячеслава Медноногова). Хотя для тренировки можно бы и Xonix сделать. Я, например, своим «Последним Курьером» хотел повторить такую забавную игрушку на YAMAH’е как «King's Volley». Впоследствии игра переродилась во что-то свое и сейчас в ней трудно узнать знакомого «King's Volley», но это, в принципе, и лучше. Итак, определились, в первую очередь нужна идея! Кстати, необязательно чтобы у вас уже было название игры, оно может быть временным/рабочим. В моем случае, например, имя игры было придумано в самом конце, когда игра уже была практически готова.

    Второй вопрос, который вам предстоит решить, это - кто вам будет помогать в создании игры. Когда я решил делать свою игру, мне повезло, у меня был художник и музыкант (см. 2-й номер «Легенды о себе»). Команда это конечно большое дело! Когда программист остается один, то ему приходится заниматься всем, а это очень тормозит весь процесс создания любой программы. Наверное единственный тип программ, с которыми программист может справиться в одиночку, это системные программы. В моем случае, когда я пришел из армии и остался один из всех Perspectiv’ов, я взялся именно за свой commander. Говоря проще, если вы создаете игру, то без художника и музыканта достойной вещи не создать, если вы конечно не являетесь и программистом, и художником, и музыкантом в одном лице. А таких талантов, по-моему, не очень-то и много, но все же есть.

    Следующий момент, на котором вам стоит заострить внимание - это какими программами вы будете пользоваться? Беря за основу собственный опыт при создании «Последнего курьера», перечислю те программы, которыми пользовался я. Это были: Zasm 3.0 (ассемблер), Shadow (редактор шрифтов), Art Studio (графический редактор), Sprite Tools 2.0 (редактор спрайтов), PCD 6.1 (компрессор кодов), ASC 2.6 (компрессор картинок). Конечно же, здесь перечислены не все программы, которые мне помогали, но основу составили именно они. Естественно, нельзя принимать эти продукты за панацею, ведь время не стоит на месте! Уже сейчас я бы выбрал другие программы, поэтому, если вы только начинаете, то мой вам совет -просмотрите (попробуйте на деле) все имеющиеся у вас средства и выберите для себя самый оптимальный вариант.

    Далее, вам будет необходимо решить, с чего именно вы начнете. Будете ли вы сразу программировать или посмотрите как люди делают. По-моему, лучше всего начать со втрого. Во-первых, необходимо просмотреть все игры/программы, которые так или иначе похожи на будущее ваше произведение. В них можно найти много полезного для вас. Может вам что-то понравится и вы сделаете так же, а может наоборот, вам что-то не понравится и вы учтете это на будущее. Так или иначе, посмотреть стоит, хуже не будет. Во-вторых, нужно постараться найти всю доступную вам литературу. Здесь я могу посоветовать найти следующие книги: «Как написать игру на ассемблере» фирмы Питер; «ZX Spectrum для пользователей и программистов» той же фирмы и журналы «ZX-Ревю» фирмы Инфорком. Эти издания считатся лучшими в обучении программированию и помогли многим. Второй книгой я, например, пользуюсь до сих пор. Кстати, не стоит пренебрегать электронными изданиями. В них тоже бывают умные и нужные статьи. Так как их найти проще, то могу посоветовать посмотреть такие издания как: ZX-FORMAT, ADVENTURER, SPECTRUM EXPERT, DEJA VU, RUSH и некоторые другие.

    Если же у вас уже имеется опыт программирования, то в первую очередь, по-моему, необходимо взяться за сложные процедуры, требующие расчетов или скорости выполнения, чтобы потом на них не отвлекаться. Не знаю как у других, но у меня, на протяжении создания игры, много чего менялось, и я даже сам не знал, как все будет выглядеть в самом конце. Это, конечно, не очень хорошо, т.к. говорит о том, что не все было продумано и все мелочи обдумывались на ходу. Поэтому следует сделать вывод - необходимо продумать все мелочи, какие именно процедуры вам понадобятся, зачем и почему, чтобы потом не было замедлений.

    Следующие вопросы вам нужно будет решать уже с вашей командой, т.е. с художником и музыкантом. Вам повезло, если ваши соратники хоть чуть-чуть разбираются в программировании. Если же нет, то вам придется потратить не мало времени на объяснения почему же нужно рисовать именно так, и именно так писать музыку. Про художника вам наверно понятно, но не совсем ясно почему я вспомнил и музыканта? Все-таки бывают моменты, когда необходимо наложить требования на звучащую музыку. Но на первых шагах, я думаю, что вам не стоит делать музыкального оформления, будет не плохо, если вы сделаете хотя бы звуковые эффекты. А если все же разберетесь, то используйте музыку обязательно, она очень оживляет игры.

    Следующий, не менее ответственный момент в создании игры/программы, это написание интерфейса пользователя, т.е. каким образом нужно будет пользоваться вашей программой. Самый лучший, оптимальный и удобный вариант на данный момент - это «Оконно-мышинный» интерфейс, т.е. программа управляется неким курсором-стрелочкой, с помощью которой в тех самых «окнах» выбираются различные опции. Я, например, сейчас не представляю себе свой Спектрум без мыши и вам советую приобрести (собрать) данное устройство. Самый популярный сейчас тип мыши -Kempston mouse, хотя существуют и другие. Таким образом необходимо придерживаться некоторого стандарта и делать свои программы такими, чтобы ими было удобно и приятно пользоваться, а это отнюдь не последнее.

    Далее, когда интерфейс написан, большие процедуры созданы, можно приступать к созданию интеллекта вашей программы, т.е. каким образом она будет реагировать на действия пользователя. Самым сложным в этом моменте считаются игры, а самым продвинутым в искуственном интеллекте можно считать Вячеслава Медноногова. Если вы не видели его UFO и Черного ворона, то многое потеряли. Самое главное - это создать равные или псевдо равные условия для компьютера и игорка.

    Ну и последний, наверное, момент в создании любой программы. Когда все бегает, прыгает, дергается и пищит или копирует, печатет, ассемблирует и форматирует, то все «это» нужно собирать в единое целое. Опять же опираясь на собственный опыт, могу заметить, этот этап, пусть и самый последний, но для меня самый сложный. Так как здесь происходят необратимые последствия: убирается выход в ассемблер, ставятся «жуки» (кстати, если кто-то не знает, в «Последнем курьере» есть «жук» по перескакиванию этапа, для этого нужно в игре нажать одновременно SS+J+K), все что можно компрессируется, соединяются отдельные блоки и многое другое. Как обычно, на этом этапе, катастрофически не хватает памяти, находятся ошибки и т.п. Могу посоветовать. Когда вы дошли до завершающей стадии, сохраняйте промежуточные версии, чтобы вернуться к исходному состоянию, т.к. с первого раза никогда и ничего не получается. Да и вообще, на протяжении всей работы, перед каждым запуском и большими изменениями, лучше всего сохранить программу. Уж поверьте, это вам сохранит не мало времени и нервов.

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

    На фото: Alex Xor доделывает «Курьера»

    © 2004-2013 Perspective group