Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

18. May 2018


It’s not very often a game engine takes me completely by surprise.  Especially a full featured, open source, C++ based, cross platform, heavily documented, feature rich, high performance 3D game engine.  Well that’s exactly what happened with the G3D Innovation Engine.  The primary maintainers are Morgan McGuire (@CasualEffects) who is currently an educator as well as a VR scientist at NVIDIA and previously worked on games such as Skylanders, Titan Quest and the Unity game engine, as well as Michael Mara at Standard University and Oculus Research.

The G3D Engine is self described as:

The G3D Innovation Engine is a commercial-grade C++ 3D engine available as Open Source. ss

G3D supports hardware accelerated real-time rendering, off-line rendering like ray tracing, and general purpose computation on GPUs. Its design emphasizes rapid prototyping and innovation, particularly of rendering and game algorithms.

G3D provides a set of routines and structures so common that they are needed in almost every graphics program. It makes low-level libraries like OpenGL, network sockets, and audio channels easier to use without limiting functionality or performance. G3D is a carefully designed, feature-rich base on which to prototype your 3D application.


Beyond being a capable engine it is also an incredible learning resource.  The engine is bundled with over 6GB of assets to experiment with, as well as over a dozen robust ss2samples with thoroughly documented source code.  One of the samples is even a full blown first person shooter, while another demonstrates a Minecraft-esque voxel based level.  There are also examples that show you how to work at the lowest level directly with OpenGL as well as advanced examples showcasing functionality such as real-time raytracing, lighting effects, procedural geometry and even VR.

Additionally each example can easily embed a suite of tools directly, enabling you to screen shot or video capture, change camera settings on the fly or launch the built in profiler.  There is even a complete scene editor built in, allowing you to place entities directly in your scene via simple drag and drop, turning your application into a minimalistic level editor.


Remember back at the beginning I mentioned that the maintainer was also an educator?  He has also authored a companion called the Graphics Codex which goes hand in hand with the G3D game engine.  For a mere $10 you gain access to an advanced reference that may just be one of the single best ways of learning computer graphics GIF2topics such as ray casting, BSDF, rendering and more.  You can see a full chapter list here.  So if you are trying to learn more advanced graphics programming, G3D is certainly a great resource.  Keep in mind however, this material was used with a 300s level graphics course, so you are going to need a solid foundation in math to follow along.

Purchasing the Graphics Codex is by no means a requirement however.  One thing open source projects often suffer from is poor documentation.  Thankfully this certainly isn’t the case with the G3D engine.   There is an extensive manual available here, as well as a comprehensive set of API references.  As mentioned earlier, the engine is also loaded with well documented samples.

If you are looking for a low level foundation to build your game on, a framework to do some graphical experiments or simply are looking for a way to learn more about modern graphics programming, I can think of little reason not to suggest checking out the G3D Innovation Engine. 


If you are interested in learning more about the G3D Innovation Engine, be sure to check out our hands-on video available here and embedded below.  I am almost certain you will be amazed.

GameDev News, Programming , ,

18. May 2018


The first revision of Unity 2018 has been released.  This update is composed entirely of bug fixes and is considered production ready.


Details from the release notes:

Fixes
  • Editor: Fixed content drawn with OnSceneGUI not looking correct and consistent whether the project color space is Gamma or Linear.(1018625)
  • Player: Fixed imbalanced platform profile markers in user scripts. (1005409)
  • Web: Fixed crash when aborting AssetBundle download using UnityWebRequest. (1017468)
  • Particles: Improved logic for when Automatic Culling can be used with non-randomized emission. (991235)
  • Particles: Fixed particle collision not being detected when Particle System used negative scale. (985049)
  • Particles: Fixed particles occasionally flickering when they have a random start life time and sort mode was set to Youngest or Oldest in front. (988874)
  • Particles: Fixed prefabs with a ParticleSystem creating duplicate entries into its serialization after each modification. (989631)
  • Particles: Fixed particles/alpha blended material inverting colors of other blended objects, when using HDR. (967476)
  • Editor: Fixed PresetLibraries classes not being handled correctly by the Preset UI and will be excluded at the moment. (1020017)
  • Editor: Foxed closing the Create new Preset window logging a Layout error in the console. (1022087)
  • XR: Fixed XR.WSA.WorldManager.OnPositionalLocatorStateChanged() not getting called when state changes back to active.


You can download the release here.

GameDev News

16. May 2018


OpenFL, the cross platform low level media framework library for the Haxe programming language, just released version 8.1.  The biggest feature by far in this release is beta support for the ActionScript 3.0 language.  This is a strangely karmic release as the FL in OpenFL stands for Flash and ActionScript is the ECMAScript derived scripting language used to program in Flash.  OpenFL is the underlying technology used to create a number of games including the popular indie hit Papers Please.


Details of the release from the OpenFL forum:

OpenFL 8.1 is here, and introduces beta support for ActionScript 3.0 as a source language!

We’d love additional feedback on how we can improve the workflow in our samples.

To get started, enter any of the samples, run npm install then npm start.

We expect to continue to work with Apache Royale until we can bring the workflow up to par with our other supported source languages on NPM (Haxe, TypeScript, ES5 JavaScript, ES6 JavaScript).

Thanks for your support, feedback and help!

OpenFL 8.1 is available on both NPM and Haxelib. Though this is primarily an NPM feature-based release, there are some minor fixes for the Haxelib release as well


You can learn more about OpenFL at the OpenFL homepage.

GameDev News

16. May 2018


Since the release of Phaser 3.0 earlier this year, the HTML5 game framework has seen a rapid succession of updates.  Today Phaser 3.8.0 was released, this release focusing heavily on the plugin system, making it easier to acquire and ultimately use them in your game.  This release also enables you to provide your own already created WebGL context when initializing Phaser.  Of course the release is also packed with other smaller fixes, features and improvements.


Further details from the change log:

New Features
  • You can pass in your own canvas and context elements in your Game Config and Phaser will use those to render with instead of creating its own. This also allows you to pass in a WebGL 2 context. Fix #3653 (thanks @tgrajewski)
  • WebGLRenderer.config has a new property maxTextures which is derived from gl.MAX_TEXTURE_IMAGE_UNITS, you can get it via the new method getMaxTextures().
  • WebGLRenderer.config has a new property maxTextureSize which is derived from gl.MAX_TEXTURE_SIZE, you can get it via the new method getMaxTextureSize()
  • WebGLRenderer has a new property compression which holds the browser / devices compressed texture support gl extensions, which is populated during init.
  • When calling generateFrameNames to define an animation from a texture atlas you can now leave out all of the config properties and it will create an animation using every frame found in the atlas. Please understand you've no control over the sequence of these frames if you do this and it's entirely dictated by the json data (thanks @Aram19)
  • The keycodes for 0 to 9 on the numeric keypad have been added. You can now use them in events, i.e. this.input.keyboard.on('keydown_NUMPAD_ZERO') (thanks @Gaushao)
  • All Game Objects have a new method setRandomPosition which will randomly position them anywhere within the defined area, or if no area is given, anywhere within the game size.
Updates
  • Game.step now emits a prestep event, which some of the global systems hook in to, like Sound and Input. You can use it to perform pre-step tasks, ideally from plugins.
  • Game.step now emits a step event. This is emitted once per frame. You can hook into it from plugins or code that exists outside of a Scene.
  • Game.step now emits a poststep event. This is the last chance you get to do things before the render process begins.
  • Optimized TextureTintPipeline.drawBlitter so it skips bobs that have alpha of zero and only calls setTexture2D if the bob sourceIndex has changed, previously it called it for every single bob.
  • Game.context used to be undefined if running in WebGL. It is now set to be the WebGLRenderingContext during WebGLRenderer.init. If you provided your own custom context, it is set to this instead.
  • The Game onStepCallback has been removed. You can now listen for the new step events instead.
  • Phaser.EventEmitter was incorrectly namespaced, it's now only available under Phaser.Events.EventEmitter (thanks Tigran)
Bug Fixes
  • The Script File type in the Loader didn't create itself correctly as it was missing an argument (thanks @TadejZupancic)
  • The Plugin File type in the Loader didn't create itself correctly as it was missing an argument.
  • WebAudioSoundManager.unlock will now check if document.body is available before setting the listeners on it. Fixes old versions of Firefox, apparently. #3649 (thanks @squilibob)
  • Utils.Array.BringToTop failed to move the penultimate item in an array due to an index error. Fix #3658 (thanks @agar3s)
  • The Headless renderer was broken due to an invalid access during TextureSource.init.
  • Animation.yoyo was ignored when calculating the next frame to advance to, breaking the yoyo effect. It now yoyos properly (thanks Tomas)
  • Corrected an error in Container.getBoundsTransformMatrix that called a missing method, causing a getBounds on a nested container to fail. Fix #3624 (thanks @poasher)
  • Calling a creator, such as GraphicsCreator, without passing in a config object, would cause an error to be thrown. All Game Object creators now catch against this.


If you are interested in learning Phaser 3, be sure to check out our Getting Started video, also embedded below:

GameDev News

15. May 2018

 

BForArtists is a special port of Blender aimed specifically at artists.  It aims to move from Blender’s keyboard focused memorization heavy user interface to a more streamlined, visual icon based approached.  The net result is a new interface that is much more mouse heavy and perhaps a bit slower, but also a lot easier to learn.  At it’s core, this is still Blender however, built on top of Blender 2.79.  There is even a Blender keymap mode in case you need tobForArtists1 follow along to an existing Blender tutorial.  On the topic of tutorials, BForArtist also has a comprehensive set of searchable PDF documentation that go step by step through using BForArtist.  Between the release candidate and the final 1.0 release, the follow functionality is new in the 1.0 version:

Release note Bforartists Version 1.0.0 - 10.05.2018

Tools tab - Edit Panel - Hide auto smooth angle slider when Autosmooth is deselected
Added snap icon to the autosnap dropdown menu in graph editor and nla editor

Release note Bforartists Version 1.0.0 RC1 - 04.05.2018

Removed double menu entries Undo, Redo and Undo History from the object menu.
Added the quickstart tutorial link to the help menu too
Youtube Link in Bforartists needs a hint towards Youtube
Added the Liquids material library to the Material Library VX addon
Iconize Brush panel in Particle mode
Removed confirmation dialog for deleting markers in animation editors and tracking editor
Materials Library VX - added basic material library
Missing Hotkeys in UI - changed hotkey for Delete Global
Missing Hotkeys in UI - changed hotkey for Center Cursor and View All
Missing Hotkeys in UI - changed hotkey for Toggle Maximize Area
3D View - View menu - two Toggle Maximize menu items. Renamed to Toggle Fullscreen Area
Merge remote-tracking branch 'blender/master' into sync_blender_master
Texture Paint - Brush Panel - Blend Mode dropdown box without icons
Fixed ... has no attribute draw_ ... error in edit mode
Moved the Transform menu from the object related menus to the tool shelf
Removed Objects and Wireframe subtabs in the object display panel
Added the experimental keymap
Material Library VX, updated the init.py to the latest name convention changes from Blender
Fixed Primitives Creation Modals addon - missing script files warning
Materials library vx - added the Foliage library
Separated the sections in the Create tab panels into single panels. Fixed the add menu in the Misc panel.
Increased the camera clipping default for a camera object
Materials Library VX - ceramic library added
Materials Library VX - added the glass library
Material Library VX addon - added the Metal library
Removed some not necessary texture linkings in the Paint library
Materials Library VX - added the Paint library
Fixed name convention warnings in the materials_library_vx/__init__.py
Fixed name inconsistency warning for the cycles bake panel
Fixed classes names to fit Blender name conventions for panels and menus
Node Toolshelf - Renamed the classes to follow the panel name conventions
Removed the bl_idnames from the panels in the space_node_toolshelf.py . They are not needed for panels
Improve Materials Library VX addon - added preview, made preview and apply buttons bigger
Viewport Display cleanup - put World background out of subtab, rename subtab to Object related
Rename Shading panel to Object Shading panel
Remove double menu entry tilt in curve menu, Removed Mean tilt submenu
GPencil Menu in Edit Strokes mode - Removed the Transform menu. It was a double menu entry.
Gpencil menu in Edit Strokes mode - remove double menu entry Undo, Redo, Undo History
Sculpt mode, Hide/Mask menu, readd hotkey ctrl shift lmb for lasso select
Particle Edit mode - Options panel - hide settings when corresponding checkbox is off
Fix error in materials library vx addon. See Blender commit: https://developer.blender.org/rBA8d3301f66c77e7b5a1f310a311d2055dbd473e09

 

BForArtist is available for download for Mac OS and Windows right here.  Unfortunately for Unix users, there is no current binary version and you need to build from sources.

 

If you are interested in learning the difference between BForArtists and Blender be sure to check out this video explaining the major differences.  I also looked at BForArtists in the past available here as well as much more briefly earlier today, also embedded below:

Art, GameDev News

Month List

Popular Comments