Giter VIP home page Giter VIP logo

game-js's Introduction

Instructions

Overview

The final stage of your game project is to make your Game Project awesome! This is your chance to flex your creative muscles, show off your technical skills, and produce a polished game.

Complete the base game

Firstly you need to make sure that your base game is fully functional and bug free. You will need to have implemented all of the following from the previous game projects:

  • Player interaction
  • Canyons & Coins interaction
  • A scrollable game world
  • Score and lives counters
  • Game over states

You’ll also be marked on the gameplay and aesthetics of your game. You can score highly on this category by:

  • Creating a playable but challenging level design
  • Creating coherent and aesthetically pleasing graphics and animations
  • Making sure your game is bug free and that the player controls are well tweaked (eg. the jump is well timed)

The code philosophy videos "The debugger's mindset" and "Testing" will help you in your attempts to iron out any bugs.

Your code also needs to be competently implemented and well-presented. Review your code and check:

  • Indentation is correct
  • Whitespace (empty lines and spaces) is properly used
  • inline comments but NOT commented out code
  • Consistent and logical variable naming
  • Good code organisation

You should also check for:

  • Implicitly declared variables, redundant variable declarations or assignments
  • Appropriate use of local and global variables
  • Array traversal is correctly implemented
  • Data structures and function design follow the prescribed scheme or a more advanced scheme that is rational in its design.
  • Conditional logic is clearly and plainly implemented.
  • Game elements are correctly anchored

If you’re not sure how to do this, then a good idea is to rewatch the code philosophy video “The elegant coder” and also “12 top tips for naming variables.”

There are also some bonus points for those students who are able to include advanced techniques such as ES6 syntax and modularisation of code into multiple files. NB. using advanced techniques is an optional extra for those students who feel comfortable doing so. Whichever techniques are applied, they need to be used consistently in a way which demonstrates understanding.

Implement extensions

The next stage is to extend your code by adding up to three of the extensions which are demonstrated in the final topic:

  1. Add sounds Use p5.sound to add sound effects to your game. Watch the tutorial video from the topic to do this.

  2. Create platforms Use the factory pattern to create platforms. Watch the tutorial video from the topic to do this.

  3. Create enemies Use a constructor function to create enemies. Watch the tutorial video from the topic to do this.

It’s up to you how many of the three you implement and to what degree you enhance the implementation from the basic tutorial code. The extension is graded with criteria for functionality, creativity and ambition. If you are unsure, then the grading rubric will guide you on how to scope your extension work.

Deliverables

Hand in your final game project as a compressed folder in .zip format. It should contain the following.

  • Your final game project code
  • All assets needed to run the code (html files, library files, images, sound files etc.)
  • A commentary of around 250 words in PDF format. This should describe:
    • your extension(s)
    • the bits you found difficult
    • the skills you learnt/practiced in completing the game project

Review Criteria

Base application (25 marks)

  • Base functionality [6]
  • Code presentation [6]
  • Code competency [6]
  • Advanced code techniques bonus [3]
  • Game play, level design and aesthetics [4]

Extension (12 marks)

functionality (4): creativity (4): Extensions - ambition (4):

Commentary and deliverables (3 marks)

game-js's People

Contributors

ianchez avatar

Stargazers

 avatar

Watchers

 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.