• NV Random – Controlled randomisation for UE4

    I’ve released my second Unreal Engine Marketplace product.
    This one is a configurable randomisation system, written entirely in Blueprints.

    It allows random sequences of either numbers (e.g. die rolls) or outcomes (e.g. chance to hit) to be generated, with options to coax the results into fairer distributions and to limit unlikely edge cases.

    We’ve all played games where some randomised result feels really unfair because it seems to keep rolling against us repeatedly. Since the outcome of each roll is not affected by previous rolls, it’s perfectly possible (though unlikely) to get any number of low-probability results in a row, and given enough attempts and enough players, such a sequence is almost guaranteed to happen to someone.

    So, I created this system to allow designers to control the randomness, to make it slightly less random but also closer to what we as humans expect random outcomes to be like, based on some of the tricks I’ve read about other game developers using.

    It uses a two main methods to achieve this effect:

    The first method is the use of a shuffle bag – instead of rolling for each outcome as needed, a number of future outcomes are placed into a bag and their order is randomized.
    For example, given a 20% chance, two successes and eight failures are placed into the bag, guaranteeing an exact 20% outcome over ten rolls.
    This actually changes the nature of the what is being randomised – the individual outcomes are no longer random, but instead the order of the outcomes is randomised.

    The second method uses random generation, but adjusts the chances to favour some outcomes and disfavour or disallow others (such as excessively long streaks.)
    For example, when rolling six-sided dice, each number can become more likely to be rolled the more rolls it has gone without appearing.

    The system has a lot of options to further configure the randomisation algorithm. The full documentation is available on Google docs.

    These tricks can be used for things like making sure the player doesn’t go too long without scoring a hit or a critical strike, to make sure that a weapon which deals damage in a range has an even spread inside that range, or to make it increasingly unlikely for a player to go without finding rare treasure with a very low chance to drop, to name but a few examples.

    NV Random on the Unreal Marketplace

  • Designing RPG systems

    The following are some musings on how to make good RPG systems, and which mistakes or pitfalls to avoid, based on the systems I’ve seen in various roleplaying games.

    Note that I am talking specifically about RPG character progression systems, and not the other staples of the genre such as dialogue, choices and consequences.

    I feel that a character system should:

    • Have interesting and meaningful choices
    • Differentiate gameplay between character builds
    • Feel satisfying
    • Avoid offering truly bad choices which only act as traps for inexperienced players
    • Not get in the way of normal play

    Read the rest of this entry »

  • Design Goals

    I have played a lot of games, and in so doing I have seen a lot of the same mistakes, or at least design decisions that I disagree with, repeated many times.
    I have also seen many excellent ideas in games that really helped them to stand out and be exceptional.

    Recently, I’ve taken some time to think about the types of things that I do and don’t like to see in games, and from there I have created a list of what I consider to be good game design goals.

    Of course, some of these are subjective – they are for making the type of games I like to see – but most of them are fairly general and should apply to almost every game.

    Game Design Goals

    1. The player should have to think.

    While some amount of direction is necessary, the player shouldn’t be spoon-fed exactly what to do next every second, or every time that they complete an objective.  Occasional hints are fine, but the player should need to think and work out how to achieve their goals for themselves, rather than just following instructions.

    Bad: The player is told exactly what to do each step of the way.
    Good: The player is told roughly what to do, and can find information hinting at the solution, or work it out for themselves.

    Read the rest of this entry »

  • UE4: Repeating Terrain – using blueprints and randomisation

    When creating levels for games, you will often want to place sequences of terrain features which repeat, for example: stairs, fences, and other repetitive details.

    When making stairs, you could model an entire staircase in your 3D-modelling package specifically for the area at hand, but that requires you (or your artists) to make a lot of customised, single-use meshes.

    Alternatively, you could model individual steps (or a mesh with a small number of steps) and repeat those until your staircase is the right height.  Constantly using the same model will most likely make the repetitive use of the same texture extremely obvious and jarring.

    This article proposes a solution to this problem: to create a number of unique meshes which are all variations on the same section of the repeating terrain, and to then use a blueprint to automatically select and place the individual meshes to build up the desired length of terrain.

    For example, to model a dozen variations of a single step, and then have a blueprint which randomly (or sequentially) picks one of those variations and places it appropriately until it has built the entire staircase.

    This allows the level designer to quickly and easily create repetitive terrain features, each with a unique look, and without requiring custom assets to be made for each individual use case.

    Four sets of stairs generated from four step models using the system described in this tutorial.

    Read the rest of this entry »

  • Bioshock – Game Design Anti-Patterns

    Bioshock is a 2007 game created by Irrational Studios, and is considered to be a spiritual successor to System Shock 2 (1999).


    Despite its unique setting and atmosphere, the game contains a number of major design flaws that are worth investigating as game design anti-patterns (anti-patterns are the study of a “wrong” solution to a problem, to understand why it’s wrong and how the problem could be solved in a better way.)

    In this article, I am going to specifically talk about two areas of Bioshock’s design;

    • Interface – the interfaces that the game uses to allow the player to control its various aspects, such as genetic powers and items.
    • Balance – the way that the various elements of the game are balanced against each other, and the way the game provides difficulty to the player.

    Before I begin, I would like to mention a “pitch document” from early in Bioshock’s development, which set out the developers’ aims and design goals for the game.
    This document is available as a set of images on Irrational’s Website.  I will be referring to and quoting sections of this document throughout the article, as I describe the various problems that the developers were looking to solve.

    Read the rest of this entry »