Среда, 20 Ноября 2024, 17:23

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
собственный движок (three.js+node.js)
VanesStalkersДата: Суббота, 25 Января 2014, 16:30 | Сообщение # 1
был не раз
Сейчас нет на сайте
Коллеги, как всегда случается, сначала начал делать, а потом наткнулся на сей форум... но лучше поздно чем никогда, в связи с чем прошу консультаций по вопросу создания собственного игрового движка.
Пишется он с нуля, в качестве инструментов используется:
- браузерный клиент, написанный с помощью библиотеки three.js, обеспечивающей взаимодействие с webgl (одна из технологий html5)
* интерес к этой технологии чисто профессиональный, так как есть определенные основания полагать, что HTML5 со временем вытеснит тот же Flash и будет активно развиваться, если даже не для игр, то для обычных сайтов, т.е. технология будет поддерживаться в ближайшем обозримом будущем (что сложно спрогнозировать для других игровых движков)
- сервер на node.js
* тут первый из вопросов - так как выбор делался по факту между php и node.js, то выбор понятен, но сравнения с другими технологиями игровых серверов не было, собственно и не понятно, насколько node.js производителен и не стоит ли, пока не поздно перейти на другое решение?.. либо если, скажем, node.js позволит держать на сервере одновременно 1000 человек, то сейчас этот вопрос не принципиален, так как для первого этапе развития движка этого вполне достаточно, а серверную логику рано или поздно так или иначе переписывать/переносить на другое решение
+ к обоим пунктам, я планирую код сделать открытым, а указанные технологии сейчас достаточно популярны не только среди специалистов по игроделу, но в большей части среди обычных web-разработчиков, которых мне также хотелось бы вовлечь в процесс разработки движка

Почему не взял что-то уже готовое могу тоже сразу ответить - игра предполагает наличие функционала, который на 99% упрется в ограничения любого из сторонних движков (первое что будет - динамичный мир, второе - попробовать максимально переложить логику на ресурсы клиента, в частности прокладывание пути и другую ресурсоемкую логику, оставив на сервере только валидацию сделанных расчетов, третье - комбинированная система боя, если грубо: 30 сек пауза и игрок выбирает действия в текущем раунде, дальше сервер обрабатывает посекундно передвижения и действия всех игроков и нпц, после чего клиент воспроизводить очередные 10 секунд боя, ну и далее снова 30 секунд для выбора действий в новом раунде и т.д.). Если первое еще кое как распространено, второе возможно и применяется, но в купе с первым (когда коллизии по факту становятся динамическими) - уже не уверен, ну а третьего я вообще ни в одной игре не встречал, так что и сторонние игровые движки вряд ли смогут это воспроизвести.

Из плюсов уже сразу вижу, что выбранные инструменты позволяют вести разработку достаточно быстро, за месяц была написана и динамическая подгрузка мира, и хождение между динамически размещаемыми коллизиями, и основы боевой системы, и механика анимации моделей.
То что уже есть можно посмотреть тут: http://46.36.220.235/

Буду благодарен за любые вопросы и замечания, желательно даже полноценную критику smile


Сообщение отредактировал VanesStalkers - Суббота, 25 Января 2014, 16:32
TLTДата: Суббота, 25 Января 2014, 16:50 | Сообщение # 2
Сейчас на сайте
А какая необходимость делать почти с нуля свой движок, когда есть множество изумительных решений от гениальных программистов?

Цитата
Your graphics card does not seem to support WebGL.
Find out how to get it here.


Дао, выраженное словами, не есть истинное Дао.
VanesStalkersДата: Суббота, 25 Января 2014, 18:32 | Сообщение # 3
был не раз
Сейчас нет на сайте
тут поддержка webgl браузерами: http://caniuse.com/webgl

Цитата TLT ()
А какая необходимость делать почти с нуля свой движок, когда есть множество изумительных решений от гениальных программистов?


ответил сразу в первом сообщении smile
если же посоветуете что-то, что уже решает озвученные 3 проблемы, то буду благодарен...
Цитата
Почему не взял что-то уже готовое могу тоже сразу ответить - игра предполагает наличие функционала, который на 99% упрется в ограничения любого из сторонних движков (первое что будет - динамичный мир, второе - попробовать максимально переложить логику на ресурсы клиента, в частности прокладывание пути и другую ресурсоемкую логику, оставив на сервере только валидацию сделанных расчетов, третье - комбинированная система боя, если грубо: 30 сек пауза и игрок выбирает действия в текущем раунде, дальше сервер обрабатывает посекундно передвижения и действия всех игроков и нпц, после чего клиент воспроизводить очередные 10 секунд боя, ну и далее снова 30 секунд для выбора действий в новом раунде и т.д.). Если первое еще кое как распространено, второе возможно и применяется, но в купе с первым (когда коллизии по факту становятся динамическими) - уже не уверен, ну а третьего я вообще ни в одной игре не встречал, так что и сторонние игровые движки вряд ли смогут это воспроизвести.


+ читая истории создания игр все сводится к одному - рано или поздно все упираются в ограничения движка и начинают его переписывать...

+ опять же, очень хочется все таки что-то гарантированно поддерживаемое и развиваемое параллельно с развитием web-технологий в целом... собственно если есть движки под html5 (а html5 - это в первую очередь кроссплатформенность), то также буду признателен за ссылки...


Сообщение отредактировал VanesStalkers - Суббота, 25 Января 2014, 18:37
lvovandДата: Суббота, 25 Января 2014, 19:35 | Сообщение # 4
старожил
Сейчас нет на сайте
если динамика, то php ляжет скорее всего очень быстро, nodejs для динамики конечно лучше,
"в частности прокладывание пути и другую ресурсоемкую логику, оставив на сервере только валидацию сделанных расчетов" - а что подразумевает валидация, повтор того же расчета? и смысл тогда на клиенте рассчитывать?


Разработка и продвижение сайтов. Дизайн
VinchensooДата: Суббота, 25 Января 2014, 21:11 | Сообщение # 5
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Собственно, ничего крутого я в первом посте не увидел. Есть куча js-решений для игр, которые для этого подойдут.

Все, что описано- писать на js- нужно быть знатным извращенцем, которые любит программирование с затеями. Хотя, кто из нас не безгрешен.

html5 пока что само по себе не очень хорошо для игр, так что для реализации сложной логики(типа коллизий) не проще ли взять инструмент под задачу?(тот же флеш, тот же юнити3д).

ЗЫ. Если вы идейный flash must die html5-фанат, то последний вопрос снимается.

Цитата
если динамика, то php ляжет скорее всего очень быстро, nodejs для динамики конечно лучше,

Что-то, что-то реализует сценарную модель(т.е. запрос- вызов кода- ответ). Нод, конечно, по-круче, но для реальной динамики лучше TCP-сервер. Хотя, по описанию оно тут и не надо.

Цитата VanesStalkers ()
сервере одновременно 1000 человек,

Все эти цифры достаточно условные. Даже на пхп можно выжать 1к человек на сервер(и даже больше) с тюнингом апатча, установкой мемкеш и топовым серверным железом за овер9к нефти.


VanesStalkersДата: Воскресенье, 26 Января 2014, 00:57 | Сообщение # 6
был не раз
Сейчас нет на сайте
Цитата lvovand ()
"в частности прокладывание пути и другую ресурсоемкую логику, оставив на сервере только валидацию сделанных расчетов" - а что подразумевает валидация, повтор того же расчета? и смысл тогда на клиенте рассчитывать?

ну тут варианта два, во-первых прокладывание пути для НПЦ можно переложить на игроков... во-вторых, сам расчет обычно подразумевает рекурсию (для нахождения альтернативных путей), а для валидации достаточно проверки проходимости между найденными альтернативами, т.е. экономиться будет от 2-х крат до нескольких порядков (в зависимости от уровня вложенности рекурсии)...
но мне все равно интересно, о каких конкретно готовых решениях идет речь? мне для общего развития будет крайне полезно...

Цитата Vinchensoo ()
Собственно, ничего крутого я в первом посте не увидел. Есть куча js-решений для игр, которые для этого подойдут.

не говорю что это круто, просто это не самые тривиальные решения, на которые обычно игровые фреймворки не рассчитаны... к тому же, одно дело когда какой то движок уже имеет аналог какого-то механизма, тогда вы совершенно правы, что смысла свое писать нет... и другое дело, если движок теоретически способен это сделать, тогда все равно все с нуля писать, тогда зачем фреймворк? я, в частности, про описанную систему боя - такие механизмы просто не применяются в играх, массово уж точно...

Цитата Vinchensoo ()
Все, что описано- писать на js- нужно быть знатным извращенцем, которые любит программирование с затеями. Хотя, кто из нас не безгрешен.
html5 пока что само по себе не очень хорошо для игр, так что для реализации сложной логики(типа коллизий) не проще ли взять инструмент под задачу?(тот же флеш, тот же юнити3д).
ЗЫ. Если вы идейный flash must die html5-фанат, то последний вопрос снимается.

а где можно посмотреть готовые решения для коллизий в динамическом мире на unity и/или flash? ну хотя бы продукты в живую посмотреть, использующие эту технологию, чтобы понять, что это именно то что мне нужно...
я к тому, что конкретно на three.js я видел написанные minecraft подобные динамические миры, и эта технология меня полностью устроила на тот момент по своему потенциалу...
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг