/Perimeter

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Периметр

Чат для обсуждения: https://t.me/PerimeterGame

(с) ООО "КД ВИЖЕН" (Калининград)

English

Весь код, за исключением сторонних библиотек, публикуется под лицензией GPLv3. Код сторонних библиотек (где указана иная лицензия) публикуется под лицензией этих библиотек.

Состав репозитория

  • Source/ - проверенная ветка, которая работает с ресурсами из Steam.
  • XLibs.Net/ - header-only библиотеки используемые игрой, реально используется:
    • boost/
    • stl/ - самописная обертка над стандартной библиотекой
    • VC7.1 - SDK от микрософта (нужны только либы)
    • VC8 - SDK от микрософта (нужны только либы)
    • XPrm.exe - утилита генерации, нужна если вы хотите собирать Scripts
  • MSDXSDK_02_06 - DirectX SDK используемый игрой

Что потребуется

Проверено что игра собирается в окружении Windows XP / Windows 7 / Windows 10 + Visual Studio 2005. Кроме того потребуется установить Windows SDK 7.1 для воспроизведения видео, скачать можно по ссылке:

https://developer.microsoft.com/ru-ru/windows/downloads/sdk-archive/

В самом низу есть версия для Windows 7 и Windows XP (на Windows 10 он тоже подойдет).

Сборка

Все нижеследующее уже сделано для папки Source (возможно, потребуется скорректировать пути и установить нужные SDK). В Visual Studio 2005 достаточно просто выбрать проект Game и Rebuild.

Игра собирается без особых проблем, главное правильно настроить Additinal Include Direcotires и Additional Link Directories, об этом ниже. Основная проблема была с кусочками кода написанными в стиле:

for (int i = ...) {
  //...
}

//дальше идет использование i

Но современные компиляторы так делать не разрешают. Исправить это легко, - достаточно вынести определение переменной за цикл.

Пошаговая инструкция по сборке

Открываем в VS2005 solution Source/PerimetrAddon.sln.

ВАЖНО Если вы сделали clean, to вам нужно восстановить файлы triggereditor.* из репозитория, потому что он не собирается!

Последовательность в которой нужно собриать подпроекты:

  • Scripts
  • PluginMax
  • Terra
  • Tx3D Library
  • TriggerEditor - есть ошибки, можно не собирать
  • Peer
  • Render
  • PerimeterSound
  • Game

Выбираем подпроект в меню студии и выполняем Project Only -> Build Only <Имя проекта>, просто Build не будет работать так как есть ошибки в TriggerEditor, сама игра это проект Game его выход это Game.exe.

изображение

Для Source зависимости прописаны и собираются в Win7. Возможно потребуется внести корректировки.

Для каждого проекта нужно добавить следующие пути поиска *.h файлов (Project Properties | C++ | General | Additional Include Directories):

  • XLibs.Net\boost
  • XLibs.Net\stl
  • XLibs.Net

ВАЖНО Помещать их в самый конец списка. изображение

После этого выбранный проект должен собраться.

Для проекта Render помимо XLibs.Net нужно добавить:

  • Microsoft SDKs\Windows\v7.1\Include
  • MSDXSDK_02_06\Include - Должен идти после v7.1

Для проектов **PerimeterSound, Game помимо XLibs.Net нужно добавить:

  • Microsoft SDKs\Windows\v7.1\Include

Все проекты собраны, кроме Game - он не линкуется, но компилируется. Что бы это исправить нужно добавить следующие пути поиска *.lib файлов (Project Properties | C++ | Linker | Additional Library Directories):

  • Microsoft SDKs\Windows\v7.1\Include
  • MSDXSDK_02_06\Lib\x86
  • XLibs.Net\VC7.1
  • XLibs.Net\VC8

Запуск игры

Скопируйте файлы GameDBG.exe, PrmEdit.dll, ScriptEditor.dll, TriggerEditor.dll и Scripts\GameShellSq.prm в папку с игрой из Steam.