Показать сообщение отдельно
Старый 09.05.2013, 02:27   #1
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
[релиз] Winged Crushers (в девичестве — "Самолётик")



Итак, свершилось! Я высрал своё говно во ВКонтакте!
Работает таблица рекордов.
Ставьте лайки, френдите, показывайте друзьям (ну или что там на ВК принято?).
Также можно излить бугурт по поводу глюков, тормозов и прочих издержек.

Здесь находится журнал разработки. Там же можно почитать исходники.

Итоги.

Я трудился над этой игрой более трёх недель. От концепта:



К реализации.

Изначально не предполагалось, что "Самолётик" будет полноценной игрой. Вообще, я начал изучать WebGL для того, чтобы сделать кроссплатформенный ирёхмерный игровой проект с совершенно другим геймплеем. Но стало понятно, что этот грандиозный замысел дойдёт до играбельного состояния ещё не скоро, а играбельное нечто хотелось сделать как можно скорее.

Первым делом — самолёты!

Так и был придуман "Самолётик" — простейший геймплей, минимум требований к движку (который писался на коленке и в отсутствие опыта), минимум вообще всего в игре (даже без GUI хотел обойтись чтобы его не писать).

Это был мой первый опыт создания полноценной игры не только на JavaScript, но и на GAPI без использования уже готового движка. Пришлось осиливать линейную алгебру, кватернионы. Пожалуй, за 3 недели узнал куда больше, чем за первые 2 курса университета. Огромное спасибо Mr_F и falcon за то, что терпеливо отвечали на мои тупые вопросы по части математики, без них я бы тупил@тормозил куда дольше.

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

4 года назад я нашёл работу в Web и тогда практически забросил игрострой. Впрочем, оказалось, что навыки, будучи очищены от пыли, неплохо сохранились. Что бы там ни говорили, а старина Блиц многому научил.

Игра вышла вполне играбельной по скорости на современном компьютере. Да я даже на ноуте 2009 года выпуска играл, и на компах в университете. Так что, что бы там ни говорили, вопрос железа не так уж критичен. В последнем случае WebGL — явный плюс, ведь в учреждениях нет возможности поставить, например, Юнити Плеер. Конечно, на древней рухляди не заведётся, но в универе уже компы не первой свежести, и тем не менее, а доля рухляди всё уменьшается, и время работает на нас. В Microsoft обещали поддержку WebGL к версии 11 Internet Explorer'а, так что скоро можно будет говорить о поддержке WebGL "искаропке". Opera скоро перейдёт на Webkit, а, значит искоробочный WebGL будет и для [s]Операстов[/s] любителей Оперы.

Мысли по оптимизации.


Что же больше всего занимает времени в Самолётах кроме собственно рисовки треугольников? Профилирование показало: математика. Сборщик мусора, который давеча ругали, где-то там, далеко не на первых позициях. Да, JavaScript не очень хорошо годится для выполнения операций над векторами, матрицами и кватернионами. Тут, как ни крути, компилируемые языки программирования по скорости будут намного быстрее JS, с этим не поспоришь. С другой стороны, в движке у меня много нерациональных вещей, и количество мат. операций линейной алгебры можно сократить очень значительно. А ещё если учесть, что у меня игра-то не очень рационально построена (каждый кубик в конструкции самолёта — отдельный объект со всей математикой), то математику можно очень сильно сократить.

Отсюда можно вывести общее правило разработки на WebGL: JavaScript — дорого, треугольники и шейдеры — дёшево. Это значит, что если вставить высокополигональные модели, навесить на них хайрез-текстуры и всякие бампы с параллаксами, то FPS упадёт не сильно.

Однако я нарочно не стал делать красивую графику, даже не делал намёка на подобные амбиции. Модели нарочно кубические "левой ногой", текстуры за 5 минут левой рукой. Впрочем, такую "красоту" видеоряда все поняли, кто как хотел.

Даёшь WebGL в народ!


Что же в итоге? За 3 недели — полноценная игра без пипитарных движков. ЖНУ/ПИНУС ШВАБОДКА ЖОПАЕЛЬ! Работает везде где есть арбузер с WebGL (а он есть на всех десктопах, части Андроидов, а скоро будет повсеместно). WebGL играм быть! Это дело перспективное! Больше WebGL-игор, хороших и разных!

Ах да, сырцы. В них, правда, отсутствует часть, ответственная за таблицу рекордов (по понятным причинам), но всё остальное на месте. Выкладывается под лицензией GNU GPL.

Исходные коды.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена


Последний раз редактировалось ABTOMAT, 10.05.2013 в 04:08.
(Offline)
 
Ответить с цитированием
Эти 26 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
Amatsu (10.05.2013), Android (09.05.2013), ARA (09.05.2013), Arton (09.05.2013), devolonter (09.05.2013), Кирпи4 (27.05.2013), falcon (07.06.2013), FireOwl (10.03.2014), H@NON (09.05.2013), Harter (10.05.2013), HolyDel (20.05.2013), Hurrit (15.05.2013), impersonalis (20.05.2013), LLI.T.A.L.K.E.R. (10.05.2013), mauNgerS (12.05.2013), moka (09.05.2013), Mr_F_ (10.05.2013), Nerd (10.05.2013), pax (09.05.2013), Phantom (18.05.2013), Radnk (15.05.2013), Randomize (09.05.2013), Reks888 (10.05.2013), SBJoker (09.05.2013), St_AnGer (09.05.2013), Wegox (09.05.2013)