We were challenged to create a text-based and animated video game in our Engineering 1181 lab. We were given a few weeks to brainstorm ideas and program a video game. Our group ultimately decided to program a text-based RPG-style game featuring animations. We were then tasked with presenting our findings to possible users and software developers.
Our videogame, named Retake Ardennia, requires the user to complete random event scenarios to level up their character’s statistics. After leveling up, they are required to defeat four generals around the map to allow access to the game’s castle. Here lies the game’s main antagonist, Dr. Cliff Rat, who cursed the land of Ardennia. The player can only win by defeating him in combat during a final battle scene.
While designing this game we were required to work in teams of four to not only improve our coding skills but also our communication skills. On the surface level, this lab looks like it is solely based on programming, but a huge aspect is how a team can work together to achieve a specific goal. We found that communication is one of the most important skills when working in a group.
The game begins with a skippable cutscene that introduces the lore of Ardennia. Players create a character by choosing a name and class—Merchant, Warrior, Scholar, Explorer, or Hunter—each affecting base stats like Health, Strength, Agility, and Intelligence.
Players navigate a randomly generated map with markers for events, battles, riddles, and healing. Events include stat-boosts, traps, mini-games, and dice-based scenarios. To reach the final boss, players must first defeat four generals through unique minigames testing logic, memory, combat, and vocabulary.
The final boss, Dr. Cliff Rat, challenges players in a turn-based dice combat sequence using all acquired stats. Victory results in one of two animated endings depending on secret conditions met during gameplay.
This project helped us develop not only our MATLAB coding abilities, but also collaborative skills like time management, delegation, and problem-solving. We learned how to coordinate shared files, debug through logic, and write scalable functions that communicated effectively through parameters and returns.
Our biggest challenge was implementing animations alongside text-based logic and deciding when to use visuals versus pure text prompts. Creating diverse and engaging minigames within the MATLAB framework was both difficult and rewarding.
The game consists of modular functions written in MATLAB, with structures passed between functions to manage player stats. Each event (e.g., combat, memory test, trivia) is its own function with randomized elements and branching logic. Game state is maintained through the `playerStats` struct.
Helper functions include `drawScene` for animated visuals, `user_move` for map logic, and `randomScenario` for non-boss events. All assets use sprite indexing via the `simpleGameEngine` package. Full code is available on request or GitHub.
The final codebase consists of over 20 modular `.m` files, including:
IntroCutscene.m
– Opening screen and tutorialMap_Testing.m
– Main navigation and player movementDonovanFight.m
, TaylorFight.m
, etc. – Boss fight modulesFinalBoss.m
– Endgame encountercharacterCreation.m
– Player setup and class selectionRandomTrap1.m
, healScenario1.m
– Random event logicAll major code is commented and uses consistent structure. Stats are tracked through a shared `playerStats` object and updated in real time depending on player success/failure.
You can run the game directly in your browser via MATLAB Online:
Click here to launch the game in MATLAB Online (Requires free MathWorks account)
Retake Ardennia has exceeded our expectations. From the beginning, we cultivated a positive team environment with consistent meeting times and places. When someone couldn’t attend, we summarized meetings in our group chat to ensure everyone stayed informed. This level of communication allowed us to function not as four individuals on separate pieces, but as a united team.
Our recommendation for future project groups is simple: build strong communication skills. It is the cornerstone of an efficient and collaborative development process.