Jump to content

(Updated) Graduation Project - Procedural FPS Arena Level Generation


hyperforce

Recommended Posts

demoscreenshot3.jpg

This procedural level design tool is the result of my graduation project and my dissertation study into:

“The rules behind a procedural death match map generator”.

This project earned me a 10 and allowed me to graduate Cum Laude (with distinction) from the University of Applied Sciences in Breda.

It earned me the title of Bachelor of Engineering in Game Architecture & Design.

This Thread has been updated following the completion of my Graduation project.

This tool is designed to create fully playable complex 3D combat arena's for the Unreal Development Kit, with minimal user / designer input.

But without taking away control. It allows for rapid iteration and testing, using a user-mediated construction method.

With this tool, a level designer becomes a digital director.

The generator constructs levels following the death match game-type rule sets of Unreal Tournament 3 and the UDK, discovered during my dissertation ( Specifically "Axon" faction levels). It is capable of creating fully traverse-able, multi-leveled, interior 'white-boxed' maps. Including path nodes, player starts, logically distributed pickups and decorative meshes. Think of it as a 3D sketch pad for level designers, where the results can be immediately play-tested.

The tool is fully procedural, and the results can be exported directly to the UDK using the .OBJ and .T3D file formats.

The generator is highly modular and can be expanded and adjusted easily to support other game-types or games.

Many components of the generator have also been improved over the course of my graduation period.

The user interface and workflow have been significantly tightened and are now easier to use.

It features 3 levels of control, ranging from highly automated to deep manual control.

When using only random results and manual overrides, the tool can be used to rapidly browse through and tweak possible level layouts in order to quickly prototype unique levels. While using manual input allows for deep and detailed control over every part of the process. A designer can have as much control over the final result as he/she wishes. The tool uses a user-mediated approach to procedural level construction, meaning that it requires a designer to determine the shape and layout of a level he/she wishes to create.

The actual construction of said level however is fully automated.

controlew.jpg

How it works:

The tool is mainly based on volume conversion (Houdini's Voxels) and constructs a level according to a 3D grid.

After the main landmark spaces are generated, corridor profile curves are established between them using a path finding algorithm written specifically for this generator by Leroy Sikkes.

Following this, the corridors are assembled from a series of components by analyzing the profile curves.

Where corridors interconnect, minor rooms are generated.

Finally, the combined level mesh is processed to form an internal grid, which is used to create catwalks and ramps.

The finished level mesh is automatically UV'd to identify different area's and the mesh is optimized.

Various objects can be automatically or manually placed throughout the level.

These objects by default will always try to ensure the spaces they are placed in remain traverse-able.

Place-able objects include: pillars, columns, low cover objects, box stacks & railings.

Next a path grid is generated throughout the level for AI navigation and pickup placement.

This is done in layers, each representing a different form of player navigation.

Using these layers and the level geometry, each point in the grid is analysed and compared to the rest of the level for the following data:

Exposure, Space to move, Distance to Walls, Height advantage & Reach-ability.

a50sr37cqae3r3w.jpg

This data is used to calculate the risk or tactical value of each point on the grid.

A designer can then designate a series of hot-spots.

These hot-spots are locations that the designers wants to attract players towards.

This can also be done automatically if so desired.

A designer can let the tool create a random pickup load-out for the level, or specify his/her own pickups.

Each pickup definition in the load-out menu as well as each pickup archetype has its own placement rules.

Based on the pickups placement definitions, the risk grid and hot-spots in the level; pickups are logically distributed throughout the level.

During the final step, the level geometry is subdivided and cleaned.

The size of each segment is calculated and a series of meshes are assigned to their respective surface.

meshingcomparison.jpg

All a designer has to do to play the level is export it from Houdini using the OBJ and T3D format & import the files into the UDK and build the pathing.

This can be done in less than 5 minutes. The .T3D exporter used in Houdini is currently under development by Jan Pijpers.

The main node graph of the level geometry generation (steps 1-6):

For in depth information about how this part of the project was created, see my dissertation:

Compressed: 23.5 MB:

Uncompressed: 77,5 MB:

For further information on how the generator is used, see the user manual:

12 MB:

Contact me at:

Erwin Heyms

Technical & Procedural Level Designer

Erwinheyms@gmail.com

(+31) 644101169

My Portfolio and Curriculum Vitae: 30,1 MB:

My Linked-in Page:

A half hour presentation at the Global Game Jam - January 2013, that go's into depth on the project:

[media]

[media]

To clarify, this tool does not "design" levels on its own, but it is based on the design rules discovered during my dissertation study. It employs a user-mediated approach, meaning that it requires a designer to determine the shape and layout of the level he/she wishes to create. The actual construction of said level however is automated. Randomized results can be used (to quickly explore possible solutions) during many of the steps in the process, but it is by no means required. A designer can have as much control over the final result as he/she wishes.

Simply put: this tool enables a designer to rapidly prototype a level from the idea stage, to a play-testable stage, within only a fraction of the time it would have otherwise taken him/her.

This procedural level design tool has several interesting utilities.

Primarily, it is a tool that allows for the rapid generation of white box quality death match levels.

Using it, a designer can quickly “sketch” out a level, make adjustment and play-test the result within only a fraction of the time it would have taken using a manual process.

Secondly, with further polish and development, a generator such as this prototype could be integrated into a first or third person shooter. This could allow players to create their own combat arena’s without the need for complicated level editing software or level design experience. Furthermore, players could share their levels online, and download the best rated levels from other players, allowing for a nearly unlimited supply of levels and a longer game lifespan.

demoscreenshot1.jpg

With special thanks to:

- Nathan Danïels, Elroy Aarts, Jesse Ravenbergen, Richard v. Beersum, Thomas Buijtenweg & Wytze van Balkom: Playtesting & Data capture.

- Kim Goossens: My Houdini supervisor.

- Ronny Franken: My level design supervisor.

- Andrew Paquette: My art Supervisor.

- Leroy Sikkes: Pathfinding Algorithm Script.

- Jan Pijpers: Creator of the .T3D Houdini to UDK exporter.

*Total accumulated cooking time of the demonstrated level inside Houdini took roughly 8 minutes.

Construction of the level in my show reel took in between 2-3 hours + and hour of tweaking.

NHTV International Game Architecture and Design

The academy of Digital Entertainment

Edited by hyperforce
  • Like 6
Link to comment
Share on other sites

Damn, that's pretty awesome!

How long did you worked on this?

Since February, The deadline was mid June.

Though I have been adding additional features and improvements since :)

I think I've put about 800+ hours into it so far.

Edited by hyperforce
Link to comment
Share on other sites

  • 2 months later...
  • 3 months later...

Very nice Erwin :)

Just a question,

Which part of the level is a custom model from Houdini,

and which parts are created out of pre-existing prefabs?

Everything, except for the final decorative meshes, are Houdini smart assets.

The final decorative meshes are prefabs made in another modeling program.

It is possible to provide your own meshes for the landmark rooms as well if you wish. These will have to be provided in the form of one or more fully enclosed meshes (preferably 4 directional), but it is not required.

The corridor and catwalk components will re-scale themselves based the grid size and corridor width/height.

The cover objects are also smart assets constructed in Houdini. They can be re-scaled and deformed.

Link to comment
Share on other sites

  • 2 weeks later...

My apologies for those that have been trying to download from my rapid-share account through the links above.

Apparently rapid-share has changed its download policies over the past few months and I had to open them up again so third parties could download them.

In the next few days I'll upload a presentation I did at my Uni. that go's into more detail on the project.

More on this soon.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...