Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
31. July 2018


C++ has had a long run as the primary programming language for games, after taking the crown from C and ASM well over a decade back.  In recent years more and more developers are moving towards more productivity oriented languages such as C#.  What about developers that want to have the fine level of control of memory and low level access C++ provides, but want to get away from the complexity and cruft C++ has accumulated over the last 30+ years?  That is the niche the Rust programming language hopes to fill.  Rust is a systems programming language originally sponsored by Mozilla for use on the Firefox browser.  Game developers have long been interested in Rust, but last week one rather large game developer became the first to adopt the Rust programming language.


Last week, Ready at Dawn CTO Andrea Pessino released the following tweet:

image


Ready at Dawn is a well established game studio known for games such as The Order: 1886, Daxter and various God of War titles.  This tweet launched a far bit of interest in Rust, so I decided to start doing some research into the Rust echo system, a look at game engines and libraries available then promptly stopped…


Because this site, AreWeGameYet already did an excellent job of exactly what I was setting out to accomplish!  So there… if you are interested in checking out Rust for game development, be sure to start there.  Additionally if you are interested in learning a bit more about the state of Rust game development, as well as a quick tutorial on getting a Rust development environment up and running on Windows using Visual Studio Code using the Piston game engine, be sure to check out this video!

Programming


18. July 2018


When I started GameFromScratch, by far and away the most common question I got was “what programming language should I use?”.  It’s amazing how much the world has changed in the last decade!  These days game engines are by far more important than programming language to the majority of developers, and one game engine has risen to the forefront of most peoples consciousness…  Unity.

I consistently cover a wide variety of game engines, here, on DevGa.me and on YouTube and one comment comes up far more often than any other...  “Why Not Just Use Unity?”.  Why would I use this game engine instead of Unity.  So I decided to take some time and answer exactly this question.  The short hand text version is available here as well as covered in a great deal more detail in this video.

GameDev News Programming


2. July 2018


A brand new tutorial series just went live on devga.me (to join the existing Armory 3D series), the Cocos Creator Crash Course.

Cocos Creator Crash Course - Devga.me Tutorial Series

The series currently consists of the following tutorial parts:

Cocos Creator Tutorial Series homepage

There are a few more tutorial chapters in active development.  The existing content should already be enough to get you up and running using the Cocos Creator game engine!  There will also be at least one video tutorial covering basically everything covered by the text series.

GameDev News Programming


26. June 2018


We’ve been running a series called Five Great Game Development Websites for some time now, currently up to Volume 6.  This post is intended to bring those 30+ site recommendations together in one place!  The top most link is a link to the video itself, followed by the 5 recommended sites in that video.


Volume 1:

Volume 2:

Volume 3:

Volume 4:

Volume 5:

Volume 6:


Series YouTube playlist available here.

Art Design General Programming


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


AppGameKit Studio

See More Tutorials on DevGa.me!

Month List