Одержимость навязчивой идеей переписать все игры переродилась в определённую концепцию.
Есть игры построенные на общих принципах. Например: rimworld, FTL и jagged alliance 2. У всех одна и та же суть с точки зрения реализации. Есть карта, состоящая из тайлов, есть юниты, шмотки и летающие туда-сюда снаряды. Есть процедуры обработки всего этого, схожие по принципам функционирования. Есть графический интерфейс для отрисовки и получения управления.
Есть и различия, так строительство есть только в rimworld, а в ja2 присутствует пошаговый режим. При этом следует отметить, что с точки зрения реализации эти различия не столь существенны. Для движок который обрабатывает юнитов один за другим можно просто переделать последовательность выполнения команд юнитами и он станет уже пошаговым. Всю игровую механику вне карты, объявление и обработку событий интерфейса можно вывести во внешние скрипты и это даже не сильно ударит по производительности.
Если брать любую почти любую стратегию, то она строится на вышеизложенных принципах практически полностью.
Главная идея - сделать этакий unix-way MVC движок для такого рода игр. Есть приложение, которое занимается расчётами законов некого мира, есть приложение, которое вносит определённую логику в этот мир и есть приложение, которое взаимодействует с игроком.
Итак. Чтобы наделать кучу годноты ничего сложного не надо.
1.Нужен высокопроизводительный движок, который будет играть роль сервера с возможностью быстрой обработки всех игровых объектов и выполнением всех громоздких расчётов связанных с этим. Движок должен иметь интерфейс с каким-нибудь скриптовым языком для поддержки остальной логики, которая не часто используется, но часто меняется.
2.Нужен клиент для этого движка, который получает от него необходимые данные по сети или через какое-нибудь fifo (если играем одни), отсылает на сервер команды и принимает на себя значительную часть нагрузки, связанную с управлением юнитами и отрисовкой. Также, например поиск путей или планирование действий сервер нагружать нет смысла.
3.Все моды (они же - полноценные игры), являются кучей скриптов, которые дёргают возможности движка и клиента. Клиентская часть скрипта создаёт интерфейс, обрабатывает все действия пользователя и формирует команды для сервера. Серверная часть перехватывает серверные события и обслуживает прочую логику.
Всё.
Хочешь свой MAX? Всё уже готово. Нужно просто прописать не хитрую логику, настроить параметры движка на пошаговый режим.
Охота поиграть по сети? Достаточно подключиться к серверу и назначить юнитам управляющих.
Хочешь переписать jagged alliance? Пишешь на скриптах логику работы вне поля боя, добавляешь нужные обработчики для боя и переделываешь визуализацию на изометрию, если сильно хочется.
В процессе использования движка появляется куча наработок, графики, вариантов визуализации, так что новые игрушки клепать будет легче.
Написание своих rimworld'ом, FTL, с&c, дот и варкрафтов - это вообще рутина состоящая в основном только из клепания спрайтов/моделек.
Наличие хотя бы двух общих компонентов (например системы интерфейса пользователя и движка) даёт большой пинок игроделам, позволяя сосредоточиться только на том, что им реально интересно, а не переписывать одно и тоже по 100 раз.
Итак ЛОР, хочешь ли ты дать разгон игровой opensource индустрии?
Если этому тут не место, подскажите, где этому место.
А может такие движки уже есть?
Love и stratagus не то. Первый - для кодинга чего угодно на lua, второй чисто для RTS плюс там упоротый код. Речь же идёт о универсальном движке для rts,rpg,roguelike и тактики класса вид с верху, 1 активный уровень (для начала).
По разработке.
Движок с клиентом пишется на чём-нибудь более-менее производительном. Бета языки не нужны. Я умею на с++ и java.
С внешними скриптами была мысль встроить lua или js или всё вместе или придумать что-нибудь совсем универсальное, например гонять JSON через fifo, или как-то еще.
Кому это интересно, есть идеи, желание помочь, пишите сюда или мне на почту. Даже простое внимание к проекту очень сильно поможет мне написать хоть что-то. Когда окончательно соберусь с мыслями сделаю репозиторий на гитхабе.
Похожие темы
- Форум Разработка трёхмерного игрового движка (2021)
- Новости PixelLight 0.9.10 (2012)
- Форум Старт в разработку (2017)
- Форум Выбор движка для игры (2010)
- Форум разработка браузерной игры (2011)
- Форум Разработка движка на основе огра (2012)
- Форум Разработка движков Xfilesharing, OTRS, etc (2012)
- Форум Инструменты для разработки форумного движка (2018)
- Форум Проприетарные игры со свободным движком (2016)
- Форум Почитать о разработке 3D-движков и других игровых движков. (2014)