Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

10. May 2016

 

This is one of those projects that just impresses the hell out of me.  I first covered it back in January when v0.2 was released.  Banshee Engine is a complete 2D/3D game engine and editor, written using C++ 14, but with a managed C# layer available.  The part that boggles my mind is this is the project of one man as far as I can tell.  I have downloaded the most recent version and will be playing around with it over the next few days.  Anyways, back to the v0.3 released.  It was just recently announced in this reddit thread:

 

New Features

  • PhysX integration, with support for colliders, rigidbodies, triggers, joints and scene queries. Full access to the physics interface is provided by the scripting API, as well as integrated into the editor. The physics sub-system was also designed to be extensible, so you can easily add plugins for other middleware like Havok or Bullet without having to modify the user-facing interfaces.

  • Improvements to the renderer, including HDR rendering, filmic tone mapping and gamma correct rendering.

  • HTML documentation for both native and managed parts of the engine.

  • Clang compilation and CMake build in preparation for Mac/Linux ports.

The engine is still a work in progress but I think it's coming along nicely. I’ll be adding a lot more throughout the coming months, including Vulkan support, physically based rendering and Mac/Linux ports, and a lot more after that.

If any of this sounds interesting, find out more on GitHub. If you like what you see consider spreading the word by linking the project to your friends, or contributing.

 

For those interested in checking out the engine, here’s a more complete list of engine features:

Core

  • Quality design
    • Modern code using C++14
    • Clean layered design Banshee Editor
    • Fully documented
    • Modular & plugin based
    • Minimal third-party dependencies
    • Multiplatform ready
  • Renderer
    • DX9, DX11 and OpenGL 4.3 render systems
    • Multi-threaded rendering
    • Powerful material system
      • BansheeFX language for material definitions
      • Shader parsing for HLSL9, HLSL11 and GLSL
  • Asset pipeline
    • Asynchronous resource loading
    • Extensible importer system
    • Available importer plugins for:
      • FBX, OBJ, DAE meshes
      • PNG, PSD, BMP, JPG, ... images
      • OTF, TTF fonts
      • HLSL9, HLSL11, GLSL shaders
  • GUI system
    • Unicode text rendering and input
    • Easy to use layout based system
    • Many common GUI controls
    • Fully skinnable
    • Automatic batching for fast rendering
    • Supports texture atlases
    • Supports arbitrary 3D transformations
    • Localization support (string tables)
  • Input
    • Mouse/keyboard/gamepad support
    • Provides both raw and OS input
    • Virtual input with built-in key mapping
    • Virtual axes for analog input devices
  • Physics
    • Implemented using NVIDIA PhysX
    • Multi-threaded for best performance
    • Abstract plugin interface extensible for other physics implementations (e.g. Havok, Bullet)
    • Supported features
      • Colliders (Box, Sphere, Capsule, Mesh)
      • Triggers
      • Rigidbody
      • Character controller
      • Joints (Fixed, Distance, Hinge, Spherical, Slider, D6)
      • Scene queries
      • Collision filtering
      • Discrete or continuous collision detection
  • Scripting
    • C# 6.0
    • Separate high level engine API
    • Integrated runtime for maximum performance
    • Full access to .NET framework
    • Integration with Visual Studio
    • Automatic serialization
      • Works with custom components, resources or arbitrary types
      • Save/load data with no additional code
      • Handles complex types (e.g. array, list, dictionary) and references
      • Fast and small memory footprint
  • Other
    • CPU & GPU profiler
    • Advanced run-time type information for C++ code
      • Iterate over class fields, safely cast objects, clone objects, detect base types
      • Find references to specific objects (e.g. all resources used in a scene)
      • Serialize/deserialize with no additional code and with automatic versioning
      • Generate diffs
    • Utility library
      • Math
      • File system
      • Events
      • Thread pool
      • Task scheduler
      • Logging
      • Debug drawing
      • Crash reporting
      • Unit testing
      • Custom memory allocators

Editor

  • Asset management
    • Simple drag and drop import for many popular formats
    • Automatic reimport of externally modified assets (e.g. modify a shader, see changes in editor right away)
    • Asset modifications immediately reflected in-game (resource hot-swap)
    • Version control friendly format
  • Powerful object inspector
    • Exposes script object properties for artists/designers
    • Automatically generated GUI for custom classes
    • Customize visible elements via attributes or create GUI manually
  • Level creation
    • Simple drag and drop interface
    • Traditional set of tools (Move/Scale/Rotate/Select, etc.)
    • Interface for creating custom 2D and 3D tools
  • Prefab system
    • Save parts or entire levels as prefabs so they may be re-used later
    • Separate larger levels into smaller prefabs for easier loading
    • Reduce conflicts when multiple people are working on the same level
    • Customize individual prefab instances without breaking the prefab link
    • Supports nesting and complex hierarchies to ensure maintaining complex levels is easy
  • Play in editor
    • Compile all scripts within editor
    • Scripts and data transparently reloaded after compilation so changes may be tested immediately
    • Pause and frame-step to better test and debug your game
    • Analyze and modify scene while playing
  • Fully extensible
    • Specialized scripting API only for editor extensions
    • Easy to use without needing to know about engine internals
    • Extend almost anything. Create:
      • Custom editor windows
      • Custom object inspectors
      • Custom 2D/3D tools
      • Code for automating common tasks
  • Game publishing
    • Build a game ready for distribution from within the editor
    • One click build process, just choose a platform and build
    • Automatically detects only the required resources to minimize build size
    • Automatically packages and outputs an executable
  • Customizable frontend
    • Dockable layout and floating windows
    • Custom GUI skin & localization support

GameDev News ,

3. April 2016

 

Allegro, a cross platform C++ based 2D game engine, just released version 5.2.0.  This release is source compatible with prior releases, but is not binary compatible.  The following changes occurred in this release:

Core:

  • Add al_is_event_source_registered (koro).

  • Make destructors log messages more meaningful.

  • Mouse emulation API for touch devices is now unstable.

  • Rename al_convert_bitmaps to al_convert_memory_bitmaps.

Input:

  • Haptic API is now unstable.

Android port:

  • Fixed bogus display destruction on Android which previously caused zombie states.

OSX port:

  • Fix OSX mouse state position scaling.

  • Fix other various scaling issues.

  • Make toggling ALLEGRO_FRAMELESS work.

  • Fix an issue where fullscreen windows would occasionally leave empty space for the titlebar.

  • Fix incorrect debug assert in the audio addon.

Windows port:

  • Make Allegro apps DPI-aware by default, which means that they won't be scaled by the OS.

  • Fix compilation for the CPU detection code on some compilers.

  • Don't sync the D3D bitmap when locking with WRITE_ONLY.

  • Remove dsound.dll runtime loading.

  • Don't link xinput and d3dx9 libraries (they are still required at runtime though if you're using the relevant features).

  • Fix a bug where al_wait_for_event_timed can block despite 0 timeout (Aldo Nunez).

Build system:

  • Install PDB files when building with MSVC.

Documentation:

  • Fix source links for API entries with multi-line prototypes.

  • Make the readme look prettier on GitHub.

  • Tons of assorted documentation improvements, especially for the audio addon.

Other:

  • Add a stability system where some unstable APIs need to be opted into by defining ALLEGRO_UNSTABLEbefore including Allegro headers.

Audio addon:

  • Fix sporadic deadlocks

  • Recorder API is now unstable.

Native dialog addon:

  • al_toggle_menu_item_flags is now unstable.

TTF addon:

  • Add an option to pre-cache the glyphs, useful for platforms where the current algorithm is buggy (typically some Android devices).

Video addon:

  • Temporarily remove FFmpeg backend, as it was too buggy, didn't build and was too hard to fix.

Examples:

  • Make ex_vsync less likely cause a seizure.

  • Make ex_draw_bitmap and ex_touch_input switch in/out on Android.

  • Add documentation to ex_bitmap (Daniel Johnson).

  • Improve ex_logo text entry experience.

The full change log is available here, Allegro can be downloaded here.

GameDev News

26. February 2016

 

Marmalade SDK, a popular C++ and Lua based mobile focused game engine, just released version 8.2.1.  Apple platforms certainly were the focus of this release with 3D touch and Watchkit support being the major new features.  For details on the new 3D Touch support, check out this recently released tutorial.

 

From the release notes:

Highlights

  • Support for 3D Touch on iOS. See 'Detecting touch pressure' here
  • Support for WatchKit extensions on iOS.
  • Fixed App Store codesigning on PC.
  • Added the ability to control the inclusion of extensions that contain IDFA. This is required by apps that were rejected from the App Store for inadvertently using IDFA. For more details see 'Preparing for binary upload' in the iOS Platform Guide

Changed since 8.2

Marmalade Hub
  • MSDK-2294 Fixed a bug where after cancelling the 'Create Deployment' dialog, a blank deployment page was shown.
  • HUB-236 The Builds list and 'Last Build' were not updated correctly.
  • MSDK-2311 Added ability to view/edit MKB from Hub.
  • HUB-309 Fixed a bug where the log was not visible if something went wrong when opening a project.
  • HUB-314 Could not create a deployment.mkf file with empty mkb.
  • HUB-310 Provide a way to reset deployment settings of a project.
  • HUB-125 Add ability to create multiple builds in the 'Builds' page.
  • HUB-285 Fixed the Hub UI becoming unresponsive when building on Mac OS.
  • HUB-302 Fixed the Configurations tab hanging after cancelling a save operation.
  • MSDK-2317 Company name and publisher entries were not being set.
  • MSDK-2361 Changes to the project's readme file weren't saved.
Marmalade Quick
  • MSDK-2254 Fix issue where removeNode() could not be called multiple times for a given object.
  • MSDK-2265 If createSprite is called using a table, allow xScale and yScale to be defined if relativeScaleX/relativeScaleY are not given.
  • MSDK-2276 Fix OSDateCallParam lunary test on OS X.
  • MSDK-2280 Fix issue where QNode:setParent() was not setting the object in question as a child of the target.
  • MSDK-2265 Fix Lunary test code to pass on PC.
Platform Abstraction
  • s3ePointer (MSDK-2208) Implemented support for reporting touch pressure using s3ePointer events. Currently supported on selected iOS devices with 3D Touch technology (iPhone 6S/6S Plus) and iPad Pro with Apple Pencil. See Detecting inputs for more information on detecting touch pressure.
Middleware
  • IwAnalytics (MSDK-2302) Deprecate IW_ANALYTICS_EXCLUDE_IDFA_SUPPORT - use new DISABLE macro S3E_EXT_IOSIDENTIFIERS_DISABLE_ON_IPHONE instead. (Remove need to recompile the iwanalytics module to switch behaviour).
iOS
  • HUB-311 Implemented support for 3D Touch App Shortcut actions (currently supported on iPhone 6S and iPhone 6S Plus) through news3eIOSAppShortcut extension.
  • MSDK-2309 Re-implementation of fix for issue in iOS Native Debug with space in the project name.
  • MSDK-2264 Fix for "invalid signature" error during App Store submissions when building on PC.
  • MSDK-2330 Updated WKWebView interface in s3eWebView to reflect standard ARC changes in UIWebView.

Android
  • MSDK-2338 Fixed a regression with stack sizing issues which caused crashes on secondary threads due to stack overflow. The crux is that the default for the deployment option SysStackSizePlatform had changed from 0 to 128k. It has been changed back to 0 to get the system default stack size. One manifestation was that s3eAudioPlayFromBuffer crashed on different thread on Android.

  • MSDK-2355 Removed spurious warning: "The target name is different across different builds of the project" when building a middleware module or extension with Visual Studio 2015 in Android Native mode.
  • MSDK-2286 Minor fix to prevent potential crash in s3eAndroidGooglePlayBilling extension on some devices.
Windows Desktop
  • MSDK-2176 Fixed issue with Alt-F4 being ignored as a quit request when in fullscreen mode.
  • MSDK-2334 Fixed regression in snprintf (and friends) in vc11 and vc12 builds where passing 0 for size would cause stack corruption or a crash
Extensions
  • s3eIOSWatch (MSDK-1255) Introduced s3eIOSWatch extension for data exchange between Marmalade apps and WatchKit 1.0 style app extensions (Apple Watch apps). See iOS specific functionality and tips for more information.
  • s3eFacebook (MSDK-2210) iOS extension can now provide app activation analytics data to Facebook if EnableAppEvents ICF option is enabled.
  • s3eGameCenter (MSDK-2209) Introduced a function to list multiple GameCenter achievements at the same time. Enabled control of achievement completion banner from updated s3eGameCenter example.
Tools
  • MKB System (MSDK-2289) Fixed a bug where an empty file group [] or [""] in a 'files' block in an mkb file would cause an invalid Xcode project to be emitted.
  • EDK (MSDK-2307) Support DISABLE macros on a subset of extensions in the SDK - those used by prebuilt Quick engine and those that use IDFA on iOS.

GameDev News ,

10. February 2016

 

This news care of /r/gamedev, EA have released EASTL under the BSD license on Github.

EASTL has been around for ages, and got a limited release a number of years back, but this is the first time there has been a complete release under a BSD license.  EASTL is an implementation of the Standard Template Libraries in C++, but optimized for game performance, especially on consoles.  This new release represents a more up to date version and one that is actively maintained.

If you are familiar with the C++ STL or have worked with other templated container/algorithm libraries, you probably don't need to read this. If you have no familiarity with C++ templates at all, then you probably will need more than this document to get you up to speed. In this case, you need to understand that templates, when used properly, are powerful vehicles for the ease of creation of optimized C++ code. A description of C++ templates is outside the scope of this documentation, but there is plenty of such documentation on the Internet.

EASTL is suitable for any tools and shipping applications where the functionality of EASTL is useful. Modern compilers are capable of producing good code with templates and many people are using them in both current generation and future generation applications on multiple platforms from embedded systems to servers and mainframes.

The Github repository is available here.

GameDev News

26. January 2016

 

This one comes care of /r/gamedev and I have to say on first glance I am rather impressed.  This is a C++ based open sourced game engine with a WYSIWYG editor and C# scripting support.  A look at this screenshot from the Github page should get you somewhat excited:

Banshee Editor

 

The engine description direct from the author:

A modern open-source game development toolkit. It aims to provide simple yet powerful environment for creating games and other graphical applications. A wide range of features are available, ranging from a math and utility library, to DirectX 11 and OpenGL render systems all the way to asset processing, fully featured editor and C# scripting.

For game developers Banshee aims to provide a complete set of tools and APIs needed to make a game from start to finish. It provides a highly intuitive and customizable editor that is easy to use by artists, designers and programmers alike, supporting development stages from asset management, scene building, scripting to game publishing. C# scripting makes your development easier by giving you access to the entire .NET library, along with fast iterations times while being safe and easy to write. Editor is fully extensible with the help of specially developed scripting API so you may customize it for exact needs of your project.

For engine developers it aims to provide a high quality foundation to build and improve upon. Banshee runs on a powerful multi-threaded C++14 core created to take advantage of all resources modern hardware can offer. Built from ground up using modern design principles, everything is modular, layered and decoupled as much as possible, making it easier to modify, replace or add functionality. Platform specific functionality is kept at a minimum making porting as easy as possible. Additionally every non-trivial method, class and field is documented. All this combined makes Banshee a great platform to build upon, for developing higher level systems like editor tools, core enhancements like new rendering techniques and platform ports, all the way to creating fully specialized toolsets that fit your team's needs exactly.

 

Engine code looks nice and clean from the examples shown:

    RENDER_WINDOW_DESC renderWindowDesc;
    renderWindowDesc.videoMode = VideoMode(1280, 720);
    renderWindowDesc.title = "My App";
    renderWindowDesc.fullscreen = false;

    Application::startUp(renderWindowDesc, RenderSystemPlugin::DX11);
    Application::instance().runMainLoop();
    Application::shutDown();

 

The engine is currently Windows only and requires Visual Studio 2013 or 2015. I have to say by first impressions, this is certainly an interesting looking engine and one I will have to check into a bit closer if I get the chance.  Obviously it’s a 0.2 release, so expect the usual menagerie of bugs and performance issues.

If you are interested in learning more, be sure to check out the introduction video:

GameDev News , ,

Month List

Popular Comments