diff --git a/AUTHORS b/AUTHORS index 7312d33b4..1bfa454f0 100644 --- a/AUTHORS +++ b/AUTHORS @@ -59,7 +59,8 @@ Orx authors: Matthieu 'Pixoshiru' Gallais Demo graphics: - Ebe, Matthieu 'Pixoshiru' Gallais + Ebe + Matthieu 'Pixoshiru' Gallais Default font (dina): Jørgen 'Jibs' Ibsen @@ -72,8 +73,10 @@ Orx authors: Enis 'enobayram' Bayramoğlu Eric Poulsen Fritz 'acksys' Mahnke + Hezekiah 'hcarty' Carty Kevin Watters Konrad 'Graag' Klimaszewski + OneArb Ray Yee Sergei Gnezdov Wayne 'Sausage' Johnson diff --git a/CHANGELOG b/CHANGELOG index 875ddb1f9..415dbd382 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,62 @@ Orx - Portable Game Engine ========================== +orx 1.11 +----- +* IMPORTANT: Init script now support optional extensions through templates: current available extensions are Scroll, Dear ImGui and orxArchive +* IMPORTANT: External dependencies are now compiled with MinGW-w64 8.1.0 (was MinGW 6.3.0), including new support for 64bit +* IMPORTANT: Added support for VS2019 and retired support for VS2013 +* IMPORTANT: Min deployment OS version for MacOS is now 10.9 (due to stdlibc++ being replaced by libc++) +* IMPORTANT: Random seed is now initialized by default based on a real time-based value (it can be overridden as soon as the bootstrap call or main init) +* IMPORTANT: Fixed OSX/Retina and Windows high DPI display issues +* IMPORTANT: Multiple commands in config blocks can now be separated by EOL with an optional comma +* IMPORTANT: Added support for section clear marker (![Section]) +* IMPORTANT: One can now control which physical peripherals will be polled on a per set basis by using orxInput_SetTypeFlags() +* IMPORTANT: Added support for text animations, which can also be optionally mixed with texture frames +* IMPORTANT: Commands can now be executed by animation custom events (multiple commands need to be comma-separated) +* IMPORTANT: Graphics/textures can now be modified when handling orxRENDER_EVENT_OBJECT_START +* IMPORTANT: Removed obsolete functions orxDisplay_SetBitmapColorKey() and orxTexture_SetColor() +* IMPORTANT: Removed obsolete fucntion orxViewport_SetAlignment() +* IMPORTANT: Object LifeTime config property & command can now take literals (fx, sound, spawn, track and child) which will keep an object alive until the mentioned properties don't exist anymore +* IMPORTANT: Viewports can now be uniquely indentified with config names + added viewport commands +* IMPORTANT: Command string parameters beginning with ( or { are now assumed to be vectors and will be handled as a single block +* IMPORTANT: orxObject_GetSize() will now use a default Z=1 value for 2D flat objects +* IMPORTANT: Empty config properties FXList, TrackList, SoundList, ShaderList, TextureList and GroupList are now valid +* IMPORTANT: Returning orxSTATUS_FAILURE when handling orxSHADER_EVENT_SET_PARAM will now keep the former parameter value in the shader +* IMPORTANT: orxFile_GetHomeDirectory() & orxFile_GetApplicationSaveDirectory() will now use linux separators in all returned paths + +* Added orxThread_SetCallbacks() to support pre/post callbacks in orx threads, useful for interacting with other language runtimes +* Added orxDisplay_SetPartialBitmapData() +* Added config properties JoyName & JoyID that are kept up to date based on currently available joysticks +* Added commands File.GetHomeDirectory & File.GetApplicationSaveDirectory +* orxString_SkipWhiteSpaces() will now skip EOL characters as well +* Added recursive versions of orxObject_SetAnimFrequency(), orxObject_SetBlendMode() and orxObject_SetSmoothing() +* Object aging now take an object's clock multiply modifier into account if present +* Added orxObject_GetCurrentAnim(), orxObject_GetTargetAnim() & orxObject_GetAnimFrequency() + Object.GetAnim & Object.GetAnimFrequency commands +* Added an optional filter callback to orxConfig_Clear() +* Added color argument to orxDisplay_Transform*() +* Added command Command.VectorX|Y|Z + aliases Vector.X|Y|Z for vector component extraction +* Viewport shaders can be skipped when handling orxRENDER_EVENT_VIEWPORT_STOP +* Added support for 0-length animation frames if they contain custom events (frames won't be created but events will be stored) +* Added swizzles to IgnoreFromParents scale, position.scale & position.position flags +* Added orxFrame_GetIgnoreFlagNames() to convert flags back to literals +* Added config property Display.FramebufferSize that can now be used along gl_FragCoord when necessary +* Added orxObject_LogParents() function + Object.LogParents command to display an object's hierarchy including transformations and ignore flags +* orxConfig_ClearSection() now works with name parameters containing inheritance markers +* Added body/physics function for changing a part's friction, restitution and density +* Added orxPhysics_BoxPick()/orxBody_BoxPick() + orxPhysics_IsInsidePart()/orxBody_IsInsidePart()/orxBody_IsInside() +* Fixed Suspension (aka Wheel) joint parameters +* Cleaner version of chain and edge body parts +* Command Object.SetPivot can now accept literals +* Added Object.GetCount command +* Added new RENDER events for CONSOLE_START, CONSOLE_STOP, PROFILER_START and PROFILER_STOP +* Added config property Render.ProfilerOrientation +* Added Render config properties to control the colors of the console +* Updated/Cleaned all tutorials +* Deprecated and removed orxString_Copy() in favor of orxString_NCopy() +* Removed outdated orxScroll demo +* Misc fixes, optimizations and additions + orx 1.10 ----- * IMPORTANT: Migrated display, mouse, joystick and keyboard plugins from GLFW 2.7 to GLFW 3.3 diff --git a/README.html b/README.html index 3a64dea43..d3a2ec5e5 100644 --- a/README.html +++ b/README.html @@ -1,1050 +1,1051 @@ -README

Join the chat at https://gitter.im/orx/orx -Travis build -Build status

-

-Orx - Portable Game Engine (Version 1.10)

-

Email iarwain [at] orx-project.org to contact the author; or, better, -check orx's homepage for the most up-to-date contact information. -You can also come chat with us -if you have any questions or comments.

-

This engine is licensed under the very permissive zlib license, -see the LICENSE file for details.

-

-Summary

-

Orx is a 2D-oriented, data-driven, portable game engine focused primarily on ease of use and powerful features. -See below for a list of supported platforms.

-

This is a release candidate for orx v1.10. If you find any bugs, -please report them on the forum, in the "Bug report - Feature request" board, -or via orx's issue page/tracker.

-

Some notable features of the engine are:

-
    -
  • hardware-accelerated rendering that provides: translation, anisotropic scale, rotation, -transparency (alpha blending), different blending modes, coloring, tiling and mirroring
  • -
  • advanced rendering features such as MRT (Multiple Render Targets) support and easy compositing
  • -
  • powerful config system that makes orx data-driven and provides an easy to use load/save system
  • -
  • powerful resource management allowing for easy multi-platform data support and patching
  • -
  • automatic hotloading of resources upon modification on disk shortens drastically iteration times
  • -
  • timelines and commands modules allow for config-driven scripting-like features
  • -
  • interactive console can execute commands at runtime (very useful for tweaking/debug purposes)
  • -
  • advanced animation engine (including a chaining graph & custom animation events for synchronization)
  • -
  • fragment (pixel) shader support
  • -
  • visual FXs based on curve combinations
  • -
  • integrated runtime profiler (with graphical display) to easily spot which parts of your game need to be optimized
  • -
  • collision handling and rigid body physics
  • -
  • camera/viewport scheme allowing multiple views displayed with camera translation, zoom and rotation
  • -
  • generic input system that abstracts keyboard, mouse, joystick, touch and accelerometer inputs
  • -
  • powerful localization module
  • -
  • spawners (provides an easy way to create particles or projectiles)
  • -
  • 3D positioning using "scene nodes"
  • -
  • custom bitmap font support
  • -
  • automatic differential scrolling and depth scaling upon request
  • -
  • music and spatialized sound support
  • -
  • clock system that provides time consistency and allows time stretching + high precision timers
  • -
  • event manager
  • -
  • unicode support with UTF-8 encoding
  • -
  • plugin system
  • -
  • screenshot capture tool (supports bmp, png, jpg, tga and dds)
  • -
-

See orx's wiki for detailed information, including:

-
    -
  • initial setup
  • -
  • beginner's guide
  • -
  • tools
  • -
  • samples
  • -
  • detailed tutorials (both official and community-made ones)
  • -
-

See the doc/html directory for the doxygen documentation of orx's API. -The documentation for the latest release version is available here at orx's homepage.

-

-Supported Platforms

-

The engine compiles and is tested for:

-
    -
  • Linux (x86/x86-64 with codelite, codeblocks and GNU makefile)
  • -
  • Windows (x86/x86-64 with vs2015, vs2017 & vs2019, x86/x86-64 mingw-w64 (8.1.0) with codelite, codeblocks and GNU makefile)
  • -
  • MacOS X (x86/x86-64 with xcode or x86/x86-64 with codelite, codeblocks and GNU makefile), version 10.6+
  • -
  • iOS (iPhone/iPod Touch/iPad, simulator & device with xcode)
  • -
  • Android (NDK build files, simulator & device)
  • -
-

-Versions

-

Those are not revision versions but link/run versions. -Orx library can be compiled as a static or a dynamic library. -In addition to these modes, orx can be compiled as an embedded version or not.

-

Orx's core is basically platform-independent. All the platform/OS-dependent features -are implemented via plugins. These plugins can be loaded at runtime (hotplug) or -they can be embedded at linktime.

-

If you use the non-embedded versions, you'll have to specify which plugins to use. -This is more flexible but also requires additional files (the plugins themselves). -The embedded version will store everything in orx's library, meaning you won't be able -to choose which plugin to use at runtime, but will also be more compact. This will -also make orx run considerably faster.

-

From the download page you'll find precompiled binaries for Windows (x86), Linux (x86/x86-64), MacOS X (ppc/x86/x86-64), -iOS and Android, using the dynamic embedded versions only. -If you want to use the non-embedded versions (to use with your own plugins), you'll need to compile orx yourself from the source. -Everything compiles out-of-the-box for the hardware platforms cited above.

-

The embedded versions currently use:

-
    -
  • GLFW-based (+SOIL) plugins for display, joystick, keyboard and mouse for all non-iOS/non-Android platforms
  • -
  • OpenAL-based (+libsndfile/stb_vorbis/tremor) plugins for sound for all platforms
  • -
  • Box2D-based plugin for physics
  • -
  • homemade plugin for 2D rendering
  • -
  • OpenGL ES plugins for display on iOS and Android
  • -
  • Touch/MultiTouch-based plugin for mouse on iOS and Android
  • -
  • Accelerometer-based plugin for joystick on iOS and Android
  • -
-

All the 11 basic and advanced official tutorials are shipped with the dev packages, including precompiled release binaries.

-

Some tools (precompiled binaries only) are also shipped with the dev packages:

-
    -
  • -orxCrypt : command line tool to encrypt/decrypt/merge multiple config files
  • -
  • -orxFontGen: command line tool (based on FreeType2) to generate custom bitmap fonts (.tga texture & .ini config file) from TrueType fonts
  • -
-

-Packages

-

You can download all the packages from sourceforge or github. -Here is a list with a small description for each package.

-
    -
  • -orx-doc-1.10.zip : orx's API doxygen documentation
  • -
  • -orx-src-1.10.zip : orx's source code, ready for compile after running the setup script
  • -
  • -orx-dev-linux32-1.10.tar.bz2 : dynamic embedded binaries for Linux (x86), release/profile/debug + tools.
  • -
  • -orx-dev-linux64-1.10.tar.bz2 : dynamic embedded binaries for Linux (x86-64), release/profile/debug + tools.
  • -
  • -orx-dev-mac-1.10.zip : dynamic embedded binaries for MacOS X (x86/x86-64), release/profile/debug + tools.
  • -
  • -orx-dev-mingw-32-1.10.zip : dynamic embedded binaries for Windows (mingw/x86), release/profile/debug + tools.
  • -
  • -orx-dev-mingw-64-1.10.zip : dynamic embedded binaries for Windows (mingw/x86-64), release/profile/debug + tools.
  • -
  • -orx-dev-vs2015-32-1.10.zip : dynamic embedded binaries for Windows (Visual Studio 2015, x86), release/profile/debug + tools.
  • -
  • -orx-dev-vs2015-64-1.10.zip : dynamic embedded binaries for Windows (Visual Studio 2015, x86-64), release/profile/debug + tools.
  • -
  • -orx-dev-vs2017-32-1.10.zip : dynamic embedded binaries for Windows (Visual Studio 2017, x86), release/profile/debug + tools.
  • -
  • -orx-dev-vs2017-64-1.10.zip : dynamic embedded binaries for Windows (Visual Studio 2017, x86-64), release/profile/debug + tools.
  • -
  • -orx-dev-vs2019-32-1.10.zip : dynamic embedded binaries for Windows (Visual Studio 2019, x86), release/profile/debug + tools.
  • -
  • -orx-dev-vs2019-64-1.10.zip : dynamic embedded binaries for Windows (Visual Studio 2019, x86-64), release/profile/debug + tools.
  • -
  • -orx-full-ios-1.10.zip : static embedded binaries for iOS, release/profile/debug, simulator/device + doc + source + XCode project file.
  • -
  • -orx-dev-android-1.10.zip : static embedded binaries for Android, release/profile/debug (device).
  • -
  • -orx-dev-android-native-1.10.zip : static embedded binaries for Android Native, release/profile/debug (device).
  • -
  • -orx-tutorial-linux32-1.10.tar.bz2 : tutorials for Linux (x86)
  • -
  • -orx-tutorial-linux64-1.10.tar.bz2 : tutorials for Linux (x86-64)
  • -
  • -orx-tutorial-mac-1.10.zip : tutorials for MacOS X (x86/x86-64)
  • -
  • -orx-tutorial-mingw-32-1.10.zip : tutorials for Windows (mingw/x86)
  • -
  • -orx-tutorial-mingw-64-1.10.zip : tutorials for Windows (mingw/x86-64)
  • -
  • -orx-tutorial-vs2015-32-1.10.zip : tutorials for Windows (Visual Studio 2015, x86)
  • -
  • -orx-tutorial-vs2015-64-1.10.zip : tutorials for Windows (Visual Studio 2015, x86-64)
  • -
  • -orx-tutorial-vs2017-32-1.10.zip : tutorials for Windows (Visual Studio 2017, x86)
  • -
  • -orx-tutorial-vs2017-64-1.10.zip : tutorials for Windows (Visual Studio 2017, x86-64)
  • -
  • -orx-tutorial-vs2019-32-1.10.zip : tutorials for Windows (Visual Studio 2019, x86)
  • -
  • -orx-tutorial-vs2019-64-1.10.zip : tutorials for Windows (Visual Studio 2019, x86-64)
  • -
-

All the *-dev-* packages above include:

-
    -
  • orx release/profile/debug libraries used for linking
  • -
  • runtime release/profile/debug orx libraries
  • -
  • headers to include at compile time
  • -
  • template files exposing which properties can be accessed using the config system (for user reference only, not needed by orx)
  • -
-

All the *-tutorial-* packages above include:

-
    -
  • heavily commented source code for 11 basic and advanced tutorials
  • -
  • precompiled binaries (orx link library, orx runtime library)
  • -
  • headers to include at compile time
  • -
  • template files exposing which properties can be accessed using the config system (for user reference only, not needed by orx)
  • -
  • build/project files
  • -
-

-Compiling

-

Important - first step:

-

If you just downloaded the src package or cloned orx with mercurial or git, you will need to run the setup.bat / setup.sh script -that's located at its root before being able to compile the engine. -This script will download all the needed dependencies and generate all the project files for your platform. -The script will then hook itself to mercurial/git and you shouldn't have to run it manually after subsequent pulls.

-

The easiest way to learn how to compile your project using orx for a given platform -is to look at the tutorial build project files.

-

NB: The debug version is far slower than the release one, but will output all the warning -and error messages useful during development.

-

Here's a quick list of the available compile preprocessor flags:

-
    -
  • -

    __orxDEBUG__ : used to compile and link against the debug versions of orx library -(liborxd.a / orxd.lib / liborxd.dylib), if not specified it refers to -the release versions (liborx.a / orx.lib / liborx.dylib).
    -NB: If you want to link against the debug versions of orx library, you need -to specify it to your compiler!

    -
  • -
  • -

    __orxPROFILER__ : used to enable the profiling push/pop macros for release builds -It's automatically enabled for debug builds and it has been enabled to -build liborxp.a / orxp.lib / orxp.dll / liborxp.dylib / liborxp.so
    -NB: You can define it in your projects even when using regular release builds, -but you won't be able to see orx's internal profiling markers!

    -
  • -
  • -

    __orxSTATIC__ : used to compile and link against the static versions of orx library.
    -NB: If you want to link against the static versions of orx library, you need -to specify it to your compiler!

    -
  • -
  • -

    __orxEMBEDDED__ : used to compile the embedded versions of orx library.
    -NB: this flag is ONLY needed when compiling orx library, not when linking -against it.

    -
  • -
-

There are other preprocessor flags used when compiling the orx library, -but those should be easy enough to decipher. markdo -However, you might want to specify them manually for cross-compiling or -use them so that your code will behave differently depending on the architecture -for which you're compiling. Here's a quick list of these flags:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FlagDescription
__orxARM__orx is being compiled for an ARM architecture
__orxPPC__orx is being compiled for a PowerPC architecture
__orxPPC64__orx is being compiled for a PowerPC 64 architecture
__orxX86__orx is being compiled for a x86 architecture
__orxX86_64__orx is being compiled for a x86-64 architecture
__orxLITTLE_ENDIAN__orx is being compiled for a little endian architecture
__orxBIG_ENDIAN__orx is being compiled for a big endian architecture
__orxGCC__orx is being compiled with gcc
__orxMSVC__orx is being compiled with visual studio C/C++
__orxLLVM__orx is being compiled with llvm/clang
__orxWINDOWS__orx is being compiled for Windows
__orxMAC__orx is being compiled for MacOS X
__orxLINUX__orx is being compiled for Linux
__orxIOS__orx is being compiled for iOS
__orxANDROID__orx is being compiled for Android
__orxANDROID_NATIVE__orx is being compiled for Android Native
__orxCPP__orx is being compiled with a C++ compiler
__orxOBJC__orx is being compiled with an Objective-C compiler
__orxPLUGIN__a plugin for orx is being compiled
__orxEXTERN__code using orx's library is being compiled
-

-Comments

-

If you have any questions, comments, ideas or reviews, feel free to either -post them on orx's forum, -come chat with us -or send them directly by email to iarwain [at] orx-project.org

-

Enjoy!

-
+README

Join the chat at https://gitter.im/orx/orx +Travis build +Build status

+

+Orx - Portable Game Engine (Version 1.11)

+

Email iarwain [at] orx-project.org to contact the author; or, better, +check orx's homepage for the most up-to-date contact information. +You can also come chat with us +if you have any questions or comments.

+

This engine is licensed under the very permissive zlib license, +see the LICENSE file for details.

+

+Summary

+

Orx is a 2D-oriented, data-driven, portable game engine focused primarily on ease of use and powerful features. +See below for a list of supported platforms.

+

This is a release candidate for orx v1.11. If you find any bugs, +please report them on the forum, in the "Bug report - Feature request" board, +or via orx's issue page/tracker.

+

Some notable features of the engine are:

+
    +
  • hardware-accelerated rendering that provides: translation, anisotropic scale, rotation, +transparency (alpha blending), different blending modes, coloring, tiling and mirroring
  • +
  • advanced rendering features such as MRT (Multiple Render Targets) support and easy compositing
  • +
  • powerful config system that makes orx data-driven and provides an easy to use load/save system
  • +
  • powerful resource management allowing for easy multi-platform data support and patching
  • +
  • automatic hotloading of resources upon modification on disk shortens drastically iteration times
  • +
  • timelines and commands modules allow for config-driven scripting-like features
  • +
  • interactive console can execute commands at runtime (very useful for tweaking/debug purposes)
  • +
  • advanced animation engine (including a chaining graph & custom animation events for synchronization)
  • +
  • fragment (pixel) shader support
  • +
  • visual FXs based on curve combinations
  • +
  • integrated runtime profiler (with graphical display) to easily spot which parts of your game need to be optimized
  • +
  • collision handling and rigid body physics
  • +
  • camera/viewport scheme allowing multiple views displayed with camera translation, zoom and rotation
  • +
  • generic input system that abstracts keyboard, mouse, joystick, touch and accelerometer inputs
  • +
  • powerful localization module
  • +
  • spawners (provides an easy way to create particles or projectiles)
  • +
  • 3D positioning using "scene nodes"
  • +
  • custom bitmap font support
  • +
  • automatic differential scrolling and depth scaling upon request
  • +
  • music and spatialized sound support
  • +
  • clock system that provides time consistency and allows time stretching + high precision timers
  • +
  • event manager
  • +
  • unicode support with UTF-8 encoding
  • +
  • plugin system
  • +
  • screenshot capture tool (supports bmp, png, jpg, tga and dds)
  • +
+

See orx's wiki for detailed information, including:

+
    +
  • initial setup
  • +
  • beginner's guide
  • +
  • tools
  • +
  • samples
  • +
  • detailed tutorials (both official and community-made ones)
  • +
+

See the doc/html directory for the doxygen documentation of orx's API. +The documentation for the latest release version is available here at orx's homepage.

+

+Supported Platforms

+

The engine compiles and is tested for:

+
    +
  • Linux (x86/x86-64 with codelite, codeblocks and GNU makefile)
  • +
  • Windows (x86/x86-64 with vs2015, vs2017 & vs2019, x86/x86-64 mingw-w64 (8.1.0) with codelite, codeblocks and GNU makefile)
  • +
  • MacOS X (x86/x86-64 with xcode or x86/x86-64 with codelite, codeblocks and GNU makefile), version 10.6+
  • +
  • iOS (iPhone/iPod Touch/iPad, simulator & device with xcode)
  • +
  • Android (NDK build files, simulator & device)
  • +
+

+Versions

+

Those are not revision versions but link/run versions. +Orx library can be compiled as a static or a dynamic library. +In addition to these modes, orx can be compiled as an embedded version or not.

+

Orx's core is basically platform-independent. All the platform/OS-dependent features +are implemented via plugins. These plugins can be loaded at runtime (hotplug) or +they can be embedded at linktime.

+

If you use the non-embedded versions, you'll have to specify which plugins to use. +This is more flexible but also requires additional files (the plugins themselves). +The embedded version will store everything in orx's library, meaning you won't be able +to choose which plugin to use at runtime, but will also be more compact. This will +also make orx run considerably faster.

+

From the download page you'll find precompiled binaries for Windows (x86), Linux (x86/x86-64), MacOS X (ppc/x86/x86-64), +iOS and Android, using the dynamic embedded versions only. +If you want to use the non-embedded versions (to use with your own plugins), you'll need to compile orx yourself from the source. +Everything compiles out-of-the-box for the hardware platforms cited above.

+

The embedded versions currently use:

+
    +
  • GLFW-based (+SOIL) plugins for display, joystick, keyboard and mouse for all non-iOS/non-Android platforms
  • +
  • OpenAL-based (+libsndfile/stb_vorbis/tremor) plugins for sound for all platforms
  • +
  • Box2D-based plugin for physics
  • +
  • homemade plugin for 2D rendering
  • +
  • OpenGL ES plugins for display on iOS and Android
  • +
  • Touch/MultiTouch-based plugin for mouse on iOS and Android
  • +
  • Accelerometer-based plugin for joystick on iOS and Android
  • +
+

All the 11 basic and advanced official tutorials are shipped with the dev packages, including precompiled release binaries.

+

Some tools (precompiled binaries only) are also shipped with the dev packages:

+
    +
  • +orxCrypt : command line tool to encrypt/decrypt/merge multiple config files
  • +
  • +orxFontGen: command line tool (based on FreeType2) to generate custom bitmap fonts (.png texture & .ini config file) from TrueType fonts
  • +
+

+Packages

+

You can download all the packages from sourceforge or github. +Here is a list with a small description for each package.

+
    +
  • +orx-doc-1.11.zip : orx's API doxygen documentation
  • +
  • +orx-src-1.11.zip : orx's source code, ready for compile after running the setup script
  • +
  • +orx-dev-linux32-1.11.tar.bz2 : dynamic embedded binaries for Linux (x86), release/profile/debug + tools.
  • +
  • +orx-dev-linux64-1.11.tar.bz2 : dynamic embedded binaries for Linux (x86-64), release/profile/debug + tools.
  • +
  • +orx-dev-mac-1.11.zip : dynamic embedded binaries for MacOS X (x86/x86-64), release/profile/debug + tools.
  • +
  • +orx-dev-mingw-32-1.11.zip : dynamic embedded binaries for Windows (mingw/x86), release/profile/debug + tools.
  • +
  • +orx-dev-mingw-64-1.11.zip : dynamic embedded binaries for Windows (mingw/x86-64), release/profile/debug + tools.
  • +
  • +orx-dev-vs2015-32-1.11.zip : dynamic embedded binaries for Windows (Visual Studio 2015, x86), release/profile/debug + tools.
  • +
  • +orx-dev-vs2015-64-1.11.zip : dynamic embedded binaries for Windows (Visual Studio 2015, x86-64), release/profile/debug + tools.
  • +
  • +orx-dev-vs2017-32-1.11.zip : dynamic embedded binaries for Windows (Visual Studio 2017, x86), release/profile/debug + tools.
  • +
  • +orx-dev-vs2017-64-1.11.zip : dynamic embedded binaries for Windows (Visual Studio 2017, x86-64), release/profile/debug + tools.
  • +
  • +orx-dev-vs2019-32-1.11.zip : dynamic embedded binaries for Windows (Visual Studio 2019, x86), release/profile/debug + tools.
  • +
  • +orx-dev-vs2019-64-1.11.zip : dynamic embedded binaries for Windows (Visual Studio 2019, x86-64), release/profile/debug + tools.
  • +
  • +orx-full-ios-1.11.zip : static embedded binaries for iOS, release/profile/debug, simulator/device + doc + source + XCode project file.
  • +
  • +orx-dev-android-1.11.zip : static embedded binaries for Android, release/profile/debug (device).
  • +
  • +orx-dev-android-native-1.11.zip : static embedded binaries for Android Native, release/profile/debug (device).
  • +
  • +orx-tutorial-linux32-1.11.tar.bz2 : tutorials for Linux (x86)
  • +
  • +orx-tutorial-linux64-1.11.tar.bz2 : tutorials for Linux (x86-64)
  • +
  • +orx-tutorial-mac-1.11.zip : tutorials for MacOS X (x86/x86-64)
  • +
  • +orx-tutorial-mingw-32-1.11.zip : tutorials for Windows (mingw/x86)
  • +
  • +orx-tutorial-mingw-64-1.11.zip : tutorials for Windows (mingw/x86-64)
  • +
  • +orx-tutorial-vs2015-32-1.11.zip : tutorials for Windows (Visual Studio 2015, x86)
  • +
  • +orx-tutorial-vs2015-64-1.11.zip : tutorials for Windows (Visual Studio 2015, x86-64)
  • +
  • +orx-tutorial-vs2017-32-1.11.zip : tutorials for Windows (Visual Studio 2017, x86)
  • +
  • +orx-tutorial-vs2017-64-1.11.zip : tutorials for Windows (Visual Studio 2017, x86-64)
  • +
  • +orx-tutorial-vs2019-32-1.11.zip : tutorials for Windows (Visual Studio 2019, x86)
  • +
  • +orx-tutorial-vs2019-64-1.11.zip : tutorials for Windows (Visual Studio 2019, x86-64)
  • +
+

All the *-dev-* packages above include:

+
    +
  • orx release/profile/debug libraries used for linking
  • +
  • runtime release/profile/debug orx libraries
  • +
  • headers to include at compile time
  • +
  • template files exposing which properties can be accessed using the config system (for user reference only, not needed by orx)
  • +
+

All the *-tutorial-* packages above include:

+
    +
  • heavily commented source code for 11 basic and advanced tutorials
  • +
  • precompiled binaries (orx link library, orx runtime library)
  • +
  • headers to include at compile time
  • +
  • template files exposing which properties can be accessed using the config system (for user reference only, not needed by orx)
  • +
  • build/project files
  • +
+

+Compiling

+

+Important - first step:

+

If you just downloaded the src package or cloned orx with mercurial or git, you will need to run the setup.bat / setup.sh script +that's located at its root before being able to compile the engine. +This script will download all the needed dependencies and generate all the project files for your platform. +The script will then hook itself to mercurial/git and you shouldn't have to run it manually after subsequent pulls.

+

The easiest way to learn how to compile your project using orx for a given platform +is to look at the tutorial build project files.

+

NB: The debug version is far slower than the release one, but will output all the warning +and error messages useful during development.

+

Here's a quick list of the available compile preprocessor flags:

+
    +
  • +

    __orxDEBUG__ : used to compile and link against the debug versions of orx library +(liborxd.a / orxd.lib / liborxd.dylib), if not specified it refers to +the release versions (liborx.a / orx.lib / liborx.dylib).
    +NB: If you want to link against the debug versions of orx library, you need +to specify it to your compiler!

    +
  • +
  • +

    __orxPROFILER__ : used to enable the profiling push/pop macros for release builds +It's automatically enabled for debug builds and it has been enabled to +build liborxp.a / orxp.lib / orxp.dll / liborxp.dylib / liborxp.so
    +NB: You can define it in your projects even when using regular release builds, +but you won't be able to see orx's internal profiling markers!

    +
  • +
  • +

    __orxSTATIC__ : used to compile and link against the static versions of orx library.
    +NB: If you want to link against the static versions of orx library, you need +to specify it to your compiler!

    +
  • +
  • +

    __orxEMBEDDED__ : used to compile the embedded versions of orx library.
    +NB: this flag is ONLY needed when compiling orx library, not when linking +against it.

    +
  • +
+

There are other preprocessor flags used when compiling the orx library, +but those should be easy enough to decipher. markdo +However, you might want to specify them manually for cross-compiling or +use them so that your code will behave differently depending on the architecture +for which you're compiling. Here's a quick list of these flags:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FlagDescription
__orxARM__orx is being compiled for an ARM architecture
__orxPPC__orx is being compiled for a PowerPC architecture
__orxPPC64__orx is being compiled for a PowerPC 64 architecture
__orxX86__orx is being compiled for a x86 architecture
__orxX86_64__orx is being compiled for a x86-64 architecture
__orxLITTLE_ENDIAN__orx is being compiled for a little endian architecture
__orxBIG_ENDIAN__orx is being compiled for a big endian architecture
__orxGCC__orx is being compiled with gcc
__orxMSVC__orx is being compiled with visual studio C/C++
__orxLLVM__orx is being compiled with llvm/clang
__orxWINDOWS__orx is being compiled for Windows
__orxMAC__orx is being compiled for MacOS X
__orxLINUX__orx is being compiled for Linux
__orxIOS__orx is being compiled for iOS
__orxANDROID__orx is being compiled for Android
__orxANDROID_NATIVE__orx is being compiled for Android Native
__orxCPP__orx is being compiled with a C++ compiler
__orxOBJC__orx is being compiled with an Objective-C compiler
__orxPLUGIN__a plugin for orx is being compiled
__orxEXTERN__code using orx's library is being compiled
+

+Comments

+

If you have any questions, comments, ideas or reviews, feel free to either +post them on orx's forum, +come chat with us +or send them directly by email to iarwain [at] orx-project.org

+

Enjoy!

+
\ No newline at end of file diff --git a/README.md b/README.md index 632eefcc4..876b59476 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Travis build](https://travis-ci.org/orx/orx.svg?branch=master)](https://travis-ci.org/orx/orx) [![Build status](https://ci.appveyor.com/api/projects/status/alwm4il7x1w6g1o4?svg=true)](https://ci.appveyor.com/project/iarwain/orx) -Orx - Portable Game Engine (Version 1.10) +Orx - Portable Game Engine (Version 1.11) ======================================== @@ -21,7 +21,7 @@ Summary [Orx](https://orx-project.org) is a 2D-oriented, data-driven, portable game engine focused primarily on ease of use and powerful features. See below for a list of supported platforms. -This is a release candidate for orx v1.10. If you find any bugs, +This is a release candidate for orx v1.11. If you find any bugs, please report them on the [forum](https://forum.orx-project.org), in the "Bug report - Feature request" board, or via orx's [issue page/tracker](https://bitbucket.org/orx/orx/issues?status=new&status=open). @@ -114,7 +114,7 @@ All the 11 basic and advanced official tutorials are shipped with the dev packag Some tools (precompiled binaries only) are also shipped with the dev packages: - `orxCrypt` : command line tool to encrypt/decrypt/merge multiple config files -- `orxFontGen`: command line tool (based on FreeType2) to generate custom bitmap fonts (.tga texture & .ini config file) from TrueType fonts +- `orxFontGen`: command line tool (based on FreeType2) to generate custom bitmap fonts (.png texture & .ini config file) from TrueType fonts Packages @@ -123,33 +123,33 @@ Packages You can download all the packages from [sourceforge](https://orx.sf.net) or [github](https://github.com/orx/orx/releases). Here is a list with a small description for each package. -- `orx-doc-1.10.zip` : orx's API doxygen documentation -- `orx-src-1.10.zip` : orx's source code, ready for compile after running the setup script -- `orx-dev-linux32-1.10.tar.bz2` : dynamic embedded binaries for Linux (x86), release/profile/debug + tools. -- `orx-dev-linux64-1.10.tar.bz2` : dynamic embedded binaries for Linux (x86-64), release/profile/debug + tools. -- `orx-dev-mac-1.10.zip` : dynamic embedded binaries for MacOS X (x86/x86-64), release/profile/debug + tools. -- `orx-dev-mingw-32-1.10.zip` : dynamic embedded binaries for Windows (mingw/x86), release/profile/debug + tools. -- `orx-dev-mingw-64-1.10.zip` : dynamic embedded binaries for Windows (mingw/x86-64), release/profile/debug + tools. -- `orx-dev-vs2015-32-1.10.zip` : dynamic embedded binaries for Windows (Visual Studio 2015, x86), release/profile/debug + tools. -- `orx-dev-vs2015-64-1.10.zip` : dynamic embedded binaries for Windows (Visual Studio 2015, x86-64), release/profile/debug + tools. -- `orx-dev-vs2017-32-1.10.zip` : dynamic embedded binaries for Windows (Visual Studio 2017, x86), release/profile/debug + tools. -- `orx-dev-vs2017-64-1.10.zip` : dynamic embedded binaries for Windows (Visual Studio 2017, x86-64), release/profile/debug + tools. -- `orx-dev-vs2019-32-1.10.zip` : dynamic embedded binaries for Windows (Visual Studio 2019, x86), release/profile/debug + tools. -- `orx-dev-vs2019-64-1.10.zip` : dynamic embedded binaries for Windows (Visual Studio 2019, x86-64), release/profile/debug + tools. -- `orx-full-ios-1.10.zip` : static embedded binaries for iOS, release/profile/debug, simulator/device + doc + source + XCode project file. -- `orx-dev-android-1.10.zip` : static embedded binaries for Android, release/profile/debug (device). -- `orx-dev-android-native-1.10.zip` : static embedded binaries for Android Native, release/profile/debug (device). -- `orx-tutorial-linux32-1.10.tar.bz2` : tutorials for Linux (x86) -- `orx-tutorial-linux64-1.10.tar.bz2` : tutorials for Linux (x86-64) -- `orx-tutorial-mac-1.10.zip` : tutorials for MacOS X (x86/x86-64) -- `orx-tutorial-mingw-32-1.10.zip` : tutorials for Windows (mingw/x86) -- `orx-tutorial-mingw-64-1.10.zip` : tutorials for Windows (mingw/x86-64) -- `orx-tutorial-vs2015-32-1.10.zip` : tutorials for Windows (Visual Studio 2015, x86) -- `orx-tutorial-vs2015-64-1.10.zip` : tutorials for Windows (Visual Studio 2015, x86-64) -- `orx-tutorial-vs2017-32-1.10.zip` : tutorials for Windows (Visual Studio 2017, x86) -- `orx-tutorial-vs2017-64-1.10.zip` : tutorials for Windows (Visual Studio 2017, x86-64) -- `orx-tutorial-vs2019-32-1.10.zip` : tutorials for Windows (Visual Studio 2019, x86) -- `orx-tutorial-vs2019-64-1.10.zip` : tutorials for Windows (Visual Studio 2019, x86-64) +- `orx-doc-1.11.zip` : orx's API doxygen documentation +- `orx-src-1.11.zip` : orx's source code, ready for compile after running the setup script +- `orx-dev-linux32-1.11.tar.bz2` : dynamic embedded binaries for Linux (x86), release/profile/debug + tools. +- `orx-dev-linux64-1.11.tar.bz2` : dynamic embedded binaries for Linux (x86-64), release/profile/debug + tools. +- `orx-dev-mac-1.11.zip` : dynamic embedded binaries for MacOS X (x86/x86-64), release/profile/debug + tools. +- `orx-dev-mingw-32-1.11.zip` : dynamic embedded binaries for Windows (mingw/x86), release/profile/debug + tools. +- `orx-dev-mingw-64-1.11.zip` : dynamic embedded binaries for Windows (mingw/x86-64), release/profile/debug + tools. +- `orx-dev-vs2015-32-1.11.zip` : dynamic embedded binaries for Windows (Visual Studio 2015, x86), release/profile/debug + tools. +- `orx-dev-vs2015-64-1.11.zip` : dynamic embedded binaries for Windows (Visual Studio 2015, x86-64), release/profile/debug + tools. +- `orx-dev-vs2017-32-1.11.zip` : dynamic embedded binaries for Windows (Visual Studio 2017, x86), release/profile/debug + tools. +- `orx-dev-vs2017-64-1.11.zip` : dynamic embedded binaries for Windows (Visual Studio 2017, x86-64), release/profile/debug + tools. +- `orx-dev-vs2019-32-1.11.zip` : dynamic embedded binaries for Windows (Visual Studio 2019, x86), release/profile/debug + tools. +- `orx-dev-vs2019-64-1.11.zip` : dynamic embedded binaries for Windows (Visual Studio 2019, x86-64), release/profile/debug + tools. +- `orx-full-ios-1.11.zip` : static embedded binaries for iOS, release/profile/debug, simulator/device + doc + source + XCode project file. +- `orx-dev-android-1.11.zip` : static embedded binaries for Android, release/profile/debug (device). +- `orx-dev-android-native-1.11.zip` : static embedded binaries for Android Native, release/profile/debug (device). +- `orx-tutorial-linux32-1.11.tar.bz2` : tutorials for Linux (x86) +- `orx-tutorial-linux64-1.11.tar.bz2` : tutorials for Linux (x86-64) +- `orx-tutorial-mac-1.11.zip` : tutorials for MacOS X (x86/x86-64) +- `orx-tutorial-mingw-32-1.11.zip` : tutorials for Windows (mingw/x86) +- `orx-tutorial-mingw-64-1.11.zip` : tutorials for Windows (mingw/x86-64) +- `orx-tutorial-vs2015-32-1.11.zip` : tutorials for Windows (Visual Studio 2015, x86) +- `orx-tutorial-vs2015-64-1.11.zip` : tutorials for Windows (Visual Studio 2015, x86-64) +- `orx-tutorial-vs2017-32-1.11.zip` : tutorials for Windows (Visual Studio 2017, x86) +- `orx-tutorial-vs2017-64-1.11.zip` : tutorials for Windows (Visual Studio 2017, x86-64) +- `orx-tutorial-vs2019-32-1.11.zip` : tutorials for Windows (Visual Studio 2019, x86) +- `orx-tutorial-vs2019-64-1.11.zip` : tutorials for Windows (Visual Studio 2019, x86-64) All the `*-dev-*` packages above include: diff --git a/code/demo/iOS/ReadMe-iOS.html b/code/demo/iOS/ReadMe-iOS.html index 84122b416..71eb951e9 100644 --- a/code/demo/iOS/ReadMe-iOS.html +++ b/code/demo/iOS/ReadMe-iOS.html @@ -731,7 +731,7 @@ } } ReadMe-iOS

-Orx - Portable Game Engine (Version iOS 1.10)

+Orx - Portable Game Engine (Version iOS 1.11)

Email iarwain [at] orx-project -dot- org to contact the author; or better, check orx's homepage for the most up-to-date contact information. You can also come chat with us diff --git a/code/demo/iOS/ReadMe-iOS.md b/code/demo/iOS/ReadMe-iOS.md index 7f56dc62a..87ded9d70 100644 --- a/code/demo/iOS/ReadMe-iOS.md +++ b/code/demo/iOS/ReadMe-iOS.md @@ -1,4 +1,4 @@ -Orx - Portable Game Engine (Version iOS 1.10) +Orx - Portable Game Engine (Version iOS 1.11) ================================================ Email iarwain [at] orx-project -dot- org to contact the author; or better, check