Я пытаюсь написать простую RPG. Пока каждый раз, когда я пытаюсь запустить его, он становится беспорядочным, и я не знаю, как организовать что-либо. Поэтому я начинаю с того, что пытаюсь прототипировать новую структуру, которая в основном представляет собой структуру MVC. Мое приложение запускает выполнение в контроллере, где будет создано представление и модель. Затем он войдет в игровой цикл, и первым шагом в игровом цикле будет сбор пользовательского ввода.
Пользовательский ввод будет собираться частью представления, потому что он может меняться (3D-просмотр будет напрямую опросить пользовательский ввод, тогда как, возможно, удаленный просмотр получит его по telnet-соединению или в виде командной строки будет использоваться System.in). Ввод будет переведен в сообщения, и каждое сообщение будет передано Контроллеру (вызовом метода), который затем может интерпретировать сообщение для изменения данных модели или отправить данные по сети (поскольку я надеюсь, что у вас есть сетевой вариант).
Эта технология обработки сообщений также может использоваться в случае сетевой игры для обработки сетевых сообщений. До сих пор поддерживаю дух MVC?
В любом случае, мой вопрос: какой лучший способ представить эти сообщения?
Вот пример использования, причем каждое сообщение выделено курсивом: пусть говорят, что пользователь запускает игру и выбирает символ 2. Затем пользователь переходит в координаты (5,2). Затем он говорит в публичный чат: "Привет!". Затем он выбирает сохранение и выход.
Каким образом просмотр должен завершать эти сообщения во что-то, что может понять контроллер? Или вы думаете, что у меня должны быть отдельные методы контроллера, такие как chooseCharacter(), moveCharacterTo(), publicChat()? Я не уверен, что такая простая реализация будет работать, когда я перейду в сетевую игру. Но с другой стороны, я не хочу просто отправлять строки контроллеру. Это просто сложно, потому что действие select-character принимает одно целое, move-to принимает два целых числа, а чат принимает строку (и область действия (общедоступный глобальный), а в случае частного пользователя назначения); нет никакого реального набора данных для всего этого.
Также любые общие предложения приветствуются; я беспокоюсь об этом в нужное время? Я направился по правильному пути к хорошо продуманному MVC-приложению? Я что-то забыл?
Спасибо!