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)

../../_images/readme_edit.png ../../_images/readme_repo.png

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.