Май 5, 2008

«Как я делал свою первую игру»

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

Ну, это все скучно. Как вы успели заметить, меня давно не замечалось, лишь иногда я отделывался чужими анекдотами, да выдавливанием слов про кино. А все почему? А все потому, что готовил очень интересное. Прочитайте название поста еще раз. Да, да. Именно. Речь об том, как я делал свою первую игру.

Писать много не буду, потому что уже написал.

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

Комментарии (30) »

  1. Хороший старт. Дальше больше будет. =0
    Спасибо за увлекательное чтиво +)

    Комментарий от Badim — Май 5, 2008 @ 17:18

  2. Тебе спасибо:-)

    Комментарий от Johnny-K — Май 5, 2008 @ 17:25

  3. Превосходно! Книга вдохновляет и стимулирует к действию, спасибо)
    Странная штука. У друзей в аське я записан как «Джонни», в клинике для душевнобольных моя карточка лежит на стенде с маркером «К», а из офисного аквариума я сбежал полгода назад. Геймдевелопмент полюбил со спектрума, но по различным причинам свет увидел одну-две моих игрушки (
    При чтении на каждой странице искал линк на «Гвоздоноид», а закрыв книгу, осталось чувство, что где-то тебя обманули, что-то спрятали. Ну нельзя же так: посвящать книгу игре, а саму игру не показать. Вот сидишь ты в ресторане, подходит управляющий со словами «Добрый день. Очень рады, что вы зашли именно к нам. Я расскажу вам о нашем новом блюде…». И на двадцать минут закатывается о его вкусе, пользе для здоровья, составе, упоминает, что повар весь цветет, когда его готовит. Когда же клиент созрел и, стуча вилкой по столу, с нетерпением в глаза кричит «ХОЧУ», управляющий с извиняющейся миной констатирует отсутствие этого блюда в сегодняшнем меню. Аппетит клиента подпорчен.
    По последней игре. Судя по скриншоту, для определения столкновений всяко использовался не hitTest. Полагаю, что движок box2d, так?

    Комментарий от island — Май 6, 2008 @ 05:34

  4. Нас много, брат Джонни. Видимо, сработала заложенная в моск каждого специальная функция на ActionScript, где было только два выражения:

    newJohnny:Johnny_Flash_Developer = new Johnny_Flash_Developer();
    newJohnny.start();

    И все джонни полюбили геймдевелопмент со спектрума. И у всякого джонни есть эмулятор спектрума. И всякий джонни запускает его, смотрит на TR-DOS, умиляется и иногда пускает по щеке скупую слезу.

    Что же до «тебя обманули». Вообще, я, конечно, редкосная скотина и сволочь (почитай блог, особенно раздел ‘проги от Johnny-K’). Есть отличный подвох в книжке. Если и впрямь интересна судьба игры, то каждый джонни и не очень будет заходить на этот блог или блог в ЖЖ – «а вдруг товарищ выложил-таки то, о чем писал?» Я же – выложу, клянусь памятью спектрума. Может быть даже на следующей неделе (заодно и книжку обновлю. Сейчас наступил просто период денежных отношений с тем, кто хочет игрульки, а точнее неэксклюзивные права на них, купить).

    В одном ты прав, брат джонни. Движок, действительно, box2d, ты на своем сайте замечательно в нем разбираешься (только сам блог не забрасывай. видно ж, что есть что сказать). А вот для столкновений использую совсем не hitTest. Нашел способ получше (вчера буквально родил) :-) Скрывать не буду (чего там, джонни-добряки), надо – расскажу.

    А вообще – спасибо за каммент. Рад, что книжка нравится. Удачи!

    Комментарий от Johnny-K — Май 6, 2008 @ 07:37

  5. Почитал блог – чудесно). Видно, что писать ты любишь, и это у тебя хорошо получается. А на RSS подписаться можно? RSS комментов вижу, а RSS блога нет ( Нельзя же пропустить премьеру гвоздоноида )
    По поводу определения столкновений. Думаю, что тут что-нибудь новое придумать сложновато) Когда мне перестало хватать хитТеста, Джоб Макар подсказал пару функций для определения столкновения с помощью математики. Когда этого оказалось мало, написал собственный движок, основанный на методе разделяющих осей. Когда стало понятно, что для поддержания и развития движка надо уйму времени, перешел на flade. Потом был APE и, наконец, box2d. Но все-таки интересно что за способ ты придумал)

    Комментарий от island — Май 6, 2008 @ 14:46

  6. КАК НЕТ 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

  7. Рисованный арканоид 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

  8. Ложная тревога) Я посмотрел по периметру сайта – нет упоминаний про 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

  9. Огромнейший сенкс за книгу, читал взахлеб :)

    Комментарий от Fushigi — Май 8, 2008 @ 22:12

  10. Будем надеяться, что не последняя, а, стало быть, и не последний захлеб :-)

    Комментарий от Johnny-K — Май 8, 2008 @ 22:15

  11. Aффигеная книга. Не пробовал так зарабатывать, но попробую. Спасибо, большое.

    Комментарий от Alex Lexcuk — Май 15, 2008 @ 08:43

  12. Большое спасибо за книгу! Я понял что, что не только я не умею рисовать, но хочу делать игры на флеше ;-) Если не заберут в армию после универа в этом году, то попробую себя в качетсве фрилансера-девелопера

    Комментарий от PITon — Май 20, 2008 @ 11:53

  13. 2 PITon

    Удачи)

    Комментарий от Johnny-K — Май 20, 2008 @ 11:55

  14. [...] еще доверяю. Но в продложении своей "книжки" "Как я делал свою первую игру", котоую намереваюсь продолжить после выхода [...]

    Уведомление от Johnny-K » Чёдакак — Июль 11, 2008 @ 13:50

  15. Огромное спасибо! Убил время на работе)))

    Комментарий от MegaFill — Октябрь 4, 2008 @ 21:40

  16. книгой не заинтересовался)) не моё)) но вот английский у автора жжот))

    Комментарий от NiGGeRZzz — Декабрь 14, 2008 @ 05:03

  17. [...] я читал довольно много у Badim’а, а также прочитал книгу [...]

    Уведомление от Зарабатывание « KrOlSer’s Weblog — Февраль 6, 2009 @ 13:52

  18. Прикольно, я тоже собираюсь гдето через годик игрушку сделать

    Комментарий от vasso — Март 24, 2009 @ 15:18

  19. Увлекательный стиль изложения не может не радовать. К тому же игра также обращает на себя внимание. В общем, похоже, автор далеко пойдет в деле создания игр.

    Комментарий от Bond — Сентябрь 3, 2009 @ 11:14

  20. Начал читать вашу книгу,довольно интересно.

    Комментарий от Aya — Сентябрь 25, 2009 @ 18:14

  21. Отлично! Очень полезно и занимательно.

    Комментарий от Know-how — Январь 4, 2010 @ 17:56

  22. Ñîâðåìåííàÿ ÑÒÎ ýôôåêòèâíî è êà÷åñòâåííî âûïîëíÿåò ñâîè ôóíêöèè ïðè ïîìîùè ðàçëè÷íîãî âèäà îáîðóäîâàíèÿ…

    àâòîðåìîíò…

    Обратная ссылка от Îáîðóäîâàíèå äëÿ àâòîðåìîíòà — Январь 12, 2010 @ 19:56

  23. [...] книжку про его первую игру, вот этот пост и надо сказать был приятно удивлен, тем что можно [...]

    Уведомление от » FlashDev XML-Ворота — Май 25, 2010 @ 18:45

  24. Обсуждение…

    Ссылаясь на автора публикации…

    Обратная ссылка от Текст — Июнь 7, 2010 @ 09:13

  25. С…

    .. начиная …..

    Обратная ссылка от Карандаш — Июнь 13, 2010 @ 23:32

  26. PR…

    принимая во вн……

    Обратная ссылка от Маркет — Июнь 30, 2010 @ 03:59

  27. Ставка…

    оклад ……

    Обратная ссылка от БУК — Июль 9, 2010 @ 07:07

  28. Проэкт…

    хоз ……

    Обратная ссылка от СТАФ — Июль 13, 2010 @ 01:50

  29. Ланч…

    экон ……

    Обратная ссылка от ПРОМ — Июль 14, 2010 @ 01:16

  30. Ворд…

    ариф ……

    Обратная ссылка от Бруно — Июль 20, 2010 @ 03:26

RSS-лента комментариев к этой записи.

Оставить комментарий


                  © Johnny-K, 2010
           Сайт работает на WordPress