Skip to content

This is a Super Smash Bros game that I made using Java Swing for my final project in CIS 120: Programming Languages & Techniques during my sophomore year (Spring 2019) at the University of Pennsylvania.

License

Notifications You must be signed in to change notification settings

PaulCaroline/CIS120_Final_Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

License License LinkedIn


Logo

Super Smash Bros CIS 120

A university student's open-source rendition of a Nintendo fighting game🎮
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgements

About The Project

Product Name Screen Shot

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.

Built With

Getting Started

Download the code to begin playing and/or contributing to the game.

Installation

  1. Clone the repo
    git clone https://github.com/PaulCaroline/CIS120_Final_Project

Usage

File Structure

📦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

Running the Game

  1. Run the game in a desktop window by executing Game.java found in src/paul/smash/display/.
  2. Select two characters and a stage using the Game Setup dropdown from the top left of the game menu as shown below:

Product Name Screen Shot

Playing the Game

Roadmap

  • 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).

Contributing

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.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the BSD 3-clause License. See LICENSE for more information.

Contact

Paul Caroline - paulemmit@gmail.com

Project Link: https://github.com/PaulCaroline/CIS120_Final_Project

Acknowledgements

About

This is a Super Smash Bros game that I made using Java Swing for my final project in CIS 120: Programming Languages & Techniques during my sophomore year (Spring 2019) at the University of Pennsylvania.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages