![]() |
|
||||||||||
|
|||||
|
Все команды вываливать сразу на сервер слишком тяжко для сервера.
Обычно есть эмулятор сервера на клиенте, который дулирует часть серверной логики. Не понимаю почему проблема именно с квест менеджером? Остальные данные приложения вы же как-то получаете обрабатываете и храните. Данные квестов ничем не отличаются от других игровых данных. Есть конфиг, в котором прописаны параметры квестов. Конфиг общий для сервера и клиента. Юзер что-то делает на клиенте. Если условие квеста выполнено, то даем награду. Сервер пишет в БД, что квест такой-то пройден. Только писать сохраняшки в отдельные ХМЛ файлы это еще круче чем дырочки в туториале =) Если не нравятся реляционные СУБД, попробуйте, например, MongoDB. Сознаюсь, дырочки в туториале я однажды тоже делал. Такие же отговорки, что надо быстро и просто. Но мне это очень не понравилось и больше я так не делаю. Считаю, что если пришлось делать дырочки, то есть явные проблемы с архитектурой. Напрмер, у визуальных эментов должны наличествовать enable() и disable() методы, которые не только на 100% заменят дырочки, но много где и как могут быть использованы.
__________________
Сам себе репортер Последний раз редактировалось terbooter; 07.11.2011 в 14:09. |
|
|||||
|
Регистрация: Nov 2009
Сообщений: 56
|
Цитата:
Я решил сделать квест менеджер двумя способами(Благо запас почти месяц) Первый, который я начал сейчас реализовывать состоит в следующем. Все квесты прописнны в xml файле.Например так: <quests>
<quest id = "1" type = "bulding" award = 20>
<results>
<result buldID = "17"/>
<result buldID = "18"/>
</results>
</quest>
<quest id = "2" type = "bulding" award = 25>
<results>
<result buldID = "25"/>
</results>
</quest>
</quests>
После того как с сервера мне пришел айди текущего квеста, я в квест менеджере через здоровенный свитч либо через вектор беру инстанс квеста по его типу (в данном случае это type = "bulding"). В этом квесте есть слушатели на модель или еще на что то где храняться состояние аппликации.Я 2 слушателя на изменение модели построек.После того как модель пополнилась двумя айдишниками, то я диспачу событие QuestCompleteEvent(COMPLETE,award:Number).Контроллер слушает это событие и отправляет его значение на сервер, после этого приходит другой айдишник квеста.И так далее Второй способ схожий с первым.Исключение лишь составлет то что все квесты будут храниться в БД и отсылаться будут в виде JSON или OBJECT.А дальше принцип такой же. Последний раз редактировалось markII; 07.11.2011 в 14:58. |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:55. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|