Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
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 , ,

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 ,

27. April 2016

 

Today Xamarin is holding their annual Xamarin Evolve developer event and their have been several noteworthy announcements.  Ever since the Microsoft BUILD event last month, Xamarin for Visual Studio is now included in every version of Visual Studio.  This version has received a couple new noteworthy features:

iOS Simulator Remoting

iOS Simulator on Windows

Our iOS Simulator remoting enables you to interact with apps running in Apple’s iOS Simulator running on a Mac as though the simulator were running locally. Even multi-touch interactions are supported on Windows machines with touch capable screens, so you can interact with your app just as a user would by tapping, pinching, or swiping your touchscreen display—things that could previously only be tested on physical devices. The simulator also supports all the features you would expect such as device rotation, taking a screenshot, and even simulating location changes.

iOS USB Remoting

Debugging on simulators is a great start, but there is really no substitute for testing on physical devices. Today, we previewed support for iOS USB remoting which makes it possible to deploy and debug apps from Visual Studio to an iOS device plugged into your Windows PC. Simply connect your device to a Windows 10 machine via USB, select the device to deploy to, and debug your app on an iOS device without ever having to leave Windows.

 

To enable these features you need to switch to the Xamarin alpha release channel inside your install of Visual Studio.

 

They also announced the release of Xamarin Studio 6 (formerly MonoDevelop).  New features in this release include:

  • a new dark theme

image00

  • Roslyn support, Microsoft’s open source .NET compiler
  • a new project model with deeper MSBuild integration
  • F# improvements including F# support for Xamarin forms
  • Xamarin.iOS and Xamarin.Android library updates
  • addition of Workbooks, a REPL like coding system, similar to Apple’s Playground for Swift

You can read more about the new releases here.

GameDev News ,

3. April 2016

 

Wave Engine, a cross platform C# powered 2D/3D engine I reviewed recently, just released version 2.1 codenamed Hammerhead Shark.

hh

 

This release brings several new features including:

  • New profile system.
  • Visual Editor Offline mode.
  • Project Upgrader Tool.
  • Spine upgrade.
  • TileMap upgrade.
  • iOS Storyboard support.
  • Static entities on Visual Editor.
  • Non-serializable entities.

 

You can read the entire release notes here.

This release actually happened earlier in the week, but my complete refusal to post any news posts of any kind during April Fools day delayed this announcement slightly.

GameDev News ,

31. March 2016

 

Microsoft recently acquired Xamarin, the company that makes it possible to port .NET applications to Android and iOS devices.  Ever since that announcement I have been waiting for Microsoft to announce that Xamarin was going to be made free.  That just happened:Ce41KLVW4AATnDB

 

“We are pleased to announce that we will be making Xamarin available free of charge for Visual Studio developers”

 

This includes all tiers, including the free tier.  Xamarin Studio for the Mac will also be available as part of MSDN, as well as a free Mac based Xamarin Studio.

 

On top of this announcement, the Xamarin platform is going open source.  This now makes the entire .NET framework open source and completely cross platform.   More details as I find them.

 

A quick trip to the Xamarin Store ( spotted by keen eyed Twitter user @sol_proj ), shows a quick update:

image

 

As you can see from the pricing above, some features in Professional and Enterprise will still have a price tag attached.  They are mostly enterprise focused features and should not affect game developers.

 

Microsoft announced that the Xamarin open source release would be part of the .NET Foundation along side such projects as Roslyn and Xamarin.Auth.  Given that both projects are currently released under the Apache V2 license, it’s a good bet that the entire Xamarin package will be as well.

 

EDIT – It appears my guess about the license may be wrong.  According to this post ( thanks Mario ), Xamarin have relicensed Mono to use the MIT license:

At Microsoft Build today, we announced that we are re-releasing Mono under the MIT license and have contributed it to the .NET Foundation. These are major news for Mono developers and contributors, and I am incredibly excited about the opportunities that this will create for the Mono project, and for other projects that will be able to benefit from this.

Mono Runtime Released under MIT License

While Mono’s class libraries have always been available under the MIT license, the Mono runtime was dual-licensed. Most developers could run their apps on Windows, Linux or Mac OS X on the LGPL version of the runtime, but we also offered Mono’s runtime under commercial terms for scenarios where the LGPL was not suitable.

Moving the Mono runtime to the MIT license removes barriers to the adoption of C# and .NET in a large number of scenarios, embedded applications, including embedding Mono as a scripting engine in game engines or other applications.

 

Mono is the underlying cross platform implementation of the .NET runtime that Xamarin is built over top of.  Of course this doesn’t mean that the Xamarin suite itself is going to be MIT as well.  Regardless, both the MIT license and Apache license are incredibly permissive, so it shouldn’t be a big deal either way.

 

For those that prefer their news in video form, here it is:

GameDev News

 

Month List

Popular Comments