Game Progression Simulator
Simulate gameplay, game systems and moment-to-moment interactions in your games using flow charts and graph nodes. Design your game model. Define the logic of each execution step. Play the model and watch how it behaves. Iterate your design faster and explore your ideas before moving to the prototyping phase of development.
(This is my master's thesis project, still under development. Features may be broken or missing. Feedback is greatly appreciated!)
How does it work?
- Scenario Mode: the main flowchart editor. You can model a game/system by creating flow blocks called Phases. Phases can exist on their own, or connect to form constrained sequences in the model flow. On null selection, you can edit the current model's Variables and Parameters (more on that later).
- Create a Phase/Comment: RMB on empty.
- Edit Phase logic: double-LMB on Phase.
- Contextual Menu: RMB on Phase.
- Connect a Phase: LMB on a Phase output port (dots on the right), hold and release on another Phase input port (white dot on the left). Type of connections:
- Flow Connection (white): funnels the flow to one of the connected Phases only.
- Unlock Connection (yellow): toggles the state of a Phase from "locked" to "playable". (If a Phase has many incoming Unlocks, only one is needed to make it "playable", besides active Requisites.)
- Requisite Connection: similar to an Unlock Connection, but ALL Requisites must be satisfied first. (If a Phase has many incoming Requisites, all of them are needed to make it "playable", besides active Unlocks.)
- Flow Connection (white): funnels the flow to one of the connected Phases only.
- Create a Phase/Comment: RMB on empty.
- Phases Mode: the data logic editor. It shows up automatically when you double-click on a Phase in Scenario Mode. Here you can also edit the current model's Variables and Parameters (more on that later). Phase logic is intended to define actual behaviour that alters the value of variables. Logic is achieved by connecting graph nodes appropriately:
The graph node updates automatically when edited for preview purposes: what you see is what you get when a given Phase is executed in Simulation Mode.Input Nodes Read values from your current model. Output Nodes Define behaviour:
- Update: apply values at execution.
- Gate: apply entry conditions for execution.Other Nodes Provide functionality such as simple math, random numbers, etc. - Create a Data Node: RMB on empty.
- Rename a Data Node: double-LMB on Node.
- Contextual Menu: RMB on Node.
- Connect a Node: LMB on a Node output port (white dot on the right), hold and release on another Node input port (white dot on the left).
- Create a Data Node: RMB on empty.
- Simulation Mode: play the model you built to see how it behaves. You can play manually by clicking on individual Phases, or run an automatic playthrough in real-time where decisions are made randomly. Each run generates a plot chart that displays the current value of variables and a Phase history.
What are Parameters and Variables?
Parameters are used to define different model behaviours without manually editing each single Phase. After defining a base value for Parameters, you can create a new Configuration to override such values and see how different values play out in Simulation Mode by simply switching to a different Configuration.
Enough reading, get me started!
- Create a Phase, call it "Enter dungeon".
- Create other Phases, call them "Fight crittles", "Loot", "Fight goblin", whatever; place them and connect them as you wish.
- Create the last Phase, call it "Exit dungeon". In the Inspector, mark the "Gameover" checkbox. Include this as the last Phase in your flow.
- Go to Scenario Mode and play it manually.
- Add Variables that represent XP, coins, monsters killed. Double-click Phases and make them increase or decrease values accordingly.
- Play your model again - now you are charting your variables correctly!
- Play around and try out whatever you can think of!
Leave a comment
Log in with itch.io to leave a comment.