Orx
   HOME

TheInfoList



OR:

Orx is an open-source,
portable Portable may refer to: General * Portable building, a manufactured structure that is built off site and moved in upon completion of site and utility work * Portable classroom, a temporary building installed on the grounds of a school to provide ...
, lightweight, plug-in-based, data-driven and easy to use 2D-oriented game engine written in C. It runs on
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ser ...
(
MinGW MinGW ("Minimalist GNU for Windows"), formerly mingw32, is a free and open source software development environment to create Microsoft Windows applications. MinGW includes a port of the GNU Compiler Collection (GCC), GNU Binutils for Windows ...
and
Visual Studio Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs including websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platforms such ...
versions),
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, w ...
,
MacOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
,
iOS iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone; the term also include ...
and Android.


General information

Orx provides a complete game creation framework including a 3D
scene graph Scene (from Greek σκηνή ''skēnḗ'') may refer to: Arts, entertainment, and media Music * Scene (subculture), a youth subculture from the early 2000s characterized by a distinct music and style. Groups and performers * The Scene who rec ...
, hardware accelerated 2D rendering, animation, input, sound, physics and much more. Its main goals are to allow fast game prototyping and creation. Orx is published under
Zlib zlib ( or "zeta-lib", ) is a software library used for data compression. zlib was written by Jean-loup Gailly and Mark Adler and is an abstraction of the DEFLATE compression algorithm used in their gzip file compression program. zlib is also ...
license.


Features

Despite being written in C, Orx has an
object oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of p ...
design with a plugin architecture. This allows its kernel to be cross-platform and delegates hardware- and OS-dependent tasks to plugins. Most of these plugins are based on other open-source libraries, such as
GLFW GLFW (Graphics Library Framework) is a lightweight utility library for use with OpenGL. It provides programmers with the ability to create and manage windows and OpenGL contexts, as well as handle joystick, keyboard and mouse input. Softwar ...
, SDL and
Box2D Box2D is a free open source 2-dimensional physics simulator engine written in C++ by Erin Catto and published under the MIT license. It has been used in ''Crayon Physics Deluxe'', ''Limbo'', '' Rolando'', '' Incredibots'', '' Angry Birds'', ' ...
. Build files are provided for GCC
makefile In software development, Make is a build automation tool that automatically builds executable programs and libraries from source code by reading files called ''Makefiles'' which specify how to derive the target program. Though integrated devel ...
s,
Visual Studio Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs including websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platforms such ...
(2017, 2019 & 2022),
Codelite CodeLite is a free and open-source IDE for the C, C++, PHP, and JavaScript (Node.js) programming languages. History In August 2006, Eran Ifrah started an autocomplete project named CodeLite. The idea was to create a code completion library b ...
, Code::Blocks and
Xcode Xcode is Apple's integrated development environment (IDE) for macOS, used to develop software for macOS, iOS, iPadOS, watchOS, and tvOS. It was initially released in late 2003; the latest stable release is version 14.2, released on December 13, ...
. ;Orx contains most of the common game engine features: * automated sprite rendering using 3D hardware acceleration allowing: translations, anisotropic scale, rotation, transparency (alpha blending), coloring (multiply, add and subtract blends), tiling and mirroring * advanced resource management * Multiple Render Targets (MRT) and advance compositing support * geometric display primitives and textured mesh rendering * camera/viewport system allowing multiple views on one screen with camera translations, zooms and rotations * 3D
scene graph Scene (from Greek σκηνή ''skēnḗ'') may refer to: Arts, entertainment, and media Music * Scene (subculture), a youth subculture from the early 2000s characterized by a distinct music and style. Groups and performers * The Scene who rec ...
used for object positioning, allowing grouped translations, rotations and scales * sound and music with volume, pitch and loop control, spatialization, hierarchical buses, filters, recording, etc. *
collision detection Collision detection is the computational problem of detecting the intersection of two or more objects. Collision detection is a classic issue of computational geometry and has applications in various computing fields, primarily in computer grap ...
and rigid body physics and joints * animation system * event management * custom fragment (pixel) shader support * unicode support * custom bitmap font rendering * real time CPU profiler * interactive "debug" console * multi-monitor support * clipboard support ;It also provides more unusual features * object creation is data driven: managing resources requires very little code, everything is controlled through configuration files * during dev phases, resources can be automatically hotloaded at runtime upon modification on disk, shortening drastically iteration times * a clock system: this allows the user to keep time consistency everywhere, giving him the ability of doing local or global time stretching * an animation chaining graph: animation transitions are defined in a graph, this allows the code to request only the final target animation; all transitions will be automated depending on the starting animation * a custom animation event system: allows easy synchronization with parts of animations * a visual FX system: config-based combination of curves of sine, sawtooth and linear shapes that can be plugged on object properties: color, alpha, position, translation or rotation * a powerful resource system: allows users to easily abstract resource access and work with separated development files as well as packed ones for release builds, or even use different sets of resources on different platforms, without having to change a line of code * an automated differential scrolling: depth scaling and differential scrolling is controlled through config files, allowing differential parallax scrolling on any number of planes * a powerful configuration system: featuring inheritance, direct random control, encryption/decryption, filtered save and history reload. This allows the user to tweak almost everything without having to change a single line of code * a spawning system: this allows the user to easily create weapon bullets or, combined with the visual FX system, elaborate visual graphic effects * an easy UI object positioning system: helps supporting different aspect ratio and provides easy picking/selection framework * a generic input system: allows users to use any kind of controllers (mouse, joystick, keyboard, touch, accelerometer, ...) through an abstract layer. The user asks for input status using plain names, bindings being done in config files or on the fly for user input customization, for example * simple scripting via a combination of timelines and commands * multi-threading support with asynchronous resources loading and hotloading support ;The current list of WIP features that will be added in the future: * 3D rendering support * network support


See also

* Game engine *
List of game engines Game engines are tools available for game designers to code and plan out a video game quickly and easily without building one from the ground up. Whether they are 2D or 3D based, they offer tools to aid in asset creation and placement. Engines ...
* SFML * SDL *
Box2D Box2D is a free open source 2-dimensional physics simulator engine written in C++ by Erin Catto and published under the MIT license. It has been used in ''Crayon Physics Deluxe'', ''Limbo'', '' Rolando'', '' Incredibots'', '' Angry Birds'', ' ...
*
GP2X The GP2X is a Linux-based handheld video game console and portable media player developed by South Korean company GamePark Holdings. It was released on November 10, 2005, in South Korea only. The GP2X is designed for homebrew developers as wel ...
*
Codelite CodeLite is a free and open-source IDE for the C, C++, PHP, and JavaScript (Node.js) programming languages. History In August 2006, Eran Ifrah started an autocomplete project named CodeLite. The idea was to create a code completion library b ...


References


External links


Orx Project Site

Git repository on GitHub.com

Mercurial repository on SourceForge.net

Orx wiki
{{Video game engines Free game engines Free software programmed in C Software using the zlib license