CPSC 4160 / Venture Forth
Liam Cassidy
Game Description
The player leads a team of risky treasure hunters, otherwise known as venturers, as they fight their way through an island in search of riches. Waves of enemies stand in their way, and they must navigate through the overworld island to reach their goal.
After landing on the island, players will fight through consecutive waves of enemies. Health and other stats are maintained across fights. If a venturer dies, they are dead for the rest of the run. If all venturers are dead, the run is over, and the player must start over. If the player successfully completes all waves, they reach the treasure.
Game Mechanics
Gameplay is defined by strategical battles and team management. Players must plan out their moves in an appropriate manner to successfully move through all waves of enemies. Each venturer has their own unique health and attack stats.
During the player turn, each alive venturer in the player party attacks one enemy. During the enemy turn, the opposite occurs. Enemies will always target the venturer with the highest attack stat. Enemy and selection spaws are randomized, meaning each run is unique.
There are two items in the game, the health potion and the shield. The player begins with one item, and receives an additional one after each victory.
Technical Description
Venture Forth was programmed in Python, using the Pygame library. The game also uses the Pillow package, and all required packages can be found in the requirements.txt file. The game runs at a consistent 60 frames per second.
Frames per second = Frames / Time (in sec)
Venture Forth implements complex and engaging tactical battles through a variety of modules. The Battle.py module handles much of the in-game logic, while other modules such as AnimatedSprite.py handle animations and sprite sheet parsing.
The game is broken into multiple scenes, each returning control to a previous or subsequent scene when finished.
Controls
This game uses a traditional mouse and keyboard setup. This allows users to input commands quickly so they can push through waves at the speed they enjoy.
Game Limitations
Future Work
Future iterations will incorporate more entities, with more complex and colored sprites and animations. More battle mechanics will also be included, such as entity types, super attacks, and more items.
I would also like to improve the length and replayability of the game with more environments/levels, as well as improve upon the sound design.
Game objective
Game Screenshots
Selection and Menus
Cutscenes
Battle
Most limitations for this game are a result of it being developed in Pygame, as opposed to a more common engine such as Godot or Unity. Pygame does not have the graphical capabilities that these engines have, and it lacks much of the built in features, functions, and GUI that make developing in a proper game engine significantly quicker.