Skip to content

🕹 A simple CLI minigames engine to use as a fun Java learning project

License

Notifications You must be signed in to change notification settings

bkis/HotSeatGames

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🕹 Hot Seat Games

A simple CLI-based minigames engine with a growing collection of games. It works for multiple players on the same computer using hot seat mode. This project was created as a fun Java learning project for the students of my programming class at the Institute for Digital Humanities (University of Cologne).

screenshot

How to play

You have three options:

  1. Download the (possibly outdated, probably up to date) current release and run it with java -jar HotSeatGames.jar, or
  2. Open the project in your favorite Java IDE and run it from there (for development), or
  3. Build an executable yourself by using your IDE (or your hacker skills and javac) from the current project source, then run it with java -jar HotSeatGames.jar!

Included games

At this point, the following games are included in Hot Seat Games (in order of contribution):

How to add new games

If you want to add new games, just follow these steps:

  1. Create a package with your game's name under idh.hotseatgames.games (e.g. idh.hotseatgames.games.mygame).
  2. Create a game class (preferably matching your packages name, e.g. MyGame) inside the package you just created. This game class must implement the IGame interface correctly to work with Hot Seat Games. Please read the documentation of the IGame interface's methods and stick to the conventions explained there! Furthermore, you are free to use the very helpful utility classes in idh.hotseatgames.utils. Try to take inspiration from the existing games' implementations! Everything else is up to you.
  3. Add your game classes package path to the static array GAMES_SUB_PATHS in the GameManager class to "register" your game with the Hot Seat Games engine. (It's not the most elegant way of doing this, but this project tries to avoid any external dependencies for reflection etc.)
  4. If you think your game should be a part of the collection coming with this project, feel free to contribute it!

Contributing

You are very welcome to contribute your games to this repository! If you don't know how to do that, you may read this to learn how to set up Git and to understand the basics, then read this to learn about the ideal workflow for contributing to existing projects on GitHub.