This project is the practical part of my Bachelor’s thesis. The project is a 2D multiplayer RTS platform game.
The goal of my thesis and this project is to combine different fundamental and otherwise interesting game design mechanics from platformer and real-time strategy games and hopefully resulting in a genre of RTS on platforms.
As mentioned before, this project is a real-time strategy game, where the game play core mechanics would be: gathering resources, building different structures and units, making strategic choices and fighting one’s enemies. The game play would take place on platforms (ledges). The units can travel between different platforms, which are accessed by creating a bridge between them or jumping from one to another.
The main idea of the game is to offer novel experiences to most of the real-time strategy players by mixing RTS mechanics with a platformer game. These experiences include making fast strategic choices, moving around large armies between platforms, giving the players the choice of which platforms they will connect with each other by building a bridge, barricading themselves in, and so on.
The main plan is to implement the core mechanics of the game during this course. As this project is also part of my Bachelor’s thesis, I will spend even more time for this project and add many smaller features, art and hopefully music through the semester.
Firstly, I am expecting to have difficulties with expressing the player the number of units in one small spot, this might also be an overall game design problem as one could stack the whole army as one unit, and it will have very strong offensive and attack. This very strong force could be balanced by adding units that have an area attack, to make damage to all the units in the same area, which would respectively result in killing a massive number of units with one strike.
Secondly, I need to produce a lot of art and
music for this game, and I am not a musician. :(
This part is currently planned for the future CGP courses. Thirdly, I am planning to implement multiplayer support for this game. Unity has quite easy to use, but inefficient High Level API for building multiplayer games in Unity. Therefore I will try out the Transport Level API, which should be a bit more difficult to implement, but the main problem will be filtering out only the most important data that should be sent to each client, optimizing the network bandwidth usage.
- Audacity – recording/editing sound effects.
- TBA – for art.
- Placing house prefabs on a platform.
- Checking nearby houses’ collisions while placing a house prefab.
- Checking if the mouse is inside platform's boundaries does not use Unity Physics2D.
- Checking intersection of boundaries between houses for building does not use Unity Physics2D.
- First implementation of box selection.
- Deleting objects.
- Sometimes the SpriteRenderer's color goes fully transparent.
- This will be fixed when new type of highlight for selectables is introduced.
Important keybindings for this milestone.
- B - Toggle building mode on and off.
- Left-Click - Tries to build the house in mouse's location.
- Moving mouse to the edges of the screen is used as one of the ways to navigate around the map.
- Using arrow keys is the second way.
- X - Selects all units. (For testing purposes)
- Delete - Destroys the first object in selected objects' set.
- Right-Shift + Delete - Destroys all selected objects.
- Right-Click - Sets target for selected units.
- Left-Click - Current implementation of box selection.
- Shift + Left-Click - Select additional objects with box selection.
- Creating units from a house (after selecting a house).
- Reducing player’s resources after creating units or placing houses.
- N - Select a building first, then pressing N spawns an unit.
- Spawning units by pressing a button on UI (after selecting a house).
- Prevent units crossing the edge of the platforms (islands).
- Creating a pathfinding system between multiple platforms.
- Making units move using pathfinding system.
- Selecting house for building by pressing a button on UI.
- Finish current bridge building.
- Adding 2 units: Worker and Scout.
- Simple resource gathering.
- Some pictures.
- Food and wood.
- C - Toggle bridge building.
- Lose condition when destroying all main houses and workers.
- Reduce resources when building a bridge. (Depending on length maybe?)
- Refactor some code. (BridgeConstructor)
- (Main house) House for spawning workers.
- Fix bridge parent "bug".