forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Готовые проекты сообщества boolean (http://forum.boolean.name/forumdisplay.php?f=140)
-   -   [релиз] Winged Crushers (в девичестве — "Самолётик") (http://forum.boolean.name/showthread.php?t=18167)

ABTOMAT 09.05.2013 02:27

[релиз] 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.

Исходные коды.

Arton 09.05.2013 03:48

Ответ: [релиз] Winged Crushers (в девичестве — "Самолётик")
 
Ня! я больше всех набил :)

ABTOMAT 09.05.2013 06:33

Ответ: [релиз] Winged Crushers (в девичестве — "Самолётик")
 
Если у кого-то не работает сохранение рекорда, сообщите (были косяки, но, вроде, исправил)

LLI.T.A.L.K.E.R. 09.05.2013 11:09

Ответ: [релиз] Winged Crushers (в девичестве — "Самолётик")
 
Исхкод открыт?
Как на счет защиты от неправомерного ввода данных в таблицу?

Aaa y Bac vk-meTog gaHHbIx, Ho Bce }|{e..

Android 09.05.2013 12:29

Ответ: [релиз] Winged Crushers (в девичестве — "Самолётик")
 
А ограничение передвижения кто делать будет?
Как-то сразу нажал на "вперед вправо" и улетел далеко-далеко, потом еле вернулся обратно на поле боя.

ABTOMAT 09.05.2013 18:37

Ответ: [релиз] Winged Crushers (в девичестве — "Самолётик")
 
Цитата:

Сообщение от Android (Сообщение 258856)
А ограничение передвижения кто делать будет?
Как-то сразу нажал на "вперед вправо" и улетел далеко-далеко, потом еле вернулся обратно на поле боя.

Да наверное не буду делать.

ABTOMAT 10.05.2013 04:03

Ответ: [релиз] Winged Crushers (в девичестве — "Самолётик")
 
Обновил первый пост умными мыслями.
Добавил исходники.

Nex 10.05.2013 09:43

Ответ: [релиз] Winged Crushers (в девичестве — "Самолётик")
 
Поиграл, вышел, захотел еще раз поиграть, но в "приложениях" игры нет. Хотя так же играл в роботы pax'a и в леталки эвила и в приложениях их игра появилась. :(
И еще не мешало бы добавить кнопочку отключения звука. Некоторые други срали кирпичами из за отсутствия данной фичи.

ABTOMAT 10.05.2013 15:30

Ответ: [релиз] Winged Crushers (в девичестве — "Самолётик")
 
Эх, хорошо. Сделаю кнопку отключения звука и ограничу перемещение.
Меня просто удручает, что нужно теперь "тянуть" две версии: с открытыми сырцами и публичную, с таблицей рекордов.

ABTOMAT 10.05.2013 17:35

Ответ: [релиз] Winged Crushers (в девичестве — "Самолётик")
 
Сделал отключение звука на кнопку M.
А вот ограничение перемещения дурно влияет на геймплей. Убрал сразу после запила.

EvilChaotic 12.05.2013 23:50

Ответ: [релиз] Winged Crushers (в девичестве — "Самолётик")
 
Чет я не могу поиграть нормально, после 5 секунд, камера улетает куда-то в небо и трясется. Зарегайся тут: http://appboost.ru/ Поставь баннер буста, нарисуй один свой собственный рекламный баннер и будет тебе посещалка и люди. Отправь приложение на модерацию, получишь еще бесплатную рекламу от самого вк. Если не прикрутить платежку - то ничего не заработаешь, если хотел, конечно.

ABTOMAT 13.05.2013 00:38

Ответ: [релиз] Winged Crushers (в девичестве — "Самолётик")
 
Спасибо за дельный совет!
Да как-то даже смешно эту демку продвигать.
Но как только запилю что-то дельное, то непременно попробую!
На модерацию отправил ещё 9 мая. Но модераторы до сих пор, видимо, за дедов накатывают :-(

Данил 15.05.2013 16:14

Ответ: [релиз] Winged Crushers (в девичестве — "Самолётик")
 
Цитата:

Критерии "играбельности" с нашей точки зрения, читать критерии, которые должен выполнять проект чтобы быть перемещенным в ветку готовых проектов:

Цитата:

Минимум два уровня/локации;
Исключение: Головоломки;
Минимум два вида оружия или два разных способа воздействия на врага;
Исключение: Оружие в игре не предусмотрено жанром;
Минимум два вида врага отличающихся по своему вооружению или стратегии перемещения;
Исключение: Враг, как таковой, не предусмотрен жанром, например: симуляторы, логические игры и пр.;
Минимум три вида бонусов (пополнение жизней, оружия...);
Исключение: Бонусы не предусмотрены жанром, например: Симуляторы;

При контрольном тесте проекта не возникают ошибки выбрасывающие игрока из игры;
Итого: как бы это смешно не звучало, но этому проекту не место в этом разделе.

Phantom 18.05.2013 20:25

Ответ: [релиз] Winged Crushers (в девичестве — "Самолётик")
 
Я на первых трёх местах. Первое - с огромным отрывом от остальных. Почему нельзя посмотреть рекорды, находясь в игре? В начальной заставке написано, что нужно нажать "R". Не работает. Хочу, чтобы все видели какой я задрот.

Randomize 20.05.2013 03:18

Ответ: [релиз] Winged Crushers (в девичестве — "Самолётик")
 
Цитата:

Сообщение от Данил (Сообщение 259366)
Итого: как бы это смешно не звучало, но этому проекту не место в этом разделе.

Я думаю эти правила надо упростить.
Проект работает, в меру играбелен и закончен.


Часовой пояс GMT +4, время: 15:59.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot