Движок "Сетевые Войны" с пакетом примеров для быстрой разработки компьютерных игр и других графических программ под ОС
Windows с поддержкой MMO, SQL Server, 2D и 3D графики
на API DirectX 11.
Начиная с 2005 года, в свободное от работы время, занимаюсь развитием своего движка, который
идеально подходит для быстрой разработки под ОС Windows любого типа графического и мультимедийного ПО:
2D и 3D десктопные игры, в т.ч. с поддержкой
MMO, CAD/CAM системы, ПО для работы с захватом и обработкой изображений, для работы с видео,
компьютерные осциллографы и программы работы с графиками, отображающими данные, как в 2D,
так и в 3D и т.п.
Движок пишется на Visual C++ с использованием библиотек DirectX SDK и
Win SDK. Предназначен, как для разработки серверной, так и клиентской части программных продуктов. Поддерживает
x86- и x64 совместимые компьютеры с DirectX9
совместимой видеокартой и ОС Windows Vista и выше, поддерживающей API DirectX 11.
Основной средой разработки является Microsoft Visual Studio 2013 (C++) и
Team Foundation
Server 2013 (MSF for Agile Software Development)
для управления версиями и коллективной работы над проектом через Интернет.
Для проектирования движка, определения взаимодействие модулей и классов используются диаграммы UML 2.x.
Движок содержит модульную архитектуру, которая обеспечивает ему гибкость (легкую модернизацию). Множество модулей, расширяющих функциональность движка и
отличающихся назначением, подключаются к ядру движка по мере необходимости, обеспечивая работу, как сервера, так и клиента:
• Работа с текстурами.
• Рендеринг спрайтов (2D графика).
• Быстрый рендеринг Unicode текста.
• Обработка событий клавиатуры, мыши, приложения и таймера.
• Многокомпонентный GUI (графический интерфейс пользователя).
• Воспроизведение звуков (wav-файлов).
• Воспроизведение медиа с рендерингом видео (mp3, avi и т.п.).
• Рендеринг 3D графики (сетки, кейфреймовая анимация, HLSL 5.0).
• Настройки: видео, аудио, управления, камеры, лога.
• Физика: обработка движений, столкновений, стрельбы и взрывов.
• Сеть: сервер, хост, клиент, комплект стандартных протоколов.
• OLE DB провайдер для MS SQL Server, таблицы аккаунтов и чата.
Функционал движка постоянно наращивается итерациями/спринтами по Agile/Scrum методологии,
чтобы в дальнейшем позволить быстро разрабатывать высокотехнологичные AAA проекты, включая
MMO игры.
На текущий момент SDK состоит из 3 частей:
• 2D графика. Всё необходимое для создания 2D игр.
• 3D графика. Всё для создания 3D игр с поддежкой игры по сети.
• Сервер. Всё для создания MMO-сервера с БД на MS SQL Server.
Также в движке поддерживается:
• Компилирование для платформ Win32 и x64 для возможности
использования программой более 4 Гб ОЗУ.
• Настройка видео (рендеринга): выбор уровня фич (9_2-11_0), переключение между оконным режимом и полноэкранным с выбором разрешения
и частоты монитора, настройка качества сглаживания, включение/выключение синхронизации.
• Различные режимы отображения: оконный, полноэкранный, многооконный. Многооконный режим очень удобен для сборников игр,
где игры разного или одного типа могут быть запущены в разных Windows-окнах с идентичными настройками
DirectX.
• Простые эффекты, в том числе в различных комбинациях: освещение, тень, отражение, изменение прозрачности.
• Свой GUI: диалоговое окно (Window), диалоговое сообщение (Message),
текст с выравниванием абзацев, бегущая строка, гиперссылка,
кнопка (Button), строка ввода данных (EditBox), список (ListBox),
выпадающий список (ComboBox), выбор элемента (RadioGroup), включение/выключение
(CheckBox), 2 вида прокрутчика (Slider), 2D и
3D графики (Chart). Планируется множество новых.
• Поддержка многоязычности для издания на международном рынке. Работа с Unicode текстом через функции
GDI+. Пока есть ошибки при вводе текста в EditBox-е с языком написания справа налево.
• 2D динамический редактор содержимого мира, который после утверждения изменений сразу же их
отсылает по клиентам и делает их там доступными.
• Своя БД без поддержки SQL-запросов. Использует текстовые Unicode-файлы
для хранения аккаунтов, статистики игры и содержимого мира, включая параметры "движения" для объектов, изменяющих своё положение или
состояние во времени. БД полностью дублируется в ОЗУ, где программа игры работает с ней, а в ПЗУ только периодически сохраняется
для резервного копирования.
• БД SQL Server для нагруженной работы на выделенном сервере. Поддерживает
SQL-запросы и пригодна для всестороннего анализа действий игроков.
• Система защиты программы от несанкционированного использования на основе привязки к множеству различных аппаратных
особенностей компьютера пользователя с online активацией.
• Система шифрования контента с быстрой дешифровкой, для защиты от несанкционированного копирования.
• Работа со звуком через DirectShow, DirectMusic, DirectSound, XAudio2 (в том числе
3D звук).
• Рендеринг видео в текстуру из медиа-файла в реальном масштабе времени средствами DirectShow.
• Настройки управления, аудио, видео и других базовых параметров игры с сохранением в реестре Windows.
• Создание MMO сети на базе DirectPlay с поддержкой пиринговой
(клиент-клиентской) связи. Модуль содержит примеры протокола регистрации и авторизации на сервере, а также пример загрузки обновлений
через пиринговую сеть, регистрации, авторизации, чата, загрузки контента, автообновления.
• Работа с рекламой. Добавление рекламы (текстуры для билбордов, 3D-модели, видео, звук) в игру через
панель администратора с дальнейшей рассылкой её по клиентам. Ведение статистики, сколько раз игроки её просмотрели/прослушали во время
игры.
• Магазин игр. Возможность загрузки из лобби только нужных игр и нужного контента.
• Контроль сетевого трафика. Ведение статистики количества переданных сообщений и их общий размер в байтах с отображением
в виде графиков.
• Модуль для разработки скренсейверов с 3D сценами из игры.
0.44b GitHub-версия:
https://www.github.com/Jimnik79/NWE
0.44b RAR-версия:
NetWars Engine SDK.rar
0.44b ZIP-версия:
NetWars Engine SDK.zip
Краткая презентация (10 стр)
Полная презентация (25 стр)
Немного об истории становления движка и планах на развитие.
Часто задаваемые Вопросы и Ответы.