Top 10 Mapper Hints

This guide is aimed at level designers who want to create their first Arcane Dimensions map and release it to the community.

It can be overwhelming at first when starting to map for Arcane Dimensions (AD) because of all the extra features and the wide selection of available monster and items. At the heart of AD is original Quake which means that any Original map can and will work fine. Start by creating a map with limited resources and a small foot print and then gradually add new AD features once the map is working.

mappers_maplayout.png

1. Map Layout - Always start a project with a small map footprint
  • Levels will naturally grow in size over time, so always start small
  • Larger maps can be difficult to finish because they will require more testing
  • A small well planned map is better than a sprawling layout!
  • Plan secrets as you create the level and they will feel more natural
  • Design architectural spaces to compliment monster designs
  • Don't be afraid to move stuff to a temporary map if its not working right
  • Add plenty of environmental sounds (wind, water, lava, wood or metal)
  • Regularly seal and compile your map and test for scale and layout issues
  • Watch out for map, monster and light symmetry and try to break it!

mappers_features.png

2. Features - AD has a very (very) large collection of features
  • Not every feature needs to exist in every single map!
  • Focus on certain features that compliment your map style and design
  • Hint at new features at the beginning, like showing low gravity

mappers_breakables.png

3. Breakables - Plan and Use Breakables in your AD map
  • Monsters will smash through breakables to get to the player
  • Always use a consistent design (visually cracked or broken)
  • Show the player what is breakable at the beginning
  • Breakables can use models like vase or pots to hide items
  • Always use the style key to define all the defaults

mappers_monstersubset.png

4. Monsters - Start with a small collection of monsters
  • Do not include every monster class in a single map!
  • Always pick a melee, range and flying monster type
  • Mix and match different types to create challenging encounters
  • Monster types often compliment each other in attack and movement
  • Create patrolling monsters to add movement and living spaces
  • Monsters cannot climb 32 map unit steps, however a player can!
  • All boss monsters require a special minion cache entity to be included in the map
  • Think about and plan for monster jump triggers, they are the ultimate player surprise!
  • Plan for Chaos mode (all vanilla monsters can be randomized)

mappers_vertical.png

5. Vertical Space - Build plenty of vertical spaces (for monsters)
  • Hunter Ogres (new armour versions) can aim up or down at the player
  • Create extra space for Gaunt and Gargoyles as they hover above the player
  • Vertical spaces can create emotional responses; low =oppression and high =safety
  • Use trigger_monsternojump to help jumping monsters to get through narrow spaces
  • Use trigger_monsterturret to force monsters to use range attacks like a turret
  • Use trigger_monstermovespeed to turn on/off monster turret abilities
  • Use trigger_monsterpassivestate to turn on/off passive monster behaviour

mappers_devmode.png

6. Developer Mode - Always test your map with developer mode 1 active
  • Enable developer mode by default in your quake.rc file or use a special config file
  • Look out for stationary yellow diamonds, they means an item or monster is broken!
  • Other colours; Blue =delay spawn, Green =nocount, red =nightmare, white =no zaware
  • All path corners are shown with direction and angle arrows to help show movement
  • Path corners with red arrows pointing up are dead ends or final destinations
  • Always check the console for error and warning messages (check red highlights)
  • Get other people or friends to test your map and record demos

mappers_testmaps.png

7. Examples - Play all of the official AD test maps
  • The best documentation is a working example map!
  • All of the test maps are available to load into your editor
  • The fgd or def files do have lots of extra info about entities
  • The fgd or def files can be opened in any text editor
  • There are extra test maps specially designed for version 1.8.1

mappers_nightevil.png

8. Skill Levels - Plan for higher skill levels like Nightmare and Evil
  • Nightmare skill (3) level can spawn extra monster or items
  • Nightmare+ monsters can attack more often and are faster projectiles
  • Consider placing extra cover for nightmare+ hitscan monsters
  • Evil skill (4) level always starts the player with the shadow axe
  • Use triggers to detect if the player has the shadow axe
  • Many monsters on evil skill can one shot kill a player!

mappers_coop.png

9. More Rangers - Coop features available in AD
  • Use forward coop spawning points for larger maps
  • Items can be given or denied using extra coop entity keys
  • Plan for locked in arena encounters and coop player access
  • Many new impulse commands are available in quake.rc for testing coop

mappers_worldspawn.png

10. Map Setup - Worldspawn (map entity) has many new features
  • All AD maps should use no_item_offset = 1 (AD fgd or def default)
  • Define fog parameters on worldspawn if using fog triggers
  • Player weapons, ammo, armour and hp can be changed on start
  • Water alpha (liquids and portals) should be defined on worldspawn by default
  • Check particlemax limit is correct if using lots of particle effects
  • Store the compiler options (sun, dirt and bounce) on worldspawn
 

Attachments

  • mappers_worldspawn.png
    mappers_worldspawn.png
    224.6 KB · Views: 75
Could someone expand on this point?
  • Watch out for map, monster and light symmetry and try to break it!
I trust there is a good reason to do this, but I want to understand it more in depth so I can apply it correctly.
 
Could someone expand on this point?

I trust there is a good reason to do this, but I want to understand it more in depth so I can apply it correctly.
Each kind of symmetry can harm the map in different ways, although it's important to recognise that it isn't inherently bad - You just have to consider the effect it has on the player. Symmetrical layouts can be confusing to navigate or boring to play because it results in repetitive areas and disorienting corridors, and symmetrical architecture+lighting can be more difficult to process visually. On the other hand, you can also use symmetry to indicate that two paths are equally important (e.g. e1m5 - Gloom Keep), or create a symmetrical facade as a memorable landmark. Monster symmetry results in equal pressure from multiple angles, which makes the player's quick decision-making less impactful. Something people often do is to build a symmetrical area and then break the symmetry with things like structural damage or crates - this can work on the level of layout or details.

Sock previously made a visual guide for lighting, including advice for breaking symmetry, which I've attached below. The main things to think about are leading the player with bright spots and making interesting shadows. You can have symmetrical architecture with asymmetric lighting by having broken lights, missing flames, or sporadic candles. Light styles can also do a lot to introduce asymmetry and otherwise make your lighting less repetitive.
sock_Lighting.jpg
 
Could someone expand on this point?

I trust there is a good reason to do this, but I want to understand it more in depth so I can apply it correctly.
Unfortunately we all love symmetry (faces, buildings and structures) and its something I find I have to consciously fight in order to prevent! The one piece of advice I was given while doing level design was "Symmetry is half a map". When someone creates symmetry they are halving the map opportunities for the player. It could be identical monster setups on either side of a room, copy/paste light setups which creates uniform ambience or identical routes which are confusing and make naviagation difficult.

There are many tricks to break symmetry, rotated (90 degrees) brushwork, different light levels or flickering styles and adding obstables or height variety to break up level design route flow.
 
Kneel and bow your heads, oh mortals! Listen to His words, for He is great and omnipotent! He who with his feet established himself in Sepulcher, and with His head reached heaven in Monstrosity, the Lord of Hordes and ogres, He whose name is written in fiery symbols in eternity and is pronounced Krampus, the One whose testament
www.moddb.com/mods/arcane-dimensions/downloads/ad-181-test-map-pack
And Scripture
www.moddb.com/mods/arcane-dimensions
we honor, Risen and brought good news to us!
Bless your disciples, O Almighty!
 
Hm.., seems to be it is need to explain my previous, some weird post. I'm really, really glad to see Sock's return, even by this way, because it is difficult to overestimate his contribution to development Quake Universe. As we regret sometime that only a few years have passed since the development, and we found source code was irretrievably lost. Therefore, it is very kind of him to provide comprehensive assistance, which simplifies our development. (Just look to dumptruck_ds – he's dev. tools contain manual at 139 pages!)

Whether we will see a continuation of Arcane Dimensions, who knows. Perhaps, quite symbolically, Sock left his sword in the stone in Grendels' Blade, waiting for a worthy successor who can take possession of this sword?
 
  • Like
Reactions: Fairweather
Hm.., seems to be it is need to explain my previous post.
I must confess I was not sure if you were being sarcastic, doing some special internet meme or genuinely glad to see me around this forum! My initial reaction was to delete my account and run to the hills, but it seems you are being genuine and not out to stalk me or something! In a strange sort of way I do understand your reaction, many years ago I finally got to talk (via IRC I think) to czg (I was a really big fan of his quake stuff) and I was so excited and thrilled with my first conversation that he has promptly ignored me ever since! oh well, lesson learned on my part I suppose! :)

AD documentation - The very early versions had all the documentation in a readme file and it was pages long. With every new release the file was got longer and longer and eventually I realized nobody was reading it, because I was being asked questions that were answered in the readme file. So I decided to create test maps instead, which I love because I always prefer to see stuff working rather than have to struggle with entity chains and key values. I spend ages creating test maps for all sorts of stuff, but I feel most people are missing them or not realizing what they are trying to show. I have tried setting up discord servers and web forums, but I did not get much interest. My only suggest left is if someone wants something explained or a test map showing a feature/idea, then post here (not sure which thread to be honest) and I can help that way.
 
It could be really cool if AD could continue evolving. Maybe not as a map pack, but as a mod base. There are really cool features that could be added. Like moving waters, allowing to flood / de-flood spaces. Or small needs. For example not so long ago I bounced into a problem that I can limit teleporter to a player, but I can't limit it to vice versa mobs only... etc. A lot of things could be done. Maybe not "a lot", but some 100%

Just talkin' to myself, no worries. Still workin' on giant solo AD map, plus whole episode on AD. So I am cool with AD, feels like home
 
It could be really cool if AD could continue evolving. Maybe not as a map pack, but as a mod base. There are really cool features that could be added. Like moving waters, allowing to flood / de-flood spaces. Or small needs. For example not so long ago I bounced into a problem that I can limit teleporter to a player, but I can't limit it to vice versa mobs only... etc.
Every mod eventually dies off as new and better mods come along that capture the attention of the Quake community. It sorta becomes pointless updating a mod if everyone has moved on and there is nothing wrong with that, we should all embrace the new stuff.

The current community solution for moving water is terrible, its beyond terrible! If there was a feature that so desperately needs to be included into all Quake engines, it is moving liquid support. The current best solution is FTE engine using the skin parameter on moveable bmodels. Funny enough moving liquids is supported in AD, but its the FTE solution at the moment. Maybe if more people used it then other engines would support it. The current water hack only works for the player, ignores monsters and constantly fights the engine by changing the player's volume parameters. Use the FTE solution, its brillant!

FTE_water_support.png
 
You mean that moving waters can be made inside of engine forks like, for example, lightmapped waters have been added lately to all engines?

Every mod eventually dies off as new and better mods come along
True. I've seen that in different games communities. But! AD is still out of competition for mediaval dark fantasy theme. Objectively. And new invaluable mobs is just a part of fun. Remade hp flasks & ammo are even more valuable in my opinion. With them only medieval mood feels complete, at least imo
 
You mean that moving waters can be made inside of engine forks like, for example, lightmapped waters have been added lately to all engines?
Sure, FTE has a crazy amount of features. I just wish the interface was easier, so confusing :(
AD even has support for the FTE skin ladder setup. Probably another feature that should be engine based.
 
  • Like
Reactions: alexUnder Ros
More questions asked about AD mapping ...

1. My items are falling out of the level!?!
Add "no_item_offset = 1" to the worldspawn of the map. The reason this is happening is because of the editor file (FGD) is expecting all items to have center rotation and not the original ID corner origin (ammo boxes etc)

2. Some monsters keep getting stuck in walls!
When a monster spawns in AD it needs roughly 8 map units of clear space around it. If monsters are placed flush against a wall, it is very likely the mod will see this an error and remove them because it cannot spawn them correctly. This can also happen to items, but there is a "float" spawnflag (this does not exist for monsters!) which can be used to override any spawning errors.

3. I keep getting weird things happening in my map!
Turn on Developer mode on the console or even better open up the quake.rc file and enable it in the file as default. This mode should be a default mode for every level designer developing Quake maps so that any item / map / monster errors are caught early and fixed.

When AD loads a map with developer 1, the mod creates a lot of extra entities for visual clues on what is happening. Most entity errors are shown with a floating/spinning yellow diamond. If you want to track down errors, look for these diamonds. There are loads of other colours as well. YELLOW = error, BLUE = delay spawn, GREEN = nocount (monster count), RED = nightmare skill level. Also path corners will have arrow models to show what is happening with them, useful if you want to know what direction a monster/train is suppose to go next.

Always check the console when loading a map for errors. If there is a problem spawning a monster, it is very likely there is additional information printed on the console so that it makes sense why.

4. When I add a trigger to a key/item is does not fire all the time!
This is a problem with ID1 quake as well, but if a player has a certain item (like a key) they cannot pick it up again and the trigger event will not fire correctly. Always create a separate trigger around an item if you want a trigger event to always happen.

5. My Fury Knight (fiend) keeps jumping off ledges into death pits!
Add a new entity key to the monster, "jump_flag = -1". This will disable any jumping monster from jumping and stop them doing any ledge diving stunts. You can also use "trigger_monsternojump" trigger brushes to temporarily prevent ledge problems.

6. My monster setup are too easy and die quickly!
Start thinking about monster setups over time. There are death targets, HP quantity targets and even group trigger events to allow monsters to keep track of what is happening around the player. Start by creating small groups of monsters so that an event develops over time and creates a better challenge to the player. Always be careful with monster death counter setups, these will often break a map because of skill levels and that some of the monsters are missing on spawn.

7. I am running out of time and I want to quickly add ambient sounds!
There are special ambient sound entities which can be sprinkled around a map in a couple of minutes. There is "ambient_custom_wood" for extra creaky wood, "ambient_custom_rumble" for various deep bass sounds (good for dark corners) and "ambient_custom_wind" for better long wind sounds. There are extra water, lava and slime ambient sounds if you want to replace all the ID defaults.

I highly recommend to compile without ambient sounds first (add -noambient to vis stage) and then add the sounds where you need them. The default sky sound for ID1 is really bad, short and highly repeatitive, replacing it with "ambient_custom_wind" will make any map sound a million times better. All the new "ambient_custom" sounds are fully setup with the correct sound/wav files and a good default time for re-triggering so that they can be layered together.
 
Rotating Objects (oooo fancy ... my map needs that!)

Rotating brushwork/objects became a thing with Quake expansion pack 1 by Ritual Software (hipnotic). Its one of those things that should be part of all Quake engines (FTE/DP/Quake2 = do support proper rotate/collision) but alas its not to be, so we have the QC version instead. Due to the way that QC treats brushwork and entities, the setup for rotating objects is complicated.

func_rotating_entity (point entity) -> rotate_object (brushwork) -> info_rotate (point entity)

test_hiprotation_ents.png


All functionality and control is done via the func_rotating_entity (ideally the primary entity should be brushwork, but the engine treats the timing different between point and brushwork entities, so it has to start with a point entity) which then targets the brushwork. AD did add a new feature (target2) on the brushwork (rotate_object) entity so that it can be lit in a void box (check example test map included as attachment below) and the lighting can look more consistent. Finally the brushwork entity needs to target an origin (point) entity (the XYZ point where the object rotates around in the map)

The primary drawback of rotating objects is they lack precise collision (unless you want a giant box). To get around this issue the func_door rotating objects have an extra object called "func_movewall" which is used to simulate player collision. Remember this is not perfect collision and can cause player deaths like crusher style brushwork if used recklessly.

The final rotating object is a train (platform) which can move between special "path_rotate" entities (like we need more path entity types) with extra functionlity for rotation, angle and teleporting features. A good example of this entity in AD is the ship landing at the beginning of the map "Terror Fuma". This entity can produce some amazing results, but does involve a crazy amount of angle tweaking to get right.

test_hiprotation.png


Attachment included in this post is a test map which shows the three types of rotating objects, (basic, train and door) The source map should load in any editor and uses AD prototype textures to remove any visual detail distractions. Its not pretty, but functional.
 

Attachments

  • test_hiprotation.zip
    438.6 KB · Views: 70
Last edited: