• Multiple local controllers II

    Multiple local controllers II

    In KOPI, we needed to implement couch co-op mode with multiple controllers all driving the game’s user interface using Unreal Engine’s CommonUI. All controllers should share the same focus, but a APlayerController should only be spawned for a controller that joins. To implement this kind of functionality without strange glitches,…

    Continue reading

  • Dream on a Stick build environment

    Dream on a Stick build environment

    Ignoring the artwork side of things, game is a piece of software; and as serious engineers, we knew that we could not fall back into “it works on my machine”; or as is the case may be in Unreal Engine, “works on my machine in the Unreal Editor”. We needed…

    Continue reading

  • TWWL 2

    TWWL 2

    Let’s do another round of This Week We Learned–laugh and point at our mistakes and blunders so you can avoid them. Do not use pointers [to assets] in Data Tables If you want to keep asset references in your data tables–in our case ingredients that need their specific UStaticMesh and…

    Continue reading

  • Kopi is going to Yorkshire

    Kopi is going to Yorkshire

    We are super pleased to announce that we’re going to be attending and demoing at the GaYaMo #22 event in Tileyard North on 23rd May. So, we will be bringing the latest and greatest build of Kopi for everyone to enjoy. Prepare yourselves for lots of organised chaos and fun!…

    Continue reading

  • TWWL 1

    TWWL 1

    As an introduction to the series–we will summarise things that we found useful in one week of game development; think of this as a collection of tips and tricks, a collection of mistakes made (so you don’t have to repeat them), a collection of our development patterns (so you can…

    Continue reading

  • Command-line builds

    Command-line builds

    In the early days of working on our game, after the honeymoon phase of playing with tutorials, we suddenly remembered our days of software engineering, where we needed repeatable builds and tests. And by repeatable, I don’t mean clicking the run button in the IDE, clicking on the Unreal Editor…

    Continue reading

  • Diagnosing game crashes

    Diagnosing game crashes

    When doing user testing, there will be surprises. The players will do things you people would never believe; and there is a small, but insignificant chance that this will result in the game crashing. Not the nice kind of crash with an error message and some default action, but the…

    Continue reading

  • Game saves (2) and concepts

    Game saves (2) and concepts

    In the last post, we explored the low-level USaveGame objects, including a developer quality of life mechanism to support saving and loading of these objects. But this all feels like too much manual work. You have seen these UPROPERTY(SaveGame) specifiers, and the Unreal build tool does not complain if you…

    Continue reading

  • Game saves (1) and concepts

    Game saves (1) and concepts

    In the good old days, games were proper gamers; to play a game, one had to first find the tape, then fiddle with the play and fast-forward buttons to. If you wanted to finish a game, you had better have a whole day, there were no saves. The times have…

    Continue reading

  • Constructor parameters

    Constructor parameters

    Constructor parameters What do we mean constructor parameters? Surely, they are exactly what the title says, what else is there to discuss? You need one or two things? Well, add or or two constructor parameters. Ten things? Ten constructor parameters for you. Now, one or two constructor parameters are definitely…

    Continue reading