Недавно я решил начать писать движок для карточной игры. Я не большой игрок в «карты», но друг познакомил меня с игрой (это игра на датском языке), и я влюбился.
Я хочу развить игру в 3 сегмента:
- Основной движок, ручки карт / колод / игровых состояний и т. Д.
- Пользовательский интерфейс (в форме мобильного / настольного веб-приложения.)
- Искусственный интеллект с различными стратегиями / сложностями и т. Д.
На мой взгляд, это очень разные проекты, и я изо всех сил пытаюсь понять, как они все будут сочетаться друг с другом в долгосрочной перспективе. Сначала я даже не хочу иметь возможность «играть» в игру, используя движок. Двигатель будет прежде всего проверен его тестами. Тестирование игры не начнется, пока клиент не существует. Так что здесь есть что-то вроде отношений клиент-сервер.
Двигатель очень большой кусок головоломки. Я хотел бы знать следующее: как бы вы разработали «публичный API» для этого движка?
Я думал, что механизм может быть очень простым веб-сервисом, который возвращает свое состояние посредством запросов к RESTful API, но я обеспокоен тем, что разработка самого механизма как веб-приложения может привести к неправильным программным решениям. (Например, если бы я выбрал микро-фреймворк MVC, у этого API действительно не было бы представлений ... он просто возвращает сериализованные объекты через JSON или что-то в этом роде. Плохо ли использовать MVC для такой службы, как это? )
Моя другая идея состояла в том, что движок будет просто консольным приложением, и позже я напишу какой-то мост для передачи данных между ним и веб-приложением. (Мост может быть действительно любым. Я имею в виду, что веб-сервер и игровой движок могут бездействовать на IRC-сервере и обмениваться своим состоянием по каналам.)
Какой подход вы бы выбрали (разработать как веб-сервис или разработать как отдельное приложение и связать его позже) и почему?
Спасибо, Робби.
РЕДАКТИРОВАТЬ: Таким образом, я думаю, это относится к разработке игр. Чтобы уточнить, я собираюсь написать движок карточной игры. Я пытаюсь найти лучший способ представить API движка, чтобы он мог быть интегрирован в будущем с веб-клиентом и клиентом AI.
У меня даже здесь не было учетной записи, так что привет :)