Have you ever dreamed of an editor that easily turns your simulation grid-based game following an agent-based approach ideas into reality?
Simulation Game Editor (SGE) is a Python-based solution powered by PyQt5. Its aim is to help game modellers create grid-based simulation games using an agent-based approach without having to redevelop the basic interface and calculation functionality. Modelling a game in SGE essentially consists of defining the various structural elements of the game and setting variables.
SGE is unique compared with other pre-existing simulation development tools: it implements the notion of viewpoints, players, game actions and game phases directly into the structure of the model, like ready-to-use packs. SGE makes it possible to create distributed asymmetric simulations: each player can interact with the others according to their skills, their personal understanding of the situation and a specific computer interface running on a chosen computer terminal.
Calculate, test, develop but faster
SGE is like a puzzle, all the pieces are already here, you just need to give it order and custom to create your ideas.
- Examples
- example1.0.py
- mainClasses
- gameActions
- layout
- SGModel.py
- SGGrid.py
- ...
- Game
- myGame.py
We encourage you to start your own game with an example to better understand SGE. You can seek the documentation [here](link to online doc)
python 3.8+
numpy 1.24.2
paho-mqtt 1.6.1
PyQt5 5.15.9
PyQt5-Qt5 5.15.2
PyQt5-sip 12.11.1
SQLAlchemy 2.0.3
pyrsistent
matplotlib
pywin32
- add a method "displayBorderPov" (similar to SGEntity>displayPov) _ [ ] create a POV system to manage groups of symbologies
- correct the zoom
- unify font style sheets for SGEndGameRule
- add a modeler style sheet config methods for gameSpaces who don't have yet
- main window auto resize
- refractoring auto resize of text spacings in gameSpaces (using geometry)
- new gameAction : activate
- rename Update gameAction to Modify
- unify definition of setValue for the different classes
- create a recuperation system for simulation status with updateAtMaj functions
SGE can function in mqtt betwenn differents clients. Require a broker like mosquitto
-
new create a new entity (ex. newAgentAtCoords(), newAgentSpecies), or create a new game element (ex. newGamePhase())
-
get collect entities, objects or instances
-
nb to obtain the number of entities, objects or instances
-
set to set a value (ex. setEntities_withColumn(), setDefaultValues())
-
is to do a test (returns True or false) (ex. isDeleted())
-
delete to delete entities from the simulation (ex. deleteAllAgents())
-
do_ perform an action on an entity
SGE is developped under the supervision of LIENSs Laboratory (La Rochelle University, France) within different research projects. SGE answer to an academic need in serious game to have simplier ways to create serious games. SGE first version was presented at ISAGA 2023.
@nbecu Nicolas Becu @Neraliel Marine Regien @aossant Alexis Ossant
SGE is under open-source license (CECILL V2). The license allows modification, copy and distribution along with contract terms. Modified version should preserve CECILL V2 License.