A university student's open-source rendition of a Nintendo fighting game🎮
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
I submitted this game in the Spring of 2019 as a final project for the class CIS 120: Programming Languages & Techniques at the University of Pennsylvania. It's designed for two players, and features a selection of stages and characters that were among my favorites in Super Smash Bros Ultimate for the Nintendo Switch.
From a design standpoint, the game aims to combine the sleek, modern landscapes of Smash Ultimate, with the charming aesthetics of 32-bit sprites as one might likely see in classic Gameboy games.
Super Smash CIS 120 became a sort of rainy-day project for me during the summer of 2019, but I haven't added to it for some time. Please feel free to make any contributions and share suggestions about playing and improving the game.
Download the code to begin playing and/or contributing to the game.
- Clone the repo
git clone https://github.com/PaulCaroline/CIS120_Final_Project
📦src
┣ 📂paul
┃ ┗ 📂smash
┃ ┃ ┣ 📂display
┃ ┃ ┃ ┣ 📜Game.java
┃ ┃ ┃ ┣ 📜GameMenu.java
┃ ┃ ┃ ┣ 📜Helper.java
┃ ┃ ┃ ┣ 📜Hud.java
┃ ┃ ┃ ┣ 📜ImageComponent.java
┃ ┃ ┃ ┣ 📜Menu.java
┃ ┃ ┃ ┣ 📜Stage.java
┃ ┃ ┃ ┗ 📜Window.java
┃ ┃ ┣ 📂framework
┃ ┃ ┃ ┣ 📜Animation.java
┃ ┃ ┃ ┣ 📜GameObject.java
┃ ┃ ┃ ┣ 📜KeyboardInput.java
┃ ┃ ┃ ┣ 📜ObjectAction.java
┃ ┃ ┃ ┣ 📜ObjectType.java
┃ ┃ ┃ ┣ 📜PlayerType.java
┃ ┃ ┃ ┣ 📜Spritesheet.java
┃ ┃ ┃ ┗ 📜StageType.java
┃ ┃ ┗ 📂objects
┃ ┃ ┃ ┣ 📜Hitbox.java
┃ ┃ ┃ ┣ 📜Platform.java
┃ ┃ ┃ ┗ 📜Player.java
┗ 📜GameTest.java
- Run the game in a desktop window by executing
Game.java
found in src/paul/smash/display/. - Select two characters and a stage using the Game Setup dropdown from the top left of the game menu as shown below:
- Define physics properties & metrics for character performance
- Facilitate game window and animation parameters
- Construct classes for GameObjects, including players, hitboxes, ledge platforms and gameplay huds
- Make the hud responseive to display player damage ratings and remaining stocks (lives)
- Create custom spritesheet animations for character movements and attacks
- Set up gameplay controls to respond to simultaneous keyboard inputs
- Make the game playable by facilitating player damage, removing lives, and resetting player positions until 3 lives are lost
- Consider adding settings to edit the number of stocks at the start of the game
- Consider making menu tiles responsive to replace Game Setup dropdown
- Complete Pikachu attack B effect and lightning bolt animation
- Facilitate player deaths from falling, as well as fall recovery moves
- Define limits for character jump heights and frequencies, and ensure a Platform GameObject from which to jump is available
- Implement smash attack functionality and animations
- Export finished product as a runnable .jar file
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the BSD 3-clause License. See LICENSE
for more information.
Paul Caroline - paulemmit@gmail.com
Project Link: https://github.com/PaulCaroline/CIS120_Final_Project
- NO Body the Dragon (Mario sprite)
- Goldstud (Ganondorf sprite, The Legend of Zelda: Twilight Princess)
- SemiJuggalo (Pikachu sprite, Pokémon Gold and Silver)
- Othniel Drew (Readme Template)
- Cláudio Luiz Castro (Repo Social Media Thumbnail)