Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

26. January 2016

 

I’ve been waiting on this one for a while, Godot 2.0 has finally been released in beta form.

Never one for ...  lengthy release notes, this release is not exception:

After a long, long time in development Godot 2.0 is now in beta!

Godot 2.0 Beta features a new interface , and huge amounts of usability improvements.
It is also more stable than ever, with hundreds of bug fixes and small enhacements.
Give it a test in the Downloads section!

Due to the lack of details of what is in this release (EDIT—Actually, read below, author contacted me via twitter with WIP change log), I instead leave you with a screenshot of the new 2.0 UI in action:

image

EDIT – The change log is still a work in progress, but here are it’s contents at present:

Useful links:

Related GH issue: https://github.com/godotengine/godot/issues/3355

Closed issues against 2.0: https://github.com/godotengine/godot/issues?q=milestone%3A2.0+is%3Aclosed

Closed PRs against 2.0: https://github.com/godotengine/godot/issues?q=milestone%3A2.0+is%3Aclosed

Closed PRs since 1.1-stable: https://github.com/godotengine/godot/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aclosed+updated%3A%3E2015-05-21

Remember to compare between the current status and 1.1-stable, we don't need to mention changes that were done in between, like fixing regressions added after 1.1-stable.

 

Added

- INI-style `.tscn` and `.tres` file formats for scenes and resources

- Haiku platform support

- Scene inheritance: scenes can be based on another one and save only changes relative to the base scene

- Support for Opus audio codec

- Godot icon for Windows editor using `pe_bliss` (GH-2195)

- Added ability to export current scene to a .zip file // what is this feature?

- Option to keep collision shapes at run-time (GH-1045)

- ConfigFile.get() now has an optional "default" value to return in case the value is not found

- Alt+Right click to pick layered nodes (GH-837)

- Z-position in Node2D to specify draw order (GH-405)

- GUI node (Control) rotation and scaling

- Building on Windows now works with Visual Studio 2015

- Improved joystick support

Export

- Option to convert .tscn format scenes to binary .scn format on export

- Option for zip-compressed resources (rather than binary pck)

- Option to export resources only

Editor

- Live scene editing

- Open several scenes at once

- Dockable UI windows

- Revamped script editor; recently viewed scripts appear in a red color, whereas less recent ones appear in a blue color

- Merged Script and Help tabs, help is now viewable from the Script tab

- Alt+Right click to pick layered nodes (GH-837)

- Improved "Project Settings" and "Editor Settings" dialogs (sections)

Debugging

- Option for  visible collision shapes, navigation, joints and paths at run-time (GH-934) (GH-2439) // clarify what is visible in 3D

- GDScript keyword `breakpoint` for persistent breakpoints (GH-3165)

GDScript

- Custom signal syntax `signal my_signal(parameter_a, parameter_b)` at class level

- Constructor `Color8(r, g, b, a)` and members `r8`, `g8`, `b8`, `a8` for `Color` type to define colors using 8-bit (0-255) values (GH-2339)

- GDScript export hints

  • - `int, FLAGS` — full range of bit flags (GH-2282)
  • - `int, FLAGS, "Flag 1", "Flag 2"` —set of  named bit flags (GH-2988)
  • - `float, EXP` — float edited with exponential slider (GH-2988)
  • - `float, EASE` —  float edited with easing functions display (GH-2403)
  • - `String, MULTILINE` —  string edited with multiline editor (GH-2323)
  • - Global filesystem hints restricted to tool scripts
  • - `String, FILE, GLOBAL` — File in global filesystem (GH-2988)
  • - `String, DIR, GLOBAL` —Directory in global filesystem (GH-2988)

- Extend directly from `Object` type (GH-2776)

Changed

- New default theme by Andreas Esau (@ndee85)

- Replaced JPEG decoding library with a new one, supporting progressive JPEG

// don't think we should mention that - Removed some extraneous prints in console

- Updated to libpng 1.5.26, fixing various upstream security issues

- SpinBoxes now repeatedly increase/decrease value when the up/down button is held

- Improved text selection in TextEdit

- PI is now a constant (GH-2134)

Fixed

- KP5 now toggles between orthogonal and perspective mode as expected in 3D view

< and > not longer get swapped in .xscn/.xml format (note that this might break some logic in 1.1-stable games that relied on the buggy behaviour) (GH-2649)

- Fix uniform scaling of non-square CanvasItem nodes (GH-3224)

Removed

- Undocumented GDScript aliases `vec2`, `mat32`, `vec3`, `mat3`, `trn`, `dict` and `function`

Sandbox

(things that might be integrated in some categories above, once sorted)

Node-specific stuff:

    - VideoPlayer:

        o add possibility to set the audio stream (GH-158)

GameDev News

26. January 2016

 

This one comes care of /r/gamedev and I have to say on first glance I am rather impressed.  This is a C++ based open sourced game engine with a WYSIWYG editor and C# scripting support.  A look at this screenshot from the Github page should get you somewhat excited:

Banshee Editor

 

The engine description direct from the author:

A modern open-source game development toolkit. It aims to provide simple yet powerful environment for creating games and other graphical applications. A wide range of features are available, ranging from a math and utility library, to DirectX 11 and OpenGL render systems all the way to asset processing, fully featured editor and C# scripting.

For game developers Banshee aims to provide a complete set of tools and APIs needed to make a game from start to finish. It provides a highly intuitive and customizable editor that is easy to use by artists, designers and programmers alike, supporting development stages from asset management, scene building, scripting to game publishing. C# scripting makes your development easier by giving you access to the entire .NET library, along with fast iterations times while being safe and easy to write. Editor is fully extensible with the help of specially developed scripting API so you may customize it for exact needs of your project.

For engine developers it aims to provide a high quality foundation to build and improve upon. Banshee runs on a powerful multi-threaded C++14 core created to take advantage of all resources modern hardware can offer. Built from ground up using modern design principles, everything is modular, layered and decoupled as much as possible, making it easier to modify, replace or add functionality. Platform specific functionality is kept at a minimum making porting as easy as possible. Additionally every non-trivial method, class and field is documented. All this combined makes Banshee a great platform to build upon, for developing higher level systems like editor tools, core enhancements like new rendering techniques and platform ports, all the way to creating fully specialized toolsets that fit your team's needs exactly.

 

Engine code looks nice and clean from the examples shown:

    RENDER_WINDOW_DESC renderWindowDesc;
    renderWindowDesc.videoMode = VideoMode(1280, 720);
    renderWindowDesc.title = "My App";
    renderWindowDesc.fullscreen = false;

    Application::startUp(renderWindowDesc, RenderSystemPlugin::DX11);
    Application::instance().runMainLoop();
    Application::shutDown();

 

The engine is currently Windows only and requires Visual Studio 2013 or 2015. I have to say by first impressions, this is certainly an interesting looking engine and one I will have to check into a bit closer if I get the chance.  Obviously it’s a 0.2 release, so expect the usual menagerie of bugs and performance issues.

If you are interested in learning more, be sure to check out the introduction video:

GameDev News , ,

26. January 2016

 

Phong shading has been somewhat the gold standard as far as game engines go.  The Phong algorithm, named after founder Bui Tuong Phong, is an algorithm for how light interacts with a 3D surface.  With the upcoming Unity 5.4 release however, Unity will be moving from Phong to GGX shading.  For more details on GGX shading, you can read the original paper Microfacet Models for Refraction through Rough Surfaces.

 

As to why Unity is changing shader models, you can read on here, or excerpt below:

In Unity 5.3 Standard Shader we have switched to GGX as the BRDF of choice for both analytical lights such as point/directional light but also for image based lighting. Furthermore, a complete overhaul has been performed on our implementation for convolution of cube maps to achieve both accurate and noiseless results at low execution time (latter part is in Unity 5.4). The most characteristic difference between GGX and normalized Phong is that the microfacet distribution profiles associated with GGX has a higher and more narrow spike followed by a prevailing tail as we see here.

Profiles for GGX and Normalized Phong.

The impact of this on the final lit result is GGX has a brighter highlight followed by a trailing halo as shown below which gives a more realistic appearance.

Comparison between GGX and conventional normalized phong.

Cross-industry Compatible Materials

In academics physically based BRDFs use roughness as the parameter to control the microfacet distribution function. Academic roughness is defined as the root mean square slope of the profile. A common misunderstanding is that roughness maps in CG are the same as academic roughness which is not the case. The reason academic roughness is not used for texture maps or sliders is because the “blur levels” are not evenly distributed which is both very difficult to work with but also leverages the limited bit precision of a texture map poorly. To avoid confusion Unity uses smoothness instead of roughness maps where smoothness is converted into academic roughness in the shader using the formula (1-smoothness)^2. Distribution wise this is equivalent to Burley’s roughness but reversed such that the most blurry response maps to 0.0 and perfect mirror reflection maps to 1.0 which we find more intuitive.

The significance to such a standardized distribution is it allows you to import content into Unity made with external tools and achieve close/similar results. Most CG painting tools today support smoothness maps. To be clear an identical match is not guaranteed but proportionality between diffuse and specular brightness and overall blurriness of the specular reflection should be close. The following comparison shot between Unity 5 and Substance Painter was kindly provided by Wes McDermott from Allegorithmic.

As we see the visuals are very similar. I would also like to thank Wes and Allegorithmic for their collaboration and helpful iteration on this. For more details on the subject people are encouraged to check out their detailed course on PBR and Unity 5.

GameDev News ,

25. January 2016

 

I am currently embarking on a rather massive “from scratch” beginners game programming series over on YouTube.  One thing that can make the process a hell of a lot smoother for a beginner or veteran alike is a good development environment.  As a result I’ve created this page, a summary of the best editors and IDEs for development in Lua using Love specifically.  This list contains both full blown IDEs as well as text editors that can be configured to work better with Lua or Love2D.  Of course the line between text editor and IDE can be extremely blurry at times, so the distinction doesn’t really matter.  Unless otherwise stated, all options on this list are cross platform and have a free version available.

 

ZeroBrane Studio

If in doubt, select this one.  It’s probably the easiest to configure and perhaps the most Lua and Love focused option out there.  With the least amount of effort you will get the most amount of functionality including code highlighting, autocompletion and most impressively, debugging support.

 

IntelliJ IDEA with Lua and Love2D plugins

Probably not the ideal choice for beginners, as the IDE itself is rather complicated and you have to configure two different plugins to get things up and running.  That said, this is the IDE I will be using for the tutorial series simply because it has an excellent presentation mode, making it good for video demonstrations.  With the plugins you get full autocompletion, syntax highlighting and can run your app directly from the IDE.  You can’t unfortunately debug.  I have done a video on configuring IntelliJ for Love development available here.

 

Sublime Text with the Love2D Package

Sublime Text is well named, it’s a great text editor, that through package support can get awfully close to full IDE capabilities.  It was my go to general purpose text editor for years and is still a very solid option.  With the Love2D package you get syntax highlighting, autocompletion and the ability to run your app directly in the editor.

 

Atom Editor with the Love-IDE collection of packages

Atom is another editor, very similar in scope to Sublime Text with probably even greater extensibility.  The Love-IDE extension brings together a collection of Lua and Love2d plugins to give Atom the ability to run from within the editor, autocompletion and syntax highlighting.  I personally find atom kind of slow though, especially to start up.  As I find myself loading and closing editors constantly, this becomes a more pronounced negative over time, at least to me.

 

Notepad++ with Autocompletion Plugin

Another free text editor that can be extended to support Lua and Love development.  Using the linked extension it is possible to get autocompletion, however the file is out of date and has only been updated up to Love 0.8.0.  There may be a more modern implementation somewhere.  As it stands, unless you are invested in Notepad++, I have trouble recommending it over the other great options in this list.

 

Eclipse and the LDT Plugin

The Eclipse IDE can also be extended to support Lua development using the LDT plugin.  I would rather swallow razor blades while juggling live hand grenades than use the Eclipse IDE, but hey... I’m trying not to let my bias show, so I added it to this list.  Some people love working in Eclipse, so this may be an option for you.  Warning though, Eclipse is extremely unfriendly to beginners, requiring a PHD in Obtuse UI design before mastering... oops, bias showing again. 

 

Decoda Lua IDE

This is the only option on this list I have no prior experience with.  It started life as an editor for Lua scripts for the game Natural Selection, then was released as a commercial Lua IDE, then finally was made free and open source.  Following these instructions it can be made to debug Love code.  Decoda is available on Windows only.

 

Visual Studio with BabeLua Plugin

Visual Studio is perhaps *the* IDE for Windows based developers and thanks to the somewhat recently released Community Editions, it is now available for free.  With the BabeLua plugin you get the full package, autocompletion, syntax highlighting and best of all, debugging.  For a beginner however, Visual Studio can be a bit daunting, not as bad as Eclipse, but probably comparable to IntelliJ in complexity.  Thanks to SiENcE for the heads up.

 

 

There are of course a few hundred other options including the ages old VIM and EMACS editor, or for those that like pain, you can use the text editor including with your OS such as Notepad or TextEdit, but you will certainly be leaving a lot of functionality on the table!  Did I miss a popular option?  If so, let me know!

Programming ,

25. January 2016

 

Allegro, a C++ based game programming library just released version 5.1.13 WIP, so I would assume the WIP tag means you can expect a few more hiccups than normal.  Allegro holds an interesting place in my heart, as it was one of the first DOS based game programming libraries I ever used.  Yes, I said DOS.  Allegro has been around for a little while...  fun fact, the guy that started Allegro eventually ended up at Microsoft where he was one of the main developers of the now defunct XNA project.

 

Enough trivia and reminiscing... back to the release:

Changes from 5.1.12 to 5.1.13 (January 2016)

The main developers this time were: Julian Smythe, Elias Pschernig and Peter Hull.

Graphics:

  • Add al_get_opengl_program_object (SiegeLord).

Input:

  • Fix spurious triggering of the mouse grab key when it wasn't otherwise set (SiegeLord).

Android port:

  • Avoid multiple HALT/RESUME events on Android (Max Savenkov).

  • Implement al_get_monitor_info for Android (Reuben Bell).

  • Fix Android crash on file access.

  • Implement ALLEGRO_FULLSCREEN_WINDOW on Android.

  • Fix crash if display is destroyed while the app is switched out.

  • Add support for x86_64 Android.

  • Add al_android_set_apk_fs_interface.

Linux port:

  • Allow using OpenGL ES in X11.

  • Fix the initial display size not being correct sometimes (SiegeLord).

  • Fix a race condition in the XInput joystick driver (Trent Gamblin).

OSX port:

  • Fix various memory leaks.

  • Fix al_set_window_title.

  • Fix a lot of decrepid and deprecated code.

  • Fix single buffer flip display (SiegeLord).

Windows port:

  • Fix Windows UNC path handling.

  • Fix clipboard nul-termination issues (Trent Gamblin).

  • Set the window title immediately upon window creation (SiegeLord).

Build system:

  • Define CMAKE_FIND_ROOT_PATH for i686-w64-mingw32 cross compiler (Martijn van Iersel).

  • Allow building with older CMakes again (SiegeLord).

  • Do not catche compile tests' failure (Bruce Pascoe).

  • Add a way to statically link the runtime with MinGW (SiegeLord).

  • Don't link the MSVC C runtime at all when requesting a static runtime and building a static library (SiegeLord).

Documentation:

  • Add links to the source code of the definitions of the most API entries.

  • Fix sidebar generation with modern Pandoc (Boris Carvajal).

Python:

  • Fix ordering issue for HAPTIC* structs.

  • Fix missing ALLEGRO_PRIM_ATTR_NUM.

Other:

  • Add a 'none' debug level to turn off logging entirely in debug builds (SiegeLord).

  • Reconfigure logging after the configuration files are loaded (SiegeLord).

  • Fix al_set_new_window_title() off-by-1 (Bruce Pascoe).

  • Don't call al_get_time() before system is installed (SiegeLord).

Audio addon:

  • Add al_get_default_voice and al_set_default_voice.

  • Flush the pulse audio stream rather than draining it, fixing some audio breaks (SiegeLord).

  • Fill audio stream fragments with silence in the audio addon rather than in the acodec addon, fixing some garbage output (SiegeLord).

  • Fix possible deadlock when destroying audio streams (SiegeLord).

Acodec addon:

  • Don't read past the audio chunk's end when streaming wav files (SiegeLord).

  • Turn off allegro_acodec dynamic loading by default, fixing a common footgun (Bruce Pascoe).

Image addon:

  • An enormous amount of work supporting reading of esoteric (and not) BMP format variants (palletted, GIMP-style, etc). New tests were added using the manual bmp suites.

Native dialog addon:

  • Update code to work with modern OSX versions.

  • Clean up menu handling on OSX.

GameDev News

Month List

Popular Comments

Microsoft Launch Free Visual Studio Dev Essentials
Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon


18. November 2015

 

Microsoft is a different sort of company these days.  Starting back in 2014 they released the free community edition of Visual Studio.  Then in April of this year they launched the light weight and cross platform (and completely free) Visual Studio Code.  Today they announced the launch of Visual Studio Dev Essentials.

So what exactly does Dev Essentials include?

 

Tools

  • Visual Studio Community
  • Visual Studio Code
  • Visual Studio Express
  • Team Foundation Server Express

 

Of those products only Team Foundation Server is new I believe.  So mostly it’s a rebranding of the tools we’ve already got.  However it’s the add-ons that make the package.

 

Training

  • Pluralsight 6 month subscription
  • Xamarin University Mobile Training
  • WintellectNOW 3 month subscription
  • Microsoft Virtual Academy
  • HackHands Live Programming Help $25 Credit
  • Priority Forum Support

 

Cloud

  • Azure Credits ($25/month for 12 months)
  • Visual Studio Team Services account with 5 users
  • App Service Free Tier
  • PowerBI free tier
  • HackeyApp free tier
  • Application Insights free tier

 

For Mac Developers

  • Parallels Desktop Pro 3 months subscription
  • Parallels Acceess 3 months subscription
  • Windows Platform VM 60 days
  • Office Online Apps

 

Now many of these services are either limited time or coming soon, so not everything is available today and not everything is available for ever.  So if this program sounds interesting to you, head on over here for more information.

News, GameDev News

blog comments powered by Disqus

Month List

Popular Comments