Jump to content

Main Page: Difference between revisions

From OpenBOR
 
(24 intermediate revisions by the same user not shown)
Line 2: Line 2:


=== What is OpenBOR? ===
=== What is OpenBOR? ===
OpenBOR is a royalty-free, open-source game engine. Typical OpenBOR games consist of three-dimensional worlds rendered with pre-generated two-dimensional assets, commonly called sprites. This makes OpenBOR ideal for creating side-scrolling beat ’em ups such as ''Double Dragon'' or ''Streets of Rage'', but the engine can accommodate many other genres, including two-dimensional platformers, shoot ’em ups, role-playing games, puzzle games, and others.
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 is advertised as the world’s most powerful sprite-based engine, and most agree it lives up to that branding. Its native functionality is fully self-contained, with control mapping, precise physics, level mapping, artificial intelligence, and asset handling included. This gives the engine a plug-and-play approach to game development that is so beginner-friendly it is sometimes mistaken for an emulator running modified ROMs.
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.


When you are ready for the next level, the engine is fully extendable. Advanced creators can take advantage of OpenBOR’s powerful high-definition graphics suite and native C-derived scripting interpreter to create virtually anything imaginable.
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.


=== What Open Source Means ===
=== Why OpenBOR? ===
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.
What sets OpenBOR apart is how we define its scope. Some engines concentrate on a particular result: role-playing games, one-on-one fighters, shoot-’em-ups, real-time strategy, or puzzles. Others attempt to support every technical medium, leaving developers to build most game-specific functionality themselves. Both are valid approaches. We take a third path by specializing in a technical medium without prescribing the result.
 
OpenBOR deliberately limits itself to the simulation and presentation of flat, two-dimensional visual assets in an effectively limitless three-dimensional world. No polygons. No meshes. No skeletal rigs. Just raster graphics moving through three axes. Within that foundation, virtually any sprite-powered concept is possible.
 
That focus means we spend our development resources on performance and depth: butter-smooth motion, asset handling, controls, gravity, collision, combat, blocking, grabbing, throwing, artificial intelligence, cameras, level trees, audio, menus, HUDs, saving, and local multiplayer are integrated and ready to use. Everything works together out of the box, with no need to build these foundations or assemble them from plugins.


OpenBOR’s existing codebase is available under a permissive [https://github.com/DCurrent/openbor/blob/master/LICENSE 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.
Then we layer beat ’em up-oriented behavior over those systems as the default starting point. Supply the necessary assets and configuration, and characters can already move, fight, react, navigate depth, cooperate, and progress through levels. You can have a functional game running within hours, but those defaults don't dictate the finished product.


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.
Configuration and script expose the same engine objects, properties, and low-level primitives beneath that native behavior. Creators can inspect runtime state, customize selected operations, replace complete subsystems, or combine the primitives into something we never anticipated. The same technical model can support platformers, shooters, role-playing games, puzzles, and other designs far removed from the default.


The OpenBOR development team may produce proprietary features, such as encrypted pack handling, and license them separately at its discretion.
The result is a deliberately bounded medium, a complete starting point, and an ending defined only by your imagination.
* '''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 [[: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.
* '''[[Geometry Overview|Three-dimensional sprite worlds]]''' - Floating-point X, Y, and Z geometry provides subpixel movement, terrain, altitude, and depth sorting. Set an area's Z axis to bounded values and the engine natively assumes 2D world behaviors.
* '''[[Collision|Declarative combat collision]]''' - Indexed three-dimensional attack and body boxes carry damage, reaction, motion, status, and presentation behavior.
* '''[[Factions|Composable relationships]]''' - Four independent 52-bit faction masks provide hardware-speed membership, hostility, direct-damage, and indirect-damage rules.
* '''[[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.
* '''Optimized performance''' - Native systems, high-frequency simulation, and script integration are engineered to maintain steady frame rates and seamless motion with dozens or hundreds of active objects.


== Getting Started ==
== Getting Started ==


This wiki is the reference bible 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 [https://chronocrash.com/forum ChronoCrash community].
'''[https://www.chronocrash.com/forum/resources/openbor.1/ Download OpenBOR]''' | '''[https://www.chronocrash.com/forum/resources/categories/samples-and-tutorials.5/?prefix_id=3 Start Building]''' | '''[[:Category:Openbor|Browse the Reference]]''' | '''[https://chronocrash.com Visit the Community]''' | '''[https://github.com/DCurrent/openbor 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 [https://chronocrash.com/forum ChronoCrash community].


=== Guides and Resources ===
=== Guides and Resources ===
Line 28: Line 43:
* [[Legacy Manual]] – Archival monolithic manual.
* [[Legacy Manual]] – Archival monolithic manual.
* [https://chronocrash.com/ ChronoCrash] – OpenBOR’s home community, including its help forum, downloadable games, and in-depth tutorials.
* [https://chronocrash.com/ ChronoCrash] – OpenBOR’s home community, including its help forum, downloadable games, and in-depth tutorials.
* [https://github.com/DCurrent/openbor OpenBOR Repository] – Public facing OpenBOR code base.
* [https://github.com/DCurrent/openbor OpenBOR Repository] – Public-facing OpenBOR code base.


== Development Environment ==
== Development Environment ==
Line 34: Line 49:
=== Essential Tools ===
=== Essential Tools ===


The following tools are required to begin building games with OpenBOR. You will need a [https://chronocrash.com/forum ChronoCrash community] account to download some resources.
The following tools are needed to begin building games with OpenBOR. You will need a [https://chronocrash.com/forum ChronoCrash community] account to download some resources.


* [https://www.chronocrash.com/forum/resources/categories/engine.3/ OpenBOR engine executable] – The latest stable engine release.
* [https://www.chronocrash.com/forum/resources/categories/engine.3/ OpenBOR engine executable] – The latest stable engine release.
* '''[https://www.chronocrash.com/forum/resources/neo-edit-pack.2/ Edit Pack]''' – Contains a legacy copy of the engine, a legacy game module with basic examples, an application for packing and unpacking game modules, and an application for converting <code>.wav</code> files to the proprietary <code>.bor</code> music format.
* '''[https://www.chronocrash.com/forum/resources/neo-edit-pack.2/ 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. You may use any text editor of your choice.
* '''Development environment''' – OpenBOR uses a combination of text files and optional script files to configure game functionality. Any text editor may be used. [https://code.visualstudio.com/ Visual Studio Code] is recommended, together with [https://github.com Git] or another version-control system for managing project files.
* '''Graphics software''' – A graphics-editing application capable of exporting <code>.png</code> images. Adobe Photoshop and GIMP are recommended.
* '''Graphics software''' – Any graphics-editing application capable of exporting <code>.png</code> images. [https://www.adobe.com Adobe Photoshop] or [https://www.gimp.org/ GIMP] are recommended.
* '''Audio software''' – An audio-editing application capable of exporting <code>.wav</code> files for sound effects and, optionally, <code>.ogg</code> files for music. Adobe Audition and Audacity are recommended.
* '''Audio software''' – An audio-editing application capable of exporting <code>.wav</code> files for sound effects and, optionally, <code>.ogg</code> files for music. [https://www.adobe.com/products/audition.html Adobe Audition] or [https://www.audacityteam.org/ Audacity] are recommended.


=== Optional Tools ===
=== Optional Tools ===
Line 48: Line 63:
* '''[https://www.chronocrash.com/forum/resources/chronocrash-modders-tools.139/ ChronoCrash Modders Tools (CMT)]''' – Visual editing application for building OpenBOR games.
* '''[https://www.chronocrash.com/forum/resources/chronocrash-modders-tools.139/ ChronoCrash Modders Tools (CMT)]''' – Visual editing application for building OpenBOR games.
* '''[https://www.chronocrash.com/forum/resources/palapply.15/ PalApply]''' – Applies a palette to one or more images and exports optimized <code>.png</code> files ready for use with OpenBOR.
* '''[https://www.chronocrash.com/forum/resources/palapply.15/ PalApply]''' – Applies a palette to one or more images and exports optimized <code>.png</code> files 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 [https://github.com/DCurrent/openbor/blob/master/LICENSE 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.

Latest revision as of 23:49, 25 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 we define its scope. Some engines concentrate on a particular result: role-playing games, one-on-one fighters, shoot-’em-ups, real-time strategy, or puzzles. Others attempt to support every technical medium, leaving developers to build most game-specific functionality themselves. Both are valid approaches. We take a third path by specializing in a technical medium without prescribing the result.

OpenBOR deliberately limits itself to the simulation and presentation of flat, two-dimensional visual assets in an effectively limitless three-dimensional world. No polygons. No meshes. No skeletal rigs. Just raster graphics moving through three axes. Within that foundation, virtually any sprite-powered concept is possible.

That focus means we spend our development resources on performance and depth: butter-smooth motion, asset handling, controls, gravity, collision, combat, blocking, grabbing, throwing, artificial intelligence, cameras, level trees, audio, menus, HUDs, saving, and local multiplayer are integrated and ready to use. Everything works together out of the box, with no need to build these foundations or assemble them from plugins.

Then we layer beat ’em up-oriented behavior over those systems as the default starting point. Supply the necessary assets and configuration, and characters can already move, fight, react, navigate depth, cooperate, and progress through levels. You can have a functional game running within hours, but those defaults don't dictate the finished product.

Configuration and script expose the same engine objects, properties, and low-level primitives beneath that native behavior. Creators can inspect runtime state, customize selected operations, replace complete subsystems, or combine the primitives into something we never anticipated. The same technical model can support platformers, shooters, role-playing games, puzzles, and other designs far removed from the default.

The result is a deliberately bounded medium, a complete starting point, and an ending defined only by your imagination.

  • 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. Set an area's Z axis to bounded values and the engine natively assumes 2D world behaviors.
  • 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 seamless 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 .png images. Adobe Photoshop or GIMP are recommended.
  • Audio software – An audio-editing application capable of exporting .wav files for sound effects and, optionally, .ogg files 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 .png files 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.