Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

1. February 2018


As part of the Godot 3 release, Godot got official support for VR headsets using Cardboard, SteamVR and OpenHMD interfaces implemented using the new GDNative functionality in Godot.  Today I decided to test it using my Samsung Odyssey HMD a Windows Mixed Reality headset that has beta compatibility with SteamVR.  I personally had very little hope for things to go smoothly… boy was I wrong.  What follows is a step by step guide to using VR in Godot.  This whole process is made possible by the hard work of Bastiaan Olij, his Godot 3 OpenVR project is available here.


First, we assume that you are using Godot 3 or higher.  If you havent already installed Godot 3 or higher, go do so now.

Next, create a new project, the specifics really don’t matter.  There are a few requirements, every scene must have a ARVRCamera and the camera must have an ARVROrigin as it’s parent.  I start with the following setup:

image


The ARVROrigin only has one property, the world scale.  The ARVRCamera has several more options such as FoV, an Environment and more.  For now the defaults are fine.  Next we need to do a small bit of code to run the VR server.  Attach a script to the root node and add the following code to _ready:

func _ready():
	var vr = ARVRServer.find_interface("OpenVR")
	if(vr and vr.initialize()):
		get_viewport().arvr = true
		get_viewport().hdr = false


And… done!  Really, that’s it.  Add a few objects to your scene under the ARVROrigin.  Plugin in your headset and press play.  At this point in time your scene should render on your headset and you should already have head tracking enabled!


Next up, let’s go ahead and install the OpenVR functionality.  First select the AssetLib tab:

image


Now search for VR and select OpenVR module:

image


Click the install button.  Then once downloaded, click install again:

image


Now click Install once again and addons will be copied to your project including all of the dlls and scenes we need.


Next it’s time to implement some controller logic.  You could implement them yourself using ARVRController, or you can let someone else do the hard work!  With ARVROrigin selected, right click and select Instance Child Scene…

image


Navigate into the module we installed earlier into the folder addons/godot-openvr/scenes and select ovr_controller.tscn.

image



Next you can add default behavior to the controller you just created.  Right click the newly created controller node, instance child scene and this time select Function_Pointer.tscn.  Your scene should now look like:

image


At this point you now have a 3D game with full head tracking, a single controller with pointer functionality.  Pretty awesome!  For even more functionality you can implement another controller, attach teleport controls to it and you will have the ability to move around.  Next replace your camera with a ovr_first_person scene and presto, you’ve got a VR game!


If you’d prefer the video version check here (or embedded below):

Programming ,

1. February 2018


If you are a Corona developer, you now have a pretty good idea of what is coming down the pipeline with the recently released 2018 roadmap.  Corona is a cross platform Lua powered 2D game engine that has recently become freely available.  It’s been a bit of a rocky road over at Corona Labs the last couple years, having been acquired not just once but twice.  This layer of uncertainty makes such a roadmap even more valuable for their community of developers.


Roadmap details from the Corona blog:

Q1 2018
  • Continue working on implementing HTML5 builds
  • Better support for emitters when added to display groups
  • Android API level 27 support
  • New Android sound subsystem based on modern APIs
  • Improve Appodeal plugin
  • Auto-click masks
  • Marketplace 2.0
  • Animation plugin
  • Rebuild internal statistics system
  • Open source Lua frameworks like timer.* and transition.*
Q2 2018
  • Improve Live Builds by adding console logging
  • HTML5 to public beta
  • Support arm64 architectures
  • Investigate Linux builds
  • Move the Android build system to Gradle based
  • Move the Plugin build system to Gradle based
  • Investigate wireless install for iOS, tvOS
  • Revenue-share version of the AdMob plugin
Q3 2018
  • Explore Windows Universal Builds
  • Amazon IAP improvements
  • Per-vertex meshes coloring
  • Optimize touch events.
  • Tile engine support
  • Text rendering plugin
Q4 2018
  • Open Source efforts
  • Explore the Nintendo Switch platform
  • iOS Offline builds from Corona Simulator

GameDev News

1. February 2018


Unreal recently started releasing preview versions of Unreal Engine 4.19 with some great new features and apparently one stealth one… glTF support.  This is actually excellent news for the industry as a whole, as the current standards FBX and COLLADA or convoluted, proprietary or both.  A good, game ready, cross platform, cross application open andgltf free 3D file format is desperately needed and more and more it seems that glTF may finally be that format.


User vlbanco did an in-depth post on his experiences with the new format on the Unreal forums.

My tests have resulted in this:
Basic static mesh support works. Skeletal meshes and animations are not supported yet.


Each of the objects in the scene will become a single static mesh in unreal. This is good for a modular pack, but very bad for complex multiobject files. An option to merge objects would be great (like in FBX import). This fails spectacularly if you try to import one of the complex models from https://sketchfab.com/features/gltf , like the unity robot model (he imports as a ton of tiny objects) The same happens with the drone mode;.


Interestingly enough, Blender export works by default, without any setup. There are no more scale ******** to deal with as with FBX, and also it will use the correct axis by default, so no flipped models or badly scaled models. Great improvement over FBX. It "Just Works"


All objects in the scene will import as static meshes, with their scale and position reset. If you have any scale or position at "object" level in blender, when importing into unreal this will be reset. An option to apply the scale/position would be great, but working around it is absolutely trivial.


Smooth groups export perfectly by default, exactly as they are with blender (no more import normals or not as with FBX). Another great improvement over FBX
Whole scenes cant be imported well, as every object will just become a separated static mesh centered at origin, but without the "scene hierarchy". The importer having the option to create a blueprint that holds the scene information would be a huge plus, and would allow one to create a whole scene in blender and import it as 1 object into ue4.


The material/texture import is a lot better than i expected, and its what makes this a superior format and workflow over FBX (for static meshes) right now. A blender cycles node tree will get completely translated to UE4, as long as it follows the roughness/metallic workflow. The fact that the importer already supports textures and recreates the material is awesome.


Do keep in mind, this is very much an experimental feature, but for many Blender artists, it’s already sounding like a superior experience.  Let’s hope skeletal animations get added soon!

GameDev News

30. January 2018


CoaTools, or Cut Out Animation Tools, 1.0 was just released.  Coatools is a free and open source plugin for Blender that enables users to create 2D animations directly in Blender, bringing IK based animation techniques to traditional 2D art.  It’s very similar in scope and function to other animation packages such as Spine, Spriter, Creature and Dragonbones.  The 1.0 release was quickly followed by a 1.0.1 update.


Details of these releases:

1.0 Release:

This is the first official stable release of the COA Tools.
It features a rich set of tools to create 2D Cutout Animation in Blender.

Some of the features that were in the Alphas and Betas available are disabled now. They can still be enabled in the Addon Preferences. But it is not recommended as they are going to be removed in the future releases. Thats the reason why I wanted to release an official release where they were still present, but deprecated. Some people may have used such features in older projects.

So here are the tools that probably won't work properly right now:

  • Experimental Json export (was used to export to godot. Will be removed.)
  • Spritesheet mechanics (Is replaced by so called Slot Objects. Will be removed)
  • Dragonbones Export( Many things have changed so this exporter will need a proper rewrite. Going to be modified in the future)

The addon features a complete new Addon Updater thanks to the CGCookie Addon Updater Module. Via this module I will make sure to autoupdate the addon in the future. So you can easily keep the addon up to date.

1.0.1 Release:

Trying to do publish new features/bug fixes now more often in maintainence releases.
Thanks to the new updater module people should get those features right away.

Additions:

  • Improve Sprite import (importing json files lets you choose which images should be imported. Updating images is now also integrated)
  • Improve Sprite Outliner (Sprites are now sorted based on the z depth. Rearranging sprite orders is now also included into the Outliner. AZ icon in the upper right corner)
  • Picking edge length for contour drawing in Edit Mesh Mode. Shift+Click on an edge will now pick that edge lenght for drawing contours.


You can download CoaTools on Github.  For more details be sure to check out this video, which is also embedded below.

Art, GameDev News

30. January 2018


Godot 3.0 is finally here!  Godot is an open source 2D/3D game engine and the 3.0 release brings a massive number of new features including a new 3D renderer, Bullet physics,Godot3Released C# support, OpenVR and Cardboard support, GDNative plugins and much more!  Stay tuned to GameFromScratch for some great new Godot 3 tutorials and more.  Our existing tutorial series is still about 90% valid if you are looking to get started today.


New features of this release taken from the Godot announcement blog:


You can get more detail in our hands on video available here and embedded below.

GameDev News

Month List

Popular Comments