Recycle abandoned robots, sell their parts for upgrades. My first large assignment @ FH Salzburg
Built from the ground up using SFML.net and C#, this game was my largest project up to that point.
As part of my studies at the FH Salzburg I have to create a video game each year using all of the skills we learnt. This was the first of these 4 projects.
The gameplay loop consists of running around the map and attacking the enemies.
Upon defeating an enemy the player is rewarded with a some experience points and a component that can be sold for cash.
After the player has collected enough XP, they level up and can choose from 3 effects (Health Up, Damage Up, Inventory Size Up). Leveling up also unlocks new items in the shop.
Working only with the SFML library for drawing things on the screen means that the programmer (hey thats me) has to implement all the other things you would typically find in a game engine. (Collisions, State Management, Input Handling, UI, ...)
Everything you can see in the game is represented using GameObjects that can contain a number of Components.
These GameObjects should not define any behavior by themselves, rather their behavior should be defined by assigning Components which are small blocks of reusable code.
As the project came to an end I understood working with why people use issue trackers. Before I would just start coding and keep coding and keep coding...
Which is fine when you work in smaller projects where its easy to keep everything in mind but as the project grew larger and larger it got increasingly difficult to keep all the new features and all the bugs in mind. Im sure you will be able to read more about this in the future as my second multimedia project is currently in development, and this time I am working in a team.
tl;dr: Use an issue tracker.
Something cool i found is .Net's JsonSerializer which makes it very easy to serialize and deserialize objects to a json file. I made extensive use of this when defining all the available items, enemies and input actions.
One thing thats pretty neat is the UI system i made after getting fed up with tgui. It's a node based system thats easy to understand (might be biased since i wrote it) and would have organized my scene structure in the same way as i did my UI nodes if i had the time.
Alright, the organisational issues first.