Posted on Leave a comment

Cocos Creator 3.0 Tech Preview Released

The free Cocos Creator game engine just got a heavy duty upgrade today, with the release of Cocos Creator 3D technical preview. This release adds an all new 3D game engine to Cocos Creator, which was previously a 2D only game engine. The new underlying 3D engine has a complete PBR based rendering workflow based on real world lighting and camera models, with a modular design with support for terrain and physics out of the box.

Details from the Cocos Blog:

The technology behind games has grown exponentially since the birth of video games. Today with the creation of cloud computing, 5G networks, and faster mobile computers, the revolution to bring better 3D titles to your hands has become overwhelmingly apparent to game developers.

The Cocos engine started as a 2D game engine. In Cocos2d-x, we built the best open-source 2D engine in the world. We also tried to build 3D features upon the 2D-oriented architecture. But due to the lack of an editor and the challenge of growth on 3D features, it wasn’t very successful. That’s why we were determined to build an excellent editor tool: Cocos Creator. It was initially for 2D game development. But since 2017, we have already started to build a pure 3D engine for this tool. To push ourselves to give developers the best 3D development tool, we have re-designed the whole engine architecture and updated the editor’s core. On October 15th, 2019, we released Cocos Creator 3D, a dedicated experimental branch of China’s product. With a whole year’s effort, we have greatly improved the 3D engine architecture. We are finally merging the experimental 3D branch into the main Cocos Creator product to forge the awesome Cocos Creator 3.0, released later this year.

You can download Cocos Creator 3.0 preview for Windows and Mac now. Do be aware however there are a few caveats, especially for existing Cocos Creator developers:

  1. Projects built in Cocos Creator 1.X – 2.X will not work with this demo.
  2. Only 3D projects are available in this demo. Some 2D features like Spine, Tiled map, etc. are absent in this demo, but they will be included in the official 3.0 version.
  3. All projects built in the demo are exportable to 3.0 when it is released. So go crazy!
  4. We only recommend using TypeScript for future Cocos Creator 3.0 projects.

If you are interested in learning about Cocos Creator in general we have a tutorial series available on DevGa.me. You can see the new Cocos Creator 3.0 tech preview in action in the video below. A good place to start is the Cocos examples project available on GitHub. If you want to test Cocos Creator 3.0 using the same model as in the video, that model is available for free here on Sketchfab.

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

Godot 4 Sneak Peek: Particle Systems

Recently discussed on the Godot website, several new features have been added to the Godot 4 GPU accelerated particle systems. New features include:

  • support for sub-emitters
  • new collision systems
    • box and sphere colliders
    • height map colliders for outdoor maps
    • SDF colliders for internal meshes
  • new particle attractors

While we are going to have to wait until Godot 4 to get our hands-on the new Godot 4 in a production environment, we can check out the new GPUParticles3D node in action by building from the nightly source. That is exactly what we did in the video below, check it out for a preview and a mini tutorial on using particles in Godot 4.

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

Web of Trust, Part 1: Concept

Every day we rely on technologies who nobody can fully understand. Since well before the industrial revolution, complex and challenging tasks required an approach that broke out the different parts into smaller scale tasks. Each resulting in specialized knowledge used in some parts of our lives, leaving other parts to trust in skills that others had learned. This shared knowledge approach also applies to software. Even the most avid readers of this magazine, will likely not compile and validate every piece of code they run. This is simply because the world of computers is itself also too big for one person to grasp.

Still, even though it is nearly impossible to understand everything that happens within your PC when you are using it, that does not leave you blind and unprotected. FLOSS software shares trust, giving protection to all users, even if individual users can’t grasp all parts in the system. This multi-part article will discuss how this ‘Web of Trust’ works and how you can get involved.

But first we’ll have to take a step back and discuss the basic concepts, before we can delve into the details and the web. Also, a note before we start, security is not just about viruses and malware. Security also includes your privacy, your economic stability and your technological independence.

One-Way System

By their design, computers can only work and function in the most rudimentary ways of logic: True or false. And or Or. This (boolean logic) is not readily accessible to humans, therefore we must do something special. We write applications in a code that we can (reasonably) comprehend (human readable). Once completed, we turn this human readable code into a code that the computer can comprehend (machine code).

The step of conversion is called compilation and/or building, and it’s a one-way process. Compiled code (machine code) is not really understandable by humans, and it takes special tools to study in detail. You can understand small chunks, but on the whole, an entire application becomes a black box.

This subtle difference shifts power. Power, in this case being the influence of one person over another person. The person who has written the human-readable version of the application and then releases it as compiled code to use by others, knows all about what the code does, while the end user knows a very limited scope. When using (software) in compiled form, it is impossible to know for certain what an application is intended to do, unless the original human readable code can be viewed.

The Nature of Power

Spearheaded by Richard Stallman, this shift of power became a point of concern. This discussion started in the 1980s, for this was the time that computers left the world of academia and research, and entered the world of commerce and consumers. Suddenly, that power became a source of control and exploitation.

One way to combat this imbalance of power, was with the concept of FLOSS software. FLOSS Software is built on 4-Freedoms, which gives you a wide array of other ‘affiliated’ rights and guarantees. In essence, FLOSS software uses copyright-licensing as a form of moral contract, that forces software developers not to leverage the one-way power against their users. The principle way of doing this, is with the the GNU General Public Licenses, which Richard Stallman created and has since been promoting.

One of those guarantees, is that you can see the code that should be running on your device. When you get a device using FLOSS software, then the manufacturer should provide you the code that the device is using, as well as all instructions that you need to compile that code yourself. Then you can replace the code on the device with the version you can compile yourself. Even better, if you compare the version you have with the version on the device, you can see if the device manufacturer tried to cheat you or other customers.

This is where the web of Trust comes back into the picture. The Web of Trust implies that even if the vast majority of people can’t validate the workings of a device, that others can do so on their behalf. Journalists, security analysts and hobbyists, can do the work that others might be unable to do. And if they find something, they have the power to share their findings.

Security by Blind Trust

This is of course, if the application and all components underneath it, are FLOSS. Proprietary software, or even software which is merely Open Source, has compiled versions that nobody can recreate and validate. Thus, you can never truly know if that software is secure. It might have a backdoor, it might sell your personal data, or it might be pushing a closed ecosystem to create a vendor-lock. With closed-source software, your security is as good as the company making the software is trustworthy.

For companies and developers, this actually creates another snare. While you might still care about your users and their security, you’re a liability: If a criminal can get to your official builds or supply-chain, then there is no way for anybody to discover that afterwards. An increasing number of attacks do not target users directly, but instead try to get in, by exploiting the trust the companies/developers have carefully grown.

You should also not underestimate pressure from outside: Governments can ask you to ignore a vulnerability, or they might even demand cooperation. Investment firms or shareholders, may also insist that you create a vendor-lock for future use. The blind trust that you demand of your users, can be used against you.

Security by a Web of Trust

If you are a user, FLOSS software is good because others can warn you when they find suspicious elements. You can use any FLOSS device with minimal economic risk, and there are many FLOSS developers who care for your privacy. Even if the details are beyond you, there are rules in place to facilitate trust.

If you are a tinkerer, FLOSS is good because with a little extra work, you can check the promises of others. You can warn people when something goes wrong, and you can validate the warnings of others. You’re also able to check individual parts in a larger picture. The libraries used by FLOSS applications, are also open for review: It’s “Trust all the way down”.

For companies and developers, FLOSS is also a great reassurance that your trust can’t be easily subverted. If malicious actors wish to attack your users, then any irregularity can quickly be spotted. Last but not least, since you also stand to defend your customers economic well-being and privacy, you can use that as an important selling point to customers who care about their own security.

Fedora’s case

Fedora embraces the concept of FLOSS and it stands strong to defend it. There are comprehensive legal guidelines, and Fedora’s principles are directly referencing the 4-Freedoms: Freedom, Friends, Features, and First

Fedora's Foundation logo, with Freedom highlighted. Illustrative.

To this end, entire systems have been set up to facilitate this kind of security. Fedora works completely in the open, and any user can check the official servers. Koji is the name of the Fedora Buildsystem, and you can see every application and it’s build logs there. For added security, there is also Bohdi, which orchestrates the deployment of an application. Multiple people must approve it, before the application can become available.

This creates the Web of Trust on which you can rely. Every package in the repository goes through the same process, and at every point somebody can intervene. There are also escalation systems in place to report issues, so that issues can quickly be tackled when they occur. Individual contributors also know that they can be reviewed at every time, which itself is already enough of a precaution to dissuade mischievous thoughts.

You don’t have to trust Fedora (implicitly), you can get something better; trust in users like you.

Posted on Leave a comment

Oculus Quest 2 Game Development Options

October 13th is the official launch date of the Oculus Quest 2, and with millions of Quests now in gamer’s hands, some are no doubt going to want to figure you how to develop games for them. This is a quick overview of the various different technical options and tools for developing games on the Oculus Quest 2.

The very first thing you are going to want to do is visit the Oculus Quest Developer Portal, the central repository and jumping off point for Oculus VR development. You are also eventually going to have to register to get your developer keys, which are required to deploy your completed game onto a headset. We will cover this in a later tutorial. For now let’s look at some of the options available for Quest 2 game development.

Native Development

Oculus release a set of low level C++ development tools for creating your own game or application basically from scratch. Native development is ultimately Android NDK development and requires Android Studio to be installed, as well as the Oculus Mobile SDK. There are a number of C++ code samples to get you started. Only take this option if you are an experienced coder and want to work at a very low level.

Unity Game Engine

The Unity game engine is perhaps the most commonly used game engine for VR development today. The Quest 2 is fully supported and you get a huge amount of starter content and tutorials to get you going. Oculus have getting started with Unity guides available here.

Unreal Engine

After the Unity game engine, Unreal is probably the next most commonly used game engines for VR development. Like Unity, Oculus have getting started materials for Unreal Engine available as well. If you are having trouble deciding between Unreal and Unity, check out this video comparing the two.

Godot Engine

The open source Godot game engine is another option for Oculus Quest development. There is a Oculus Mobile plugin available here as well as the Quest specific Quest Toolkit for Godot, which ships with tons of examples to get you up and started.

Other Engines

CryEngine can be used for Quest 2 development, as evidence by The Climb. Unfortunately CryEngine mobile and VR support is only available in a private beta currently. Additionally the Lumberyard game engine supports VR development, but currently only desktop platforms. You can run Rift and Vive games on the Quest, but using Lumberyard you can’t currently do native development.

WebVR

One of the easiest and quickest to get up and running is creating browser based VR games that can be run on the Quest 2. Here one of the easiest options is A-Frame where you can create 3D worlds using simple HTML-esque markup. Three.JS is the technology A-Frame is built upon and is another option, while the higher level PlayCanvas game engine has VR support as well.

You can learn more about the Oculus Quest 2 and the development options available in the video below.

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

Unity Launch Game Growth Publishing Program

Unity have just launched a new interesting publishing program for indie game developers that have or are creating free to play mobile games. Essentially Unity are offering to fund the promotional costs of selected games and provide monetization, growth and ad placement support over the lifetime of the game. Of course this comes at a cost and that cost is a 50/50 revenue split, with a scenario described on the Unity blog:

We want to be clear about the terms up front so you can decide if Game Growth is the right program for you. Let’s break down the revenue sharing with an example:

1- An indie developer has a mobile game that makes $3,000/month. They apply to the Game Growth program. Unity spends $100,000/month to acquire new users to the game, retains those users with dedicated live operations support, and grows the game to $130,000/month in revenue.*

2- Unity would first recoup their $100,000 in monthly user acquisition costs, leaving $30,000 in monthly revenue. So the developer and Unity would share that $30,000 equally, giving $15,000 to the developer and $15,000 to Unity.*

*This model would continue throughout the partnership. We’re using this fictitious example to illustrate the revenue sharing model only. The exact investment/revenue amounts will not always be consistent month over month.

One major advantage to this approach over a traditional publisher agreement is you retain all control over your company and your games IP with minimal commitment requirements. If you are interested in applying you can do so in the Unity Dashboard.

In addition to the Unity Growth program, there is also an asset giveaway going on right now. You can get the POLYGON Prototype Pack for free using the code ‘SYNTYSALE2020’, available until October 20th. Additionally Synty assets are currently on sale for 50% off. Both of the above links contain an affiliate code that pays GFS a small commission if you buy anything. You can learn more about the new Unity publishing programming and the assets in the video below.

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

Roblox Going Public

Roblox, the popular programmable sandbox video game, have just announced their intentions to go public, seeking an initial valuation of 8 Billion dollars. After their most recent round of venture capital, Roblox is currently valued at half that, with a 4B$ valuation.

Interestingly according to Reuters Roblox may go public in a very non-conventional way.

Roblox is weighing whether to go public through a traditional initial public offering or a direct listing, the sources said, cautioning that the plans are subject to market conditions.

The sources requested anonymity as the plans are private. Roblox declined to comment.

In a direct listing, no new shares are sold and underwriting banks do not weigh in on the pricing, unlike in an IPO.

By not selling new shares, companies do not dilute the ownership stakes of existing shareholders and the public listing allows current investors to sell shares easily.

Direct listings are relatively rare. Workplace software maker Asana Inc and data analytics company Palantir Technologies on Wednesday became only the third and fourth companies to go public on the New York Stock Exchange through a direct listing.

So why is this of interest to game developers? Game developers are making a lot of money on the Roblox “platform”, with 2020 earnings expected to reach about 1/4 Billion dollars according to MarketWatch:

Roblox announced in July that it had more than 150 million monthly active users on its platform, which topped the latest numbers from a similar game, “Minecraft.” Microsoft Corp.’s  Xbox division announced in May that 126 million people were playing that title each month.

Roblox also offers tools for developers and said in July that its developer community was on pace to earn $250 million in 2020, up from $110 million in 2019.

Games on the Roblox platform include “Adopt Me!,” a virtual-pet title that had over 10 billion plays as of late July, and “Piggy,” which launched in January and had nearly 5 billion visits in just over six months from its launch date.

If you are interested in learning more about Roblox’s developer program, the developer portal is available here. You can learn more about the Roblox IPO in the video below.

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

Game Development in the Go Programming Language

Go is an open source programming language developed and supported by Google, by a who’s who of computer language designers. It is often used in large scale server projects at companies such as Google, Dropbox, Paypal, Twitch and Netflix. Today we are going to look at the game development frameworks and libraries available for making games using Go. We have previously created similar guides for languages such as C#, C++, Python, Lua, Codeless, Haxe and JavaScript.

2D Game Frameworks in Go:

Go Bindings:

3D Game Engines:

You can learn more about these frameworks and the Go programming language in the video below (or watch on Odysee).

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

NVIDIA RTX Voice Hands-On Review

In the age of COVID, with so many people working from home or in out of the ordinary scenarios, we may not necessarily have a ton of control over our environment. This means noise cancellation is perhaps more important than it has ever been. We are not immune to the effects and the audio quality of GFS videos have certainly suffered in the last few months. Enter RTX Voice.

If you are unaware, RTX Voice is a free plugin from NVIDIA that uses machine learning to filter out background noise. RTX Voice is described as:

NVIDIA RTX Voice is a new plugin that leverages NVIDIA RTX GPUs and their AI capabilities to remove distracting background noise from your broadcasts, voice chats, and remote video conferencing meetings. This allows users to “go live” or join a meeting without having to worry about unwanted sounds like loud keyboard typing or other ambient noise in noisy environments. RTX Voice also suppresses background noise from players in loud environments, making incoming audio easier to understand.

RTX Voice requires an RTX 2060 or higher and works with the vast majority of video capture applications including OBS Studio and Camtasia. The also offer RTX Voice support in their more comprehensive, but also free, Broadcast App.

We decided to put RTX Voice to the test in a simulated real world environment, using a Shure MV51 microphone and a Logitech Pro X headset (affiliate links). The tests were done with RTX Off and On with each device, as well as with background noise including typing and television. You can see (and hear!) the results in the video below (or watch on Odysee).

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

PCUI — UI Framework Powering PlayCanvas Engine Open Sourced

Yesterday PCUI, an open source UI framework for creating game tools and other web applications, was open sourced. PCUI is named as such because it is the UI layer powering the battle tested PlayCanvas game engine. It provides over a dozen controls, as well as implementing logic such as the Observer pattern for making binding your UI to your data. PCUI is open source under the liberal MIT license with the source code available on GitHub.

Details from the PlayCanvas blog:

Today, PlayCanvas is launching PCUI: a new, open source front-end framework for the web.

PCUI is designed with tools developers in mind. It is particularly well suited to building viewer and editor applications, providing a rich set of beautiful and consistent controls. It already powers the PlayCanvas Editor – the world’s most powerful WebGL production tool.

Here you can see tree controls, panels, buttons, checkboxes, toolbars, menus and more. The Editor also relies on PCUI’s observer system, that makes it easy to synchronize the state of your application’s UI with that of the underlying data. Plus, it has a built-in support for history to make implementing redo/undo a breeze.

In addition to the PlayCanvas game engine, PCUI is used to power the PlayCanvas GLTF viewer project as well, a project which is open source and shows you a real-world example of using PCUI in a TypeScript application. PCUI is also extremely well documented with several examples available. If you are interested in learning more about PlayCanvas be sure to check out two part tutorial. You can learn more about the PCUI release in the video below.

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

FlatRedBall Engine Review

FlatRedBall is an open source C# based game engine with development dating back to 2005. It was originally built to run on-top of Managed Direct X, then was ported to XNA and when XNA was depreciated, it was again ported to run on top of the MonoGame framework.

FlatRedBall provides a layer of APIs and tooling on top of MonoGame designed to simplify the process of creating 2D games. You can currently create games for Windows (and UWP), Android and iOS, with Mac and Linux targets currently a work in progress. The heart of the tooling is Glue, which “glues” together the various other tools, including plugins for tasks such as UI development as well as support for the Tiled 2D map editor.

FlatRedBall is open source with the source code available on GitHub under the flexible and permissive MIT open source license. You can check out FlatRedBall in action in the video below (or here on Odysee). If you are interested in learning more or encounter a problem, they have an active Discord server available here.

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