Skip to content

nbecu/SGE

Repository files navigation

SGE - Simulation Game Editor

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

How does it work ?

SGE is like a puzzle, all the pieces are already here, you just need to give it order and custom to create your ideas.

image

Folder hierarchy

  • 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)

Requirements

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

Future plan

  • 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

mqtt version

SGE can function in mqtt betwenn differents clients. Require a broker like mosquitto

syntax code of modeler side methods

  • 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

Context

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.

Authors and contributors

@nbecu Nicolas Becu @Neraliel Marine Regien @aossant Alexis Ossant

License

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.

About

Simulation Game Editor

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages