Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
24. September 2018


MonoGame, the open source game framework based on Microsoft’s long defunct XNA framework, just released version 3.7.  The biggest new feature of this release is most likely official support for the Nintendo Switch platform, but it also contains several improvements and fixes.  If you are interested in learning how to use MonoGame, be sure to check out our complete MonoGame tutorial series.


Details from the forum release post:

  • Remove Scale and Rotation properties from Matrix. #5584
  • Added Switch as a platform. #5596
  • DirectX: Fixed multisample clamping logic. #5477
  • SDL Gamepad DB update. #5605
  • Add Missing method OpaqueDataDictionary.GetValue. #5637
  • Increase code coverage in Model* family. #5632
  • Fix scroll wheel events on Windows Universal. #5631
  • Implement GetHashCode on Vertex types. #5654
  • Implement GetHashCode and ToString methods for Joystick. #5670
  • Fixed Gamepad DPad on Android. #5673
  • Pipeline process not terminating on exit fix. #5672
  • Added Joystick.IsSupported property. #5678
  • Use GraphicsCapabilities.MaxTextureAnisotropy on SamplerState. #5676
  • Make SpriteBatch.End throw when Begin not called. #5689
  • Add Open Output Directory option to Pipeline Tool. #5690
  • Rename Exit to Quit on Pipeline Tool Linux Headerbar. #5687
  • Added minimum size to the Pipeline Tool window. #5692
  • Added Id and DisplayName properties to Gamepad. #5625
  • Improved GameController database loading for DesktopGL. #5606
  • RPC curves are now updated before Cue is played. #5709
  • Fixes to Texture2D.FromStream on Windows DirectX. #5712
  • Support DistanceScale and DopplerFactor under OpenAL. #5718
  • Implemented Microphone for OpenAL platforms. #5651
  • Implemented caching of staging resources used to copy data from a Texture2D under DirectX. #5704
  • Reusable function for raising events. #5713
  • Remove reference to SharpDX from project templates. #5611
  • Improvements to VideoPlayer for Desktop DirectX. #5737
  • Use SharpDX NuGet packages from our NuGet packages. #5748
  • Fixed leaks that affected shutting down and recreating GraphicsDevice under DirectX. #5728
  • Texture2D mipmap generation and population fixes. #5614
  • Remove SharpDX.RawInput.dll reference from DirectX graphics backend. #5723
  • New fast Texture2D.FromStream implementation for DesktopGL ported from STB. #5630
  • Added support DrawInstancedPrimitives on OpenGL platforms. #4920
  • Fixed mouse touch event to release when mouse moves outside the client area or we loses focus. #5641
  • Added GraphicsAdapter.UseDebugLayers to enable GPU debug features in release builds. #5791
  • Fixed DirectX back buffer update when multisampling changes. #5617
  • Adds Xbox One S controller support to Linux. #5797
  • Do not allow the Pipeline tool to delete files outside the content folder. #5820
  • OpenGL Mouse.SetCursor now works with alpha correctly. #5829
  • Implement Mouse.SetCursor() for Windows. #5831
  • Fix pre-emptive song finish in OggStreamer. #5821
  • UWP Templates use target version selected in wizard. #5819
  • Implement Mouse.WindowHandle under Windows DirectX. #5816
  • Improve shader error/warning parsing in Pipeline Tool. #5849
  • Fix crash on multi-editing bool values in Pipeline Tool. #5859
  • Fixes to XACT sound effect pooling. #5832
  • Improved disposal of OpenGL resources. #5850
  • Better support for WAV audio formats in content pipeline and FromStream. #5750
  • Fix for build hang with no mgcb file in project. #5886
  • Removed deprecated Rider settings from Linux installer. #5881
  • Improved performance of SpriteFont.MeasureString() & SpriteBatch.DrawString(). #5874
  • Sort content when saving MGCB files. #5930
  • Fix a crash when building content in xbuild. #5897
  • Fixed back button problems in UWP. #5810
  • Removed Windows 8.1 and Windows Phone 8.1 support. #5809
  • Upgrade to SharpDX 4.0.1. #5949
  • Update the UWP Template to use the Latest SDK. #5931
  • Fixed the Scissor rect calculation on DesktopGL and OpenGL platforms. #5977
  • Calculate the Client Bounds a bit later. #5975
  • Rework Android OpenGL Framebuffer Support. #5993
  • Implemented GraphicsDevice.GetBackBufferData. #5114
  • Optimizations to Length and Normalize in Vector3 and Vector4. #6004
  • Added MGCB man page for Linux. #5987
  • Included mgcb autocomplete for bash. #5985
  • Fixed GamePad.SetVibration crash. #5965
  • Fallback SurfaceFormat for RenderTargets. #6170
  • Added O(1) EffectParameter lookups by name. #6146
  • Reduce MouseState garbage in Desktop DirectX. #6168
  • Made SpriteFont constructor public. #6126
  • New Template System using Nuget. #6135
  • Use StbSharp for all Texture2D.FromStream. #6008
  • Dynamic reference loading in Pipeline Tool. #6202
  • Fix Pipeline tool to work regardless of Mono changes. #6197
  • Update Template Icons and Fix Mac Info.plist. #6209
  • Fix typo in VS2013 Shared Project Template. #6216
  • Fill up dotnet template info. #6226
  • Support Mac Unit Tests. #5952
  • Updated Assimp to latest version. #6222
  • Make sure that the window titlebar is within screen bounds on DesktopGL. #6258
  • Fixed trigger/dpad button state and reduced garbage in iOS Gamepad. #6271
  • Updated Windows Universal Min SDK Versions. #6257
  • Fix property content serialization detection when using a property named Item. #5996
  • Fix launcher default mimetype in Linux installer. #6275
  • Restore NVTT. #6239
  • Support unicode in window title under DesktopGL. #6335
  • Add crash report window to Pipeline Tool. #6272
  • Fix linking for copy action in Pipeline Tool. #6398
  • Implemented KeyboardInput and MessageBox for Windows DX. #6410
  • Fixed audio interruption bug on iOS. #6433

Programming


16. March 2016

 

MonoGame, the popular open source implementation of the XNA game framework, just release version 3.5.  If you are interested in learning more, we have a pretty solid introductory tutorial available here.

Details from this release:

  • Content Pipeline Integration for Xamarin Studio and MonoDevleop on Mac and Linux.
  • Automatic inclusion of XNBs into your final project on Mac and Linux.
  • Improved Mac and Linux installers.
  • Assemblies are now installed locally on Mac and Linux just like they are on Windows.
  • New cross-platform “Desktop” project where same binary and content will work on Windows, Linux and Mac desktops.
  • Better Support for Xamarin.Mac and Xam.Mac.
  • Apple TV support (requires to be built from source at the moment).
  • Various sound system fixes.
  • New GraphicsMetrics API.
  • Optimizations to SpriteBatch performance and garbage generation.
  • Many improvements to the Pipeline tool: added toolbar, new filtered output view, new templates, drag and drop, and more.
  • New GamePad support for UWP.
  • Mac and Linux now support Vorbis compressed music.
  • Major refactor of texture support in content pipeline.
  • Added 151 new unit tests.
  • Big improvements to FBX and model content processing.
  • Various fixes to XML serialization.
  • MediaLibrary implementation for Windows platforms.
  • Removed PlayStation Mobile platform.
  • Added content pipeline extension template project.
  • Support for binding multiple vertex buffers in a draw call.
  • Fixed deadzone issues in GamePad support.
  • OcclusionQuery support for DX platforms.
  • Fixed incorrect z depth in SpriteBatch.
  • Lots of OpenTK backend fixes.
  • Much improved font processing.
  • Added new VertexPosition vertex format.
  • Better VS project template installation under Windows.

GameDev News


14. March 2016

 

Microsoft was pretty revolutionary when they launched XNA, which enabled indie developers to create games for both Xbox consoles and PCs using a C# based game library.  Then in a somewhat tragic move, Microsoft later killed it off.  XNA lived on in the form of MonoGame which is a cross platform open source implementation of XNA 4.  If you are interested in learning more about MonoGame I have already done a pretty in-depth tutorial series.

Well, that’s it for the history lesson.  Today things have gone somewhat full circle...  in Microsoft’s GDC note about [email protected] for GDC 2016, they announced MonoGame is coming to Xbox One.

MonoGame Support
Microsoft’s XNA programming framework isn’t supported natively on Xbox One, but there’s an open source solution for developers called MonoGame. This news is a little overdue, but we’re stoked that MonoGame support will be coming to Xbox One soon, thanks to Tom Spilman and our friends at Sickhead Games.

And we’re really excited to be able to welcome MonoGame with a bang, thanks to a partnership with another developer named Tom – Tom Happ. I met Tom at an indie dev event shortly after we confirmed that XNA was not natively supported on Xbox One, and I remember being super bummed that his game was not going to be able to come to Xbox One straight away. Well, today I’m stoked to be able to say that Tom’s game, Axiom Verge, is going to be one of the first games shipping on Xbox One using MonoGame. And hopefully that’s just the first of many!

In addition to the MonoGame announcement, they also announced that [email protected] is coming to Windows 10 as well as developer support for crossplay between Xbox One and Windows 10 PCs.  I assume more details will come this week as GDC continues.

GameDev News


24. February 2016

 

I love C#, probably my favourite general purpose programming language at the end of the day.  In the early days however, C# was heavily tied to Microsoft’s ecosystem.  Then a little company named Ximian created a Mono, an open source implementation of C#.  At first the relationship between Microsoft and Ximian (and Microsoft and Open source in general… ) was not… great.

 

Since then, a ton has happened…  Microsoft became more open source friendly.  Ximian was acquired by Novell, then eventually spun off as an independent known as Xamarin and Mono has gone on to become the technology powering basically every single C# powered non-Microsoft title, including being the runtime behind the popular Unity game engine.  For years I’ve assumed Microsoft would buy Xamarin, especially as their relationships became cosier and cosier.  Heck I last mentioned an MSFT buyout when Xamarin bought RoboVM.  It just made so much sense to happen…

 

And it finally did!  From Scott Gu’s blog announcement:

As the role of mobile devices in people's lives expands even further, mobile app developers have become a driving force for software innovation. At Microsoft, we are working to enable even greater developer innovation by providing the best experiences to all developers, on any device, with powerful tools, an open platform and a global cloud.

As part of this commitment I am pleased to announce today that Microsoft has signed an agreement to acquire Xamarin, a leading platform provider for mobile app development.

In conjunction with Visual Studio, Xamarin provides a rich mobile development offering that enables developers to build mobile apps using C# and deliver fully native mobile app experiences to all major devices – including iOS, Android, and Windows. Xamarin’s approach enables developers to take advantage of the productivity and power of .NET to build mobile apps, and to use C# to write to the full set of native APIs and mobile capabilities provided by each device platform. This enables developers to easily share common app code across their iOS, Android and Windows apps while still delivering fully native experiences for each of the platforms. Xamarin’s unique solution has fueled amazing growth for more than four years.

Xamarin has more than 15,000 customers in 120 countries, including more than one hundred Fortune 500 companies - and more than 1.3 million unique developers have taken advantage of their offering. Top enterprises such as Alaska Airlines, Coca-Cola Bottling, Thermo Fisher, Honeywell and JetBlue use Xamarin, as do gaming companies like SuperGiant Games and Gummy Drop. Through Xamarin Test Cloud, all types of mobile developers—C#, Objective-C, Java and hybrid app builders —can also test and improve the quality of apps using thousands of cloud-hosted phones and devices. Xamarin was recently named one of the top startups that help run the Internet.

Microsoft has had a longstanding partnership with Xamarin, and have jointly built Xamarin integration into Visual Studio, Microsoft Azure, Office 365 and our Enterprise Mobility Suite to provide developers with an end-to-end workflow for native, secure apps across platforms. We have also worked closely together to offer the training, tools, services and workflows developers need to succeed.

With today’s acquisition announcement we will be taking this work much further to make our world class developer tools and services even better with deeper integration and enable seamless mobile app dev experiences. The combination of Xamarin, Visual Studio, Visual Studio Team Services, and Azure delivers a complete mobile app dev solution that provides everything a developer needs to develop, test, deliver and instrument mobile apps for every device. We are really excited to see what you build with it.

We are looking forward to providing more information about our plans in the near future – starting at the Microsoft //Build conference coming up in a few weeks, followed by Xamarin Evolve in late April. Be sure to watch my Build keynote and get a front row seat at Evolve to learn more!

 

This announcement is huge.  Expect Xamarin technology to quickly become free and fully integrated in Visual Studio.  Expect Unity to eventually get a version of C# that isn’t from the stone age.  Put simply, expect the usage to C#, especially in the mobile space, to absolutely explode!

 

I’ve been waiting a decade for this news!  I look forward to seeing exactly how all of this plays out.

GameDev News Programming


21. December 2015

 

FNA began life as a MonoGame port to SDL2.  Since then it has been used to port nearly 40 games to Mac and Linux including Axiom Verge, Terraria and Dust.  Today the first formal release was announced.  The follow excerpt from the formal press release:

Details: After three years of development and dozens of commercially-released ports, developer Ethan "flibitijibibo" Lee is announcing the first official release of the FNA project.

FNA is a brand new open source reimplementation of the Microsoft XNA 4.0 Refresh runtime libraries for Windows, Mac OS X, and GNU/Linux. Originating as a rewrite of MonoGame's desktop platform, FNA features a complete reimplementation of the graphics and audio subsystems in addition to a dramatic increase in portability on the desktop. With a single FNA binary, it is possible to ship for Windows/Mac/Linux without having to recompile for each individual target.

FNA is also a complementary library to the MonoGame project; while MonoGame intends to succeed XNA 4.0, FNA intends to preserve XNA 4.0 with accuracy and preservation as the project's top priorities. With XNA-compliant code and content, a game can be running under FNA with nothing more than a new project file.

Demonstrated as production-ready through over three dozen released titles, FNA has enabled critically-acclaimed titles such as Axiom Verge, Dust: An Elysian Tail, Hacknet, Rogue Legacy, Apotheon, Terraria, and more to be deployed across desktop platforms with confidence. Along with XNA games, a handful of MonoGame titles have also made the move to FNA, including Wyv and Keep, Bleed, Wizorb, and the upcoming 1.12 update for FEZ.

HIGHLIGHTS:

- FNA is now officially released
- A free, open source reimplementation of XNA 4.0
- Windows, Mac, and Linux support with a single binary
- Already ships in dozens of games for Windows/Mac/Linux
- Developed by professional video game porter Ethan Lee

 

FNA source is now available on Github or binaries can be downloaded here. A much longer release blog is available here.

GameDev News


See More Tutorials on DevGa.me!

Month List