Giter Site home page Giter Site logo

nin-ran-jan / will-hero Goto Github PK

View Code? Open in Web Editor NEW

This project forked from abhik-s-basu/will-hero

0.0 0.0 0.0 72.63 MB

Advanced Programming course project at IIIT-Delhi. Adaptation of the popular game Will Hero by ZPlay using Java and JavaFX

Java 100.00%
java javafx oops-in-java scenebuilder

will-hero's Introduction

Will Hero Game

Adaptation of the popular game Will Hero by ZPlay for our Advanced Programming Course (CSE201)

๐Ÿ’ป Tech Stack

  • Java
  • JavaFX

๐ŸŽฌ Visuals

Loading Screen -

StartScreen

Main Menu -

Main Menu

Gameplay -

Gameplay Menu

๐ŸŽจ Designs

UML Class Diagram -

UML

Use Case Diagram -

UseCase

๐Ÿ“น For a live demo of our game: https://youtu.be/RtdFpdrvHas

๐Ÿ’ก Design & Implementation

  • A start menu opens up, which on tapping leads to the main menu which on tapping begins the game.
  • Clicking on the mouse/trackpad will move the player forward and we can observe it is colliding with the orc and jumping accordingly.
  • If an orc dies, or a chest opens we get a few coins which are shown on the top right corner.
  • A game can be started by tapping on a play or choosing from the saved game which has been serialised.
  • The hero can swap weapons and weapons have levels as well.
  • The EndGame, PauseGame and GameWonMenu have been created using FXML and controller classes from Java as well.
  • Sound has been added as well, to make the gameplay more immersive.

๐Ÿ‘€ Gameplay Design

  • The game makes use of an animation timer, which is 60 frames per second and using that we control the timing of the events that transpire in our game.
  • The obstacles are created using the GameObject constructor. This constructor even makes life easy while serialising since all parameters are passed in the Game Object and then the images are displayed.
  • The collisions are handled using an event handler and make use of animation timers as well. We create 4 rectangles around our image views because of which the collision handling becomes comparatively easy.

๐Ÿ“š Concepts Used

  • Inheritance, Polymorphism and Abstract classes were used a lot.
  • Extensive use of java collection framework
  • The serialisation was also used for designing the whole saved games paradigm.
  • Implemented exception handling wherever possible

๐ŸŽ Additional Features

  • The orcs movement in the original game is usually ordered and preset. However, in our game, the orcs are not only randomly jumping at different paces but their jumps are not synchronised as well, hence making it difficult for the user to win this game.
  • The spawning of weapons have been randomised for the game and one can get any weapon from the chest and swap them according to their need.
  • A damage system has also been created in this game. In the original game, one can use any weapon and all the orcs get killed. However, in our game, there is a damage system involved where each orc has assigned health to it. So the only way of killing it is not by putting it in the abyss anymore but even continuous sustained damage can affect it. If time was more, then this feature could have been expanded further.
  • Added sounds and music as well to make a game made on JavaFX more immersive and fun.

Creators:

Abhik & Niranjan

will-hero's People

Contributors

abhik-s-basu avatar nin-ran-jan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.