Skip to content

Latest commit

 

History

109 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 NodeBreaker

Three.js JavaScript WebGL HTML5 CSS3

A 3D browser-based puzzle game where you strategically link nodes in a node network in cyberspace to win. Link all nodes while managing your limited "breaker" power-ups - but be careful not to get stuck. Also, avoid getting traced after you break into your first red data node. The game keeps track of your high score.

Game Screenshot

🌐 Live demo

A live version can be found here. NOTE: Netlify puts dormient sites to sleep after a certain period of inactivity, if you get an error on page load wait a few seconds and try reloading the page in the browser. The Three.js libraries are hosted locally because they’ve been customized to fit the game’s specific needs. They aren’t loaded from a CDN, which can trigger CORS-related issues in some browsers. If you encounter a blank screen or errors, try opening the game in a different browser.

🚦 Deploy status

Netlify Status

🎯 Game Rules

  • Connect nodes (cubes) by tapping them to create links
  • Red nodes are data nodes - you need breaker power-ups to link to them
  • Light blue nodes give you breaker power-ups - use them wisely as they're limited
  • Link all linkable nodes to win
  • Tap and hold the (R) button to reset the game at any time
  • Tap the music button to play/pause music

🛠️ Technologies Used

  • Three.js - For 3D graphics rendering + glitch, scanlines postprocessing effects
  • OrbitControls - Camera control system allowing orbital movement
  • Google Fonts - Typography
  • Firebase Firestore - Global leaderboard storage
  • The entire game logic/architecture is developed using vanilla JavaScript

🎯 Technical Features

  • Essentially an implementation of a hamiltonian path problem puzzle in a 3D environment
  • Implements view routing, services, event bus, game state, game config
  • Uses a graph data structure for efficient cube and node network modeling
  • Implements BFS (Breadth-First Search) algorithm to ensure game solvability by verifying paths between non-breakable nodes
  • Strategic random placement of breakable nodes and breaker power-ups maintains game challenge
  • Interactive 3D environment with orbital camera controls
  • Optimized for both desktop and mobile devices
  • The game keeps track of your high score in your browser's local storage and features a global leaderboard powered by Firebase Firestore

💡 Inspiration

Inspired by all those "hacking" minigames found in videogames such as DeusEx, System Shock, etc.

⚡ System Requirements

  • The game is entirely browser-based
  • A browser with WebGL2 support is required (like Chrome or Edge)
  • JavaScript must be enabled

🎮 Controls

  • Tap/Click: Select and link nodes
  • Tap and Hold R button: Reset game
  • Click&drag/Touch&drag: Orbit camera around the node network
  • Pinch/Mouse wheel: Zoom in/out

📝 License

This project is licensed under the MIT License. Background music from Pixabay. Sound effects from Zapsplat.

🤝 Contributing

While this is primarily a personal project, bug reports and feature suggestions are welcome in the issues section.

🌟 Future Plans

  • Add difficulty levels
  • Add more puzzle variations

About

A 3D browser-based puzzle game where you strategically link nodes in a node network in cyberspace to win. Link all nodes while managing your limited "breaker" power-ups - but be careful not to get stuck. Also, avoid getting traced after you break into your first red data node. The game keeps track of your high score and has a public leaderboard..

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Contributors

Languages