Undead Bytes Developer Documentation
Undead Bytes is built with HTML5 Canvas, CSS and pure JS, it has one single dependency - stats.js.
Play the game here.
Table of Contents
Application Structure
The application structure is as follows:
.
├── build # Electron app build resources
├── dist # Output folder for compiled game
├── docs # Reserved for Github
├── node_modules # Reserved for NPM
├── releases # Output folder for compiled executables
├── src # Application source code
│ ├── app # Electron app and IPC code
│ ├── browser # Game code
│ | ├── css # Styles
│ | └── lib # Game logic
│ | | ├── Audio # Audio FX handling
│ | | ├── Ballistics # Weapon and bullet handling
│ | | ├── Entity # Game entities (player, enemies, walls, items etc.)
│ | | ├── Events # Custom event dispatchers
│ | | ├── Levels # Game levels
│ | | ├── Scene # Canvas scene manager
│ | | ├── Collision.js # Entity collision logic
│ | | ├── Game.js # Game instance and management logic
│ | | ├── Renderer.js # Entity canvas rendering logic
│ | | └── Storage.js # Storage handling for saved games and settings
│ | ├── views # Game view template
│ | ├── config.js # Game base configuration values
│ | ├── index.js # Game entry point
| | └── util.js # Various utilities
│ ├── shared # Shared resources
│ | ├── assets # Shared assets (images, audio etc.)
│ | └── version.js # Dynamically generated version file
│ ├── main.js # Entry point for the electron app
│ └── preload.js # Electron app preloader
├── LICENSE # The license file
├── package-lock.json # Reserved for NPM
├── package.json # NPM dependencies and project configuration
└── README.md # This file
└── webpack.config.js # Build configuration
Development Setup
To get started, follow these simple steps.
-
Clone the repository:
git clone git@github.com:sentrychris/undeadbytes.git
-
Install the build dependencies:
npm install
-
Build the game:
npm run game:build
You should now have a working version of Undead Bytes output to your dist/
folder.
Serving through the browser
If you have http-server installed, you can run the game on a local web sever by running npm run game:serve:web
in your console.
Testing the desktop app
If you want to test the electron-based desktop app, you can run npm run game:serve:windows
for Windows or npm run game:serve:linux
for Linux / MacOS.
Building a standalone desktop app
If you want to build a standalone electron-based desktop app executable, you can run npm run game:build:standalone
, this will output a standalone executable to releases/${platform}/${arch}
.
Building an installer
If you want to build an exe/pkg/deb installer for the electron-based desktop app, you can run npm run game:build:installer
, this will output an installer to releases/${platform}/${arch}
.