Posted on Leave a comment

Epic Games Invest in Houdini Maker SideFX Software

Epic Games have just made an investment in SideFX Software, the maker of the procedural graphics powerhouse software Houdini.

Details of the investment from the SideFX blog:

We’re happy to share an exciting update: Epic Games is now a minority investor in SideFX. In Epic, SideFX gains a strong partner whose passion for the industry closely aligns with ours.

Kim Davidson remains the majority owner of SideFX, as well as President and CEO. He continues his strong, unwavering commitment to SideFX’s staff, customers, and partners.

SideFX and Epic are both committed to SideFX continuing its work with other industry partners – including all other content creation applications and game engines. This new development will have no impact at all on the Houdini development roadmap, as SideFX will continue to define its own path as an industry-leading procedural 3D platform for the film, TV, advertising and games sectors.

Dollar values of the investment were not disclosed. From the announcement it appears the investment should have minimal impact on neither Houdini or Unreal Engine. Epic Games have been making more and more investments of late including their $15M investment in Manticore Games.

Posted on Leave a comment

Babylon.JS 4.2 Game Engine Released

Babylon.js, the open source 3D web based game engine, just released version 4.2 with a ton of new features and tools. Key features of the 4.2 release include:

  • New particle editor for direct creation of particle systems in the Inspector
New Node System in Babylon.js
  • new Sprite Editor built into the Inspector to create, control and save sprites
  • new Skeleton viewer to visual bones and bone weights in Inspector
  • texture inspector for debugging texture issues
  • PBR support in the Node material editor with access to metallic, roughness, clearcoat, sheen etc when creating materials
  • new Procedural Texture, Particle Shader, Post Processing modes added to the Node editor
  • reusable frames in Node Material editor, enabling you to reuse shader code between projects easily
  • playground templates, essentially quick access code snippets in the code editor using Ctrl+Space
  • direct support for pre-filtered .hdr files
  • support for React Native for creating native applications
  • KTX + Basis U texture compression support
  • much, much more

You can learn more about the release in this article here or by watching the video below. Babylon.js is an open source project under the Apache 2 license with the source code available on GitHub. If you are interested in learning more about Babylon, be sure to check out our older Babylon.js tutorial series.

[youtube https://www.youtube.com/watch?v=aiTAfDB8Dis?feature=oembed&w=1500&h=844]
Posted on Leave a comment

Luminar 4 with Affinity Photo

This tutorial is going to be a little outside the normal topic of game development but should still be of interest to some of you because Luminar 4 is currently available on Humble Bundle. Luminar 4 is an AI powered image manipulation program that’s easy enough even I can use it! One of the challenges though is that it doesn’t formally support Affinity Photo out of the box, and Affinity Photo is my photo manipulation weapon of choice. Therefore in this tutorial we will show how to get Luminar 4 up and running on Affinity Photo 1.8.

If you are simply interested in learning more about Luminar 4 be sure to check out our hands-on video, it’s an impressive program.

Installing Luminar 4 with Affinity Photo

First, install Luminar 4. Just go with the defaults and don’t worry about the plugins portion if you don’t already have Photoshop installed.

After Luminar is installed, navigate to the install folder in Explorer. In my case it’s C:\Program Files\Skylum\Luminar 4. Once there, locate and copy the file Luminar4.8bf. Now we need to copy it into the Adobe plugins folder, a folder that you will most likely have to create. In explorer go to the folder C:\Program Files\Common Files and if one does not exist, create a folder called Adobe. Inside Adobe create a folder called Plug-ins, then inside that create a folder called CC, then paste the Luminar4.8bf file into that directory. The end result should be something like this:

Luminar 4 plugin folder creation for Adobe Photoshop in use with Affinity Photo

Now right click Luminar 4 in the start menu and Run as Administrator. Now select File->Install Plugins from the main menu.

Install Plugins Menu in Luminar 4

So long as you copied the file earlier into the right folder, you should now see Uninstall in the resulting Window.

Uninstall Luminar Plugin

Click Uninstall then Install and you are done with Luminar. Now fire up Affinity Photo and select Edit->Preferences. In the resulting window select Photoshop Plugins.

Selecting Photoshop Plugins in Affinity Photo

Now click the add button, then select the Luminar directory.

Adding the plugin in Photo

Once selected, Luminar 4 should show up in the detected plugins section. After installing the plugin it will prompt you to restart Affinity Photo. Once done, you can access Luminar 4 in Plugins->Skylum Software->Luminar 4

Running Luminar 4 in Affinity Photo

While these instructions are specific to Affinity Photo, any program such as Paintshop Pro should also be able to install Luminar using this process.

You can learn more about Luminar 4 and the Humble Bundle (plus see the above process in action) in the video below. The Humble links contain an affiliate code that enables you to direct a portion of the proceeds from your purchase to support GFS and thanks so much if you do!

[youtube https://www.youtube.com/watch?v=LIIRvS_mMD0?feature=oembed&w=1500&h=844]
Posted on Leave a comment

Godot FBX Importer Improvements In Godot 3.2.4

In Godot 3.2 FBX support was improved by implementing the open source AssImp library. In the upcoming release of Godot 3.2.4 we are getting an all new FBX importer. While based on AssImp initially, this project took over a year to developed, removed over 50K lines of non-FBX related code and made improvements across the board.

Developer Gordon MacPherson recently wrote about the experience on the Godot blog and detailed the following changes:

  • We rewrote all the mesh code to support all formats of FBX meshes correctly.
  • We built an entire abstraction for the FBX transform information, which was a very complex and convoluted undertaking to get working properly.
  • We designed a better handler for the animations which can compensate for the complex transform information, which means that we can handle animations correctly.

The project is ready for use but there are some plans in the pipeline:

  • Finish porting the rewrite to Godot 4.0 (we use the 3.2 branch in production, so that’s where this was developed and quality controlled by many users).
  • Locator bones. Right now, you need to bake your animation before exporting.
  • Improve material mappings (most are supported, some need mapping).
  • Fix bugs in the beta phase, we expect them.

Be sure to check out the blog post for details on the project, why they did it and why you should care. In the video below we put Godot 3.2.4 through the paces with a couple FBX tests, including this scene from Sketchfab. Unfortunately until Godot 3.2.4 is released, you will have to build Godot from source, just be sure to checkout the 3.2 branch from GitHub. Special thanks to IMVU for sponsoring the project.

[youtube https://www.youtube.com/watch?v=60Ofqmytzu0?feature=oembed&w=1500&h=844]
Posted on Leave a comment

Using Fedora 33 with Microsoft’s WSL2

If you’re like me, you may find yourself running Windows for a variety of reasons from work to gaming. Sure you could run Fedora in a virtual machine or as a container, but those don’t blend into a common windows experience as easily as the Windows Subsystem for Linux (WSL). Using Fedora via WSL will let you blend the two environments together for a fantastic development environment.

Prerequisites

There are a few basics you’ll need in order to make this all work. You should be running Windows 10, and have WSL2 installed already. If not, check out the Microsoft documentation for instructions, and come back here when you’re finished. Microsoft recommends setting wsl2 as the distro default for simplicity. This guide assumes you’ve done that.

Next, you’re going to need some means of unpacking xz compressed files. You can do this with another WSL-based distribution, or use 7zip.

Download a Fedora 33 rootfs

Since Fedora doesn’t ship an actual rootfs archive, we’re going to abuse the one used to generate the container image for dockerhub. You will want to download the tar.xz file from the fedora-cloud GitHub repository. Once you have the tar.xz, uncompress it, but don’t unpack it. You want to end up with something like fedora-33-datestamp.tar. Once you have that, you’re ready to build the image.

Composing the WSL Fedora build

I prefer to use c:\distros, but you can choose nearly whatever location you want. Whatever you choose, make sure the top level path exists before you import the build. Now open a cmd or powershell prompt, because it’s time to import:

 
wsl.exe --import Fedora-33 c:\distros\Fedora-33 $HOME\Downloads\fedora-33.tar

You will see Fedora-33 show up in wsl’s list

 
PS C:\Users\jperrin> wsl.exe -l -v
  NAME                   STATE           VERSION
  Fedora-33                 Stopped         2

From here, you can start to play around with Fedora in wsl, but we have a few things we need to do to make it actually useful as a wsl distro.

 
wsl -d Fedora-33

This will launch Fedora’s wsl instance as the root user. From here, you’re going to install a few core packages and set a new default user. You’re also going to need to configure sudo, otherwise you won’t be able to easily elevate privileges if you need to install something else later.

 
dnf update
dnf install wget curl sudo ncurses dnf-plugins-core dnf-utils passwd findutils

wslutilites uses curl and wget for things like VS Code integration, so they’re useful to have around. Since you need to use a Copr repo for this, you want the added dnf functionality.

Add your user

Now it’s time to add your user, and set it as the default.

 
useradd -G wheel yourusername
passwd yourusername

Now that you’ve created your username and added a password, make sure they work. Exit the wsl instance, and launch it again, this time specifying the username. You’re also going to test sudo, and check your uid.

 
wsl -d Fedora-33 -u yourusername
$id -u
1000
$ sudo cat /etc/shadow

Assuming everything worked fine, you’re now ready to set the default user for your Fedora setup in Windows. To do this, exit the wsl instance and get back into Powershell. This Powershell one-liner configures your user properly:

 
Get-ItemProperty Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\*\ DistributionName | Where-Object -Property DistributionName -eq Fedora-33  | Set-ItemProperty -Name DefaultUid -Value 1000

Now you should be able to launch WSL again without specifying a user, and be yourself instead of root.

Customize!

From here, you’re done getting the basic Fedora 33 setup running in wsl, but it doesn’t have the Windows integration piece yet. If this is something you want, there’s a Copr repo to enable. If you choose to add this piece, you’ll be able to run Windows apps directly from inside your shell, as well as integrate your Linux environment easily with VS Code. Note that Copr is not officially supported by Fedora infrastructure. Use packages at your own risk

 
dnf copr enable trustywolf/wslu

Now you can go configure your terminal, setup a Python development environment, or however else you want to use Fedora 33. Enjoy!

Posted on Leave a comment

Creature 3D Animation Software Now In Alpha

Kestrel Moon software, creators of the Creature 2D animation software have just released the very first 0.1 alpha of Creature3D. Creature 3D is a stand-alone 3D animation application, currently available for Windows 64 machines for free, for rigging and animating characters using procedural animation.

Features of Creature 3D:

Procedural Animation at your fingertips

Walk Cycles, Tail Animation, Ropes, Skin Sliding and Dynamic Flesh/Breathing Motion are a breeze with Creature3D’s state of the art Procedural Motor System. Take full manual control by tweaking both keyframes and animation splines.

Fast, Easy setup of Characters

Easily rig your Characters via Auto or Manual Rigging Modes. Add bones, then pick between Auto Weight or Manual brush painting for your Skin Weights.

Export your Animations to the World

Export your animation as industry supported mainstream FBX or GLTF assets which can then be imported into Game Engines like UE4 or Unity.

You can learn more about and download Creature here. If you want to get started with Creature 3D there are a few sample projects now available here. You can learn more about Creature 3D and see it in action in the video below.

[youtube https://www.youtube.com/watch?v=tqO37ZlDqiw?feature=oembed&w=1500&h=844]
Posted on Leave a comment

NVIDIA Release RTX Branch of Unreal Engine 4.25.4

The NVIDIA game development team just announced the release of the RTX GPU optimized branch of Unreal Engine. The 4.25.4 branch of Unreal Engine is the most current as of time of writing. The NVIDIA RTX branch is all about bringing RTX hardware optimized raytracing performance to UE4.

Details of the release:

  • Stability improvements
  • Hitching improvements due to async shader management
  • Transmissivity of light through foliage
  • Several generic SW overhead reductions for RT setup
  • Better culling default for instanced static meshes (foliage)
  • Minor fixes for light culling in reflections
  • Substantial improvements in GI and path tracing performance with high light counts
  • Unreal Engine 4.25.4 Update

There is also a experimental caustics branch with the following features:

  • The new hybrid translucency mode
  • Multi-bounce refraction optimization
  • Based on the latest NVIDIA RTX Branch
  • Mesh and Water caustics feature

More details of NVIDIA Unreal Engine support are available here. In order to access the RTX branches available on GitHub you have to first link your GitHub account to your Unreal Engine account with details available here.

Posted on Leave a comment

Getting started with Stratis encryption

Stratis is described on its official website as an “easy to use local storage management for Linux.” See this short video for a quick demonstration of the basics. The video was recorded on a Red Hat Enterprise Linux 8 system. The concepts shown in the video also apply to Stratis in Fedora.

Stratis version 2.1 introduces support for encryption. Continue reading to learn how to get started with encryption in Stratis.

Prerequisites

Encryption requires Stratis version 2.1 or greater. The examples in this post use a pre-release of Fedora 33. Stratis 2.1 will be available in the final release of Fedora 33.

You’ll also need at least one available block device to create an encrypted pool. The examples shown below were done on a KVM virtual machine with a 5 GB virtual disk drive (/dev/vdb).

Create a key in the kernel keyring

The Linux kernel keyring is used to store the encryption key. For more information on the kernel keyring, refer to the keyrings manual page (man keyrings).  

Use the stratis key set command to set up the key within the kernel keyring.  You must specify where the key should be read from. To read the key from standard input, use the –capture-key option. To retrieve the key from a file, use the –keyfile-path <file> option. The last parameter is a key description. It will be used later when you create the encrypted Stratis pool.

For example, to create a key with the description pool1key, and to read the key from standard input, you would enter:

# stratis key set --capture-key pool1key
Enter desired key data followed by the return key:

The command prompts us to type the key data / passphrase, and the key is then created within the kernel keyring.  

To verify that the key was created, run stratis key list:

# stratis key list
Key Description
pool1key

This verifies that the pool1key was created. Note that these keys are not persistent. If the host is rebooted, the key will need to be provided again before the encrypted Stratis pool can be accessed (this process is covered later).

If you have multiple encrypted pools, they can have a separate keys, or they can share the same key.

The keys can also be viewed using the following keyctl commands:

# keyctl get_persistent @s
318044983
# keyctl show
Session Keyring
 701701270 --alswrv      0     0  keyring: _ses
 649111286 --alswrv      0 65534   \_ keyring: _uid.0
 318044983 ---lswrv      0 65534   \_ keyring: _persistent.0
1051260141 --alswrv      0     0       \_ user: stratis-1-key-pool1key

Create the encrypted Stratis pool

Now that a key has been created for Stratis, the next step is to create the encrypted Stratis pool. Encrypting a pool can only be done at pool creation. It isn’t currently possible to encrypt an existing pool.

Use the stratis pool create command to create a pool. Add –key-desc and the key description that you provided in the previous step (pool1key). This will signal to Stratis that the pool should be encrypted using the provided key. The below example creates the Stratis pool on /dev/vdb, and names it pool1. Be sure to specify an empty/available device on your system.

# stratis pool create --key-desc pool1key pool1 /dev/vdb

You can verify that the pool has been created with the stratis pool list command:

# stratis pool list 
Name                     Total Physical   Properties
pool1   4.98 GiB / 37.63 MiB / 4.95 GiB      ~Ca, Cr

In the sample output shown above, ~Ca indicates that caching is disabled (the tilde negates the property). Cr indicates that encryption is enabled.  Note that caching and encryption are mutually exclusive. Both features cannot be simultaneously enabled.

Next, create a filesystem. The below example, demonstrates creating a filesystem named filesystem1, mounting it at the /filesystem1 mountpoint, and creating a test file in the new filesystem:

# stratis filesystem create pool1 filesystem1
# mkdir /filesystem1
# mount /stratis/pool1/filesystem1 /filesystem1
# cd /filesystem1
# echo "this is a test file" > testfile

Access the encrypted pool after a reboot

When you reboot you’ll notice that Stratis no longer shows your encrypted pool or its block device:

# stratis pool list
Name   Total Physical   Properties
# stratis blockdev list
Pool Name   Device Node   Physical Size   Tier

To access the encrypted pool, first re-create the key with the same key description and key data / passphrase that you used previously:

# stratis key set --capture-key pool1key
Enter desired key data followed by the return key:

Next, run the stratis pool unlock command, and verify that you can now see the pool and its block device:

# stratis pool unlock
# stratis pool list
Name                      Total Physical   Properties
pool1   4.98 GiB / 583.65 MiB / 4.41 GiB      ~Ca, Cr
# stratis blockdev list
Pool Name   Device Node   Physical Size   Tier
pool1       /dev/dm-2          4.98 GiB   Data

Next, mount the filesystem and verify that you can access the test file you created previously:

# mount /stratis/pool1/filesystem1 /filesystem1/
# cat /filesystem1/testfile 
this is a test file

Use a systemd unit file to automatically unlock a Stratis pool at boot

It is possible to automatically unlock your Stratis pool at boot without manual intervention. However, a file containing the key must be available. Storing the key in a file might be a security concern in some environments.

The systemd unit file shown below provides a simple method to unlock a Stratis pool at boot and mount the filesystem. Feedback on a better/alternative methods is welcome. You can provide suggestions in the comment section at the end of this article.

Start by creating your key file with the following command. Be sure to substitute passphrase with the same key data / passphrase you entered previously.

# echo -n passphrase > /root/pool1key

Make sure that the file is only readable by root:

# chmod 400 /root/pool1key
# chown root:root /root/pool1key

Create a systemd unit file at /etc/systemd/system/stratis-filesystem1.service with the following content:

[Unit]
Description = stratis mount pool1 filesystem1 file system
After = stratisd.service [Service]
ExecStartPre=sleep 2
ExecStartPre=stratis key set --keyfile-path /root/pool1key pool1key
ExecStartPre=stratis pool unlock
ExecStartPre=sleep 3
ExecStart=mount /stratis/pool1/filesystem1 /filesystem1
RemainAfterExit=yes [Install]
WantedBy = multi-user.target

Next, enable the service so that it will run at boot:

# systemctl enable stratis-filesystem1.service

Now reboot and verify that the Stratis pool has been automatically unlocked and that its filesystem is mounted.

Summary and conclusion

In today’s environment, encryption is a must for many people and organizations. This post demonstrated how to enable encryption in Stratis 2.1.

Posted on Leave a comment

Unity MegaBundle X Racing Game Assets

There are only a few days left in Unity’s 10th Anniversary MegaBundle X that we previously discussed here. Taking a quick look through the assets in the bundle it becomes clear that there are a number of assets that would be perfect for people looking to create a racing game. Today we are going to look at the following assets from the bundle:

Edy’s Vehicle Physics

This asset contains the logic you need to control your cars, from fast drifting sports cars to city buses.

EasyRoads3D Pro

Quickly and easily create and populate road networks using a simple spline based approach, both in the editor and dynamically at run-time, with a terrain aware system.

Toon Racing

A collection of toon shader styled racing cars, rally cars and monster trucks. It also contains several props, track pieces and more for creating a full racing game with a consistent art style.

UniStorm

Add dynamic weather systems, day/night cycles, pouring rain and more to your racing game with UniStorm.

Oak Trees Pack

They’re trees. Oak trees. There are 5 of them, enough said.

The above links contain affiliate codes that pay GFS a small commission if you purchase anything (thanks so much if you do!). Of course be sure to use the Bundle Link and not individual asset links to get the savings, at least until November 12th. You can learn more and see all the above assets in action in the video below.

[youtube https://www.youtube.com/watch?v=Bw0UUdXHO0E?feature=oembed&w=1500&h=844]
Posted on Leave a comment

GIMP 2.99.2 Released

GIMP, or GNU Image Manipulation Program, just released version 2.99.2 beta, a giant step toward the upcoming 3.0 release. The heart of this update is the move to the GTK 3 UI toolkit from the existing GTK2 version. This has many advantages, especially when it comes to increasingly common HiDPI devices.

Highlights of the 2.99.2 release include:

  • GTK3 based user interface, with native support for Wayland and HiDPI displays.
  • Major refactoring and cleanup
  • New plug-in API
  • Plugins now possible with Python 3, JavaScript, Lua, and Vala
  • More (color) space invasion
  • Render caching available for better performance

Be sure to check the complete release notes for further details on this release. You can also learn more about the 2.99.2 release and see GIMP in action in the video below.

[youtube https://www.youtube.com/watch?v=IdNo-k9TtDo?feature=oembed&w=1500&h=844]