Comments 27
Вся статья сводится к тому как идет борьба с загрузкой ресурсов и как потом все то упаковать в .exe, нет ни слова о создании игры. Картинку с совой прилагать не будут.
А где вы взяли модельки кораблей?
Да, я тоже ожидал увидел хоть какие то детали самой реализации, но увы…
Ну Вы молодец! Я тоже давно мечтаю создать свою игру но все то времени нет, то лень. А эта статья немного дает вдохновение!
P.S. Если можно — ссылку на игру ВК, очень хочется поиграть.
Спасибо.
Вот: https://vk.com/app5677746
Вот: https://vk.com/app5677746
А исходники (или хотя бы архив для описанной автономной игры) покажете?
По ссылке выше, в ВК, собственно, можно через браузер просмотреть код фрейма. Это и есть исходник, правда, обфусцированный. Оригинал, который у меня, показывать не хочу, да и код изобилует закомментированными кусками и моими комментариями, что и где надо еще доработать и добавить. Обфускатор все это, естественно, удаляет.
снаряды еще б побыстрей летали, и по динамичный бы
Да, мне вКонтакте уже заметили, что маловато динамики. Думаю о том, чтобы сделать ускорение времени во время полета ядра.
Если можно, то лучше — пропуск анимации с переходом к самому результату. А то навёл пушку изрядно выше цели, выстрел, уже на глаз виден перелёт — и следующие пять секунд ждёшь, пока ядро ме-е-едленно, трагично и печально завершит свой полёт. Хотелось бы в этот момент нажать пробел и пропустить полёт, перейдя, непосредственно, к его итогу :)
С пропуском — очень здравая идея! Спасибо. Пожалуй, ее и попробую реализовать. Но для этого, возможно, придется отказаться от используемого физического движка, cannon.js, кстати, который делает покадровый расчет, и написать свою функцию движения ядра.
Бросок камня под углом к горизонту, мне кажется, слишком простая задача, чтобы вообще использовать какой-то физический движок.
В данном случае — да. Но хочется помучить физический движок ради универсальности, для последующих игр, в том числе, для упомянутой в статье недоделанной игры. В ней мячи летят, падают, остаются лежать, а брошенные новые могут также на них падать, сталкиваться и взаимодействовать. В этом смысле, желательно допилить существующий движок, чтобы он мог ускорять время. Пока мои эксперименты по ускорению приводили к изменению траектории, что неверно.
Непонятно как считается урон. Кто-нибудь знает?
Да, я программирую на чистом JavaScript. Многие на этом месте покрутили пальцем у виска. Я не использую никаких библиотек (кроме 3D движка), даже JQuery не использую.
Тоже так иногда пишу игры на конкурсы (если на JS), только с прототипами, и все в блокноте++ и браузере с его средствами отладки. Есть в этом какой-то дзен.
Поиграл, понравилось, модели кораблей симпатичные получились, жаль, что мало их. Даже подкинул автору один пиастр (больше не завалялось). ИМХО, Gui в игре немного перегруженный и его стиль соответствует духу игры.
Информация о кораблях отражается в воде, это баг или фича?
Не знаю, как так получилось, во время полета ядра вкладку переключил, оно застряло в воздухе, и стрелять больше было нельзя. Повторить глюк не удалось.

Спасибо.
Безусловно, это баг. Воюя с не отправляющимися запросами к серверу при неактивной вкладке, я, по видимому, забыл повоевать с останавливающейся анимацией при этом. Мне тоже не удалось воспроизвести, но буду копать код в поисках понимания причин явления.
По поводу отражений. Это недоработка. Зеркальный шейдер тупо отражает весь мир. Но можно скормить ему лишь отдельные объекты. Я пока не придумал универсального способа, как это сделать. Дело в том, что для кораблей это тоже не помешало бы. Незачем отражать самые мелкие детали. Можно, например, исключать объекты тупо по black-листу по их именам. А имена задаются в 3d-редакторе. Добавить к ним какую-нибудь приставку или букву. При этом, под объектами понимаются меши ( mesh). В модели корабля их, кстати, порядка 40 вроде бы… В общем, это надо переименовать поля name и пересохранять заново для игры все корабли…
Безусловно, это баг. Воюя с не отправляющимися запросами к серверу при неактивной вкладке, я, по видимому, забыл повоевать с останавливающейся анимацией при этом. Мне тоже не удалось воспроизвести, но буду копать код в поисках понимания причин явления.
По поводу отражений. Это недоработка. Зеркальный шейдер тупо отражает весь мир. Но можно скормить ему лишь отдельные объекты. Я пока не придумал универсального способа, как это сделать. Дело в том, что для кораблей это тоже не помешало бы. Незачем отражать самые мелкие детали. Можно, например, исключать объекты тупо по black-листу по их именам. А имена задаются в 3d-редакторе. Добавить к ним какую-нибудь приставку или букву. При этом, под объектами понимаются меши ( mesh). В модели корабля их, кстати, порядка 40 вроде бы… В общем, это надо переименовать поля name и пересохранять заново для игры все корабли…
ИИ никудышный. Корабли врага стреляют строго по уже раненному. Таким образом отводим раненого как можно дальше и ставим его перпендикулярно линии стрельбы. Остальными кораблями перекрываем к нему проход. И все. ИИ промахивается в 90% выстрелов. Расстреливать корабли ИИ можно в упор.
Иван Иваныч по отношению к искусственному интеллекту — это что-то новенькое)
Sign up to leave a comment.
Как я писал игру на конкурс, или чудесное превращение «Линий» в «Морской бой»