1: Rapid Game Prototyping

Creating Immersive Worlds, Fall 2018

Christian Grewell
creating immersive worlds
3 min readAug 27, 2018

--

Before you begin this activity, make sure you:

How can we go about the task of actually producing our worlds in a way that maximizes our learning (from play testing and experimentation) while minimizing the time we spend throwing away failures?

One way to do so is to take an extremely iterative and thoughtful approach to designing our game and the systems that support it. One that gives us enough flexibility to make 100s or even 1000s of changes over the course of our work in a way that doesn’t impact our creativity or motivation to finish it.

Many times, this involves delaying the gratifications you might get from designing a finished asset (e.g., a really good looking character, a beautifully lit scene, a cool animation) and trading it for a solid gameplay foundation. Then, once some of these foundations are in place and validated (mainly through having others play our game), we can further refine elements of our experience that matter.

‘Programmer Art’

What better way than to learn by building something. Which is what we’re going to do.

In this series of guides, we’re going to go from an empty world (well, almost empty if you count the table and chair), to a fully functioning game. Let’s get started!

Project Setup

Make sure you have downloaded and installed Unreal Engine. I’m working on version 4.20, you should be on 4.20 or later.

Create a new project

Create a new Blank Blueprint project. Include starter content.

Create a New Level

By default, the editor puts you in a minimal level with a directional light, some ambient sounds and a variety of props. Rather than delete these, let’s make a new level.

  1. Create a new folder called Levels
  2. Create a new Level called sandbox
  3. Open it

Whiteboxing

Whiteboxing is especially important when you would like to test for interaction and gameplay elements. It’s essentially a way to rapidly world-build so that we have an environment to build systems and test our game.

To do this, we’ll use the geometry features of the engine. This feature is great for prototyping. It will allow us to build the basic environment for our player without having to leave the editor and 3D model in another program.

BSP

Binary Space Partitioning, or BSP for short, is a simple and quick way of laying out space in your level; defining what’s solid and what’s not.

BSP brushes to create Geometry which is what forms the foundation of a level. You may hear people talking about BSP shells, Brushwork, or Geometry; all these mean the same thing, that being the layout of BSP Brushes used to create the level.

This method of level building was used in the Quake II game engine. If you’re interested in the inner-workings of the system, here’s a good deeeeeep-dive.

BSPs helped with rendering back in the days. Source: nemesis.thewavelength.net

One of the downsides to using BSPs in UE4 is that they are quite prone to breaking, and one of the fastest ways to break them is by working off the snap to grid. If you work with grid snapping off, you’re gonna have a bad time. Any grid setting over 10 is fine. If you find yourself with brushes floating in space you can save them by pressing the Align Brush Vertices and this will place the brushes back on the grid for you.

The only exceptions to this rule are cylinders and spheres. The center (or origin) of the brush should be on the grid, but the vertices often will not be.

Video Tutorial

Watch the video below where I detail how to create our play space:

--

--

Christian Grewell
creating immersive worlds

Hi! My name is Christian Grewell, I grew up in Portland, Oregon playing music, programming video games, building computers and drinking coffee. I live in China.