The main goal of this project is learning. Working on a "big" project like this helps me to get a better concept of video game development and also improves my programming skills. While also giving me a small dive into other areas like shaders, art and game AI. My current focus is building a solid fundament as a base for my game. Therefore I want to create and improve most game-systems before starting to push more content like characters and abilities or improving the sprite quality.
My general idea for this game is:
- The world consists of Tiles which can contain TileContent(e.g. grass). TileContent can have contents(e.g. trees) and characters which react different to damage(e.g. fire damage burns tree).
- Abilities work against enemies but also against friends. Abilities can deal damage to lots of tiles or put effects on them (e.g. burning), so friendly fire is not always preventable.
- Player and AI have different rulesets.
Player: can only move or cast abilities a certain amount before the turn ends.
AI: each unit has its own AI and can move and cast per turn, but abilities are delayed so that the player is able to react. - Level can contain bosses, which can be multiple tiles big or have an objectives in the world.
- A rework for AI and indicator system which are currently only prototypes and a few extensions to the effect system
- Tile Editor: add or remove new tiles, the world can be more than a rectangle (v0.2)
- First boss: boss system, the need for extensions in path finding because of its size (multiple tiles) (v0.3)
Only selfmade assets are used besides two packages: Pixel Perfect Camera and Text Mesh pro.
- Each character and enemy have 2 unique abilities (a fireball which deals damage and burns the tile or a poison wave which coats all nearby tiles with poison)
- 2 different TileContents (water and grass) and Contents (tree and rock)
- The game is also capable of local multiplayer and a prototype AI looking for the best path and casts one of its abilities
- Indicator for damage and effects which updates dynamically, e.g. on movement, or changing color depending on the damage type. It also shows possible casts, tiles in range for movement and hover
- Self made path finding with priority queue and a simple UI
- 4 Effects: thunder which deals also damage to all nearby water tiles, poison and burning deal periodic damage on turn end or by walking over it. Spider webs which prevents movement
- Environmental factor: Fire destroys trees, water tiles halve the fire damage and spiders are immune to poison
- Functional death of Units
- New Editor functionalities: a script changes alpha values on sprite import, helping shaders to draw an outline; a BuildWindow to simplify editing the world with undo and a custom inspector to generate a new clean world