eXtensible Project System for Arma 3
An Arma 3 Framework Mod
- For users: the base of many XPS mods to come
- For Developers: an extensible platform and library set to reduce the time to develop common OOP objects
[ Road Map ] [ Wiki ] [ Discord ] [ Source Documentation ]
- Bring an Object-Oriented Structure to your Mod
- Interface Contracts
- Type Definition Preprocessor
- Type Definition Caching Support
- Optional Unit Testing framework
- Singleton / Static type creation
- Common Core Object Libraries
- Use Built-in OOP library types for common utiltiies
- A* Searching
- Job Scheduling
- Collections
- Events, Delegates, and Multicast Delegates
- Type Safe Enumerations
- Exceptions and Exception Handling
WIP Library Objects :
- Map and Road Pathfinding
- Hex or Square Map Grids
AI Features
- Add Behaviour Trees to AI (AI Entities or 'behind-the-scenes' Scripted AI)
- WIP - Use Action Planning / Utility AI for short or long term planning
- WIP - Replace the Danger/Formation FSM behaviors
This project started as the eXtensible Planning System - a mod to introduce Behaviour Trees, Utility AI, and Goal-Oriented Action Planning. I was using Hashmaps to create a simple OO-design pattern prior to the introduction of Hashmap Objects.
Since the announcement to introduce a new hashmap command 'createHashmapObject' for v2.14, this project has been rewritten to include additional features to the framework:
- A Preprocessor and Type Builder to add additional features to hashmap objects.
- A better and standardized OOP approach (an example is to include an Interface-style contract system for building objects) and a general framework to foster better Mod compatibility at the scripting level when using those objects.
- Unit Testing UI and framework
Ultimately, it is my hope and goal to provide more creativity in the community. All constructive criticism and ideas are welcome here.
-Crashdome
Copyright (C) 2023 XPS Group
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.