Red is a farming and idle-combat game where the player must upgrade their units by farming and improve their farm through combat rewards. This was a solo project where the art, programming, and sound/music were all done by myself. Even though the project timeline was just a short month, the game ended up quite feature rich, including a fleshed out farming system with placable farm tiles, various different plants/seeds with different effects, as well as a fully featured combat engine with unit leveling, stats, items/equipement as well as special unit skills. Towards the end of the project, networking aspects were added to allow players to save/load data tied to a username. I also put in a simple leaderboard system so that people could compete and see who was making the most progress through the levels.
The core farming system takes place on an isometric grid and allows the player to harvest plants and sow seeds by placing on the tiles. There is a shop and inventory feature to buy seeds/structures and place them accordingly. The HUD gives the player an overview of their core currencies, including coins and the berry counts - which are relevant to unit level-up and improvements.
The combat system is an auto-batter, so no player input is needed. Units have an auto-attack that triggers on an interval based on attack speed, and build up mana over time. Once their mana is fully charged, the unit-specific special skill is used; This can be anything from a very powerful attack to a party-wide heal and buff. Units have 3 core stats that are relevant to combat - strength, health, and speed. Strength boosts the players damage, speed increases the players attack speed, and health is pretty self-explanatory!
There are various different ways to enhance a unit, the most common way is leveling them up by feeding them strawberries - which can be farmed. This uses a traditional leveling curve, so as the unit reaches higher levels it becomes harder to level up. Additionally, units can also equip items to increase their stats - these items can be farmed as well. There are 6 items in the game that can increase player stats, two small and big variations for each stat type.
Tech
The entire game is written in vanilla javascript using WebGL so it can be run in a web browser. No libraries were used, and I had a minimal framework to run on so everything was coded from scratch, including the core engine architecture as well as auxillary systems like vfx, UI, animation and sound.
There was a simple networking aspect to the game as well that allowed players to choose a username to save their data to. This was done in Python using Flask as a simple REST app to act more or less as a glorified database. For a prototype, security was not a big concern so all game logic was done on client side, the server purely handled storing data. A leaderboard was also added using this simple data saving/loading method whenever a player completed a level. The server itself was hosted on PythonAnywhere, which allowed me to directly use a file to store data instead of having to find another service to handle data storage.