Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
13. June 2018


With Apple’s recent unfortunate decision to deprecate OpenGL support in iOS and Mac OS moving forward this will be the end to the only graphics API that worked natively across all platforms.  I think many developers would be willing to ignore the Mac OS market, but the iOS market is just too big for most people to ignore.  What then are theImage result for opengl logo alternatives to using OpenGL?  In this article we are going to look at exactly that topic.


Use a game engine and let them worry about it!

This is the category probably the majority of developers are going to fall under.  If you use an engine like Unity or Unreal this entire thing becomes a non-issue.  These engines generally already support a number of different rendering options, including native Metal support.  For other small or open source engines such as Godot, CopperCube, Shiva, Cocos, etc this is a bigger problem as they now potentially have to dedicate more time, money and/or resources to support yet another renderer… or drop support for Apple platforms completely.  Unless they rely on some kind of abstraction layer for rendering, life just got a bit more annoying for every single game engine manufacturer that previously supported Apple platforms.

The following engines have Metal support out of the box:

  • Unreal Engine
  • Unity
  • Lumberyard
  • Armory(via Kha)
  • Stingray (now defunct)


Use Vulkan + MoltenVK

A lot of game developers and engine developers specifically were planning to, or already have, implemented Vulkan rendering support.  Vulkan is a lower level alternative to OpenGL, from Khronos Group, the same people behind OpenGL.  Like Direct3D 12 and even Apple’s Metal, Vulkan is designed in a closer to the hardware manner, to better maximize new graphical functionality in modern GPUs.  Working in Vulkan takes a lot more effort than working in OpenGL or similar higher level APIs, but it is cross platform much the same way as OpenGL was.   The catch…  it doesn’t work on Apple products.   Ugh.  Ok, how then is this a solution?  We there is a product called MoltenVK that enables Vulkan to run on Apple’s Metal.  


Use an Abstraction Layer

Another option I’m really partial too… letting someone else do all the work!  There are a handful of low level cross platform graphics APIs that take care of the work for you.  So if you don’t want to use an existing game engine, but also don’t want to deal with rendering intricacies for each platform, this could be a great option.  Well will discuss available cross platform layers.


bgfx

A cross platform “bring your own engine/framework” graphics rendering layer with bindings for several programming languages an renderers, including Metal ( and OpenGL, Direct3D, WebGL and more).  No Vulkan support however, at least not yet.


kha/kore

Kore is the open source C framework that kha is built on top of.  Kore supports a ton of renderers including metal.  You can learn more about kha in this video.


ogre

Ogre straddles the line between game engine and framework.  Either way, ogre3d has a metal renderer for iOS and MacOS.


The Forge

This one is fairly new to me, it’s a cross platform rendering framework that also supports Metal.


Veldrid

Veldrid is a .NET based rendering and computer library that supports Metal (as well as VUlkan, D3D11 and OpenGL, GL ES).  I have no personal experience with this library and it seems somewhat young from a developmental perspective.


SDL… maybe?

There are mutiple mentions and forks of SDL for supporting Metal.  I’m not sure if any are complete or still supported.


Implement A Metal Renderer

Of course you’ve always got the option of buckling down and implementing a Metal renderer for MacOS and iOS platforms.  Of course your work will only be useful on Mac/iOS platforms.  If you are interested in learning more about Metal you can learn more here.


Stick with OpenGL

Of course you’ve always got the option of just sticking with OpenGL.  Deprecated doesn’t mean it wont run on existing devices, just future ones.  Publish your game as it is now and let Apple deal with the fallout of their bad business decisions.


Programming


12. June 2018


If you’ve recently been to the GameFromScratch tutorial series page recently you may have noticed the addition of a new Armory game engine tutorial series.  It’s not actually hosted on GameFromScratch, instead it’s on our newly launched sister site (watch out, the paints still wet!) DevGa.me.  Don’t worry though, nothings changed, it’s just a newer, cleaner, ArmoryDevGame900x600mobile friendly home for tutorial series, I’ll explain more about this later.  For now, just be aware there is a new text and video based tutorial series on the Armory game engine under development!


Armory (or Armory3D) is a newly free open source cross platform game engine that runs inside and tightly integrates with the Blender application.  If you are interested in learning more about Armory and why I’m so excited about it, be sure to check out Introduction to Armory video.  The series is still quite young but already there is a fair bit to get you started.  Right now the series consists of:

The entire series homepage is available here.

Additionally the video series has begun, lagging slightly behind the text series.  So far videos consist of:

There is a (very small for now…) playlist available here.


DevGa.me is not a blog format and does not have any news, it’s just home to tutorials.  I will however announce new tutorials here on GameFromScratch, so stay tuned!  If you want to discuss the new series, there is a conversation over on the Armory discussion forums or leave a comment below or on YouTube.

Programming Art


11. June 2018


Just finished adding another tutorial to the ongoing Godot 3 tutorial series, Sound Fx and Music.  This tutorial covers a ton of topics around audio:

  • Playing audio using AudioStreamPlayer
  • Positional audio using AudioStreamPlayer2D
  • Importing and loading audio files, WAV and Ogg
  • Using the Audio Bus
  • Creating special effects such as panning, reverb and chorus
  • Managing volume
  • Using sound with Area2D


The series homepage is available here.

Programming


6. June 2018


I have been talking a fair bit lately about the Armory3D engine, a newly free open source Blender hosted cross platform engine.  You can target several different platforms using Armory and the technology that makes this possible is Kha.  Today we are looking at Kha.  Kha is an open source cross platform Haxe powered low level framework providing functionality like 2D and 3D graphics, input handling, audio and more.  It does it in an extremely cross platform manner able to support a huge number of platforms.  Essentially it provides the low level functionality required to make a game, much like SDL or SFML.  It is also an important technology to learn if you intend to use the Armory game engine.


Today I take a closer look at this behind the scenes technology in this video.  We cover the features of Kha then go through the process of installing Kha and getting up and running.


Kha has a couple prequisites that you need to install before getting started.  You need to install the following two technologies before installing Kha:

Once installed, you have two easy options for getting started with Kha.  You can either use Kode Studio, a customized version of Visual Studio Code, or you can install the Kha Extension Pack to your existing Visual Studio Code install.  Now that you’re up and going with Kha you probably want some code to work with, which is available in this repository.  Finally once you start learning Kha, you will probably want to check the Kha documentation or the reference materials.


Programming


31. May 2018


Now that Armory3D is fully funded an installable version will be available for download any day now.  Armory is a game engine built using the Haxe programming language over the Kha framework that runs inside the open source graphics application Blender.  The timing of this release is ideal, as it was recently announced the Blender Game Engine is being removed from Blender.


Armory is a game engine I’ve been excited for for some time now.  You can learn more about Armory here, access the complete documentation here and download the source code here.  Additionally there are a series of examples available here with more complicated/complete templates available here.  Hopefully the full version will be available for download in the next few days.


I fully intend to do a tutorial series covering using the Armory game engine, which hopefully I will be launching soon.  However in the meantime I created this introduction to Armory which should illustrate to you why this engine has me as excited as it does.  Of course being built on top of Blender, you are also going to have a solid understanding of Blender to make used of Armory3D.  Thankfully, I’ve got you covered there with both a text based and video based Blender tutorial series to get you started.


Video Link

GameDev News Programming


GFS On YouTube

See More Tutorials on DevGa.me!

Month List