Giter Site home page Giter Site logo

haskell-dino-run's Introduction

DINO RUNNN!

We plan to develop an arcade game using brick library in Haskell named DINO RUNNN! DINO RUNNN! is an endless runner game which is inpired by Chrome Dino developed by Google. In this game, our hero dino runs at full speed to avoid his predators. Players will be using keyboards to help the character avoid all obstacles and rush to the end. The dinosaur needs to jump over bushes and Cactaceae without getting hurt and it can reach some bonus food to get score bonus. It also needs to cope with other challenges on the road. The difficulty of this adventure will gradually increase along this journey. Watch out, before your fail the game by letting dino get hurt. Once the game is finished(the player fails the game), the player will receive their scores and ranking.

Goals

  • Use the keyboard to control the dinosaur's vertical movement
  • Automatically generate views, obstacles and bonus food along the road
  • Gradually increase the game difficulty (speed, obstacle amount) over time
  • Display scoreboard at the end

Architecture

  • Dino: Inspired by Samy's tutorial of the Snake. This component is designed to deal with all the events that occur in the game stage. Currently, the code file includes functions that deal with 3 major tasks:
  1. Check whether Dino dies or collides with the barrier.
  2. Determine the height and velocity of Dino.
  3. Generate bush/barriers during the game.
  • UI: Built by Brick. Shows the game start/game over user interfaces, with a scoreboard indicating the player's score during the game.Contains the main logic of the game

Challenges

  1. Jumping Height Dino accidentally gets the ability to control jumping height. The group needs to deal with the surprise. -> Sol1: Find out the code snippets that make this trouble and tackle this problem with a total prohibition of "jumping in the air" -> Sol2: We can use it as a special feature of the game, making it more fun for players to use this trick coping the challenges they met.

  2. Avatar Size Dino's avatar size is way too large for the display. It either takes up 1/4 of the screen or cannot be properly displayed in a small window. ->Sol1: Increase the resolution of the gaming window and enlarge the barrier to make them compatible with Dino ->Sol2: Modify the array that defines Dino's shape to make a smaller version of Dino.

  3. Time Conflicts Most team members need to prepare for the final exams and interviews next 2 weeks. There are still a few issues that need to be discussed and settled. -> Sol1: Confirm a time slot for future discussion. Survey each team member for their schedule in the next week. Meanwhile use WeChat to share ideas.

Progress

  • Successfully create the game start page and jump from it to the game playing page.
  • Implemented the gravity function, and fixed a bug that allows Dino to start jumping in the air.
  • Added UIs for the Start and End of this game.
  • Implemented collision detection and death check functions.
  • Implemented character/bushes animation.
  • Refactored the Dino avatar with a pixel-style sketch of high quality.

Team Members

Reference

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.