В этой статье я хочу поделиться с вами историей создания первой iOS игры в нашей компании и рассказать про опыт использования 2d графического движка — cocos2d. В рассказе мы пройдемся по некоторым техническим проблемам, с которыми нам пришлось столкнуться во время разработки игры, и расскажем про эволюцию геймплея от начала и до конца.
[Перевод] BADLAND – игра на cocos2d-iphone
3 min
20KBADLAND был запущен 4 апреля 2013 на App Store для iPad, iPhone и iPod touch. С тех пор было продано более 100 000 экземпляров. Сыграйте в эту игру (iTunes link) или посмотрите трейлер, прежде чем продолжить чтение — так вы получите более полную картину об игре, про которую я собираюсь рассказать. BADLAND была создана нашей инди-компанией, называемой Frogmind и состоящей из двух человек. Это наша первая игра на iOS и в ней используется последняя версия cocos2d-iphone 2.1 наряду со множеством других open source библиотек.
+12
Эволюция гоночных автомобилей на JavaScript
2 min
50KВозможно, вам доводилось видеть игру Box Car 2D — автогонки машинок, сгенерированных с помощью генетического алгоритма. Игра работает на платформе Flash и использует физический движок box2d. За тем, как из бесформенных уродцев через несколько десятков поколений развиваются вполне приличные гоночные автомобили, можно наблюдать часами. Игра существует уже несколько лет, а её фанаты соревнуются в выведении новых «пород» машинок на разных типах трасс. Недавно в сети появился клон этой игры под названием Genetic Cars, написанный на HTML5 и JavaScript. Хотя в нем ещё многого не хватает (например, редактора машинок), некоторые вещи сделаны гораздо лучше, чем в оригинале. Например, есть возможность наблюдать заезд всех машинок одновременно. И самое главное — можно ковыряться в исходниках!
+66
Еще об эволюции гоночных автомобилей
4 min
54KНедавно на хабре проскочил пост, который напомнил мне о такой забавной и довольно интересной вещи, как BoxCar2D (Оригинал, Версия из поста), которую в первый раз я увидел пару лет назад, и которая меня порядком впечатлила. И уже тогда я подметил в ней один фатальный недостаток (вкратце — ее сделал не я), но в тот раз руки так и не дошли до его исправления. И вот теперь я решил это исправить.
Итак, я расчехлил Visual Studio и принялся за дело.
Первым делом я просто повторил функционал BoxCar2D, а именно: фиксированный размер популяции, которая проживает свою жизнь и порождает следующее поколение. Можно было поиграться с тем, как усложняется трасса со временем, что содержит в себе геном и как машинки скрещиваются и мутируют.
+95
Про создание платформера на Unity. Часть третья, долгожданная
4 min
71KTutorial
Привет, Хабр!
Холодная питерская осень штабелями укладывает людей в кровать с температурой и прочими прелестями той части вселенной, которая отвечает за болезни. Но всему плохому, к счастью, приходит конец. Поэтому, как вы поняли из вступления, сегодня в нашем курсе от начинающего для начинающих мы поговорим о создании врагов, уровней и физики. Больше физики!
Осторожно: объемы гифок под катом становятся просто нечеловеческими!
Холодная питерская осень штабелями укладывает людей в кровать с температурой и прочими прелестями той части вселенной, которая отвечает за болезни. Но всему плохому, к счастью, приходит конец. Поэтому, как вы поняли из вступления, сегодня в нашем курсе от начинающего для начинающих мы поговорим о создании врагов, уровней и физики. Больше физики!
Осторожно: объемы гифок под катом становятся просто нечеловеческими!
+38
Взрывы в Box2D
4 min
23KМой телеграм канал: https://t.me/winc0de.
В этой статье мы рассмотрим несколько видов взрывов в физическом движке Box2D.
Симуляция взрыва сводится к нахождению тел, которые находятся в радиусе действия взрывной волны и применении силы к ним, чтобы отбросить их от центра взрыва.
Мы расмотрим три вида взрывов разной сложности:
В этой статье мы рассмотрим несколько видов взрывов в физическом движке Box2D.
Симуляция взрыва сводится к нахождению тел, которые находятся в радиусе действия взрывной волны и применении силы к ним, чтобы отбросить их от центра взрыва.
Мы расмотрим три вида взрывов разной сложности:
- Нахождение тел в радиусе взрыва
- Raycast – нахождения тел в радиусе лучей
- Частицы – распространение многих маленьких тел от эпицентра взрыва
+44
WPF и Box2D. Как я делал физику c WPF
9 min
15KДоброго времени Хабр. Я большой фанат физики в играх, работал с некоторыми интересными физическими движками но сегодня я расскажу о Box2D. Он максимально прост и понятен и отлично подходит для двумерной физики. Я заметил что в интернете очень мало туториалов по Box2D на C#, их почти нет. Меня неоднократно просили написать статейку по этому поводу. Чтож, время пришло. Будет много кода, букв и немного комментариев. Для вывода графики используется WPF и элемент Viewport3D. Кому интересно, добро пожаловать подкат.
+21
Valentine's Day Application on Libgdx
7 min
3.7KTranslation
Every year there are a lot of articles dedicated to Valentine's Day. I also decided to get involved in this topic and create something original and unusual. The idea was to create a simple Android application with hearts that would have their physical models and interact with each other. Then I added text, sounds, particles and some other effects. The resulting app was working and quite original! In this article I will describe the creation process, as well as the capabilities and pitfalls of the libgdx library.
+20
Создание очередной казуалки на Flash-платформе с физикой. Часть I
6 min
6.7KTutorial
Привет, дорогой друг.
Начну с того, что геймдевом я занимаюсь относительно недавно.
Поэтому на качество кода и информации не полагайтесь %)
В этой статье я расскажу о том, как использовать физический движок Box2D для своих игр, на примере прототипа.
Если повезет и вам понравится статья, то будет и вторая часть, и третья часть. В конечном итоге мы получим такую игру. (да-да, игра жутко не доделана, тоже самое, что и в статье, только с графикой и сенсорами)
Остальное под катом.
Начну с того, что геймдевом я занимаюсь относительно недавно.
Поэтому на качество кода и информации не полагайтесь %)
В этой статье я расскажу о том, как использовать физический движок Box2D для своих игр, на примере прототипа.
Если повезет и вам понравится статья, то будет и вторая часть, и третья часть. В конечном итоге мы получим такую игру. (да-да, игра жутко не доделана, тоже самое, что и в статье, только с графикой и сенсорами)
Остальное под катом.
+66
Box2D — Физика движения авто своими руками
14 min
28KПриветствую всех читателей хабра. В этом топике я постараюсь показать вам как просто можно создать простую физику движения передне— и полноприводного автомобиля.
+89
Делаем простой редактор уровней на базе плагина к Inkscape
12 min
20KВступление
Думаю многие программисты создали, или пробовали создать свою игру. Обычно процесс доходит до момента, когда основная часть всего написана, и нужно начинать строить уровни, игровые сцены, и т.д. Если использовать готовые решения, «из коробки» — например Unity, тогда проблем не возникает. Но могут появиться проблемы с лицензированием, поддержкой разных платформ — может кто-то хочет попробовать что-то поделать под Linux / Mac, где не всегда можно найти нужное решение. Да и начинающим игроделам интересней использовать что-то своё, лёгкое в разработке и наращивании функционала, адаптированное под себя. Для себя я нашёл решение в виде написания собственного небольшого плагина к Inkscape.
Думаю многие программисты создали, или пробовали создать свою игру. Обычно процесс доходит до момента, когда основная часть всего написана, и нужно начинать строить уровни, игровые сцены, и т.д. Если использовать готовые решения, «из коробки» — например Unity, тогда проблем не возникает. Но могут появиться проблемы с лицензированием, поддержкой разных платформ — может кто-то хочет попробовать что-то поделать под Linux / Mac, где не всегда можно найти нужное решение. Да и начинающим игроделам интересней использовать что-то своё, лёгкое в разработке и наращивании функционала, адаптированное под себя. Для себя я нашёл решение в виде написания собственного небольшого плагина к Inkscape.
+25
Box2d: анатомия коллизий
10 min
37KTutorial
Translation
Что такое коллизии?
В Box2D принято считать, что друг с другом сталкиваются тела, однако на самом деле при расчете коллизий используются фикстуры (fixtures, переводы слова существуют, но я не уверен, есть ли среди них устоявшийся). Объекты могут сталкиваться разными способами, поэтому библиотека предоставляет большое количество уточняющей информации, которая может быть использована в игровой логике. Например, вы можете захотеть узнать следующее:
- Когда столкновение начинается и заканчивается
- Точку соприкосновения фикстур
- Вектор нормали к линии контакта фикстур
- Какая энергия была приложена и результат коллизии
Обычно столкновение происходит очень быстро, однако в этой статье мы попытаемся взять одну конкретную коллизию и замедлить ее, чтобы успеть рассмотреть детали происходящего и информацию, которую можно извлечь из события.
+48
Простые 2D гоночки в космосе под Tizen или Как выиграть хакатон Tizen Association
5 min
8.6KВ минувшие выходные в Москве на Берсеневской набережной в Lightbox Studio Red October прошел организованный компаниями Intel, Samsung и FRUCT хакатон, посвященный разработке приложений под платформу Tizen.
Наша молодая (но очень перспективная!) команда FriedCroc приняла участие в этом замечательном мероприятии. Да и не просто приняла, а еще и заняла первое место! Мы решили рассказать об этом сообществу, поделиться накопленным опытом и выложить исходники нашего прототипа.
+15
Состоялся релиз библиотеки libGDX 1.0
1 min
8.1KБиблиотека libGDX известна почти каждому разработчику Android-приложений. С её помощью добавляются текстуры, проигрывается звук, вызывается вибрация и т.д. «Все думали, что этот день никогда не наступит, но он наступил. Официально вышла версия libGDX 1.0!», — сообщается в официальном блоге Badlogic Games, маленькой австрийской компании, которая с 2009 года ведёт разработку проекта.
Среди самых важных изменений в версии 1.0 — новый интерфейс для сборки проекта на основе Gradle. Теперь любой проект можно скомпилировать из командной строки или из Eclipse, Intellij IDEA и т.д. Больше никаких jar’ов в репозитории!
Среди самых важных изменений в версии 1.0 — новый интерфейс для сборки проекта на основе Gradle. Теперь любой проект можно скомпилировать из командной строки или из Eclipse, Intellij IDEA и т.д. Больше никаких jar’ов в репозитории!
+22
История еще одной игры на Libgdx+Box2d
5 min
28KИдеей написать игру я загорелся еще в 2011 году. В августе 2011 года, не имея опыта разработки на PHP, обложившись книгами и этими вашими интернетами, по ночам писал небольшую браузерную космическую стратегию в реальном времени. Этакий клон OGame. Разумеется, со своими дамами и преферансом. Но проекту этому не суждено было родиться, в декабре 2011-го Родина-мать вдруг попросила отдать долг.
Вернувшись в декабре 2012 года, первым делом устроился в местную крупную IT-компанию. Нужно было максимально быстро вновь войти в рабочий ритм. К весне я уже не мог спокойно спать — мечтал писать игры. Второй попыткой было написать простенькую TD на Unity. Что-то даже получилось — пушки стреляли, мобы двигались. Но постоянно мучил страх, что не смогу довести дело до конца. Так оно и получилось. Семья, работа — свободного времени не было совсем. И только осенью 2014 года твердо решил — я сделаю игру и точка. Не буду спать, не буду есть, но сделаю. Этакий вызов на «слабо». Что из этого получилось читайте дальше.
Вернувшись в декабре 2012 года, первым делом устроился в местную крупную IT-компанию. Нужно было максимально быстро вновь войти в рабочий ритм. К весне я уже не мог спокойно спать — мечтал писать игры. Второй попыткой было написать простенькую TD на Unity. Что-то даже получилось — пушки стреляли, мобы двигались. Но постоянно мучил страх, что не смогу довести дело до конца. Так оно и получилось. Семья, работа — свободного времени не было совсем. И только осенью 2014 года твердо решил — я сделаю игру и точка. Не буду спать, не буду есть, но сделаю. Этакий вызов на «слабо». Что из этого получилось читайте дальше.
+20
Борьба с 2D-физикой в Unity на примере бесконечной игры
9 min
83KTutorial
Мой странный творческий путь занес меня в разработку игр. Благодаря отличной студенческой программе от IT-компании, название которой СостоИт из одной Греческой МАленькой буквы, сотрудничающей с нашим университетом, удалось собрать команду, родить документацию и наладить Agile разработку игры под присмотром высококлассного QA-инженера (здравствуйте, Анна!)
Без особо долгих размышлений, в качестве движка был выбран Unity. Это замечательный движок, на котором действительно быстро и легко можно сделать очень плохую игру, в которую, в здравом уме, никто и никогда не будет играть. Чтобы создать хорошую игру, все же придется перелопатить документацию, вникнуть в некоторые особенности и набраться опыта разработки.
Наша игра использовала физический движок неожиданным для него способом, что породило множество проблем с производительностью на мобильных платформах. В этой статье, на примере нашей игры, описана моя борьба с физическим движком и все те особенности его работы, которые были замечены на пути к жизнеспособной бета-версии.
+42
Разработка 2D игр на Windows, Mac OS, Linux и Android без программирования. Часть 2
9 min
42KПривет Хабравчане!
Сегодня я хочу рассказать вам о том, как можно сделать игру без навыков программирования. И да, это не просто красивое и заманивающее название, в созданную игру можно будет играть на Windows, Mac OS, Linux, Android и может быть даже на… iOS? Но об этом позже. Перед началом чтения статьи, я хочу дать вам мое понимание того, что создание игры без навыков программирования – это действительно не круто. Но знаете что еще больше не круто? Тот факт, что вы, владея языками программирования, сутками работаете над кодом, путая ваше рабочее место с постелью, нанимаете дизайнеров, договариваетесь со знакомыми музыкантами, платите рекламщикам, выпускаете свой продукт, а он не окупается! Ну, то есть игру, вашу, в любом случае будут скачивать, и какой-то доход будет капать. Но, будете ли вы довольны тем, какой в итоге получилась ваша игра, и как она продается? К чему я это все говорю? Если у вас в голове живет яркая идея, и вы давно хотите попробовать себя в создании игр, но единственный ваш тормозной элемент, это незнание компьютерных языков, смело пробуйте себя в этом деле. Если же вы владеете языками программирования, и может быть наплодили уже пару не плохих проектов, которые приносят прибыль, данная статья так же будет вам полезна. Я не советую никому здесь бросать все свои знания программирования, и начинать лепить игры в программе, о которой пойдет речь. Мое мнение на этот счет, достаточно простое. С помощью данного приложения, вы сможете создать презентацию вашей игры, затратив намного меньше времени, или как минимум ролик геймплея, который можно будет бросить на YouTube, создать шумиху, получить обратную связь, и работать над игрой, грея себя приятной мыслью, что ваша идея работает, люди ее оценили и ждут. Это не значит, что создание игр, в этой программе, ограничится лишь демо-версиями. Если вы действительно вложитесь душой в это дело, то спокойно сможете создавать полноценные проекты.
+6
История участия в Game Jam. Snowbox
14 min
3.6KВ конце 2017 года мне довелось проверить свои силы и энтузиазм в качестве участника одного из многочисленных мировых Game Jam’ов.
Поскольку это был мой первый опыт в подобном проекте, я извлёк для себя несколько полезных уроков и пару приятных неожиданностей. Ну а также получил игрушку, в которую можно было поиграть с коллегами в предпраздничные пятницы.
Под катом описание, как прошли интенсивные 30 дней разработки и медленные 20 дней ожидания результатов.
Примечание: статья носит повествовательный характер, с небольшим количеством технических деталей.
Поскольку это был мой первый опыт в подобном проекте, я извлёк для себя несколько полезных уроков и пару приятных неожиданностей. Ну а также получил игрушку, в которую можно было поиграть с коллегами в предпраздничные пятницы.
Под катом описание, как прошли интенсивные 30 дней разработки и медленные 20 дней ожидания результатов.
Примечание: статья носит повествовательный характер, с небольшим количеством технических деталей.
+14
Ещё один физический движок на JavaScript
1 min
5.5KНа Google Code появился ещё один порт известного физического движка Box2D на JS — box2dweb (по ссылке есть демо). Автор говорит, что уже существует портированная версия Box2dJs, но она давно не обновлялась, так что приходится импортировать большое количество JS-библиотек в каждый проект.
Кроме двух упомянутых, на сегодня список библиотек физики на JavaScript выглядит так:
github.com/thinkpixellab/box2d — обработанный компилятором Closure Compiler порт Box2D на JS
code.google.com/p/bulletjs — порт фрагментов Java-библиотеки JBullet (http://jbullet.advel.cz/)
github.com/supereggbert/JigLibJS — порт JigLib на JS
github.com/hapticdata/toxiclibsjs — порт Toxiclibs VerletPhysics на JS
github.com/kripken/ammo.js — порт Bullet на JS
Кроме двух упомянутых, на сегодня список библиотек физики на JavaScript выглядит так:
github.com/thinkpixellab/box2d — обработанный компилятором Closure Compiler порт Box2D на JS
code.google.com/p/bulletjs — порт фрагментов Java-библиотеки JBullet (http://jbullet.advel.cz/)
github.com/supereggbert/JigLibJS — порт JigLib на JS
github.com/hapticdata/toxiclibsjs — порт Toxiclibs VerletPhysics на JS
github.com/kripken/ammo.js — порт Bullet на JS
+26
Как я делал игру
10 min
17KВсем привет, меня зовут Марк, я — Flash-разработчик. Я доволен своей работой, с помощью которой я могу сейчас зарабатывать достаточно для достойного существования в городе на букву М, да чтобы ещё и была возможность потихоньку копить сбережения на будущее. Даже несмотря на то, что в этой стране само слово «будущее» является каким-то очень странным и непонятным термином.
Но, даже с учётом всех плюсов моей текущей работы, меня угнетает сама мысль о том, что я до конца жизни буду работать на кого-то другого, а не себя, буду обменивать своё время на чужие деньги, и делать богатым кого-то другого, а не себя и свою семью.
И вот, на фоне всеобщего помешательства инди-играми, бешеной популярности App Store и девайсов на базе Android, а так же нескольких шумных историй о том, как несколько разработчиков стали безумно богатыми за невероятно короткий срок, меня не покидают мысли о том, что я тоже могу, да что-там, я просто обязан заниматься разработкой игр в свободное от работы время.
Но, даже с учётом всех плюсов моей текущей работы, меня угнетает сама мысль о том, что я до конца жизни буду работать на кого-то другого, а не себя, буду обменивать своё время на чужие деньги, и делать богатым кого-то другого, а не себя и свою семью.
И вот, на фоне всеобщего помешательства инди-играми, бешеной популярности App Store и девайсов на базе Android, а так же нескольких шумных историй о том, как несколько разработчиков стали безумно богатыми за невероятно короткий срок, меня не покидают мысли о том, что я тоже могу, да что-там, я просто обязан заниматься разработкой игр в свободное от работы время.
+117