The game is a copy of Stick Hero and a homage to 2022 GOTY Elden Ring.
Suryansh Varshney - suryanshvarshney28@gmail.com
- Tarnished (equivalent to Stick Hero)
- Rune (equivalent to cherries)
- Rod (equivalent to stick)
Just running mvn javafx:run
should do the trick, it should do all the compiling and running of the program.
There are two main game mechanics:
- Click and hold the
left mouse button
to elongate the rod and release the same to stop elongation and drop the rod.- While tarnished is moving, you can turn tarnished upside down by holding any
keyboard key
, releasing which will tarnished to get right side up. (don't rotate tarnished on a pillar, or he will die by hitting his head on the pillar 😢)- Grabbing
runes
increasing both the score and runes counter, and you need 250 runes to revive.Traverse 8 pillars to reach Boss arena!!!!!
Right click
to defendLeft click
to attack
For testing, just run mvn verify
or mvn test
and testing will start.
We have used 2 design patterns in this project:
We have used this design pattern for Tarnished Class.
We needed only one instance of this class because only one player
would be playing this game at a time
The pillar class consists of a list of its own object which helps
in some methods We have implemented.
Threading is implemented many times in this project.
- The constant rod elongation method until mouse key is released is done in a separate thread because the constant looping block in the method was crashing the application if called in the main thread.
- The movement of tarnished is also done in a separate thread so that it can be parallelised with methods of rune collection.
- As expected, method of rune collection is also in a separate thread in order to avoid crashing the appication because of the constant looping block.
- AI for the boss is multithreaded.
And many more.......
Class Tarnished is actually serialized automatically when game is exited or Tarnished gets out and is deserialised when we got to menu-page. Moreover, you can save the progress at any time in the game.