Please do not use Photobucket to host your images on this site. They will not appear for other users but instead will give an error image and a directive to go to:
For these images to show up it would require us to pay a premium account fee of $399.00 USD/year or our users to set up paid accounts of $99/year for this service to view these images.
We will be removing all linked images to that site and we suggest you use or other similar site instead.

Watch this space for important information on planned twitch streams, updates and more

Idea, Build, Test, Repeat - Rapid Prototyping

Part of the key to development is the rapid prototyping and evaluation of ideas. One of the beauties of the 4th generation Unreal Engine is the Blueprint system, a core of the engine which enables us to prototype systems rapidly. Thanks to this, we can let ideas flow, and get results quickly enough that we can explore innovation that otherwise would need to be left alone.

Just before the holidays, we ran across a discussion on how Bethesda handled the interior maps for their hit games Skyrim and Fallout 3. For those unfamiliar, they use what is a tile-based layout. Interior rooms, corridors, etc, are assembled out of 3D pieces designed to link together.

We wondered how well their system would work for us. Normally in game development it would be time consuming, requiring several weeks of effort by a small team to even build an example for testing such an idea. So, just before the holidays we handed this entire idea over to one of our guys, Angelwolf. The next day, this is what he presented us with:

As you can see, he built a tile based map system. Pretty impressive for a few hours work. Then we set him out to exploring how well it can be modified. Obviously, the real world does not work at 90 degrees, so we had him modify the system to add in angles.

Further adjustments, refinements, and a working, if not pretty, solution came together.

Now to link these while making it look more realistic, we had him add doors. Rather than just making a blank doorway, he went a bit overboard and created multiple door options, from swinging doors to fancy sci-fi esque sliding doors.

Not bad for a few days work. At this point we could evaluate the strength of this design, and see if it fills our needs.

As you can see, none of these are finished, or even rough, art assets, but basic primitive shapes. It is far too easy to get attached to images, so when we prototype, and even code, we purposefully do not use even fill-in objects which look finished. Hence why we use elements like Blockhead and Odo, who you find here doing his day job, as our friendly neighborhood beat-on dummy.

Uh oh, he appears to be targeted. Hopefully it's a single target heal.

When developing a game, or any program, there will be ideas batted about. A lot of good ideas never are looked at in depth because to prove if they would work, or not, would take too long to prototype and evaluate. Or worse, bad ideas are allowed to linger in a design because to replace them would take too long.

Thanks to the capabilities of Blueprints, provided as part of UE4, we have the opportunity to explore these system ideas in depth before nailing them down, as part of the development process. This way, when we find some new idea, some new approach to tackle a problem, and we can sit down and in a few hours have a rough prototype of that idea worked out. If that first-draft looks promising, we then build and expand upon it.

This is one example of how we’ve been prototyping and testing systems. We listen and learn from other people, and we try to implement their good ideas, our way. Will this tile-based map system be the final answer? Maybe. But it’s got pretty hefty competition with other systems we are also looking into. Whatever the final answer is, you know it’ll be the best answer we can offer.

Why do all this work? Because we’re trying to be great. And we listened to what the master Pablo Picasso said. Good artists copy. Great artists steal.

Written by - Nathaniel 'Doctor Tyche' Downes

Discuss the update here: