Skip to content

0N1X9/nuke-reactor-escape

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 

Repository files navigation

Nuke Reactor Escape

Poster

A browser-based arcade puzzle game built with HTML5, CSS3, Bootstrap, and JavaScript.

The player must navigate through a damaged reactor facility, strategically place bombs to destroy obstacles, and escape through the exit before the reactor becomes unstable.

Table of Contents


Live Demo

Nuke Reactor Escape


Project Goals

The primary objective of this project was to demonstrate proficiency in JavaScript by building an interactive browser game that incorporates:

  • DOM manipulation
  • Event handling
  • HTML5 Canvas rendering
  • API integration
  • Local Storage persistence
  • Responsive web design
  • Modular code architecture
  • User-centered design principles

The project was intentionally developed as a Minimum Viable Product (MVP) with a scalable architecture to support future enhancements such as additional levels, enemy AI, animations, and online leaderboards.


Wireframes & Design Planning

The project was initially designed using wireframes and visual mockups before development began. These designs helped define the layout, component hierarchy, user experience, and responsive behavior of the application.

Initial Wireframe

Initial Wireframe

The final implementation closely follows the original design while simplifying certain interface elements and prioritizing gameplay functionality.


Color Palette

The visual identity of Reactor Escape is based on a futuristic neon sci-fi aesthetic inspired by reactor control rooms, arcade games, and cyberpunk interfaces.

Design Palette

Color Palette

Theme Support

The project supports both Dark and Light themes through CSS custom properties (variables), allowing consistent styling while maintaining accessibility and readability across different viewing preferences.


Screenshots

Responsive Mockups Responsive Mockups

CLICK to view more screenshots

Dark Theme Main Game Screen

Light theme Main Game Screen


User Stories & Acceptance Criteria

US1 - Clean and intuitive UI

As a player, I want the user interface to be clean, intuitive and to be able to easily start a new game so that I can begin playing immediately.

Acceptance Criteria

The application provides a clean, intuitive, and responsive interface where the Start button is clearly visible and easily accessible, allowing the player to begin a new game immediately and understand the main controls without additional guidance.


US2 - Move the Player

As a player, I want to control my character using the keyboard so that I can navigate the map.

Acceptance Criteria

Given the game is running, when the player presses W, A, S, D, the Arrow Keys or the touchscreen buttons, then the character moves one tile in the selected direction. The character cannot move through walls or obstacles.


US3 - Place Bombs

As a player, I want to place bombs so that I can destroy obstacles blocking my path.

Acceptance Criteria

When the player presses the Spacebar or the touchscreen button a bomb is placed on the player's current tile and a bomb placement sound is played. The bomb explodes after a short delay


US4 - Win the Game

As a player, I want to reach the exit so that I can complete the level.

Acceptance Criteria

When the player reaches the exit tile the win condition is met. Then a victory message is displayed, a victory sound is played and the player's score is saved.


US5 - Lose the Game

As a player, I want the game to detect when I am caught in an explosion so that failure conditions are clear.

Acceptance Criteria

If the player is inside an explosion area when the bomb detonates then the game ends, a game over message is displayed and a game over sound is played.


US6 - Track High Scores

As a player, I want my scores to be saved so that I can compare my performance across multiple attempts.

Acceptance Criteria

When a game has ended the score is recorded and stored in Local Storage. The leaderboard is updated and scores persist after the browser is refreshed.


US7 - Toggle Sound

As a player, I want to enable or disable game sounds so that I can choose my preferred experience.

Acceptance Criteria

After the game is loaded when the player clicks the Sound button then all game audio is muted and the button icon updates accordingly. When clicked again the audio is re-enabled.


US8 - Toggle Theme

As a user, I want to switch between dark and light themes so that I can choose a comfortable viewing mode.

Acceptance Criteria

When the user clicks the Theme Toggle button the application theme changes and the selected theme remains active throughout the session.


US9 - View Local Weather

As a user, I want to see that the dashboard provides useful real-world weather information data.

Acceptance Criteria

Given the application has loaded, when weather data is successfully retrieved from the API, the current weather is displayed and the weather icons update dynamically.


Features

Gameplay

  • Grid-based arcade game built using HTML5 Canvas
  • Player movement using keyboard controls
  • Bomb placement and explosions
  • Destructible crates
  • Exit-based win condition
  • Game over state

User Interface

  • Responsive dashboard layout
  • Dark / Light theme toggle
  • Mobile-friendly controls
  • Bootstrap modals
  • Pause and resume functionality

Audio

  • Bomb placement sound
  • Explosion sound
  • Victory sound
  • Game over sound
  • Sound toggle button

Weather Widget

  • Real-time weather information
  • OpenWeather API integration
  • Temperature display
  • Humidity display
  • Wind speed display
  • Dynamic weather icons

Leaderboard

  • LocalStorage persistence
  • High score tracking
  • Automatic score saving
  • Score ranking system

Technologies Used

Front-End

  • HTML5
  • CSS3
  • Bootstrap 5
  • JavaScript (ES6+)

APIs

  • OpenWeather API

Browser Features

  • HTML5 Canvas
  • Local Storage

Development Tools

  • Git
  • GitHub
  • VS Code

Project Structure

project-root/
│
├── assets/
│   │
│   ├── css/
│   │   └── style.css
│   │
│	├── docs/ screenshots and validation
│   │
│   ├── fonts/ used fonts stored locally for best performance
│	│
│   ├── images/ game's main image files
│	│
│   ├── js/
│   │   ├── ui.js
│   │   ├── levels.js
│   │   ├── game.js
│   │   └── weather.js
│   │
│   └── sounds/ sound files
│
├── index.html
│
└── README.md

How to Play

Objective

Escape the reactor facility by destroying crates to clear the path.

Controls

Action Key
Move Up W / ↑
Move Down S / ↓
Move Left A / ←
Move Right D / →
Place Bomb Space
Pause / Resume P

Scoring

Action Points
Destroy Crate +100
Complete Level +1000
Time Bonus Remaining Time × Bonus Multiplier

Deployment

The project was deployed using GitHub Pages.


Testing

HTML Validation

HTML Validation

CSS Validation

CSS Validation

JavaScript

Tested using browser developer tools and linting tools.

Lighthouse

Lighthouse Testing

Manual Testing

  • Player movement
  • Bomb placement
  • Explosion logic
  • Win condition
  • Game over condition
  • Weather API
  • Sound system
  • Theme toggle
  • Leaderboard persistence

Accessibility

The project includes:

  • Semantic HTML structure
  • Keyboard navigation
  • Accessible button labels
  • Responsive layouts
  • High-contrast theme support

Future Improvements

Potential future features include:

  • Multiple levels
  • Enemy AI
  • Animated sprites
  • Particle effects
  • Online leaderboard
  • Additional power-ups
  • Difficulty settings
  • Touch gestures for mobile

AI Usage Reflection

AI tools were used throughout the development process to:

  • Generate boilerplate code
  • Images and favicon generation
  • Assist with debugging
  • Improve project structure
  • Optimize UI and UX decisions
  • Assist with API integration
  • Review code quality

All generated code was reviewed, modified, tested, and integrated manually. AI was used as a development assistant rather than a replacement for understanding or implementing the project.

AI-generated code was not always immediately usable and required review, testing, and modification. Several issues still required manual debugging and problem-solving, such as API configuration, font loading errors, gameplay adjustments, and user interface refinements. This highlighted the importance of understanding the underlying technologies rather than relying solely on generated solutions.

Overall, AI had a positive impact on the project by accelerating development and providing guidance, while still requiring critical thinking, testing, and decision-making from the developer. The experience demonstrated that AI is most effective as a collaborative tool that supports learning and productivity rather than replacing technical understanding.


Credits

Weather API

OpenWeather API

https://openweathermap.org/

Sound Effects

Pixabay Sound Effects

https://pixabay.com/sound-effects/

Icons

Bootstrap Icons

https://icons.getbootstrap.com/


Author

Constantin Onisor

©2026 Nuke Reactor Escape All rights reserved

About

A 2D Browser Game inspired by the classic Bomberman

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors