Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
3. April 2020


The Eclipse Foundation have released Theia, an open source desktop and cloud based IDE with it’s targets set firmly on Visual Studio Code.  In fact, it’s even compatible with Visual Studio Code extensions!   Theia 1.0 isn’t actually a downloadable product, instead representing a framework for creating your own IDEs on top of the modular and extensible core provided by Theia.

Details from the Eclipse Foundation press release:

The Eclipse Foundation, one of the world’s largest open source foundations, today announced the release of Theia 1.0, a true open source alternative to Microsoft’s popular Visual Studio Code (VS Code) software. Eclipse Theia is an extensible platform to develop multi-language Cloud and Desktop Integrated Development Environments (IDEs) with state-of-the-art web technologies that enable developers, organizations, and vendors to create new, extensible developer experiences. Early contributors and adopters span a broad variety of industries and applications, and include companies like ARM, Arduino, EclipseSource, Ericsson, Gitpod, Google Cloud, IBM, Red Hat, SAP, and TypeFox.

“We are thrilled to see Eclipse Theia deliver on its promise of providing a production-ready, vendor-neutral, and open source framework for creating custom and white-labeled developer products,” said Mike Milinkovich, executive director of the Eclipse Foundation. “Visual Studio Code is one of the world’s most popular development environments. Not only does Theia allow developers to install and reuse VS Code extensions, it provides an extensible and adaptable platform that can be tailored to specific use cases, which is a huge benefit for any organization that wants to deliver a modern and professional development experience. Congratulations to all the Theia committers and contributors on achieving this milestone.”

Started as a project by Ericsson and TypeFox in 2016, the Theia project has become an integral part of enterprise cloud solutions around the world. Its momentum and distribution became significant enough that last year, the project approached the Eclipse Foundation as a potential host and vendor-neutral foundation that could further guide the project’s growth. Today, Theia is one of the Eclipse projects encompassed by the Eclipse Cloud Development Tools Working Group  (ECD WG), an industry collaboration focused on delivering development tools for and in the cloud.

The most significant differences between Eclipse Theia and VS Code are:

  • Theia's architecture is more modular and allows for significantly more customizations
  • Theia is designed from the ground to run on both Desktop and Cloud
  • Theia is developed under the community-driven and vendor-neutral governance of the Eclipse Foundation.

Eclipse Theia is designed to work as a native desktop application as well as in the context of a browser and a remote server. To support both situations with a single source, Theia runs in two separate processes. Those processes are called frontend and backend respectively, and they communicate through JSON-RPC messages over WebSockets or REST APIs over HTTP. In the case of Electron, the backend, as well as the frontend, run locally, while in a remote context the backend would run on a remote host.

While Theia isn’t a downloadable product, you can easily check out a Theia implementation in the cloud in the form of GitPod.  You can also learn more about Theia and see GitPod in action in the video below.

GameDev News


2. April 2020


The Defold game engine is a free cross platform 2D focused game engine from King, we previously covered here and here as well as a video tutorial here.  The Defold team recently released an update on the future roadmap of the Defold game engine.

Details from the Defold blog broken down by engine category:

iOS

We will continue to keep the iOS platform support up to date with the latest iOS versions and requirements. Specific iOS tasks in no particular order:

Metal

Apple has announced that OpenGL will be deprecated on iOS and macOS, but no date has been announced. We have worked during 2019 to add a new Vulkan based graphics backend. This work is nearing completion and it will allow us to use MoltenVK on iOS and macOS. MoltenVK is a Vulkan Portability implementation. It layers a subset of the high-performance, industry-standard Vulkan graphics and compute API over Apple’s Metal graphics framework, enabling Vulkan applications to run on iOS and macOS. We have worked together with members of the Khronos Group to benchmark our implementation and have received only a few points of improvement.

Sign in with Apple

Apple will require that apps that authenticate or set up user accounts must support Sign in with Apple (SIWA). The deadline is June 30, 2020. We will release SIWA support through a native extension in Q2 of 2020. The extension has been developed at King and has already been tested in production.

Storyboard launch screens

Apple will require that apps use Xcode storyboards as the app’s launch screen. The deadline is June 30, 2020. We will automatically create a launch screen storyboard from the launch images set in game.project.

Android

We will continue to keep the Android platform support up to date with the latest Android requirements. We are collaborating with the Android and Google Play partnership teams to identify important tasks. The top four tasks in order of priority are:

Billing

Google Play Billing is a service that lets you sell digital content on Android. We will add support for the new Billing API via the existing IAP extension.

Google Play Game Services

We will continue to improve on the existing Google Play Game Services extension to ensure that it supports all of the latest features of Google Play Game Services.

Android App Bundles

Android App Bundle is a publishing format that includes all your app’s compiled code and resources, and defers APK generation and signing to Google Play. Google Play uses your app bundle to generate and serve optimized APKs for each device configuration, so only the code and resources that are needed for a specific device are downloaded to run your app. We will initially add support for basic bundling of applications using Android App Bundles and then expand upon the feature as needed.

Google Play Instant

Google Play Instant enables native games to launch on devices running Android 5.0 (API level 21) or higher without being installed. By allowing users to run an instant game, known as providing an instant experience, you improve your game’s discovery, which helps drive more active users or installations.

HTML5

We will focus on increased performance and reduced application size on HTML5. We will when possible update to newer versions of Emscripten and WebAssembly to achieve this.

Desktop

On desktop our only identified focus area is to add the ability to run the engine loop while the window is in the background.

Editor

We will mainly focus on performance and stability improvements in the editor. In terms of new features we have identified the following (in no particular order):

Improved 3D support

In 2019 we added support for perspective cameras and made some improvements to how collision shapes were visualised. These changes made it easier to work with and place 3D models in a collection, but there are still many improvements to be made to scene navigation when working in a 3D.

Auto-tiling

While we did some minor improvements to the tilemap system in 2019 (better tile palette and interleaved layers) we have so far left out auto-tiling. Auto-tiling can really speed up tilemap editing and it is the next big feature to add for the tilemap editor.

Editor extensions

We plan to expand the existing system for editor scripts to allow for more complex operations and we will look at how to customize the UI and/or add new UI widgets using editor scripts.

GUI layouts and templates

The system with GUI layouts and templates where one or both involve value overrides is fairly complex and hard to work with from a code maintenance perspective. We plan to review the system and possibly simplify it.

Engine

In 2019 we made several changes to improve editor stability. Two examples of this were reduced ANRs on Android and a standardized application loop on iOS. In 2020 we will continue to identify and fix stability issues in the engine. Besides stability improvements we will also work on the following features (in no particular order):

Sound threading

Sound playback is currently done on the main thread together with the rest of the game loop. This can become a problem if loading large resources while playing sound, resulting in playback stutter. The solution is to do sound playback on a separate thread to avoid stutter when loading content.

Physics decoupling

Physics is currently running at the same rate as the rest of the game loop. We will try to decouple the physics simulation from the game loop by running the simulation on a separate thread and optionally with a different number of updates per second.

Spine as an extension

We will look into the possibility of using the official Spine runtime as an extension and a replacement for the existing custom made native Spine support. This will allow the use of newer versions of Spine, something that currently is not possible with the existing and custom Spine runtime.

Physics as an extension

We will look into the possibility of moving the Box2D and Bullet3D physics engines to a native extension. This will allow the community to update or replace the physics simulation with an update version or completely different implementation.

Live update

We’re very happy to see that the live update functionality is used in several different scenarios (from Android Expansion Files to Steam DLCs). We have with the help of the community identified several improvements and we plan to deliver the most critical improvements in 2020.

Mesh component

The custom mesh component will be released in Q2 of 2020.

Vulkan

We will release support for Vulkan on all systems where it is supported. On Android it will be used by default on newer devices. On iOS it will be used under the hood to be able to use MoltenVK (see iOS above).

Build server

The Defold build server for native extensions will be open sourced in Q2 of 2020 to allow developers to build locally or set up their own build servers to cut the dependency to the Defold provided build service.

You can learn more about the Defold Game engine roadmap in the video below.  The tutorial mentioned in the video is open source and available here on Github.

GameDev News


2. April 2020


EDIT – It seems we have pushed the download server capacity.  If you want to download Effekseer, use this mirror instead.

Effekseer is an open source particle effect creation tool we covered previously in this video.  They just recently released version 1.5:

New features include:

Material Editor

A new node-based material editor has appeared. Further expression is possible with custom materials!

Added trendy toon effect samples!

Turbulence

Turbulence function has been added.
The Absolute Position window has been changed to the Force Field window and includes turbulence parameters.

Dynamic parameters and expressions

Enables you to control the effect with dynamic parameters.

New format "efkefc"

.efkefc will be used instead of the traditional .efkproj.

Effekseer is available open source under the MIT license on GitHub.  You can download the most recent version here.  Learn more about Effekseer in the video below.

GameDev News


1. April 2020


Raylib 3.0 was released today.  Raylib is an open source, cross platform C based framework of tools and libraries for making games.  Components of raylib can be used on their own, however you can also download a preconfigured development environment making it among the easiest ways to get started doing C or C++ game programming. 

Details of the 3.0 release:

  • All global variables from the multiple raylib modules have been moved to a global context state, it has several benefits, first, better code readability with more comprehensive variables naming and categorization (organized by types, i.e. CORE.Window.display.width, CORE.Input.Keyboard.currentKeyState or RLGL.State.modelview). Second, it allows better memory management to load global context state dynamically when required (not at the moment), making it easy to implement a hot-reloading mechanism if desired.
  • All memory allocations on raylib and its dependencies now use RL_MALLOC, RL_FREE and similar macros. Now users can easely hook their own memory allocations mechanism if desired, having more control on how memory is allocated internally by the library. Additionally, it makes it easier to port the library to embedded devices where memory control is critical. For more info check raylib issue #1074.
  • All I/O file accesses from raylib are being moved to memory data access, now all I/O file access is centralized into just four functions: LoadFileData(), SaveFileData(), LoadFileText(), SaveFileText(). Users can just update those functions to any I/O file system. This change makes it easier to integrate raylib with Virtual File Systems or custom I/O file implementations.
  • All raylib data structures have been reviewed and optimized for pass-by-value usage. One of raylib distinctive design decisions is that most of its functions receive and return data by value. This design makes raylib really simple for newcomers, avoiding pointers and allowing complete access to all structures data in a simple way. The downside is that data is copied on stack every function call and that copy could be costly so, all raylib data structures have been optimized to stay under 64 bytes for fast copy and retrieve.
  • All raylib tracelog messages have been reviewed and categorized for a more comprehensive output information when developing raylib applications, now all display, input, timer, platform, auxiliar libraries, file-accesses, data loading/unloading issues are properly reported with more detailed and visual messages.
  • raudio module has been internally reviewed to accomodate the new Music structure (converted from previous pointer format) and the module has been adapted to the highly improved miniaudio v0.10.
  • text module reviewed to improve fonts generation and text management functions, Font structure has been redesigned to better accomodate characters data, decoupling individual characters as Image glyphs from the font atlas parameters. Several improvements have been made to better support Unicode strings with UTF-8 encoding.
  • Multiple new examples added (most of them contributed by raylib users) and all examples reviewed for correct execution on most of the supported platforms, specially Web and Raspberry Pi. A detailed categorized table has been created on github for easy examples navigation and code access.
  • New GitHub Actions CI system has been implemented for Windows, Linux and macOS code and examples compilation on every new commit or PR to make sure library keeps stable and usable with no breaking bugs.


Raylib is available on https://www.raylib.com/, with the source code hosted on GitHub under the liberal ZLib license.  The raylib cheatsheet is a one stop shop for learning the commands from the various libraries.  Raylib is also well documented on the Wiki.

Learn more about raylib in the video below.

GameDev News


1. April 2020


Today we are going hands-on with Asset Forge 2.0 by Kenny.nl.  Asset Forge is an extremely easy to use 3D modeling application where you can quickly create models using building blocks.

Details of Asset Forge:

You'll have access to a large library of pre-made blocks (about 600 currently), they're each categorized in different categories. You can place an unlimited number of blocks in your creation after which it's possible to export and use in the game engine of your choice.

  • Position, rotate, mirror and resize blocks
  • Export to common 3D file formats (see below)
  • Render your model as a 2D sprite
  • Apply colors, materials and textures
  • Batch export a sprite in multiple directions

The exported models are compatible with most game engines including Unity, Unreal Engine, Blender and ThreeJS. The 2D sprites (PNG) are compatible with all game engines that support sprites.

Asset Forge 2.0 is currently available, with Mac and Linux versions coming soon.  The 2.0 release adds Lua scripting support, making procedural content creation in Asset Forge a breeze. 

Asset Forge is available in Standard ($19.95) and Professional($39.95), with the pro edition containing an addition 10% more blocks.  Both editions including ongoing free updates and possess no DRM.

Check out Asset Forge in action in the video below.

GameDev News Art


AppGameKit Studio

See More Tutorials on DevGa.me!

Month List