Project Plan
First, come up with your game idea and put it in the readme.md file in your GitLab repository so that it's always visible when you open the repo. It's always good to see what game you're working on. Also, add sources of inspiration. (Write more than in the example)
If you, as a team, have an idea for the game you're going to make, or you're still deciding between several, then create a Feature List. It means what you plan to be able to do in this game. What's most important, what could be added later, etc. The easiest way is just to create a Google Sheet where you list everything in order and later categorize it.
OpenCityBuilder
Required |
Might implement |
Would be cool |
---|---|---|
Isometric view |
Schools/education |
Megablocks |
Build residential |
Garbage management |
Casinos |
Build commercial |
Happinness levels |
Upgrades |
Build industrial |
Parks/entertainment |
Laws |
Landmarks |
Energy production |
Technologies |
Roads |
Industrial AI |
|
Energy managment |
Transportation |
|
Sewage managment |
Paid features |
|
Water managment |
Autopilot |
|
All-run-once |
AI = Player 2 |
|
Money |
||
RCI balance/income |
Once you have a Feature List, you can choose what the most important and basic things are. (In the example, building areas are the main thing, so the most basic version of the game would be a small 10x10 map viewed from above, where clicking on a square will place a building there)
It's advisable to look at the given deadlines to see what things need to be ready by which dates.
The first and second deadlines are known. The game must be multiplayer by the first one and the core logic in place and deployed to the server by the second.
Therefore, during the first two sprints (the first four weeks), you must create a server and a client. The game logic should work on the server, and between the client and the server, only the tile where you want to build a building should be sent, for example, as a list.
And the same way you can think about the next sprints and create a general project plan where the expected work is divided between sprints (two-week cycles).
Sample Plan
SPRINT 1 (WEEK 3 - WEEK 5)
Week 3
Creating the project page
Select the best game idea
Deciding on a game engine
Learning LibGDX basics
Week 4
Create a game skeleton
Setting up prototype client.
Setting up prototype server.
Establishing first connection between client and server, players are synced to server.
SPRINT 2 (WEEK 5 - WEEK 7)
Week 5
Continue learning LibGDX basics
Defining the game board area
Week 6
Adding basic terrain features
Map generation (without basic RCI)
Main menu for the game.
SPRINT 3 (WEEK 7 - WEEK 9)
Week 7
Implementing at least one type of each building/area type
Implementing roads
Adding basic building features
Week 8
Implementing basics of city building
Players can place buildings
Player can interact with terrains and buildings
SPRINT 4 (WEEK 9 - WEEK 11)
Week 9
Improve UI
Game lobby
Money and using it
Week 10
Add more to RCI implementation
Adding animations for building different structures
Change over to isometric view
SPRINT 5 (WEEK 11 - WEEK 13)
Week 11
Tools to add and delete tiles
Continue change over to isometric view
RCI needs
Week 12
Implementing more buildings / structures
Add some kind of AI (ex: cars or citizens walking around)
SPRINT 6 (WEEK 13 - WEEK 15)
Week 13
Improve RCI ratios/needs
Correct/rewrite bad code
Playtesting, balancing, bug fixes
Week 14
Game performance fixes
Adding sound to game
Game performance, client-server sync improvements once needed if in-game feature set is complete.