Building an acceptable level editor

Posted on June 30, 2023 by Crayz

It's important not to underestimate the importance of mapping in surf, bunnyhop, kz, and similar gamemodes. People have made thousands of maps for the genre, and it's always a blast when new maps get released to the public.

In CS:GO, de_dust2 is iconic and can literally be played forever and the game remains fun. In surf and bunnyhop, once you've mastered a map, it's quite appealing to try out other maps.

That is why we are working extra hard on creating a sufficient enough level editor for Strafe Trainer. One that has a low barrier of entry, doesn't require you to download many gigabytes of game engine junk, and something you can just open up and start building without any headache. It should be fun.

In Fragsurf I made various attempts at creating a usable level editor. I learned what works and what doesn't.

THE OPTIONS

  1. Use the game engine. Game engines have editors that can create levels quite well, especially Unreal Engine. The sucky thing is mappers and gamers have to download and learn these engines. The barrier of entry is far too high.
  2. Use some open-source project. TrenchBroom is an awesome one. The sucky thing is it's too generic (by design), and you have to work out a build and content pipline going to and from the game.
  3. Create your own. This is the path we're going with Strafe Trainer. When you build, and use, your own tools from the ground up, you can create them in a way that aligns with the vision of the game.

Mesh Editing

We've got all the basics in for building meshes and giving them textures. It leans more towards blender-like mesh creation rather than hammer's CSG/brush approach.

image

Measurements

We're converting all measurements to hammer units, because that's what we are familiar with. Sometimes you wanna build a block that's exactly 64 units tall, or create a gap that's exactly 260 units wide. I've added a couple things to help with:

image

image

In-game integration

The approach right now is to build only a mildly complex geometry creation tools. The rest should be fun and simple. So you can get artsy and build whatever type of geometry you want but configure things like sun direction and weather in a way that just makes sense. We have a dynamic weather system, and a dropdown to choose various options for your map's environment.

image

There's also a button you can press to instantly test your map without having to wait for compile and load times. Efficient iteration is important!

Summary

I'm excited about this level editor and can't wait to see what people make with it. I don't expect it to be perfect, especially not at the start. I want to hear what people think, what problems people are having, and I want use the feedback to make it as good as it can be. It will be a process that occurs over a long period of time. That's all for now

An error has occurred. This app may no longer respond until reloaded. Reload 🗙