Пишем игру. Вступление

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

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

Tower Defence. Tutorial

Я много думал о том, в каком жанре следует сделать игру, чтобы дать хотя бы минимальный опыт и... Замечательный Shootorial на AS2 раскрывающий секрет разработки скролл шутеров уже есть на kongregate.com. Наш Русскоговорящий Хитри уже практически раскрыл все хитрости создания платформеров, а так же показал отдельные примеры создания стрелялок, и даже немного затрагивал тему гонок. В общем, после всего этого мне ничего более достойного в голову кроме игры в жанре Tower Defence уже просто не приходит.

Почему TowerDefence?

— возможно спросите вы. На самом деле это достаточно интересный жанр игры с точки зрения разработки. Он нам позволит познакомиться с такими штуками как:

  1. Создание игровой карты и игрового мира в целом;
  2. Элементарный редактор уровней;
  3. Самостоятельная жизнь отдельных объектов в игровом мире и их взаимодействие;
  4. Простой AI противников;
  5. Возможно простой поиск пути;
  6. Еще немного вспомним стрелялки;
  7. Познакомимся с игровыми интерфейсами;
  8. Узнаем силу спецэффектов.

 

Кроме этого за время разработки мы научимся:

  1. Делать прелоадеры, считать fps, обрабатывать мышку и клавиатуру;
  2. Научимся элементарной отладке;
  3. Оптимизировать код и графику;
  4. ?нтегрировать в игру сторонние API, url-lock;
  5. Получим на выходе пачку базовых классов с полезными функциями которые можно будет использовать в любых других проектах.

 

Я хочу обо всем рассказать достаточно быстро, но будьте готовы к тому, что этот процесс может немного затянуться. Все будет зависеть от моей занятости.

? самое главное, ради чего затевалась собственно эта запись — я хотел сообщить, что я не буду рассказывать о том, как устроен AS3 и как с ним работать, что такое переменные, циклы, классы и ООП в целом. Потому что информация обо всем этом тянет на небольшую книгу, которых написано уже достаточно. Так что, если вы ни разу ничего не программировали на AS3 и не представляете как там все работает, то у вас есть достаточно времени чтобы познакомится с основами этого языка до момента появления уроков.

Для знакомства с основами AS3 я настоятельно рекомендую обзавестись книжкой Essential ActionScript 3.0 — Colin Moock. Советую печатное издание, так как в будущем книга может стать хорошим настольным справочником по AS3. Всю книжку читать не обязательно, для базового освоения AS3 достаточно прочитать и разобраться с примерами первых 12 глав.

Что нам понадобится для работы?

Для самых начинающих и не искушенных будет достаточно одного лишь Adobe Flash IDE версии CS3/CS4/CS5. Триальную версию Flash CS5 вы можете загрузить здесь... Для более удобной работы с кодом я очень рекомендую использовать бесплатный редактор FlashDevelop, но к сожалению по его использованию я не могу дать каких-то конкретных советов, потому что сам я им не пользовался. Но зная редактор кода во Flash IDE и все его недостатки, я не рекомендую использовать его для больших проектов.

Когда начнем?

У меня никогда не получалось работать одновременно над более чем двумя проектами, поэтому я могу с уверенностью сказать, что к работе над уроками я смогу приступить только после того, как закончу работу над Mining Truck 2 :) То есть не раньше второй половины сентября, а скорее всего в конце сентября или в начале октября.

P.S.: А еще на прошедшем FlashGAMM! Moscow Стефан Кейш сказал, что по его прогнозам этой осенью будут востребованны игры в жанре Tower Defence ;)

Содержание

  1. Вступление
  2. Структура игры
  3. Карта проходимости
  4. Первый враг
  5. Готовимся к поиску пути
  6. Поиск пути
  7. Редактор уровней
  8. Движение врагов
  9. Первая башня
  10. Кэширование объектов
  11. Полоса жизни
  12. Вражеские волны
  13. Загрузка вражеских волн
  14. Продолжение следует...

 

 

Ждем Антон с нетерпением)))

ДэН
12 Сентября 2010
— 15:43
#

Очень буду ждать! Таких уроков лично я нигде не находил, поэтому такая информация на вес золота.

Кирилл
12 Сентября 2010
— 15:46
#

Наконец то!!!! Ждем с продолжения!!!!

?ван
12 Сентября 2010
— 16:05
#

Это то, чего я так долго жду!!! Очень рад, что это случилось!!!

Samana
12 Сентября 2010
— 16:29
#

Благословение, ах... наконец долгожданные уроки. Ждем с нетерпением наставник.

Wind
12 Сентября 2010
— 17:51
#

"Для знакомства с основами AS3 я настоятельно рекомендую обзавестись книжкой Essential ActionScript 3.0 — Colin Moock (обратите внимание на цену)"
Неправильная ссылка. Ведет на первую часть книги. ?здана в 2001 году :)

f-duck
12 Сентября 2010
— 18:41
#

Антон, круто! Люблю этот жанр, поэтому с удовольствием буду ждать статей по теме, что бы создать свою TD игрушку.
Чуть больше года назад предпринимал уже попытку сделать такую игру, нагуглил в инете уроков, но, т.к. в программировании не особо силен и есть барьер с английским, то дальше этой демки дело не двинулось =)
http://legendgame.net/study/td/td.html
Спасибо тебе, что находишь время и желание, что бы делиться с остальными полезной информацией! Буду рад узнать много нового и интересного (перечисленные в статье пункты) и подсмотреть, как профессионалы разрабатывают игры, это всегда интересно! =)

LegendMAN
12 Сентября 2010
— 18:53
#

@f-duck, точно! ?звиняюсь за невнимательность, нужная книжка конечно уже не такая дешевая :) Ссылку поправил. Спаисибо, что заметил.

Ant.Karlov
12 Сентября 2010
— 19:51
#

Антон, это без преувеличения великолепная новость. Я давно стал постоянным читателем этого блога и не первый месяц ожидал, когда его автор решит поделиться не только своими успехами, но и своим опытом. Откровенно говоря, не думал, что это произойдет и очень рад, что ошибся.

Сейчас осваиваю флеш на начальном уровне и своими скромными достижениями делюсь на украиноязычном блоге о Flash, PHP и веб-програмировании. Твой блог занял прочное место в моем блогролле.

Кстати, сейчас как-раз начал читать книгу Колина Мука, так что до начала уроков обязательно ознакомлюсь с нужными главами.

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

Будем ждать уроков. :)

jarofed
12 Сентября 2010
— 19:52
#

@LegendMAN, крутая демка, дело осталось за малым — нарисовать пушки и научить их стрелять и разделить врагов на волны и типы... :)

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

Ant.Karlov
12 Сентября 2010
— 19:59
#

@jarofed, в каждой записи я стараюсь писать не только о том, что у меня получается но и как это все создается и через что приходится проходить, поэтому я считаю, что почти из каждой записи можно извлекать некий опыт :) Конечно пока еще в блоге небыло подробных уроков, но все же...

Спасибо за отзыв!

Ant.Karlov
12 Сентября 2010
— 20:14
#

ага, арта там еще нет, т.к. пробовал механику из найденных туторов, но пушки есть, просто с текущим интерфейсом их сразу не найти )).
нужно выбрать построенную базу, ткнуть в пустой слот (N/A) и выбрать предложенного снизу юнита )

но все равно погожу и дождусь твоих уроков, что бы сделать все по правильному )

LegendMAN
12 Сентября 2010
— 20:30
#

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

Тем не менее - статьи очень интересные и для начинающих, так сказать, для понимания "как должно быть", хотя нам (новичкам) на практике это пока сложно использовать.

По этому такой искренний восторг в связи с началом серии детальных уроков создания flash-игр. :) Кроме того, давно мечтал выучить AS3 - это для меня пока что "темный лес".

jarofed
12 Сентября 2010
— 20:31
#

вэри гуд нювс!!!, особенно интересно подучиться 3,4,5 пунктам :)

hitab
12 Сентября 2010
— 22:10
#

Ха, кстати, я тоже TD игру пишу. Вернее начал писать и пока отложил. Как раз освобожусь к началу занятий :).

WeslomPo
12 Сентября 2010
— 22:58
#

С нетерпением жду уроков =)

Уважаемый Антон, можно поинтересоваться, почему вы счтиаете FlashDevelop неудачным выбором для больших проектов(что за недостатки?)
Лично я увидел в нём как минимум 2а жирных приемущества(для меня):
- подсветка кода
- подсказки

Кирилл(JuzTosS)
13 Сентября 2010
— 00:45
#

Прошу прощения =) неправильно прочитал пост
Пора спать идти уже....

Кирилл(JuzTosS)
13 Сентября 2010
— 00:47
#

Ждем с нетерпением!

Dulea
13 Сентября 2010
— 09:32
#

Поздравляю всех программистов с праздником!
Антон ждем с нетерпением начала цикла статей!

Я не робот!
13 Сентября 2010
— 09:41
#

А от количества комментариев к этому посту будет зависеть, качество и объем будущих статей?

Кирилл(JuzTosS)
13 Сентября 2010
— 10:41
#

Очень жду.

[b]толстый[/b]
13 Сентября 2010
— 11:11
#

Круто. Уроки от тебя очень круто.

shaman4d
13 Сентября 2010
— 12:12
#

С праздником!
Очень интересно будет почитать :)
Скорейшего удачного завершения с грузовиками и вдохновения при написании статьи! Ждемс.

ps_coder (FlashRushGames)
13 Сентября 2010
— 12:27
#

@Кирилл(JuzTosS), если честно, то я не знаю как количество комментариев может повлиять на объем и качество уроков :)

Всех с праздником!

Ant.Karlov
13 Сентября 2010
— 14:01
#

Теперь Антон я еще больше жду твоих уроков, это действительно очень трудоемкое и неблагодарное дело (меня хватило только на один урок и то не свой). Поэтому я в своем блоге написал про твой будущий цикл статей http://shaman4d.blogspot.com/2010/09/flash-gamedev-faq-flash.html

shaman4d
13 Сентября 2010
— 14:31
#

@Ant.Karlov Я думал, что количество комментариев(пропорционально количеству потенциальных читателей) - а для более обширной аудитории нужно больше стараться.
(Хотя конечно стараться нужно всегда)
Ведь если бы не кому бы было читать, то и писать было бы не зачем.

Кирилл(JuzTosS)
13 Сентября 2010
— 16:00
#

@Кирилл(JuzTosS) пишут в первую очередь для себя, объясняя другим, что-то начинаешь понимать лучше. Писать и объяснять э
то внутренняя потребность, иначе это превращается в графоманство.

shaman4d
13 Сентября 2010
— 16:23
#

Сногшебательная новость!))) ^o^
Это будет очень круто и полезно всем! =3
Мы будем бесконечно рады учится у Вас Антон ^^
Спасибо за то что Вы есть. ^^`

Crash
13 Сентября 2010
— 16:41
#

@shaman4d
Это понятно, но всё же когда знаешь, что это будут читать не только твои близкие, чувствуется некая ответственность и большее переживание за написанное.(У меня по крайней мере)

Кирилл(JuzTosS)
13 Сентября 2010
— 17:16
#

Отличная новость! Буду следить.

?, с праздником!

Потокмысли
14 Сентября 2010
— 00:00
#

Личное БЛАГОДАРЮ АНТОН за твой труд! Жду твоего опыта и новых задач для себя ))

vacsa
14 Сентября 2010
— 03:27
#

Антон, с нетерпением жду.
Кстати есть ещё очень хороший туториал по созданию игр из 12 уроков на AS3 от Майкла Джеймс Вильямса
gamedev.michaeljameswilliams.com
Надеюсь Ваш туториал будет так же лёгок в подаче и освоении. Удачи.

Andrey
14 Сентября 2010
— 10:17
#

Антон - я ставлю на тебя ссылку (хоть ты мне и не ответил в предыдущем посте). Будет инетерсно посмотреть на твой ?? (сам делал А* на ас2 и на ас3 получился он НЕ?МОВЕРНО медленным). Ну и в целом считаю делиться техниками не лишнее - всё таки успех игры во многом зависит от наполнения, а не от технологии. Чуть позже приглашу тебя ознакомиться с Shedule-based AI на свой блог :D

shaman4d ой как я с тобой согласен! Бывало начнешь объяснять кому-то что-то и понимаешь что сам неправ в корне)) Вобщем полезная это вещь.

П.С.: ох как класно было бы сделать полновесную рил-тайм стратегию......пусть и небольшую. Мечта.

RaymondGames
14 Сентября 2010
— 11:02
#

Спасибо, Антон за твою открытость и творчество! С нетерпением ждем туториалов.

@Andrey, спасибо за ссылку на Майкла :)

Shamango
14 Сентября 2010
— 11:34
#

<B>RaymondGames</B>, А* есть готовые решения, с очень высокой скоростью. ? совершенно беслпатно.
Например вот: http://blog.nicolasprof.com/pathfinder-benchmark

WeslomPo
14 Сентября 2010
— 13:21
#

Очень жду и заранее благодарю. Тихие осенние и зимние вечера будут наполнены качественным содержанием :)

grmaster
15 Сентября 2010
— 13:32
#

12 глав хмммммммммм.....
а оттображе и интерактивность ?

Art
18 Сентября 2010
— 12:36
#

@Art, с помощью первых 12 глав этой книжки можно разобраться с ООП и потом понимать почему я делаю так или иначе. Нужно это, чтобы потом не возникало глупых вопросов и можно было прочитать мой код. В крайнем случае даже если и не читать книжку сразу, то хотя бы использовать её как справочник для поиска ответов на простые вопросы самостоятельно. А про отображение и интерактивность я уже расскажу в своих уроках. Впрочем если сильно хочется, то можно самостоятельно продолжить штудировать книжку дальше ;)

Ant.Karlov
18 Сентября 2010
— 22:59
#

Отличная новость!
Антон, у меня пожелание к Вам: Выкладывайте чаще видео рабочего процесса разработки игр и графики к ним. Смотреть - одно удовольствие. Частенько пересматриваю, и потихоньку завидую :)

Zaphod
26 Сентября 2010
— 15:42
#

http://www.flashgametuts.com/tutorials/as3/how-to-create-a-tower-defense-game-in-as3-part-1/
Буквально минуту назад нашел серию(7) уроков по созданию TD, с описанием кода и исходником (eng) =

hitab
29 Сентября 2010
— 23:14
#

@hitab, то есть мне туториал можно не писать? Ура! :)

Ant.Karlov
30 Сентября 2010
— 00:27
#

Антон, ну что за глупости. Надеюсь, что Вы под «Ура! :)» пошутили :) На собственном опыте знаю, что такое создание туториала с чистого листа и до финала.
Ждём с нетерпением!

WizVio
30 Сентября 2010
— 01:38
#

Я тоже думаю, что многим будет интересен именно Ваш урок, т.к. многие не владеют языком Шекспира.

Zaphod
30 Сентября 2010
— 06:45
#

Антон, меня как и думаю многих интересует именно твои уроки потому как у тебя есть уже неплохой опыт и мы с нетерпением ждем начала повествования :)

Я не робот!
30 Сентября 2010
— 14:32
#

нет =), это я к тому, что от-туда можно что-нибудь взять, и быстрее получится создание уроков. По крайней мере, мне интересно, как будет все устроено в игре, да и посмотреть как рисуется графика я тоже хочу :)

hitab
30 Сентября 2010
— 16:33
#

кстати, может стоит мне перевести эту серию уроков и выложить на своем блоге? + с редактированием и добавлением своего метода разработки(при создании своей первой игры:) ).

hitab
30 Сентября 2010
— 19:17
#

Это просто провидение какое-то! Я очень удачно наткнулся на ваш блог. Как раз сейчас стал разрабатывать в деталях идею об игре в жанре TD. Жду не дождусь ваших уроков. Я новичок, причем чистый программист (т.е. рисую отвратительно :) ), но вопросов возникает много. Поэтому ваш блог может стать для меня большим подспорьем.
P.S. Я просто тащусь от графического стиля ваших игр))

?лья
4 Октября 2010
— 10:31
#

Начало октября. :) Ну когда уже?

jarofed
6 Октября 2010
— 18:45
#

@jarofed, я уже работаю над этим, но пока все не успеваю. Наберитесь терпения, пожалуйста :)

Ant.Karlov
6 Октября 2010
— 23:46
#

Тоже сел за тавер дефенс (диздок пока что выпекается). Набросал кое-чего за день, подглядывая в имеющиеся туториалы. ? даже появилась идея какую следующую статью разместить в своем блоге - про BulletManager и ParticleManager. Но я не об этом - как сделать башню/врага это примитив - как сделать геймплей из всего этого - вот это был бы шикарный туториал. Надеюсь что ты коснёшься и этой темы. В конце концов игры у тебя получаются довольно аттрактивные, может поделишься парой секретов?))

RaymondGames
12 Октября 2010
— 09:23
#

Вот по FlashDevelop установка и начало работы. Попробывал все получилось.
http://as3coder.blogspot.com/search/label/FlashDevelop

Genm
27 Октября 2010
— 23:56
#

хе-хе..
в самом начале - "Да и мне есть чем поделится."
...
что сделаТЬ? поделиТЬся.

дальше я ещё не успел прочесть...

Grave
6 Сентября 2011
— 18:54
#

"Он нам позволит познакомится с такими штуками как: "

что сделаТЬ? - ПознакомиТЬся...
хы-хы))

Grave
6 Сентября 2011
— 18:58
#

"... , то у вас есть достаточно времени чтобы познакомится с основами этого языка ..."

что сделаТЬ? - ПознакомиТЬся...
хо-хо))

Grave
6 Сентября 2011
— 19:00
#

@Grave, здравствуйте уважаемый буквоед! В блоге еще 97 записей, проверьте их пожалуйста тоже. А то я не знаю даже как дальше жить...

Ant.Karlov
6 Сентября 2011
— 19:35
#

с нетерпением буду ждать уроков!!!

razgromm
4 Октября 2011
— 20:27
#

и где ваши уроки?

Виктор
13 Декабря 2011
— 00:10
#

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

даша куйнеченка
29 Декабря 2011
— 11:57
#

где уроки

ариша
29 Декабря 2011
— 11:59
#

@даша куйнеченка и @ариша уроки здесь... Серия TowerDefence.

Ant.Karlov
30 Декабря 2011
— 11:35
#

spasibo za igru i potra4ennoe dlja ljudej vremja ! tak derzat ! ;)

Juri
11 Июня 2013
— 20:12
#

Класссс :) !!!

Misha333
23 Июля 2013
— 14:48
#

Class 8)

zackie
29 Сентября 2015
— 19:51
#