/Perimeter

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

Периметр | Perimeter

Perimeter

Linux Build Windows MSVC amd64 Build Windows MSVC amd64 Build Windows MSYS amd64 Build Windows MSYS amd64 Build

Join the chat at https://t.me/PerimeterGame

About

Perimeter is a real-time strategy video game with unique gameplay elements such as terraforming deformable terrain, morphing units, energy network, protective shield and surreal worlds.

Game needs assets/resources (3D models, textures, sounds, texts, configs, etc.) to run which can be obtained from purchased games in physical copies or digital stores.

Some parts may still need fixing or be experimental, expect some unexpected behavior, artifacts, bugs or crashes.

Issues for feature requests, suggestions, propositions, bugs, pull requests and other contributions are welcomed.

Лицензией | License

© ООО "КД ВИЖЕН" (Калининград) | © LLC "KD VISION" (Kaliningrad)

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

The whole code, except 3rd-party libraries, is published under the GPLv3 license. Code of 3rd-party libraries (where another license is specified) is published under the license of these libraries.)

Compiling and installing

There is instructions available in:

English

Enhancements from original game

  • 64 bits support
  • Frame selection in battle/multiplayer menu

Repository contents

  • Source/ - Contains source code for the game and tools, most folders purpose can be guessed but some noteworthy:

    • Configurator - Unknown - GUI utility distributed with game that allows players to change language and other settings.
    • EasyMap - Unknown - Some kind of map demo.
    • EFFECTTOOL - Unknown - Seems to be a tool for editing effects
    • Exodus - Working - Contains helper code and libraries for porting game outside Windows/DirectX (unrelated to game Exodus faction)
    • Game/ - Working - Contains entry point for game in Runtime.cpp and other game related code.
      • Scripts - Working - Destination folder for generated hi/cppi files from .prm script files, these are compiled using XPrm
    • HT - Working - From "HyperTreading", contains some threading related stuff
    • Network - Windows - Contains high abstraction networking code which is used from other parts of game and also low level networking code used by higher abstraction networking code.
    • PlayOgg - Windows - Handles .ogg files loading and playing using a dedicated thread.
    • PluginMAX - Working - Handles game 3D models loading from M3D/L3D files. Name comes from "3ds Max" which was used originally for creating and exporting these models.
    • Render - Working - Provides graphics/rendering abstraction API, uses DirectX APIs under the hood which is provided by dxvk-native and Exodus outside Windows platform.
    • Scripts/ - Working - Contains .prm files that are compiled using XPrm tool, *Library files that are loaded by game at runtime which contain some game configs/data and Texts.tdb containing ingame texts. Some game copies may contain a copy of this folder.
      • Triggers - Trigger chains containing maps and AI triggers/behaviors.
    • Sound - Windows - Provides sound effects abstraction API, uses DirectSound under the hood.
    • Terra - Working - Seems to contain deformable terrain related code.
    • TriggerEditor - Unknown - A GUI providing library which could be called from debug builds of game to edit Trigger chains.
    • tx3d - Working - "Procedural 3D Texture Library", used by Terra and SCodeInterpreter
    • UserInterface/ - Working - Handles game UI such as main menu and submenus, ingame HUD and inputs.
      • SCodeInterpreter - Working - Interpreter for chain history files seen during main menu and campaign.
    • Util - Working - Utilities for game and other modules.
    • XPrm - Working - Tool for compiling .prm into declaration/implementation files such as hi/cppi.
    • XUtil - Working - Previously a separate library containing various X* named helpers for different projects, currently only the essential stuff for the game remain. Some removed stuff may be need to ported from original XUtil sources for the rest of tools.
  • XLibs.Net/ - Contains some library headers and binaries

  • MSDXSDK_02_06/ - DirectX SDK used by the game

Unknown - Not tested, not compilable with modern compilers nor available in more platforms than Windows.`

Windows - Compilable with modern compilers but not available in more platforms than Windows.

Working - Compilable with modern compilers and available in other platforms such as Windows and Linux.

Meta issue for tracking code modernization/porting progress: KD-lab-Open-Source#58