Skip to content

TianhaoHarryZhang/2024-Fall-24780-Group-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Codeemon (2024 Fall 24780 Group Project)

Contributors:

Tianhao Zhang ([email protected])
Kaifeng Hu ([email protected])
Dylan Leong ([email protected])
Rachell Lee ([email protected])
Tsung Yeh Hsieh ([email protected])

Developer Contribution
Tianhao Zhang Software architect and project coordinator. Developed main.cpp script, game-loading & pre-battle animation, python-based image generation and some other utility functions/classes (utility.cpp). Coordinated Github collaboration & code review
Kaifeng Hu Developed battling logic and animation in battling scene
Tsung Yeh Hsieh Developed battling logic and animation in battling scene
Dylan Leong Developed main scene (village) including trainer moving and conversation with doctor and computer trainer
Rachell Lee Designed all roles, animals, medicine and background images. Developed scenes of animal & medicine bags

Introduction

As the group project required by CMU 24780 Engineering Computation, Codeemon is developed by five CMU graduate students. It is a 2D adventure inspired by classic Pokémon, offering a fresh twist with redesigned characters, unique animals, new adventure map and battle scenes. Built primarily using OpenGL/C++ with some Python integration, it blends creativity and technical expertise to provide an experience that is both nostalgic and refreshingly innovative.

Loading

Installation (Python 3.11 recommended)

pip install Pillow==9.4.0

MacOS Compiling Commands (PLEASE REDO COMPILATION EVEN IF THE EXE EXISTS IN THE FOLDER)

mkdir -p test.app/Contents/MacOS
clang -c fssimplewindowobjc.m
clang++ -w main.cpp fssimplewindowcpp.cpp fssimplewindowobjc.m ysglfontdata.c yssimplesound.cpp yssimplesound_macosx_objc.m yspng.cpp yspngenc.cpp BattleScene.cpp Medicine.cpp People.cpp Pokemon.cpp Trainer.cpp Utility.cpp -framework Cocoa -framework OpenGL -framework AVFoundation -o test.app/Contents/MacOS/exe
test.app/Contents/MacOS/exe

Windows Compiling Commands (Using Microsoft Visual C++ Compiler)

cl /EHsc /Felauncher.exe main.cpp fssimplewindow.cpp yssimplesound_windows.cpp yspng.cpp yspngenc.cpp ysglfontdata.c BattleScene.cpp Medicine.cpp People.cpp Pokemon.cpp Trainer.cpp Utility.cpp /link opengl32.lib user32.lib gdi32.lib winmm.lib

Windows Compiling and Execution (Using windows powershell)

Script.sp1 (Need to define PATH_OF_PROJECT)

$gppath = "C:\msys64\ucrt64\bin\g++.exe"
$mainfile = "C:\PATH_OF_PROJECT\main.cpp"
$outputFile = "C:\PATH_OF_PROJECT\main.exe"
$libraries = "-L 'C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22621.0\um\x86' -lOpenGL32 -lgdi32 -limm32 -lglu32 -ldsound -luuid -lole32"

# Run the compilation
$command = "& `$gppath -fdiagnostics-color=always -g $mainfile fssimplewindow.cpp yssimplesound_windows.cpp BattleScene.cpp Medicine.cpp Pokemon.cpp Trainer.cpp Utility.cpp ysglfontdata.c yspng.cpp yspngenc.cpp People.cpp $libraries -o $outputFile"
Invoke-Expression $command

# Check if the file exists and run it
if (Test-Path $outputFile) {
    Write-Host "Running the program..."
    & $outputFile
} else {
    Write-Host "Compilation failed."
}

To run script

.\Script.ps1

How to play (Controls)

Village Scene

image (4)

The game's first scene is where you can see the trainer, doctor, and the rival character(computer). To navigate the trainer, use <⌃>⌄. The trainer can initiate a talk with the doctor or the rival by pressing space key. You only need to press space key ONCE as the all messages continue to be sequentially displayed in the box

Battle Scene

image (1)

Once the battle starts, there are 3 options that the trainer can make, Fight, Bag, or Pokemon. To make a selection, click on the button using the mouse. Fight button will attack the opponent using the pokemon's special skill. Bag button shows the list of medicines that the trainer can use to heal the Pokemon. Pokemon shows Pokemons that the trainer currently has.

Animal Bag

image (2)

This scene shows the Pokemon that the trainer has and the Pokemon's current HP and features. Either Pokemon can be selected by clicking on it and it will return to the battle scene.

Medicine Bag

image (3)

This scene shows the medicine that the trainer can use to heal the Pokemon. Click on the potion for usage. It will heal the Pokemon by its recovery point.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5