Main Page: Difference between revisions
| Line 14: | Line 14: | ||
* '''Complete native gameplay''' - Controls, movement, gravity, level trees, platforms, combat, blocking, grabbing, throwing, artificial intelligence, cameras, audio, menus, HUDs, and saving work without custom code. | * '''Complete native gameplay''' - Controls, movement, gravity, level trees, platforms, combat, blocking, grabbing, throwing, artificial intelligence, cameras, audio, menus, HUDs, and saving work without custom code. | ||
* '''[[Script Overview|Engine-wide scripting]]''' - Object APIs and | * '''[[Script Overview|Engine-wide scripting]]''' - Object APIs and [[:Category:Script Events|more than 70 event hooks]] expose input, animation, movement, collision, damage, spawning, audio, drawing, and other runtime systems for inspection, modification, or replacement. | ||
* '''[[Time|High-resolution simulation]]''' - The configurable logical clock runs at 200 Hz by default and remains independent of display updates. | * '''[[Time|High-resolution simulation]]''' - The configurable logical clock runs at 200 Hz by default and remains independent of display updates. | ||
* '''[[Geometry Overview|Three-dimensional sprite worlds]]''' - Floating-point X, Y, and Z geometry provides subpixel movement, terrain, altitude, and depth sorting. | * '''[[Geometry Overview|Three-dimensional sprite worlds]]''' - Floating-point X, Y, and Z geometry provides subpixel movement, terrain, altitude, and depth sorting. | ||
| Line 21: | Line 21: | ||
* '''[[Subscreens|Recursive graphics composition]]''' - Script-created subscreens support nested rendering, layer capture, transformations, masks, split screens, and feedback effects. | * '''[[Subscreens|Recursive graphics composition]]''' - Script-created subscreens support nested rendering, layer capture, transformations, masks, split screens, and feedback effects. | ||
* '''[[Runtime Script Compilation|Runtime metaprogramming]]''' - Modules can load and combine source files, compile them into independently owned programs, retain persistent state, execute them repeatedly, and replace them during play. | * '''[[Runtime Script Compilation|Runtime metaprogramming]]''' - Modules can load and combine source files, compile them into independently owned programs, retain persistent state, execute them repeatedly, and replace them during play. | ||
* '''Optimized performance | * '''Optimized performance''' - Native systems, high-frequency simulation, and script integration are engineered to maintain steady frame rates and butter-smooth motion with dozens or hundreds of active objects. | ||
== Getting Started == | == Getting Started == | ||
Revision as of 00:02, 22 August 2026
Introduction
What is OpenBOR?
OpenBOR is a royalty-free, open-source engine for sprite-based games. It combines a complete native game framework - including controls, movement, combat, artificial intelligence, levels, audio, menus, saving, and local multiplayer - with an integrated C-like scripting language that can extend or replace nearly every system.
OpenBOR specializes in side-scrolling action games such as Double Dragon and Streets of Rage, but its three-dimensional game world, configurable simulation, declarative object system, and scriptable graphics pipeline also support platformers, shooters, role-playing games, puzzle games, and other genres.
Beginners can build complete games primarily from assets and configuration. Advanced creators can manipulate engine objects, replace native behavior, construct rendering pipelines, and even compile new script programs while a module is running.
Why OpenBOR?
What sets OpenBOR apart is how far it extends in both directions. Creators do not need to build their own asset handling, controls, movement, artificial intelligence, collision and combat logic, audio playback, or other foundational systems. Everything is integrated and ready to use. Gather the assets and a fully functional game can be running within hours.
At the opposite extreme, OpenBOR exposes low-level primitives and engine objects through configuration and script. Creators can inspect runtime state, customize selected behavior, replace complete subsystems, or build new ones without modifying engine source or depending on third-party plugins. Native functionality is therefore a starting point, not a boundary.
- Complete native gameplay - Controls, movement, gravity, level trees, platforms, combat, blocking, grabbing, throwing, artificial intelligence, cameras, audio, menus, HUDs, and saving work without custom code.
- Engine-wide scripting - Object APIs and more than 70 event hooks expose input, animation, movement, collision, damage, spawning, audio, drawing, and other runtime systems for inspection, modification, or replacement.
- High-resolution simulation - The configurable logical clock runs at 200 Hz by default and remains independent of display updates.
- Three-dimensional sprite worlds - Floating-point X, Y, and Z geometry provides subpixel movement, terrain, altitude, and depth sorting.
- Declarative combat collision - Indexed three-dimensional attack and body boxes carry damage, reaction, motion, status, and presentation behavior.
- Composable relationships - Four independent 52-bit faction masks provide hardware-speed membership, hostility, direct-damage, and indirect-damage rules.
- Recursive graphics composition - Script-created subscreens support nested rendering, layer capture, transformations, masks, split screens, and feedback effects.
- Runtime metaprogramming - Modules can load and combine source files, compile them into independently owned programs, retain persistent state, execute them repeatedly, and replace them during play.
- Optimized performance - Native systems, high-frequency simulation, and script integration are engineered to maintain steady frame rates and butter-smooth motion with dozens or hundreds of active objects.
Getting Started
Download OpenBOR | Start Building | Browse the Reference | Visit the Community | View the Source
This wiki is the comprehensive technical reference for OpenBOR, but please note it is not intended as a walk-through. For more in-depth instruction, consult the tutorials and guides available through the ChronoCrash community.
Guides and Resources
- OpenBOR Overview – General overview of OpenBOR functionality and runtime layout.
- OpenBOR Hub – Main jumping off point for categories and individual wiki articles.
- OpenBOR Index – Simple index of OpenBOR commands, settings, and functions.
- Legacy Manual – Archival monolithic manual.
- ChronoCrash – OpenBOR’s home community, including its help forum, downloadable games, and in-depth tutorials.
- OpenBOR Repository – Public-facing OpenBOR code base.
Development Environment
Essential Tools
The following tools are needed to begin building games with OpenBOR. You will need a ChronoCrash community account to download some resources.
- OpenBOR engine executable – The latest stable engine release.
- Edit Pack – Tools for packing and unpacking OpenBOR game modules.
- Development environment – OpenBOR uses a combination of text files and optional script files to configure game functionality. Any text editor may be used. Visual Studio Code is recommended, together with Git or another version-control system for managing project files.
- Graphics software – Any graphics-editing application capable of exporting
.pngimages. Adobe Photoshop or GIMP are recommended. - Audio software – An audio-editing application capable of exporting
.wavfiles for sound effects and, optionally,.oggfiles for music. Adobe Audition or Audacity are recommended.
Optional Tools
These tools are optional but highly recommended.
- ChronoCrash Modders Tools (CMT) – Visual editing application for building OpenBOR games.
- PalApply – Applies a palette to one or more images and exports optimized
.pngfiles ready for use with OpenBOR.
What Open Source Means
Because the term has caused confusion and disputes in the past, it is important to clarify what open source means in the context of OpenBOR.
OpenBOR’s existing codebase is available under a permissive BSD-derived license. Creators may use the engine to make, license, and sell games and other content they rightfully own. The OpenBOR license does not claim or control that content.
Open source does not mean a free-for-all. It provides no implied permission to modify or redistribute another creator’s work without consent. The license also permits binary distribution without requiring source disclosure - it does not compel the team to release existing or future source code, and by extension it does not entitle anyone to the source code of closed-source extensions or obligate the development team to release it. The public repository is provided and maintained as a voluntary act of good faith, not as an obligation imposed by the license.
The OpenBOR development team may produce proprietary features, such as encrypted pack handling, and license them separately at its discretion.