«Как я делал свою первую игру»
Отступление от вступления: только что прислали из забугорья: "I take it that english is not your mother tongue?". Всмотревшись в нерусское, я увидел что-то про мать, всмотревшись еще, увидел, что про мою. Хотел возмутиться, затопать ногами, поорать на чистейшем русском мате, потом сообразил, что послали меня совсем в другое место. (Для не особо одаренных, таких как я, например, поясню – там предположено, что мой английский не мой родной язык). А сколько войн начиналось из-за этого, наверняка… Учить английский. Немедленно.
Ну, это все скучно. Как вы успели заметить, меня давно не замечалось, лишь иногда я отделывался чужими анекдотами, да выдавливанием слов про кино. А все почему? А все потому, что готовил очень интересное. Прочитайте название поста еще раз. Да, да. Именно. Речь об том, как я делал свою первую игру.
Писать много не буду, потому что уже написал.
Вот тут я выклал свою небольшую книжку по теме поста. Там рассказывается о моем эксперименте. Про то, как я сделал свою первую (а на самом деле уже и вторую, и третью) игру. И что после этого случилось. Книжка местами жалостливая, местами непонятная, местами вдохновляющая. Как я надеюсь, понятное дело. Так что – всем читать (даже тем, кто не рядом с этой темой), всем комментировать, всем книжку пеарить (ну, это опционально).


Хороший старт. Дальше больше будет. =0
Спасибо за увлекательное чтиво +)
Комментарий от Badim — Май 5, 2008 @ 17:18
Тебе спасибо:-)
Комментарий от Johnny-K — Май 5, 2008 @ 17:25
Превосходно! Книга вдохновляет и стимулирует к действию, спасибо)
Странная штука. У друзей в аське я записан как «Джонни», в клинике для душевнобольных моя карточка лежит на стенде с маркером «К», а из офисного аквариума я сбежал полгода назад. Геймдевелопмент полюбил со спектрума, но по различным причинам свет увидел одну-две моих игрушки (
При чтении на каждой странице искал линк на «Гвоздоноид», а закрыв книгу, осталось чувство, что где-то тебя обманули, что-то спрятали. Ну нельзя же так: посвящать книгу игре, а саму игру не показать. Вот сидишь ты в ресторане, подходит управляющий со словами «Добрый день. Очень рады, что вы зашли именно к нам. Я расскажу вам о нашем новом блюде…». И на двадцать минут закатывается о его вкусе, пользе для здоровья, составе, упоминает, что повар весь цветет, когда его готовит. Когда же клиент созрел и, стуча вилкой по столу, с нетерпением в глаза кричит «ХОЧУ», управляющий с извиняющейся миной констатирует отсутствие этого блюда в сегодняшнем меню. Аппетит клиента подпорчен.
По последней игре. Судя по скриншоту, для определения столкновений всяко использовался не hitTest. Полагаю, что движок box2d, так?
Комментарий от island — Май 6, 2008 @ 05:34
Нас много, брат Джонни. Видимо, сработала заложенная в моск каждого специальная функция на ActionScript, где было только два выражения:
newJohnny:Johnny_Flash_Developer = new Johnny_Flash_Developer();
newJohnny.start();
И все джонни полюбили геймдевелопмент со спектрума. И у всякого джонни есть эмулятор спектрума. И всякий джонни запускает его, смотрит на TR-DOS, умиляется и иногда пускает по щеке скупую слезу.
Что же до «тебя обманули». Вообще, я, конечно, редкосная скотина и сволочь (почитай блог, особенно раздел ‘проги от Johnny-K’). Есть отличный подвох в книжке. Если и впрямь интересна судьба игры, то каждый джонни и не очень будет заходить на этот блог или блог в ЖЖ – «а вдруг товарищ выложил-таки то, о чем писал?» Я же – выложу, клянусь памятью спектрума. Может быть даже на следующей неделе (заодно и книжку обновлю. Сейчас наступил просто период денежных отношений с тем, кто хочет игрульки, а точнее неэксклюзивные права на них, купить).
В одном ты прав, брат джонни. Движок, действительно, box2d, ты на своем сайте замечательно в нем разбираешься (только сам блог не забрасывай. видно ж, что есть что сказать). А вот для столкновений использую совсем не hitTest. Нашел способ получше (вчера буквально родил)
Скрывать не буду (чего там, джонни-добряки), надо – расскажу.
А вообще – спасибо за каммент. Рад, что книжка нравится. Удачи!
Комментарий от Johnny-K — Май 6, 2008 @ 07:37
Почитал блог – чудесно). Видно, что писать ты любишь, и это у тебя хорошо получается. А на RSS подписаться можно? RSS комментов вижу, а RSS блога нет ( Нельзя же пропустить премьеру гвоздоноида )
По поводу определения столкновений. Думаю, что тут что-нибудь новое придумать сложновато) Когда мне перестало хватать хитТеста, Джоб Макар подсказал пару функций для определения столкновения с помощью математики. Когда этого оказалось мало, написал собственный движок, основанный на методе разделяющих осей. Когда стало понятно, что для поддержания и развития движка надо уйму времени, перешел на flade. Потом был APE и, наконец, box2d. Но все-таки интересно что за способ ты придумал)
Комментарий от island — Май 6, 2008 @ 14:46
КАК НЕТ RSS???
Писал тут про это:
http://www.johnny-k.ru/2008/02/21/shtop-u-sajjta-byl-pra-agress-rezche-zhmi-na-rss/
Вообще, что касается столкновений: мне нужно было определять – есть ли фигуры на доске или нет для подсчета очков. Конечно, первым делом я полез в исходники box2d. Там парень тоже с юмором. Правда документации – код наплакал, вот и пришлось изгаляться. Что я сделал:
- очки должны начисляться, если фигурка касается доски.
- очки должны начисляться, если фигурка касается фигурки, которая касается доски.
- очки должны начисляться, если фигурка касается фигурки, которая касается фигурки, которая касается доски.
- впадать в порочный круг рекурсии не хотелось вовсе. совсем не хотелось. и я стал лениться, в фоне размышляя о проблеме.
- лень – штука великая. решение было найдено. да такое простое, что я долго смеялся над собой, дураком.
- суть в чем. вводим в b2Body еще одно свойство. Допустим, булево.
- когда создаю доску, засовываю в это свойство true.
- дальше, постоянно апдейтится мир. что я в этом апдейте делаю: бегу по всем фигурам и, если в списке контактов (body.GetContactLis()) (по списку тоже пробегаю) есть тело с нашим свойством, равным true, делаю у этого тела это свойство – тру.
- дальше, думаю, все совсем понятно: при пробеге по фигурам, если наше свойство = тру, прибавляю 1 к очкам (вначале обновления мира очки обнуляю).
box2d сам дает все инструменты для этого. Может быть, ты хотел что-то более емкое, извини – емкость – это не по мне))) Надо, чтобы все было проще.
, я обобщаю).
Движок с самого начала не стал изобретать – взял готовое (благо разработчики box2d совсем не возражают против любых его использований). Вообще – все зло оттого, что все начинающие загнивают на этапе создания своих движков. А все уже изобретено – бери, пользуйся. Есть 700000 долларов – покупай Unreal Engine 3, нет, значит бери Ogre или еще какой двиг. И делай игру, а не вязни в болотце собтвенного самомнения (мол, я круче двиг напишу – без обид
Как-то так.
А вообще – ты тоже твердо решил встать на путь геймдевелопмента? Или пока – пробы пера?
Комментарий от Johnny-K — Май 6, 2008 @ 15:01
Рисованный арканоид Paperball (shareware)
2005 Arkanoid Game of the Year!
обзор внизу странички:
http://www.gametunnel.com/articles.php?id=402
кстати, сайт разработчика e-giraffa.com закрыт,
видать денег не заработал
но найти, где скачать, можно…
аналогичная идея, рисованный клон Space Invaders (на Флеше)
http://www2.b3ta.com/notepadinvaders/
Комментарий от NNN — Май 6, 2008 @ 15:28
Ложная тревога) Я посмотрел по периметру сайта – нет упоминаний про RSS. Ну, подумал, беда, беда, огорчение. После твоего коммента просто вбил адрес сайта в яндекс-ленту – поток подхватился, теперь я буду в курсе, ура!)
Ага, читал мануал по box2d. Вольный перевод: «вы может добавлять свои шейпы, если смелости хватит».
Согласен, что все должно быть как можно проще. Мне нравится принцип KISS – Keep It Simple, Stupid. Когда я понимаю, что уже нихрена в своей проге не понимаю, ни в коем случае нельзя откладывать пересмотр архитектуры и рефакторинг. Простота спасет мир, да.
Когда я работал в конторе, делал трешовые игрушки типа http://www.ozon.ru/context/detail/id/3278020/ (доступны только на CD). По собственному опыту знаю, что даже из простейшего геймплея можно сделать увлекательную гаму, но в конторе были сроки, бюджет, партия. Выдавай игрушки, как на конвейере, некогда нам заниматься спецэффектами и прочей ерундой.
Когда отпала надобность кажое утро тащить свое тело в офис, сделали с товарищем игрушку на конкурс: http://jayisgames.com/archives/2007/10/cgdc4_jabo.php
Потом, когда знакомился с 3d, сбацал http://www.kongregate.com/games/EvgenyKarataev/knights-tour
Ну и на винте лежит туча недоделанных концептов.
В общем, денежную отдачу от игр я получал только тогда, когда писал на заказ. И в данный момент пишу игру по тз от клиента.
В общем, благодаря твоему опыту, описанному в книге, я понял, что весь процесс манимэйкинга намного проще, чем представляется. Пришло время творить! ))
Комментарий от island — Май 6, 2008 @ 15:46
Огромнейший сенкс за книгу, читал взахлеб
Комментарий от Fushigi — Май 8, 2008 @ 22:12
Будем надеяться, что не последняя, а, стало быть, и не последний захлеб
Комментарий от Johnny-K — Май 8, 2008 @ 22:15
Aффигеная книга. Не пробовал так зарабатывать, но попробую. Спасибо, большое.
Комментарий от Alex Lexcuk — Май 15, 2008 @ 08:43
Большое спасибо за книгу! Я понял что, что не только я не умею рисовать, но хочу делать игры на флеше
Если не заберут в армию после универа в этом году, то попробую себя в качетсве фрилансера-девелопера
Комментарий от PITon — Май 20, 2008 @ 11:53
2 PITon
Удачи)
Комментарий от Johnny-K — Май 20, 2008 @ 11:55
[...] еще доверяю. Но в продложении своей "книжки" "Как я делал свою первую игру", котоую намереваюсь продолжить после выхода [...]
Уведомление от Johnny-K » Чёдакак — Июль 11, 2008 @ 13:50
Огромное спасибо! Убил время на работе)))
Комментарий от MegaFill — Октябрь 4, 2008 @ 21:40
книгой не заинтересовался)) не моё)) но вот английский у автора жжот))
Комментарий от NiGGeRZzz — Декабрь 14, 2008 @ 05:03
[...] я читал довольно много у Badim’а, а также прочитал книгу [...]
Уведомление от Зарабатывание « KrOlSer’s Weblog — Февраль 6, 2009 @ 13:52
Прикольно, я тоже собираюсь гдето через годик игрушку сделать
Комментарий от vasso — Март 24, 2009 @ 15:18
Увлекательный стиль изложения не может не радовать. К тому же игра также обращает на себя внимание. В общем, похоже, автор далеко пойдет в деле создания игр.
Комментарий от Bond — Сентябрь 3, 2009 @ 11:14
Начал читать вашу книгу,довольно интересно.
Комментарий от Aya — Сентябрь 25, 2009 @ 18:14
Отлично! Очень полезно и занимательно.
Комментарий от Know-how — Январь 4, 2010 @ 17:56
Ñîâðåìåííàÿ ÑÒÎ ýôôåêòèâíî è êà÷åñòâåííî âûïîëíÿåò ñâîè ôóíêöèè ïðè ïîìîùè ðàçëè÷íîãî âèäà îáîðóäîâàíèÿ…
àâòîðåìîíò…
Обратная ссылка от Îáîðóäîâàíèå äëÿ àâòîðåìîíòà — Январь 12, 2010 @ 19:56
[...] книжку про его первую игру, вот этот пост и надо сказать был приятно удивлен, тем что можно [...]
Уведомление от » FlashDev XML-Ворота — Май 25, 2010 @ 18:45
Обсуждение…
Ссылаясь на автора публикации…
Обратная ссылка от Текст — Июнь 7, 2010 @ 09:13
С…
.. начиная …..
Обратная ссылка от Карандаш — Июнь 13, 2010 @ 23:32
PR…
принимая во вн……
Обратная ссылка от Маркет — Июнь 30, 2010 @ 03:59
Ставка…
оклад ……
Обратная ссылка от БУК — Июль 9, 2010 @ 07:07
Проэкт…
хоз ……
Обратная ссылка от СТАФ — Июль 13, 2010 @ 01:50
Ланч…
экон ……
Обратная ссылка от ПРОМ — Июль 14, 2010 @ 01:16
Ворд…
ариф ……
Обратная ссылка от Бруно — Июль 20, 2010 @ 03:26