SS3D
SS3D copied to clipboard
Gamemode system
Summary
The gamemode system should work with along the round system managing the game loop. It defines objectives, jobs and events.
Goal
Provide a base for the basic SS13 game loop, where you are assigned objectives and has to complete them during the round.
Document
The gamemode system should assign objectives to the players that join a round, these objectives have to be as modular as possible.
Objectives:
- The objectives have to be as modular and broad as possible, as we want custom objectives to exist. Some examples can be: "Check is X item is in the player's inventories", "Check if the player killed X person with a Y method", "Check if player make someone slip", "Check if the station bank made at least 10k$ space dollars recycling".
- These objectives have to be gamemode defined, as a "Nuke" gamemode can require players to deactivate a nuke while other gamemodes don't.
- The objectives can be personal (player only), station (related to the station), and shared (common to the crew).
- The objectives can be defined based on the player's job.
Jobs
- Jobs will be gamemode defined too, in order to make those more modular and easily changeable.
- Jobs are automatically assigned to the players that are ready when the round starts, based on personal preferences.
Acceptance criteria
Required for a simple implementation (can be discussed in the Discord server, simply ping the author)
- [ ] The system works detached from the round system.
- [ ] The system assigns objectives to the players once the round starts.
- [ ] Objectives are implemented using interfaces and can easily be created and modified.
- [ ] Objectives are created using scriptable objects.
- [ ] Gamemodes are created using scriptable objects.
- [ ] The data flow is working, even if no data is populated.
Dependencies
Round system