Периметр
Чат для обсуждения: https://t.me/PerimeterGame
(с) ООО "КД ВИЖЕН" (Калининград)
Весь код, за исключением сторонних библиотек, публикуется под лицензией 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.