Browsed by
Author: David Lindberg

Community & Marketing for Early Access

Community & Marketing for Early Access

Doing Early Access for your game can be a daunting process. However, the phenomenon is not new and that thankfully means that we can analyze what others have done, to better understand what we can do ourselves. The goal is not to make a “one size fits all” solution but rather a set of tools, each of which can be deployed individually or in combination, depending on what fits your production and personal preferences. In order to make this list…

Read More Read More

ECO Telemetry (final exam)

ECO Telemetry (final exam)

As I have previously mentioned in my posts about AI and data collection/analysis, many of the prototypes showcased on this website were developed for the purpose of being implemented into a complete project. That is what my final exam became. We named it “ECO Telemetry”, which was fancier than “weird animals eating mushrooms and running for their lives simulator.” We built a simulated ecosystem, complete with herbivores, carnivores and plants. The big twist was that the animals are capable of…

Read More Read More

Scene editing and ECS conversion

Scene editing and ECS conversion

When working with the DOTS framework and implementation of ECS, you’ll quickly realize that there is currently very little in the way of scene editing. Entities might render, but you can’t interact with them in the scene editor. The workaround for this problem allows for the conversion of a scene, into entities. However, any traditionally written code (using monobehaviour, that is) will be lost in translation. This article covers how you should write your code in ECS and attach it…

Read More Read More

Unity C# Job system and Burst Compiler/DOTS introduction

Unity C# Job system and Burst Compiler/DOTS introduction

The Jobs System in Unity allows for the execution of code across multiple cores at once, significantly speeding up heavy tasks such as pathfinding and similarly repetitive logic. Additionally, when something is set to run as a job, Unity supports use of the Burst Compiler, which will compile that bit of code into high-performance assembly code. Source material: https://www.youtube.com/watch?v=C56bbgtPr_w Reading instructions: This document is a follow-up to the previous article on ECS, as part of an introduction to working with…

Read More Read More

Unity ECS / DOTS introduction

Unity ECS / DOTS introduction

This article is an attempt to introduce Unity’s new Entity Component System (ECS) to those who are unaware of its existence. ECS is one part of DOTS – the Data Oriented Technology Stack, which also contains the C# Job System and the Burst Compiler. ECS can be described in two ways; ridiculous performance increase and/or compact size. It is a new way to code, utilizing all of the cores available. The other two components of DOTS allow for similar performance…

Read More Read More

Building meaningful characters

Building meaningful characters

This is a bit outside my usual area of expertise as a programmer, but seeing as world- and character building is often central to a game’s development, it makes perfect sense to dive into these topics. And what better way to start, than with character design! While the topic may seem fairly subjective and touchy-feely, there’s quite a few ground rules to go by, to ensure that you are doing a good job. With that being said, what is mentioned…

Read More Read More

Analyzing telemetry

Analyzing telemetry

I previously covered how to connect your Unity client to a Google Drive spreadsheet and upload your telemetry data. Which is cool but not very useful if we can’t retrieve that data. One solution is to go into your Drive and download the spreadsheet manually, but that’s not really awesome. What we want is a client which not only downloads the data directly, but formats it and does cool telemetry-analytical-things to it! Downloading the data: Luckily, accessing the data stored…

Read More Read More

Collecting telemetry

Collecting telemetry

I recently wrote about Subnautica’s development process, and how they handled player telemetry to streamline the development process. So I figured now would be the perfect time to show you how easy it is to actually send and store data – in this case object positioning – somewhere in a remote database. “But Dave, I don’t have a private database for hosting this kind of information!” – Fear not, for I have the perfect solution for you. We are going…

Read More Read More

Developing for early access

Developing for early access

During GDC 2019, there was a talk which particularly caught my interest. Originally because it was a postmorten for the game Subnautica – one of my favorite titles – but most importantly because I realized how well the game had been doing in early access, and how well recieved it was. I had originally just thought of it as luck. Sometimes you just make the right thing at the right time, and the market carries you on. A harmful assumption,…

Read More Read More

Vertex and fragment shaders

Vertex and fragment shaders

Through my previous articles on shaders, I have worked exclusively with Surface functions to handle the shader logic. However, this function only handles certain aspects of rendering. What happens when you run your compiler, is that the surface function gets turned into what are called Vertex– and “per-pixel (or Fragment)”-functions. Compiling is basically like having a whole burger, then dropping it on the ground, witnessing its transformation into buns and patties before your very eyes. But what does vertex and…

Read More Read More