Posted on Leave a comment

Lumberyard 1.26 Released

Amazon have just released a new version of their CryEngine derived game engine, Lumberyard. Lumberyard is free to use, with the source code available, so long as your multiplayer services are either self hosted or use Amazon technologies. The 1.26 release brings several new features, including several around quality of life and usability.

Key features of Lumberyard 1.26 include:

  • UI 2.0 with updates across the entire user interface
  • WhiteBox modelling tool improvements
  • Updates to dynamic terrain and landscape canvas
  • PhysX physics simulation now production ready
  • Improvements to Setup Assistant and Project Configurator
  • RAD Tools support for physics simulation telemetry
  • Updated and streamlined Viewport Interaction Model (needs to be enabled)
  • Improved documentation

You can learn a great deal more about the Lumberyard 1.26 release in the release notes or by watching the video below. A great deal of focus was also given to the documentation including a new Welcome Guide to get you up and running.

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

Unreal Engine Marketplace Giveaway for October 2020

It’s the first Tuesday of the month and that means it time for Unreal Christmas in October. Every month Epic Games gives away several assets for Unreal Engine developer and this month we got more than double the normal amount of new assets!

This months “Free for October” assets include:

The “Permanently Free” collection grew a fair bit as well:

Just be sure to “buy” the free assets before the first Tuesday in November and they are yours forever. You can learn more about this months giveaway in the video below.

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

NeoAxis 2020.6 Released

The NeoAxis game engine just had a new release, NeoAxis 2020.6. NeoAxis is a Windows based 2D/3D game engine we previously showcased here and that was recently open sourced, sorta. The biggest new feature of NeoAxis 2020.6 is initial support for the Android platform. Other NeoAxis 2020.6 features include:

  • Android support via Xamarin.Android and OpenGL ES with Vulkan support in the future
  • New GUI controls including:
    • Tab Control
    • Context Menu
    • Tooltip
    • Toolbar
    • Images on UI Buttons
  • Easy Skybox importing
  • Automatic material tuning

You can learn more about the NeoAxis 2020.6 release here. Our previous hands-on video is available below.

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

Beef 0.42.7 Released

Beef is a new open source cross platform programming languages that attempts to take C#-like syntax and giving it performance similar to C++ including manual memory management. Beef is available for Windows, Mac and Linux and includes a custom IDE. The 0.42.7 release adds the following new features:

  • Dynamic boxing from System.Variant
  • decltype(val).MemberName expressions
  • Scope moved outward for ‘out’ variable declaration
  • Improvements to unassigned variable detection
  • Added explicit “Test” project type
  • Reflected interface method dispatch
  • Interface filtering for distinct build options
  • IDE file recovery after crash/power loss
  • Better handling of merge conflict markers in source code

If you want to check out Beef, their is an installer/binaries available for Windows platforms here. On other platforms Beef can be built from source, the source code is hosted on GitHub under the MIT open source license. Earlier in the year we checked out an earlier version of the Beef language and IDE, as you can see in the video below.

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

Recover your files from Btrfs snapshots

As you have seen in a previous article, Btrfs snapshots are a convenient and fast way to make backups. Please note that these articles do not suggest that you avoid backup software or well-tested backup plans. Their goals are to show a great feature of this file system, snapshots, and to inspire curiosity and invite you to explore, experiment and deepen the subject. Read on for more about how to recover your files from Btrfs snapshots.

A subvolume for your project

Let’s assume that you want to save the documents related to a project inside the directory $HOME/Documents/myproject.

As you have seen, a Btrfs subvolume, as well as a snapshot, looks like a normal directory. Why not use a Btrfs subvolume for your project, in order to take advantage of snapshots? To create the subvolume, use this command:

btrfs subvolume create $HOME/Documents/myproject

You can create an hidden directory where to arrange your snapshots:

mkdir $HOME/.snapshots

As you can see, in this case there’s no need to use sudo. However, sudo is still needed to list the subvolumes, and to use the send and receive commands.

Now you can start writing your documents. Each day (or each hour, or even minute) you can take a snapshot just before you start to work:

btrfs subvolume snapshot -r $HOME/Documents/myproject $HOME/.snapshots/myproject-day1

For better security and consistency, and if you need to send the snapshot to an external drive as shown in the previous article, remember that the snapshot must be read only, using the -r flag.

Note that in this case, a snapshot of the /home subvolume will not snapshot the $HOME/Documents/myproject subvolume.

How to recover a file or a directory

In this example let’s assume a classic error: you deleted a file by mistake. You can recover it from the most recent snapshot, or recover an older version of the file from an older snapshot. Do you remember that a snapshot appears like a regular directory? You can simply use the cp command to restore the deleted file:

cp $HOME/.snapshots/myproject-day1/filename.odt $HOME/Documents/myproject

Or restore an entire directory:

cp -r $HOME/.snapshots/myproject-day1/directory $HOME/Documents/myproject

What if you delete the entire $HOME/Documents/myproject directory (actually, the subvolume)? You can recreate the subvolume as seen before, and again, you can simply use the cp command to restore the entire content from the snapshot:

btrfs subvolume create $HOME/Documents/myproject
cp -rT $HOME/.snapshots/myproject-day1 $HOME/Documents/myproject

Or you could restore the subvolume by using the btrfs snapshot command (yes, a snapshot of a snapshot):

btrfs subvolume snapshot $HOME/.snapshots/myproject-day1 $HOME/Documents/myproject

How to recover btrfs snapshots from an external drive

You can use the cp command even if the snapshot resides on an external drive. For instance:

cp /run/media/user/mydisk/bk/myproject-day1/filename.odt $HOME/Documents/myproject

You can restore an entire snapshot as well. In this case, since you will use the send and receive commands, you must use sudo. In addition, consider that the restored subvolume will be created as read only. Therefore you need to also set the read only property to false:

sudo btrfs send /run/media/user/mydisk/bk/myproject-day1 | sudo btrfs receive $HOME/Documents/
mv Documents/myproject-day1 Documents/myproject
btrfs property set Documents/myproject ro false

Here’s an extra explanation. The command btrfs subvolume snapshot will create an exact copy of a subvolume in the same device. The destination has to reside in the same btrfs device. You can’t use another device as the destination of the snapshot. In that case you need to take a snapshot and use the send and receive commands.

For more information, refer to some of the online documentation:

man btrfs-subvolume
man btrfs-send
man btrfs-receive
Posted on Leave a comment

ParticleShop Hands-On

ParticleShop is one of the applications that is featured in the current Be A Creative SuperHero Bundle currently running on Humble. This bundle is a collection of graphical applications and add-ons from Corel. Today we are taking a hands-on look at ParticleShop, a PhotoShop plugin (also compatible with PaintShop Pro 2020 and Affinity Photo) that brings the particle system based brushes from Corel Painter to these other applications.

ParticleShop is described as:

Create stunning image enhancements with ParticleShop, a powerful Adobe® Photoshop® brush plugin powered by Painter. Experience NEW expressive Dynamic Speckle brushes and living grab-and-go Particle brushes and that are easy to use with a pressure sensitive tablet, touchscreen or mouse. Use your creativity and imagination to artistically enhance photos, designs and illustrations with strokes of genius.

We’ve done all of the work for you! Immediately start creating with one of 11 built-in custom brushes. Whether you’re looking to add playful Dynamic Speckle flourishes or compelling Particle flare to your work, you’ll find just the brush you need to artistically enhance your imagery and exponentially increase your range of painting expertise. Plus, explore the additional brush packs that were designed to match your specific workflow needs.

Out of the box ParticleShop ships with a pack with 11 brushes, although the Bundle contains more than a half a dozen additional brush packs. You can see ParticleShop in action, including instructions on how to install in PaintShop Pro and Affinity Photo, as well as showcasing several of the brush packs, in the video below.

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

Using Blender on a Laptop

The Blender user interface has come a LONG way in recent years, especially with the release of Blender 2.8. That said, if you are using Blender on a laptop, especially if you don’t have a numberpad or are stuck using a trackpad, some parts of the experience are less than optimal. Today we are going to look at ways to make using Blender on a laptop more pleasant. We will also show how to turn on experimental mode in case you want to check out some of the more… in development features in Blender.

Using a Trackpad in Blender

Using Blender without a 3 button mouse is not really recommended but sometimes you have to get by with the tools you have available. There are a few ways however to make Blender work better with just a trackpad. The first thing we need to do is turn on 3 button mouse emulation. In Blender go to Edit->Preferences:

Blender Preferences Menu Option

Now select the Input tab on the left, then choose Emulate 3 Button Mouse.

Blender Emulate 3 button mouse

Now you can control most viewport options using your trackpad + key combinations.

ALT + LMB Orbit Camera
ALT + SHIFT + LMB Pan Camera
ALT + CTRL + LMB or Two Finger Swipe Zoom Camera

In addition to these key/mouse combinations, there are now icons available for performing many of these tasks.

Controlling the Blender camera on screen in Blender 2.9

Emulating the Numberpad

Blender also relies heavily on the numberpad for changing cameras (1/3/7/9) or rotating the camera (2/4/6/8) and on laptops 15″ and smaller numberpads are becoming increasingly rare. In this case you have a few different options. First you can leave it as it is and use the on screen controls mentioned above. Otherwise you can turn on NumPad emulation. This turns your standard number row (1 through 0) across the top of your keyboard, into a virtual numberpad.

To enable NumPad emulation, return once again to the Input tab in preferences by selecting Edit->Preferences. This time you want to enable the Emulate Numpad option.

There is a major downside to this approach, in that the use of the 1/2/3 keys to switch editing modes between vertex, edge and face in edit mode will no longer work! So let’s look at how we remap those keys next!

Remapping Edit Mode Keys

Remapping keys is another feature in the trusty preferences dialog (Edit->Preferences). Now locate the Keymap tab on the left. On the right drill down to 3D View->Mesh->Mesh Global then locate Select Mode currently bound to key 1, 2 and 3. You can simply click the 1, then hit 1 again, and with Numpad Emulation enabled it will now show as Numpad 1.

Remapping keys in Blender 2.8x

Of course you also have the option of remapping those keys to any value you wish. Simply click the arrow to the left to drill down for more details.

Remapping keys in Blender detailed

Here you can select multiple key combos in addition to remapping the primary key in the sequence.

Enabling Experimental Features in Blender

Finally we are going to look at the process of enabling Experimental Mode, in case you want to take a walk on the wild side of cutting edge features. This is once again a setting in Edit->Preferences. This time choose the Interface tab, then select Developer Extras. This will cause a new tab to appear, the Experimental tab.

Enabling developer mode and experimental in Blender

Clicking the new Experimental tab will bring you to a new dialog where you can turn experimental features off and on. For example in Blender 2.91 if you want to check out the new Sculpting brushes, enable “Tools with Missing Icons”

The Experimental features in Blender

You can see a detailed step by step demonstration of all of these processes in the video below (or on Odysee).

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

Unity Launch Open Projects

The Creator and Developer Advocacy group over at Unity have just launched a new initiative called Open Projects, a Unity lead effort to develop a vertical slice of a game that is open source and community driven. If you are looking to get experience at working with a team, or perhaps are a student looking to build up your resume, contributing to an Open Project could be a good fit. The intention is to create open projects for multiple genres, but initially they are starting with an action-adventure style game. The final results will be published (assumedly for free) on Steam, with all contributors credited for their efforts.

There is a bare-bones project in place now you can download from GitHub. In fact GitHub is central to the entire process, as this is where the project will be housed and where all code and asset collaboration will occur. In addition to GitHub they are coordinating the project in a dedicated Open Projects forum, as well there is a Contribution Guide on Google Docs available here. Project management tasks are managed here powered by Codedecks, an online PM tool specifically for game developers.

You can learn more about Unity Open Projects in the video below (or on Odysee here).

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

Humble Be A Creative Superhero Bundle on Now

There is a new Humble Bundle of interest to game developers, specifically the artists among us, in the form of the Be A Creative Superhero Bundle. The primary stars of this bundle are the suite of Corel graphics applications, specifically Painter 2020, Particle Shop and PaintShop, as well as Corel Draw Suite, which unfortunately is only a 6-month subscription. As with all Humble Bundles, this one is organized into tiers, and the tiers in this bundle are:

1$ Tier

  • AfterShot Standard

25$ Tier

  • PaintShop Pro 2020
  • ParticleShop + 11 Brushes
  • 6 extensions for PaintShop Pro

30$ Tier

  • Corel CAD 2019
  • Painter 2020
  • CorelDRAW Graphics Suite 2020 6-month sub
  • 10 Brush packs
  • Light Leak Scripts for PaintShop Pro 2020

It should be noted earlier versions of Painter have been featured in prior bundles, but never 2020. PaintShop 2020 was also featured in a prior bundle so be sure to check your Humble inventory before purchasing. As with all Humbles you get to decide how your money is allocated between Humble, charity, the publisher and if you so choose (and thanks so much if you do) to support GFS by using this link. You can learn more about this bundle in the video below.

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

Use dnsmasq to provide DNS & DHCP services

Many tech enthusiasts find the ability to control their host name resolution important. Setting up servers and services usually requires some form of fixed address, and sometimes also requires special forms of resolution such as defining Kerberos or LDAP servers, mail servers, etc. All of this can be achieved with dnsmasq.

dnsmasq is a lightweight and simple program which enables issuing DHCP addresses on your network and registering the hostname & IP address in DNS. This configuration also allows external resolution, so your whole network will be able to speak to itself and find external sites too.

This article covers installing and configuring dnsmasq on either a virtual machine or small physical machine like a Raspberry Pi so it can provide these services in your home network or lab. If you have an existing setup and just need to adjust the settings for your local workstation, read the previous article which covers configuring the dnsmasq plugin in NetworkManager.

Install dnsmasq

First, install the dnsmasq package:

sudo dnf install dnsmasq

Next, enable and start the dnsmasq service:

sudo systemctl enable --now dnsmasq

Configure dnsmasq

First, make a backup copy of the dnsmasq.conf file:

sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

Next, edit the file and make changes to the following to reflect your network. In this example, mydomain.org is the domain name, 192.168.1.10 is the IP address of the dnsmasq server and 192.168.1.1 is the default gateway.

sudo vi /etc/dnsmasq.conf

Insert the following contents:

domain-needed
bogus-priv
no-resolv
server=8.8.8.8
server=8.8.4.4
local=/mydomain.org/
listen-address=::1,127.0.0.1,192.168.1.10
expand-hosts
domain=mydomain.org
dhcp-range=192.168.1.100,192.168.1.200,24h
dhcp-option=option:router,192.168.1.1
dhcp-authoritative
dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases

Test the config to check for typos and syntax errors:

$ sudo dnsmasq --test
dnsmasq: syntax check OK.

Now edit the hosts file, which can contain both statically- and dynamically-allocated hosts. Static addresses should lie outside the DHCP range you specified earlier. Hosts using DHCP but which need a fixed address should be entered here with an address within the DHCP range.

sudo vi /etc/hosts

The first two lines should be there already. Add the remaining lines to configure the router, the dnsmasq server, and two additional servers.

127.0.0.1   localhost localhost.localdomain
::1         localhost localhost.localdomain
192.168.1.1    router
192.168.1.10   dnsmasq
192.168.1.20   server1
192.168.1.30   server2

Restart the dnsmasq service:

sudo systemctl restart dnsmasq

Next add the services to the firewall to allow the clients to connect:

sudo firewall-cmd --add-service={dns,dhcp}
sudo firewall-cmd --runtime-to-permanent

Test name resolution

First, install bind-utils to get the nslookup and dig packages. These allow you to perform both forward and reverse lookups. You could use ping if you’d rather not install extra packages. but these tools are worth installing for the additional troubleshooting functionality they can provide.

sudo dnf install bind-utils

Now test the resolution. First, test the forward (hostname to IP address) resolution:

$ nslookup server1
Server:       127.0.0.1
Address:    127.0.0.1#53
Name:    server1.mydomain.org
Address: 192.168.1.20

Next, test the reverse (IP address to hostname) resolution:

$ nslookup 192.168.1.20
20.1.168.192.in-addr.arpa    name = server1.mydomain.org.

Finally, test resolving hostnames outside of your network:

$ nslookup fedoramagazine.org
Server:       127.0.0.1
Address:    127.0.0.1#53
Non-authoritative answer:
Name:    fedoramagazine.org
Address: 35.196.109.67

Test DHCP leases

To test DHCP leases, you need to boot a machine which uses DHCP to obtain an IP address. Any Fedora variant will do that by default. Once you have booted the client machine, check that it has an address and that it corresponds to the lease file for dnsmasq.

From the machine running dnsmasq:

$ sudo cat /var/lib/dnsmasq/dnsmasq.leases
1598023942 52:54:00:8e:d5:db 192.168.1.100 server3 01:52:54:00:8e:d5:db
1598019169 52:54:00:9c:5a:bb 192.168.1.101 server4 01:52:54:00:9c:5a:bb

Extending functionality

You can assign hosts a fixed IP address via DHCP by adding it to your hosts file with the address you want (within your DHCP range). Do this by adding into the dnsmasq.conf file the following line, which assigns the IP listed to any host that has that name:

dhcp-host=myhost

Alternatively, you can specify a MAC address which should always be given a fixed IP address:

dhcp-host=11:22:33:44:55:66,192.168.1.123

You can specify a PXE boot server if you need to automate machine builds

tftp-root=/tftpboot
dhcp-boot=/tftpboot/pxelinux.0,boothost,192.168.1.240

This should point to the actual URL of your TFTP server.

If you need to specify SRV or TXT records, for example for LDAP, Kerberos or similar, you can add these:

srv-host=_ldap._tcp.mydomain.org,ldap-server.mydomain.org,389
srv-host=_kerberos._udp.mydomain.org,krb-server.mydomain.org,88
srv-host=_kerberos._tcp.mydomain.org,krb-server.mydomain.org,88
srv-host=_kerberos-master._udp.mydomain.org,krb-server.mydomain.org,88
srv-host=_kerberos-adm._tcp.mydomain.org,krb-server.mydomain.org,749
srv-host=_kpasswd._udp.mydomain.org,krb-server.mydomain.org,464
txt-record=_kerberos.mydomain.org,KRB-SERVER.MYDOMAIN.ORG

There are many other options in dnsmasq. The comments in the original config file describe most of them. For full details, read the man page, either locally or online.