Crossin' Beams - Design Document

Laser puzzle game screenshot 2

1. Game Overview

1.1 Game title

Working Title: "Crossin' Beams"

1.2 Elevator Pitch

A puzzle game about navigating laser beams from emitters to receivers while interacting with puzzle entities that add a challenge to each level.

1.3 Key Features

1.4 Target Platform(s)

The following platform(s) will be supported at launch.

Future Platform(s)

The following platforms may be supported depending on interest in the game.

1.5 Target Audience

Puzzle gamers who enjoy quick problem solving challenges.

2. Core Gameplay

2.1 Mechanics

The player uses their cursor to interact with puzzle entities. Interactions may involve toggling an entity on or off, rotating an entity, or moving it to a new location. The types of interactions that can be taken on a puzzle entity depend on the entity type.

2.2 Objectives

Navigate the laser beam from the emitter to the receiver by having the laser beam interact with puzzle entities. Avoid crossing beams of different colors and avoid destructible obstacles.

Crossing beams or destroying certain puzzle entities causes the level to reset.

2.3 Game Flow

  1. Player launches the game and is presented with the level selection screen.
  2. Player selects a level from the screen.
  3. Level is loaded, displayed on screen, and ready to be played.
  4. Player interacts with puzzle entities.
  5. Player solves or fails the puzzle. Failure resets the level.
  6. Upon successfully completing the puzzle, player unlocks another puzzle.

2.4 Level Design

2.4.1 Puzzle Entity

A puzzle entity is a building block of a level. It is something that interacts with the laser beam in some way that introduces challenges and solutions to each level.

Tile

The level "floor" that determines valid positions for puzzle entities. Puzzle entities can only be placed on tiles and movable entities can only be moved to tiles that are not occupied by another entity.
Input Interactions: None.
Laser Interactions: None.

Laser Emitter
Laser Emitter

Emits a laser with the same color as the emitter.
Input Interactions: Toggle laser on/off.
Laser Interactions: Fires its own laser and blocks laser from sides.

Laser Receiver
Laser Receiver

Receives a laser with the same color as the receiver. Lights up when connected with correct color laser.
Input Interactions: None.
Laser Interactions: Activates when a laser of it's own color enters the opening. Blocks other lasers from front or any laser from sides.

Mirror
Mirror

Reflects a laser.
Input Interactions: Toggle to rotate, drag to move.
Laser Interactions: Reflects a laser that collides with the front. Blocks lasers from sides

Two-Sided Mirror

Reflects one or more lasers.
Input Interactions: Toggle to rotate, drag to move.
Laser Interactions: Reflects a laser that collides with the either side.

Wall

Blocks one or more lasers.
Input Interactions: None.
Laser Interactions: Blocks lasers from all sides.

Bridge

Allows a laser to cross in one direction.
Input Interactions: None.
Laser Interactions: Allows a laser to cross in one direction, but blocks lasers from sides.

Cross Bridge
Cross Bridge

Allows lasers to cross.
Input Interactions: None.
Laser Interactions: Allows lasers to cross from all sides, including lasers of different colors.

Portal
Portal

Transports lasers.
Input Interactions: None.
Laser Interactions: Transports lasers that enter from front into corresponding portal. Blocks lasers from sides or back.

Dog
Dog

Just a dog.
Input Interactions: None.
Laser Interactions: Gets destroyed by laser and loses the level, but you wouldn't actually do that, would you?

Color Filter

Changes laser's color.
Input Interactions: None.
Laser Interactions: Each face has a different color. Laser entering matching color causes the laser to exit via the other color. Mismatched colors or lasers colliding with the side blocks the laser.

Splitter

Splits lasers into multiple beams.
Input Interactions: None.
Laser Interactions: Laser entering into input side splits into two beams via output sides. Lasers entering into any other side blocks the beam.

Capacitor

Forwards a beam once charged.
Input Interactions: None.
Laser Interactions: Acts like a laser emitter that must first be charged with a laser beam and then forwards the beam. Lasers colliding with sides other than input side block the beam.

2.4.2 Level Layout

Each level must have at least one Laser Emitter and Laser Receiver.

2.4.3 Winning

A level is won/solved when all laser receivers are activated.

2.4.4 Losing

A level is lost when two lasers of different colors are crossed or when a destructible puzzle entity is destroyed, such as hitting a dog with a laser.

When a level is lost, the level is reset and the player may try again. There are no consequences to losing a level.

2.4.5 Level Selection

Level selection has its own screen. Levels are grouped by entity type or combinations of entity types.

Completing any single level in a group unlocks the next level in that group. Completing any three levels unlocks another level group.

3. Art and Aesthetics

3.1 Visual Style

Overall Theme: Minimalist voxel, clearly differentiating between different puzzle elements.

Color Palette: A limited color palette prioritizing clarity over realism.

UI/UX: Minimalist and square, matching the 3D voxel aesthetic of the level content itself.

3.2 Sound Design

Music: Minimalist upbeat background music. Each level group has a different background music for variety. Music should be simple and repeats, but not too short as to be overly repetitive in a short time.

Sound Effects: Each interaction should have a simple sound effect to add some audible feedback.

Accessibility: Adjustable volume levels or mute options for background music, sound effects, or both.

3.3 Animations

Level transitions, puzzle entity interactions, and UI interactions are animated.

4. Technical Details

4.1 Engine and Tools

This game is written in C without a game engine, but utilizes the Raylib game library for providing many useful utilities for game development.

Development Tools

3D Models: MagicaVoxel is used for initial 3D modeling. Blender is used for adjusting models prior to importing within the game.

2D Textures / Art / UI: Krita is used for 2D art, UI elements, and adjusting textures.

4. Production Plan

4.1 Milestones

Prototype

Demo

Populate content

Polish

Pre-release

Release

4.2 Budget and Resources

I'm building this game in my spare time while working a full time job. The main resource I have to manage is my time.

Given that this is my first commercial game, I don't expect it to be a financial success. I have a small budget for the entire project. I'm not sure how that will be broken down yet, but I expect to spend some money on festival entries, art, and marketing assets as needed.

4.3 Marketing and Distribution

I stream some game development on Twitch. Have social accounts on X and Bluesky.

I still need to evaluate game festivals, but intend to submit to a few festivals as those seem to be primary drivers of wishlists prior to release.

5. Appendix

5.1 Reference Materials / Inspirations

Dexter's Lab: Laser Lab

An old web game from Cartoon Network games. You play as Dexter while collecting mirrors and adjusting mirrors to destroy balloons with a laser beam.

Dexter's Lab: Laser Lab

Khet

A chess-like board game where you position mirrors to connect your laser while attempting to block your opponent.

Khet board game

The Talos Principle

A graphically-realistic 3D puzzle game with a deeper philosophical story.

The Talos Principle screenshot

5.2 Screenshots

Below are several screenshots from the existing prototype.

Laser puzzle game screenshot 1
Laser bouncing off of mirrors
Laser puzzle game screenshot 2
Different colored lasers
Laser puzzle game screenshot 3
Multiple level elements