What a neat little game. Nice work.
Play game
U-0071's itch.io pageResults
Criteria | Rank | Score* | Raw Score |
Overall | #1 | 4.250 | 4.250 |
Theme | #1 | 4.083 | 4.083 |
Aesthetics | #1 | 4.250 | 4.250 |
Gameplay | #2 | 4.167 | 4.167 |
Usage of DOTS | #2 | 4.500 | 4.500 |
Ranked from 12 ratings. Score is adjusted from raw score by the median number of ratings per game in the jam.
Usage of DOTS/ECS in this project
Room-based Partitioning
One of the goal of this project was to experiment with a room-based partition system.
The world is composed of rooms linked to each others.
At game start, we scan all room entities and store their index and associated cache in a partition singleton.
At the beginning of eache frame, dynamic entities check if they changed room depending on their position and store an add, remove or update event in a NativeParallelMultiHashMap (the key is the room entity), sending their entity index and cache.
Rooms read the hash map in parallel and update their buffer storing the room elements.
In gameplay systems and jobs, it allows to query all entities of a specified room and access their cache data by only querying the target room buffer (stored in the PartitionComponent of entities).
Baked flowfield
The other main experiment was to create a "baked" flowfield, ie a flowfield that will not be updated during game time and referencing for each world cell which direction to take to a particular type of intereset (food, work, etc).
But it was not particularly taking advantage of DOTS (other than being easily queried in parallel) on top of being limited for dynamic gameplay.
The next step would be to use such a flowfield for unfrequently updated paths while using a more dynamic pathfinding method to complete it.
Deterministic Gameplay
[SPOILERS] The game uses DOTS determinism as a game mechanic.
The goal of the game is to get a series of door codes (red, blue, yellow) and use them sequentially to get out.
All codes are re-rolled every Cycle (5min) in a deterministic way.
The player is given a LVL1 (basic) code every cycle, but can peek when someone else enters a code.
On death, we go back to cycle one and the simulation restarts, but all codes discovered will be valid for their given cycles.
Source Code Repo
https://github.com/Yoan-dev/U-0071
Percentage of original art created for this project
99% ! (all but the font)
Leave a comment
Log in with itch.io to leave a comment.