AD 1.8.1 Test Map Pack

I have never been one for writing long form documentation, I have always preferred working example maps to study instead. I do realize this approach is not for everyone and I thought maybe a couple of forum posts could expand on the ideas behind the new features. Hopefully this will give everyone a greater understanding of how some of the features work for possible future ideas.

1. Vania Items

These unique items are like powerups (give players special abilities), but they are permenant until the map changes or finishes. It is possible to carry over vania items between maps, but that has to be done via map variables. The idea behind vania items comes from Castlevania, where the player gets upgrades over time that give them the opportunity for new ways to explore. All of the vania items are displayed on the custom AD huds if they are active (requires an engine that can cope with custom huds, VkQuake / QSS / FTE / DP) Every vania item has a primary and secondary function which unfortuntately is not always obvious to the mapper or the player.

The jump boots were originally prototyped by JCR for a mod jam event and then re-released into a mod called Triune Discovery. Having helped with the code for the re-release, I was allowed to include the jump boots into AD. Luckily @Bal joined the AD team for the 1.8 release and after some convincing made an awesome looking new pickup model.

The primary function of jump boots is multiple leaps with types 1-4 being how many consecutive jumps are allowed before the item is reset by landing and type 5 is an unlimited jumping version!?! The jump boots don't really have a secondary function, but are setup to allow for greater air control and mid air turning opportunies around corners.

In true AD fashion all of the jump boot parameters are exposed to the mapper via entity keys, so anyone can tweak or change how they work and create their own version. I do understand that this kind of flexibilty can be frustrating for some players, but it is ultimately up to the level designer to guide the player with any non default setup. I have always believed that AD is an open toolkit and no one really wants a single blade screwdriver when they can have a complete socket set instead!

The blast belt is designed to reduce all splash / direct damage from explosive projectiles. This means the player can use grenade or rocket launchers in close proximity without the fear of them being deadly. With the risk of death removed from rocket / grenade jumping, this form of movement can become a much more flexible way to explore larger spaces. The secondary function will prevent any damage from floor impact monster attacks like the Hammer Ogre or Stone Golems. One interesting side effect of this vania item is shalrath (vore) combat becomes much more forgiving as their homing projectile only does 50% damage instead.

The lava shield is designed to prevent any damage from lava or fire to the players health and armour. This opens up the opportunity for extra routes, puzzles or even combat in long forgotten ruins sunken into giant lakes of molten slag. The secondary function of the shield will reduce damage from monsters that use fire attacks towards the player like Gargoyles or Droles. The model for this item is especially cool (fantastic @Bal creation) with the inner shield core animating (contracting / expanding) and complimenting the particle effects.

The air tank is designed to allow the player to swim around in water without the fear of drowning. This opens the opportunity for large or complex underwater maps and the ability to explore for alternative routes, solve puzzles or engage in long combat encounters. The secondary function will allow the player to survive the explosion from firing the lightning or plasma gun underwater and reduce the damage from poisonous monster projectile attacks like Spiders or Fumigators.
 
2. New Systems

The Quake HUD has always been fixed and inflexible for representing anything new to the player. For years there has been a special version of QuakeC called CSQC which allows for mods to customize the HUD layout, but unfortunately it has not been supported by many popular engines. Recently QSS and VkQuake engines have added support for CSQC, which is good for the community because more engine choices allows players to try out new mod features.

The map "test_custom_hud" is a giant box full of every possible item that the player can pickup or be represented on the HUD. This is the perfect way to show all the items and how they are represented on all the new different HUD layouts that are available by changing the quake.rc file or using the scratch1 console variable. There is even a way to turn the HUDs upside down (add 100 to HUD number), if someone wants the bottom of the screen focused purely on the weapon model instead.

The passive state system is really a crude attempt at creating NPC monsters or environments where exploration has a greater focus. This is very likely to be sacrilege to some Quake players, however it does offer different forms of player interactions and progression. The whole map can be setup to be passive monsters by default, by adding a new worldspawn (check editor files for details) key.

The original idea for the passive system was to have NPC's with small dialogue tree's and various triggers. In true "dark souls" setup the NPCs could be attacked, have consequences and change the map according to what the player was doing. The triggers for changing of passive states (on or off) was implemented and there is even reset timers to switch states and HP back to full to allow the NPC to cool down and return to what they was doing beforehand. One idea was to link the NPC to changeable path corners and allow the player to progress a NPC through a map, sorta like an escort mission, but will all know how frustrating they can be! :p

The map "test_passivestate" features several setups of passive monsters and shootable switches to change between different states. The passive state change can even be trigger mid combat to reset the monster back to what it was doing beforehand. The system is really aimed at story driven map designs or ways to create overwhelming consequences for player actions. If a monster is attacked while in passive state it will react to the player, which could allow for a puzzle approach to clearing of a map instead.

The Chaos system will randomize all monsters and change some items and powerups to give positive or negative bonuses on pickup. The new gameplay mode is not designed to be balanced or fair, but instead is designed to be a fun challenge full of random surprises! Its ideally aimed at vanilla ID1 maps which is why the Chaos pillars are located in the first start HUB map next to the original episode portals.

The map "test_randomizer" has every monster, item and powerup setup to show how the randomizer works. There is also a good example of the timer/clock function in the far exit portal room, but this map is really about what happens in Chaos mode to ID1 monsters. Worth checking this map with developer 1 on and Chaos mode enabled to see the inner workings of the system on the console.

The map "test_grapplehook" is a giant vertical playground to show off the movement and possible puzzle elements of the new grapplehook weapon which is inspired by the 2nd Quake expansion pack by Rogue. The map is setup with free form movement, grapple hook points and ways to limit access to surfaces with special brushwork. Because the grapplehook replaces the axe, there is a push option for forcing monsters over edges as a way to kill them. The combination of the special surfaces and air control can create some really fun vertical puzzle setups that could be combined with timers to create precise player challenges.

The map "test_intermission_cam" is really short and just showing off the ability to blend fog values between intermission camera's if based in multiple locations that have unique visual setups. Probably something that is not featuring high on many mappers priority list, but is a nice final presentation for intermission camera locations to look correct.

The cinematic camera system is probably my favourite new features of AD 1.8 because it has so much new potential for creating something visually different and changing the way the players feels about the map. From subtle intro camera sequences, to mysterious new item reveals, the system can be used in many ways to create a more immersive experience. Obviously not every Quake player is going to want cinematics interrupting their rampage to murder all monsters, but some people will certainly enjoy more interactive possibilities.

The map "test_misc_camera" starts out with a classic fade from black moving downward to the player and then opening to the scene of giant compacitors (inspired by the film Forbidden Planet) moving up and down in sync showing off the new func_train features. The map is split into 3 areas, with the right showing static camera setups (like security), the left showing moving/dynamic item or monster setups and finally the far room showing the new smooth camera rotation system, which unfortunately requires a different network protocol because of engine errors with regards to smooth angle updates.
 
The cinematic camera system is probably my favourite new features of AD 1.8 because it has so much new potential for creating something visually different and changing the way the players feels about the map. From subtle intro camera sequences, to mysterious new item reveals, the system can be used in many ways to create a more immersive experience.
Can cinematic camera hide loading of 2 skies? I am working on a map for a while that utilizes skybox switching. And I do load both skies on start when a player can not see skies. But still game freezes annoyingly for a couple of seconds
 
Can cinematic camera hide loading of 2 skies? I am working on a map for a while that utilizes skybox switching. And I do load both skies on start when a player can not see skies. But still game freezes annoyingly for a couple of seconds
Most Quake engines will always pause when loading a second skybox because they are not really designed for it. Also the KexEngine does not support the skybox console command, so there is *that* problem! :p
 
  • Like
Reactions: alexUnder Ros
3. Breakables and "bal" Knights

There was not suppose to be any breakable models in AD! It was designed to be bmodel (brushwork) so that anyone can create their own breakables for any sitation. During the development of 1.8, Redfield contacted me about a mod that was based on 1.7 and I really wanted the mod to move to 1.8 and luckily Redfield agreed. One feature of the RavenKeep mod was breakable vases, so I merged the idea into the AD 1.8 code and when @Bal heard about it, medieval vases were quickly crafted and built!

The map "test_breakable_pot" is about showing off what can be done with the new 'breakable' type. The vases / pots are split into two visual types (pot1a-1d and pot2a-2d) and three different map sizes (20 / 24 / 32). It is recommended that only the 32 size is used for spawning item / monsters because of bounding box spawning issues. The vases can also be broken by the player jumping on top of them, a nice soft landing!

Behind the orderly display of vase types is a Hammer Hunter Ogre in passive mode. If attacked and baited the Ogre will smash all the vases with its hammer attack. This setup can work with any ground pounding monster including the golems and can be used to recreate the classic golem / vase / spawn fights of Altar of Storms! If developer mode is enabled an arrow will be display showing which velocity direction the vase was destroyed in. Like all breakables, monsters understand and can interact with all vase types when trying to get to the player. At the back of the room is four more pots showing off items spawning when broken.

ad_floorimpact_brkpot2.gif


To the left of the room is the special floor resting version with dynamic bounding box size to match its rotated angle. In the middle is a couple of knights surrounded by a wall of vases to show how monsters will path through vases to get to the player.

To the right of the room is the alternative (brown) skin for those extra dirty maps. In the far corner is a Russian Doll type vase setup, showing each type as each one is broken. Around the walls on ledges are vases with spawning items and showing the new velocity direction "item_tossvel" system to make sure the contents fall down towards the player and not get stuck on ledges.

ad_russian_pots1b.gif


The map "test_breakable_exceptions" is a small map showing special breakable setups like player resistance, fiend/jumping monster only and grenade / rocket explosives only. A working (gameplay) test map example of these special breakables can be found in ad_test8 "Drole and Gaunts".

The map "test_bal_knights" is designed to show all the new blue skins for the regular knights, the new special Justice knights and the new boss called the Judicator. All these knights can be found in the map "ad_tears".
 
Last edited:
  • Like
Reactions: alexUnder Ros
4. Misc entities

Misc model support in AD (1.42-1.7) was originally simple frame and skin setups (mostly for candles) and support for animated models from the community. The Mod Ravenkeep by Redfield changed all that by having unique model setups that required special code. All the seperate code ideas were then merged into AD 1.8 and the misc model support now has a crazy amount of new options.

ad_spiral_portal1a.gif


The map "test_misc_model" is full of new ways to setup and interact with models. The left side of the map is all the different ways to change frame animations with forward / backward loops, triggered setups and different animation speeds. The right side of the map is similar to the left but deals with model skins instead.

The central part of the map starts out with random rotation and various model examples (skulls, gibs and candles). In the middle is the altar from the chapters map showing how misc models can be setup to sit on moving objects (new spawnflags). Behind the altar is the standard random skin and frame setups for models. Above the central area is the new direction facing model code used in Tears for the spectral fish. There are also many buttons above to trigger various model animations and fading functions. At the far end of the map is the new droptofloor feature to make sure models are places correctly on terrain and lit properly.

The map "test_misc_mangle" is about showing two different ways to orient models in 3 directions using angles or mangle keys. Useful for setting up trees or foliage models for more complex rotations.

The map "test_gibfountain" is inspired by the Zerstörer mod and the many different ways of throwing gibs. The left area is dedicated to gib setups with different types (blood / poison / stone) and multiple directions (targets). The middle ground is showing the new breakable type of blood with gibs for debris, perfect for those fleshy stalactites and stalagmites elder caves. The right area is about the gib throwing system being used with different models (candles / books / skulls) and a weird explosive tarbaby setup to highlight all the different system parameters.

The map "test_marshlight" is the classic particle effect from Quoth with sprites swirling around in some chaotic pattern. Perfect for highlighting special locations of interest or items required for progression. The left shows all the original colour setups, the middle area shows different model setups and the right is different switchable setups and how they gradually fades on or off.

ad_marshlight2a.gif


The map "test_corpse_model" is all the different corpse / gore models from Quoth turned into gib fountains when damaged. Perfect for creating interactive map models that can showering the player in bloody gibs from high walls or ceiling spaces.

The map "test_fading_bmodel" is about all the different ways to fade solid or illusionary walls (even staircases) and create gigantic title cards. Very much inspired by many modern TV series (like Fringe) where chapter / title information is part of the environment. A good example of this is the intro area for the map Tears of the False God.
 
  • Like
Reactions: alexUnder Ros
5. Item/func updates

The map "test_ammo_weapons" has all the weapons (old and new) with the left side offering the default weapon pickups and the right side with different pickup names (Check out the shotguns!). The central area is full of ammo pickups with different quantities and various lid (every box should have a lid, right?) options. Either side of the spawning entrance is examples of how to override the default skins on the ammo pickups which are usually defined by the worldspawn key type.

The map "test_item_progression" is a new feature specifically designed for the map "Tears of the False God". When maps have multiple routes and progression is non linear, item pickups have to be duplicated and this system lets the mapper offer items in the same order regardless of which pickup is found first! The map offers several examples which can easily be duplicated.

The map "test_light_static" is really aimed at large maps where entity count optimization is required. By default light fixtures are simple entities which can be interactative (switched on / off etc), by turning them into static entities they no longer need to be updated/maintained by the engine. Especially useful for large signon buffer snapshot issues.

Quake maps by default are limited to 32 light styles (switchable lights) and are defined in the QuakeC progs.dat file. With support from the ericW compiler and a new worldspawn key "_compilerstyle_start2" the maximum amount of lightstyles can be extended to 52 by moving default starting point of 32 downward to 12 instead. (0-11 are default ID1 styles with 0 being the default world light)

The map "test_light_styles" shows off different ways to setup, switch (on / off) or change existing light style strings. The top floor has many different examples of how light styles can be changed mid map and my favourite is in the lefthand corner showing a way to setup a lightning storm in sync with sound effects. The lower floor (pit) shows what happens to light models when they are switched off, like for example the candle / torch models have no flame versions.

The map "test_mapvar_portals" is an example of how map variables can be used to keep track of progress through a map pack and create specific events once all the variables (map portals) have been set. Map variables are also used for the classic AD start HUB setup where portal / text are changed based on what the player has completed.

The map "test_part_trail" shows off particles effects going around in various loops, which may seem pointless because players can turn off particles! The map is really about showing a new feature for models turning to face the next path corner direction. Inspired by @Lunaran obsession with circling birds (bonus points there is one in OBUD as well) this function shows off models turning towards the next direction at different speeds.

The map "test_pg_upgrade" shows off how the bug (originally PG did less damage to shamblers) with the Plasma Gun has been fixed in 1.8 and how the PG can be changed in the worldspawn for plasma climbing trick maps! The middle area gives the player an easy shambler target to kill off and the right side is some walls to plasma climb!

The map "test_switch_shadow" shows off how light maps (this is limited by how many switchable lights can exist in a map) can be switched on or off. Originally this was going to be a faded option for func_door entities so that either state can have the correct shadows, but unfortunately I ran out of time. In its current state this feature is useful for hiding the entrances to secrets or fixing the floor shadows for (large) breakable objects.

The map "test_angletarget" is all about how to fix bmodels (func_door / plat) being able to move easily in awkward (diagonal) directions. The left side of the map shows off how different entities can be insync, how objects can be setup to move in multiple directions easily and how the move direction can be dynamic (moving destination). The central area shows off a very cool giant iris setup and the right side is how (spike) shooters can use the same system for custom directions.

The map "test_door_elevator" is about alternative ways to setup func_plat functionality. One of the major downsides to func_plat is its designed to be an upward route only for the player. It does not work well when the player wants to go downward or have the platform switchable in different states. This new system is based on a func_door with new keys and setups to behave like a func_plat but have more options and work more like a proper lift instead.

The map "test_func_train" is about having more control (the default ID1 behave is extremely limited) over func_train entities. On the left hand side is an example of multiple func_trains moving in sync upwards and next to it how the entity state system works with func_trains. The central area is an example of func_trains in sync with particles and different movement speeds. The right side of the map is how to toggle func_trains once moving and finally another func_train set piece showing of my obsession with moving crate systems!

The map "test_hazard_dmg" shows how the various map hazard liquids can be changed via the worldspawn to different values. In vanilla ID1 the hazards types are fixed in QuakeC, but AD now allows this to be changed via the map worldspawn keys.

The map "test_playerfall" show how the player fall distances (there are 2) and damage can be changed via the worldspawn to different values. Possible use is to remove fall damage for large vertical maps or create a proper chance of death from falling damage. In vanilla ID1 the fall damage and distance are fixed in QuakeC, these values can now be changed via map worldspawn keys.

The map "test_playerhpmax" shows how the code for Mega health items and player maximum health has been changed to work better and remove the various bugs that exist in vanilla code. The left side shows how player HP can be changed based on single skill level (pillars exist in the center to change skill levels) and the right show multiple skill levels. The central area shows how breakable pots can be broken when the player lands on them, how multiple Mega HPs work together and the new enemy called the SteelClaw which works like the black headcrab in HL.
 
  • Like
Reactions: alexUnder Ros
Hello

Can you remove these covers from this mod or are they part of the map(brushes)? See what it looks like if someone replaces the ammoboxes to make it look better.
 

Attachments

  • test_ammo_weapons_12-14-2022-163908.png
    test_ammo_weapons_12-14-2022-163908.png
    976.8 KB · Views: 76
Hello

Can you remove these covers from this mod or are they part of the map(brushes)? See what it looks like if someone replaces the ammoboxes to make it look better.
The lids are a separate model and If you want to exclude the lids from your version of Quake then replace the lid model with an empty model or create a HD version to go with your other assets. AD does not force lids on ammo boxes, the mapper picks the spawnflag option on the ammo items, its something designed by the mapper.
 
Its part of the Raven Keep mod by Redfield
How to setup skin animations properly? Ingame all fine with an exception of animations. I looked in MDLviewer, and both models (one for univers, and another one for runes) have skin 1 to skin 10 animations. And I can't get it work - animations. What am I doing wrong? I am sure I am messing something with keys skinstart and skinloop
*Sorry for interrapting and THANKS for helping

1673609122026.png1673609373633.png
 
When I was working with redfield I maintained a small test map to make sure stuff was working as intended.

Here is my test map with an example of the portal you want, plus some other stuff. Be aware if does require folders in certain places, so be careful how you extract the zip. Its designed to be placed in the root directory of AD because it has map/prog/sound directories.

Most of the models are from redfield, though some do appear to be from other sources as well.
Check the ravenkeep readme (included) for more details, remember the credits for the models in your docs.
 

Attachments

  • test_misc_redfield.zip
    3.7 MB · Views: 38
  • Like
Reactions: alexUnder Ros
test_pushable.png


Here is a new test map for AD func_pushable entities, showing off the different types (rock/wood/glass/metal/brick) and how they can work with the new func_insidevolume entity that can create pressure pads and specific location triggers.
 

Attachments

  • test_pushables.zip
    407.1 KB · Views: 44
test_pushable2c.png


Test Map Pushables 2 - Waffle


Pushables was suppose to be breakable v2, created out of brushwork, moved around maps and adaptable with the entity state system. Sadly this is not how they turned out and this test map is about showing what went right and what went wrong with the pushable system in AD 1.81.

Why is this a test map! It looks like a proper map!?!

Originally the pushable system was tested with a basic prototype map featuring simple cubes and no real setups. Everything looked obvious and functional because of the textures, but the test map was flawed because it did not have any proper entity setups or actual gameplay uses!

It will probably be easier to discuss what is going wrong with the pushable system rather than trying to sing the merits of what is good.

* Pushables have to be 64 x 64 map units at their base, they can be different heights but if the base is any larger the pushable will end up moving into walls or having odd collision. I am not sure if this is a problem with the QC or an engine limitation of the movetypes that are being used. This will need further investigation.

This behaviour was highlighted to me by Mukor, but at the time I did not understand what was going wrong because it worked in my test map! This obviously will limit what can be done with pushables because they have to be a certain size, but with some creative setups the pushable can be used as intended.

* Pushables cannot spawn touching anything! If they are touching walls or other solid entities or items, they will not spawn settled on the ground and have issues being pushed. The work around to this is to use func_illisionary entities and very tiny (1 map unit) brushwork gaps.

This is a hard bug to get around because not all pushables will be free floating cubes. There are plenty of situations where the pushable needs to spawn next to world geo and this is something which should of been found/fixed with a proper test map.

* Pushables cannot climb up and are always move downward. This is not really a bug but more a design consideration which highlights the need for plenty of stairs, ledges and other movement restricting world geometry.

As a level designer the use of pushables can be a nightmare because in theory they can be moved anywhere (downward) and need to be contained. The player can use them as jumping points, defence from damage or ways to break the flow of a map. The floor design is extremely important because it will dictate where the pushable can go.

* Pushables can fall through the floor or slide out of the map if being pushed off a high (>64 map units) ledge. This should of been found with a proper test map and a void check added to the code. Unfortunately this check is not present and any gameplay progress usage of pushables needs to have a reset function. This can either be the pushable is breakable or there is a switch/button that can reset everything if the pushable has disappeared.

* One key feature of the pushable system is that they can be stacked on top of each other! This is impossible to know for a Quake player because this is not existing behaviour or something seen before. This test map does feature examples of stacking pushables, but its going to be tricky for any player to get this without hints.

* Pushables do work with the new func_insidevolume system, but this new feature does run very slow and cannot catch fast moving pushables when testing if they are inside or outside of the volume. This means the volume brushwork needs to be larger than usual and ideally working with floor restricting (small drop down) brushwork designs.

Test Map Design Flow


The player starts in a small room with two pushables either side showing them what to look for in future and one directly infront via a jumping route. The player has to hit two buttons to release the lower floor and move on to the next area. This room is about showing the player that they can jump on pushables to reach higher area's and gain new routes by placement of pushables.

Once the player has unlocked the floor barrier and dropped down they are in a small area with a locked gate to the next room and one pushable wall (previously shown texture) to interact with. This area is about showing the player how to recognize pressure plates and how to use them with different pushables (upright door and simple cube).

After the pressure plates have been activated the locked door to the next area is open and the player is faced with a large gap and no obvious route forward. The gap is crossed via a pushable, but this time its hidden near the water and needs to be moved into place. This is a repeat behaviour to reinforce the idea of pushables being moveable platforms to reach higher areas.

Once across the gap the player is again faced with a locked door and a single pushable wall (previously shown texture). This leads to a large hidden area where the player has to use the pushable to reach different platforms and move forward. Again this is repeating the idea of platforming and pushables together.

The next area is a shortcut hub, with doors to previous areas opening and a single way forward to the next pushable setup.

The next room is split into two ledges with a pressure plate in the middle and two new types of pushables that can be broken and reset. The player has to move both pushables onto the pressure plate and stack them to reach the collectible goal. This is probably the hardest part of the map because its a completely new mechanic. No player is going to know about stacking pushables because they have only interacted with one at a time. This is the first hurdle of the map.

The next area is a vertical room with one pushable and pressure plate and various buttons to unlock progress. The player will be required to jump across obstacles to reach the collectible goal. This room does not feature any new pushable mechanics and its really about reinforcing previous experience.

The player will be greeted with a small sandpit area with three pushable blocks and one breakable/reset block at the far end of the room. This room is about using pushables to create a bridge for another pushable and using previous stackable knowledge. If the player did not complete the stacking puzzle then this room is going to be the second hurdle of the map.

Once the player has got a block across the pit and climbed up into the final room, they need to get up to a wall button and unlock the platform/lift up to the next area. This area is about teaching the player to use detail ledges around the room as ways to climb up and across pushables.

After the player has taken the platform up they are greeted with two pressure plates which require two pushables. One is down in the previous room and needs to be brought up via the platform/lift and the second one is in a locked area below.

The final pushable puzzle is using pushables as cover against shooters, with the player having to move down a small corridor and shield themselves from damage. Once this has been done the pushable is available to moved over to the platform/lift and be raised up to the two pressure plates.

At this point the player should have ten tomes and the exit portal should be open. If not the player can go back around the main loop and find more tomes as needed.
 

Attachments

  • test_pushables2.zip
    1.2 MB · Views: 53
When you say "new func_insidevolume system" you really mean absolutely new feature not present in 1.8.1?

The trigger/brush type has been in 1.8.1 for some time, its just no one really uses it (probably because no one really knows what it is for) The design is about detecting something inside/outside of an volume and firing a trigger. They are used in the new test_pushables2 map. They can be used to detect players, monsters and pushables, though there is lots of limitations with them. They are slow to realize when stuff is inside/outside of the volume and can only keep track of 5 things moving outside of its volume. Its best to use them in a limitation situation (exact entity name or type) and force movement restrictions with brushwork.

func_insidevolume.png
 
I think I got it. It's like trigger brush, but for objects and other stuff - there's a flag "item" I see
PS. THANKS for creating pushables2 test map. And all new things added to AD. I know some ppl say that AD has exhaustingly large amount of features, but I am personally who loves exactly that - for me the amount of features is inspiring
 
Last edited: