Intro

Anvil Level Design (Anvil) is an addon for blender that is intended to speed up and support video game level design.

It is particularly inspired by Trenchbroom and Source 1 and 2 Hammer. I will also call out RealtimeCSG (Unity) and Scythe (Unreal) as inspirational tools that are worth your time. Half-edge is exciting but remains unreleased.

Anvil was born of my desire for a level design tool not tied to any specific engine, with both modern geometry editing and sane material application.

The best level design tools will always be incorporated in engine because they can do the most to speed up iteration. When such a tool is not available or chosen, I hope Anvil can be a common replacement.

Anvil is a blender addon because it was accessible for me to create.

Anvil is not designed to cater to a specific visual style.

Anvil is being designed to solve as many specifics and edge cases with regards to transferral from Blender to game engine as is reasonable given common transfer formats. For example, Anvil encourages a particular pattern of prefab management inside Blender that should lead to the possibility of easy mesh instancing inside the game engine. Currently game engine import is not included; reference implementations are planned for the future.

Features

  • Level design appropriate Blender defaults
  • WASD Free Camera on Hold
  • Click to apply materials (from a custom image-as-material browser)
  • Click to copy/tile material
  • UV alignment shortcuts
  • World-space UV persistance across geometry edits
  • Hotspots
  • Selection ignores backface culled faces
  • Cube cut operator with interior corridor generator
  • Box builder operator
  • Grid hotkeys and 3D overlay
  • Custom asset browser (designed for Blender objects-as-prefabs)
  • Export tools including global scale and separate loose meshes
  • Many other opinionated UX fixes

Not Features - Yet?

  • Engine-side import workflows (currently: export to .glb or .fbx and write your own importer for anything complicated)
  • Entity system (including special brushes like water and clipping)
  • Non image based materials
  • PBR materials (can be worked around by editing the Blender shader material after Anvil creates it; see Texture Preview)
  • Physics

Out of Scope

  • Solid ‘brushes’ à la Trenchbroom
  • Non-destructive boolean geometry (this is the true pinnacle of level design but I view it as a separate and complicated project)
  • Anything to do with lighting (the move between Blender and Engine introduces complexity)
  • Extensive vertex painting suite (Anvil does include some vertex painting UX improvements but a complete suite is too specific a workflow)