Boulder Dash is a classic arcade-inspired logic and action game where the player collects gems in an underground maze. The goal is to gather a required number of gems and reach the exit while avoiding falling boulders and enemies.
This project is a TypeScript-based interpretation of the original Boulder Dash from the Atari era. It was one of my first larger personal projects, created during high school, aiming to faithfully recreate the core mechanics of the 1980s classic.
🔹 Classic gameplay inspired by the original Boulder Dash
🎮 Keyboard controls with intuitive movement
🧱 Dynamic environment: falling rocks, destructible terrain, reactive surroundings
💎 Gem collection and limited time management
🧠 Simple enemy and collision logic
└── boulder_dash/
├── package-lock.json
├── package.json
├── public
│ ├── bundle.js
│ ├── font
│ │ └── Boulder Dash 6128.ttf
│ ├── img
│ ├── index.html
│ ├── sounds
│ └── style.css
├── src
│ ├── Board.ts
│ ├── functions.ts
│ ├── index.ts
│ ├── MovingObjects.ts
│ ├── movingObjectsChildren
│ │ └── MovingEntity.ts
│ ├── Settings.ts
│ ├── StartGame.ts
│ ├── Travel.ts
│ ├── travelChildren
│ │ └── FallingObjects.ts
│ └── ValuesBoard.ts
├── tsconfig.json
└── webpack.config.js
BOULDER_DASH/
__root__
File Name Summary package-lock.json Exact package versions for dependency management package.json Project metadata and dependencies list tsconfig.json TypeScript compiler configuration webpack.config.js Webpack bundler setup and build rules
public
File Name Summary bundle.js Compiled and bundled JavaScript for the game index.html Main HTML file and game canvas container style.css Styling for the game UI font
File Name Summary Boulder Dash 6128.ttf Custom font used in the game
src
File Name Summary Board.ts Main game board logic and tile updates functions.ts Utility functions for object handling index.ts Game entry point and runtime init MovingObjects.ts Logic for movable game objects Settings.ts Game configuration and constants StartGame.ts Starting screen and level setup Travel.ts Collision detection and movement rules ValuesBoard.ts Tile values and map generation movingObjectsChildren
File Name Summary MovingEntity.ts Base class for moving entities travelChildren
File Name Summary FallingObjects.ts Logic for falling objects and physics
This project requires the following dependencies:
- Programming Language: TypeScript
- Package Manager: Npm
Build boulder_dash from the source and intsall dependencies:
-
Clone the repository:
❯ git clone ../boulder_dash
-
Navigate to the project directory:
❯ cd boulder_dash -
Install the dependencies:
**Using [npm](https://www.npmjs.com/):**
```sh
❯ npm install
```
Run the project with:
Using npm:
npm start- Fork the Repository: Start by forking the project repository to your LOCAL account.
- Clone Locally: Clone the forked repository to your local machine using a git client.
git clone ./boulder_dash
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.' - Push to LOCAL: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
- Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
Boulder_dash is protected under the LICENSE License. For more details, refer to the LICENSE file.
