GZone/ru
From GZProject Wiki
Contents |
GZone
Основной проект, который объединяет всебе большинство технологий. Основной модуль с которым взаимодействует проект ClientAddin. Проект имеет в подчиненни два проекта, с которыми идет взаимодействие.
Source Code
Documentation
- GZone-Threads GZone - многопоточное приложение, в статье рассматриваются все виды потоков и их назначение.
- GZone-Release Описание процедуры создания нового релиза.
- GZone-Multigame Базовые принципы построения систем управляющих несколькими процессами, продолжение документа GZone-ActionPlan описание управления несколькими игровыми клиентами для решения одной задачи.
- GZone-JavaModules-Debug Подключение и отладка модулей написанных на языке Java (java.sun.com) к проекту. Используется среда разработки Eclipse.
- GZone-Interrupts Решение задачи блокировок и режим отмены ожидания событий и команд потока.
- GZone-InterProc Межпроцессорное взаимодействие Interprocess Communications (IPC). Рассматриваются потоки данных которые используются в приложении. Транспортный уровень и синхронизация передачи данных.
- GZone-Integrated Описывается универсальный подход для подключения любой игры к данному проекту. Описание должно состоять из общих принципов которые нужно соблюдать и описание базовых модулей. Документ на стадии разработки.
- GZone-Goals Основные задачи которые ставились до начала проектирования.
- GZone-GetResources Условные схемы по добычи ресурсов, дополнение к файлу GZone-ActionPlan
- GZone-Architecture Подробное описание структуры проекта. Документация должна включать больше разделов некоторые их которых рассмотрены только в виде отдельных тем. Такие как например: GZone-Threads
- GZone-App Краткое описание структуры предложения и модулей.
- GZone-ActionPlan Черновик по алгоритму управления персонажем. Описаны моменты которые еще не реализованы проектом, текст документа содержит много условных структур на логическом языке.
Структура
Проектное взаимодействие
library
Первый проект library необходим для подключения базового функционала. Данные передаваемые между проектами описаны в интерфейсами языка.
ClientAddin
Данные, которые передаются между этими модулями описаны в XML файле svnfile:trunk/GZ/interproc_clientaddin/xsd/InterprocClientAddin.xsd. По этому файлу сгенерирован проект svndir:trunk/GZ/interproc_clientaddin обеспечивающий работу с протоколом на языке С++. Для того, чтобы посмотреть детальное описание структуры проекта ClientAddin нужно пройти по ссылке.
Основные части
- svndir:trunk/GZ/GZone/gzunit Модуль использующийся в разных проектах, для связи с игровым клиентом.
Поддержка Java
Поддержка явы внутри проекта реализована в файле svnfile:trunk/GZ/GZone/JavaExt/JavaCommanderIQ.cpp. Этот файл в свою очередь завязан на два модуля, для обеспечения полной функциональности.
- svndir:trunk/GZ/GZone/Environment Специальный модуль обеспечивающий подключение модулей на яве
- svndir:trunk/GZ/GZone/JavaExt Расширение для загрузки jar файлов.
Модули
Схемы XML
Данные которые используються внутри проекта так же структурированы и передаются посредством XML.
- svnfile:trunk/GZ/GZone/xsd/Config.xsd Конфигурационнй файл.
- svnfile:trunk/GZ/GZone/xsd/GoodsConfig.xsd Файл настроек для GoodsCommander
- svnfile:trunk/GZ/GZone/xsd/HarvesterConfig.xsd Файл настроек для HarvesterCommander
- svnfile:trunk/GZ/GZone/xsd/TrainerConfig.xsdФайл настроек для TrainerCommander
Межпроцессорное взаимодействие
Производится межу GZone и ClientAddin. Реализация этого механизма находится в следующих файлах.
- svndir:trunk/GZ/interproc_clientaddin/xsd/InterprocClientAddin Сгенерированный проект по XML файлу протоколу, обеспечивает доступ к данным из языка С++.
- svndir:trunk/GZ/interproc_clientaddin Логика протокола, и реализация команд протокола
- svndir:trunk/GZ/InterProc Базовый функционал и реализация связи между процессами IPC (Interprocess Communications)


