Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
25. May 2016

 

The developers over at Thunderbeast Games just released their fifth developer digest detailing the recent updates to the Atomic Game Engine.  The Atomic Game Engine is an open source (now) MIT licensed 2D/3D game engine that was built on top of Urho3D.  I did a Closer Look of both the Atomic Game Engine and Urho 3D should you wish to learn more about either engine.

 

Atomic Game Engine has gained several new features, including:

 

  • Chromium web view integration ( Webview with both 2D and 3D support)
  • Improved multiplayer support including NAT punch through support
  • Per project asset import settings
  • DXT compression
  • JavaScript editor plugins
  • Typescript integration
  • Extensibility hooks in the editor
  • Physically Based Rendering (PBR) support in the renderer (WIP)

 

 

Much more details about all of these features are available in the digest.

GameDev News


19. May 2016

 

Let me warn you up front, this game engine is nowhere near production ready.  It’s very much a work in progress, with missing documentation, missing features and crashes are far too common.  This is certainly not a game engine to choose today for game development, that’s why this is just a preview instead of a Closer Look.  It is however a shocking capable game engine that you should keep your eye on!image

 

There is also a video available here.

 

What is the Banshee Engine?

So, what is the Banshee Engine?  Currently at release 0.3, Banshee Engine is an open source, C++ powered 2D/3D game engine with a complete game editor.  On top of that there is a managed scripting layer, enabling you to develop game logic using C#.  It is available under a dual license, LGPL and a Commercial “pay what you want” license... and yes, what you want to pay could be $0 if you so chose.

Banshee is available on Github, there are binaries available for download, although for now the engine is limited to Windows only.  The engine also only targets Windows at the moment, but is being written with portability in mind.

 

The Editor

Here is the Banshee Editor in action:

 

image

 

The layout is pretty traditional.  On the top left you have the various resources that make up your game.  Below that you have the Hierarchy view which is essentially your current scene’s contents.  At the bottom we have the logs.  On the right hand side is the inspector, which is a context aware editing form.  Of course centered to the view is the Scene view, which also has a Unity like Game preview window.  The interface is extremely customizable, with all tabs being closable, undockable or even free floated.  It works well on high DPI monitors and on multiple displays.  It does occasionally have issues with mouse hover or cursor and sadly tab doesn’t work between text input fields, but for the most part the UI works as expected. 

image

 

The 3D view you can Orbit the camera using RMB, pan with MMB and zoom in with the scroll wheel.  Of course LBM is used for selection.  There are the traditional per axis editing widgets for Transforms, Rotations and Scales.  You have a widget in the top right corner for moving between various views as well as shifting between Perspective and Orthographic project.  Oddly there doesn’t appear to be an option for multiple concurrent views, nor puzzlingly enough, are there axis markers ( color coded lines to show the location of X,Y,Z axis ).  The editor idles nicely, using only 4% or so CPU at idle, meaning the engine is fairly friendly to laptop battery life.

 

There are several built in Scene objects, including geometric primitives.

image

 

The engine also takes an Entity/Component approach, with several components built in that can be attached to a Scene Object:

image

 

Importing assets into the engine is as simple as dragging and dropping to the Library window:

image

With a  resource selected, you can control how it is imported in the Inspector:

image

 

The importer can handle FBX, DAE and OBJ format 3D files as well as PNG, PSD, BMP and JPG images.  You can also import fonts as well as shaders, both GLSL and HLSL formats.

 

Coding

Coding in Banshee is done in one of two ways.  You can extend the editor and engine using C++ code.  The code itself is written in modern C++ 14, although documentation on native coding is essentially non existent at this point in time.

For games, the primary going interface is using C#.  It current supports C# 6 language features.  To script a component, create a new Script in Resources panel:

image

 

Next, select a scene object, then drag and drop the script onto the bottom any the form in the inspector.  Double clicking the script will bring it up in Visual Studio if installed.  The script will have full IntelliSense in Visual Studio:

image

 

Scripting a component is a matter of handling various callbacks, such as OnUpdate() which is called each frame.  You can access the attached entity (er... Scene Object) via the .SceneObject member.  Here is a very simple script that moves the selected object by 0.1 pixels each update:

namespace BansheeEngine
{
	public class NewComponent : Component
	{
		private void OnInitialize()
		{
		}
		
		private void OnUpdate()
		{
			this.SceneObject.MoveLocal(new Vector3(0.1f, 0.0f, 0.0f));
		}
		
		private void OnDestroy()
		{
		}
	}
}

 

Documentation

This is very much a work in progress.  Right now there is a solid reference for the Managed API, the Native API (C++), but the tools user manual is essentially a stub.  There is an architecture cheat sheet which gives a pretty broad overview of the engine and how the pieces fit together.  There is also a guide to compiling the engine from source.  For those that are interested in giving things a go from C++ only, there is a C++ game example available here.  Unfortunately there are no downloadable projects or managed examples, a glaring flaw at this point that make it a lot harder to learn.

As of right now, the lack of editor documentation or samples to get started with, really do make it hard to learn, especially if you are trying to figure out if something isn’t working because you are doing it wrong, the feature isn’t implemented or there is simply a bug.

That said, these are all things that should improve in time.

 

Conclusion

This is a game engine for early adopters only.  It’s not even close to ready for primetime.  On the other hand, the kernel or core is there and remarkably robust.   While not the most stable by any stretch of the word, and with lacking documentation, I think you will be surprised with just how capable this engine actually is.  The potential for a great game engine is here under the surface, just waiting for a community to make it happen.

 

The Video

GameDev News


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


10. May 2016

 

Shiva is a 3D game engine with a full WYSIWYG editor that is programmed using the Lua language with the option of creating plugins using C++.  Shiva 2.0 has been in beta development for quite some time now and they just released timagehe most recent update, Beta 6.

 

Beta 6 brings several new features to the engine:

 

New Modules

Our module list continues to grow, and this release is no different. We have added many smaller supplementary modules such as SoundBank, AnimBank, PixelMap, RenderMap and Texture editors, waveform displays for Sounds and Music, as well as a Mesh viewer. The two main stars for this release however are the Particle and Trail modules, which allow you to create and modify particle-based effects and polygon-based trails respectively.

 

Engine Updates

xbox-one-logo-600x300Beta 6 includes important engine updates such as the recompiled SSL/Crypto library, which is now mandatory since Google cut support for Play Store apps using older and potentially insecure versions. In the wake of Microsoft's push for a unified Windows platform (UWP), we have also expanded our WinRT target to include libraries for Visual Studio 2015 Update 2 and Windows 10. This has very interesting implications for the future, as it will open up the doors for a very low cost entry to all Microsoft platforms including Desktops, Phones and most importantly XBox One. A Proof of Concept video on XBox One development with these new ShiVa libraries will follow in the coming weeks.

 

 

VR support

SteamVR3We have also been working on SteamVR/VIVE support for ShiVa 2.0. A first beta plugin for the system is freely available from the ShiVa3DStore. If you have such a device at home or in your studio, we would be very curious to hear how it performs for you and listen to your suggestions on how to improve it!

 

 

Visual updates

Along with the new modules, we have reworked some of the editor visuals such as the main icon sets, layouts, code markup colors and gizmo visualization. Please let us know what you think of these changes!

 

You can read more about this release here.

GameDev News


28. April 2016

 

Wave Engine, a game engine I covered here, just announced their 2016 developer contestimage with a $30,000 dollar prize pool, including $15,000 USD available to the first prize winner.  The contest is sponsored by Plain Concepts and has a deadline that your game must be published to the Windows store by October 31st, 2016. They recommend that you make your submission by September 1st however.  Other than needing to be 18, the requirement to publish to the Windows UWP store is certainly the biggest one.  You are free to publish to other app stores and you are free to publish multiple titles for consideration.

 

Details on the actual contest are rather scarce.  There is no set theme or requirement, simply make and publish a Windows 10 UWP game using Wave Engine.  You can read the contest announcement here or watch the video below.

 

GameDev News


See More Tutorials on DevGa.me!

Month List