Git Product home page Git Product logo

linearcollision's Introduction

Linear Collision

Photon in a Gauntlet of Doom


About

You are a photon trapped in a colorful maze. Your goal is to collect the four colored orbs scattered throughout the maze (red, yellow, green, and blue), then exit through the portal that appears. However, it is not that easy. Enemy photons are constantly shooting across the maze, threatening to destory you if you touch one of them. In addition, the clock is ticking down, and if it runs out it's Game Over. How far can you get in the Gauntlet of Doom?


How to Play

Press Start to Play the game. Using the Control Pad, navigate around the maze to collect the 4 energy orbs and make it to the exit portal. You can also press the A button at any time to turn invisible, but you have a limited number of invisibility power-ups (as indicated by a counter on the status bar). You get one invisibility power-up for every level that you clear. If you hit an enemy photon, the energy orbs are reset and you respawn in your origional position. When the clock runs out, it is Game Over.

Challenge: See if you can discover the secret cheat code...


How to Compile

Linear Collision uses NESASM3.exe to compile the assembly code into a NES rom.

To compile, run compile.bat on Windows, or compile.sh on Linux. When compiling on Linux, make sure Wine is installed so that NESASM3 runs properly.


Source Layout

The source code is broken into logical folders to help make it easier to understand.

  • Audio - Music and sound, along with Metal Slime's sound engine code
  • Data - Raw binary data (like map layouts, title screen, text, etc.)
  • Macros - Not code, but used by NESASM3 to generate code, similar to C++ templates or the C preprocessor
  • Scripts - Additional code files to aid the main game
  • Utilities - Programs that aid the development of Linear Collision

Utilities

Various programs in the Utilities directory were used to aid the development of Linear Collision. Below is a breif summary of each one:

  • Build Maze - Used to generate the Raw tile data for the origional map (before multiple map support was added)
  • Demo - Gameplay demo programmed using GameMaker 8 to playtest the game before development
  • GenerateLookupTable - Aids the creation of a lookup table used by the map loader to generate the map outline.
    • Maps are stored in binary, so the lookup table is used to convert binary into tiles that outline the map.
  • MapBuilder - Very powerful tool to develop a Linear Collision map.
    • You can use this to create your own in-game map layouts.
  • TextToHex - Convert text characters into the character data ASCII characters
  • Tile Generator - I used this to build the title screen using GameMaker's tile layout utility

Cartridge Details

In case you want to burn a physical NES cartridge, Linear Collision uses NES Mapper 0 (NROM) with 32K of program data and 8K of character data. However, only 4K of the character data is used.


Special Thanks To:

linearcollision's People

Contributors

comprosoftceo avatar

Stargazers

 avatar  avatar  avatar  avatar  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.