[Sudo] Intro
Every section prefaced by [Sudo] was written by SudoName.
In case you're wondering who I am, I'm SudoName, former map maker for Ravenfield. This guide is meant to help people interested in learning how to make "good" maps but will also include elements that may increase the quality of your map.
Here are all of my publicly released maps for Ravenfield.
I do not claim to be the best map maker in the modding community. Nor do I claim that you should follow all of information listed in this guide. It is written from my perspective and from my own knowledge of making maps.
This guide will document my own process for map making.
Tools needed for making maps in Unity are found here.[ravenfieldgame.com]
Imphenzia's tutorial on using Unity:
iwanplays's video on the basics of making a playable map in Unity:
SteelRaven's guide to creating a playable map in Unity.
This guide will not hold your hand through installing and setting up Unity nor using the ingame editor. You will need to learn how to use those things on your own. I have linked tutorials to Unity above.
Here's some advice before I begin:
Good map design is subjective.
People have different preferences.
You are not obligated to cater to everyone's requests.
Quick Factual Tips
Players and bots are 1.8 meters tall and 0.5 meters wide.
If you are using Unity to make maps, you can extract the soldier mesh from the Ravenfield tools pack with blender.
Doorways/corridors should be at least 2 meters tall by 0.6 meters wide for bots to fit through.
Bots have an easier time navigating ramps rather than stairs.
If there's water on your map, an incline is needed to climb out of the water.
You can have more than one normal and contested spawnpoint per flag.
Move contested spawnpoints farther away from the flag.
Players will spawn facing Z+ axis.
For bots to drive land vehicles, the capture point's base must be accessible and capturable while inside the vehicle.
[Sudo] Research Location/Theme
Summary: Before actually making the map, I like to come up with a location first. I try to browse through the Steam Workshop and find out if anything similar to my idea has been done before. If it has, I check out that version and see what I can do differently and make it suite my preferences. Research can be done through looking at images like floor plans or stock photos, finding videos of a location, playing a game that has done that location before and many more ways.
Let's look at my BR map, Crest Isle, for example.
BR maps have been done before, since near the launch of the steam workshop in fact.
Kingsland is one of the most well known BR maps in the Ravenfield community.
Yet I still felt it was unsatisfactory. While playing with 60 bots, with modded skins and weapons, my framerates dropped to around 30. Kingsland's rotating spawns are a great mechanic, but I find large maps unwieldy to play. There is lots of empty space between the capture points, and if you're unable to find a vehicle, there's quite a bit of walking.
I wanted to improve upon what I saw as flaws in Kingsland and created Crest Isle.
[Sudo] Creating/Acquiring Assets
Summary: After doing research on a location, I usually have a general idea of what objects I want in my maps. So the next step is to make or acquire those assets. I use Unity for map making, so I have more options to choose from when it comes to getting assets. I mostly make my own models using Blender, but sites I would recommend for 3D models would be:
Unity Asset Store[assetstore.unity.com]
Sketchfab[sketchfab.com]
Free3D[free3d.com]
For ingame editor maps, you are limited to using the ingame assets and primitives. Primitives are very powerful shapes, and complex things can be made with them. It all depends on your imagination.
This is the Hungarian flag recreated in the ingame editor by Heavy_nyúl 卩千乇尺ᗪ, from their map "Battle of Budapest 1956".
[Sudo] Map Building
Summary: Once I have the assets, I start building the map. I usually try to do what ever is the "icon" of the map first then build around that icon. I define the icon as what players will think of when they remember the map. An icon doesn't have to be a single point in the map; it can be the location or even a mechanic.
For example of an iconic mechanic, let's look to Crest Isle again. The icon was the blimp spawning mechanic. Each blimp belonged to their respective team. The blimps circle around the map and have capture zones attached to them, so spawns were random. I made terrain large enough to accommodate spawning from the blimp but small enough to accommodate travelling on foot. Each flag was close enough to each other that bots and players without vehicles can capture them while on foot and not be at a disadvantage.
[Sudo] Map Building (Indepth & Highly Subjective)
This section will dive deeply into my core ideas of good map design. It is highly subjective, purely from my own perspective on fun map design, and is not the only way to build maps. If you wish to try something different, please do so! It is your map after all.
Please play some of my maps first before reading this section to understand any references I make.
Environmental DesignThe most important aspect of making maps is making unique environments. In my original maps, I try to make every location that a battle will likely take place, look and play different than other locations in the map. In Club Night // Afterparty, every capture point is visually distinct and offers different objects to use as cover. It leaves a lasting impression on the player because their experience with the map will be different than another player's. To make each area different, I try to imagine what the environment and its surroundings would be like. If I get stuck imagining, I often turn to research again and look at more images of the location I'm trying to build.
StorytellingFew will notice this, but I include subtle hints of environmental storytelling in my maps. When designing, I try to think of what the location was like before the battle started. That includes how the people may live, work, or just spend their time in that area. I think about "what would make the environment feel more realistic." This attention to detail is known as verisimilitude or immersion for you gamers. I consider what people would eat, do as a job, how they spend their free time, etc. The storytelling does not need to be done on a micro scale and considerate of every person. It simply needs to imply the location is inhabited.
Let's turn to Crest Isle again.
Near the fisherman's hut is a drying rack for fish as well as a buck with some fish inside it. There is a flower in a pot facing the sun and a photo frame is pushed down. A few meters away from the hut is a grave as well as a matching flower. It's subtly storytelling that leaves a lot to the imagination, but help realizes the location.
PlayspacePlayspace simply means the playable area in a map. I always block off the boundaries of the map to prevent bots and players from walking off the edge and falling into an endless abyss. Boundaries help realize a map by giving players a sense that the environment is larger than it appears, as if players are only in a small portion of a larger world.
VerticalityWhile not every map needs verticality, it provides another dimension to the map. Aside from Unity's x-axis and z-axis, the y-axis becomes another thing for players to consider. Verticality creates more playspace and offers new routes for players. The simplest way of including vertical playspace is by having areas taller than others. A more complex way would be building the interiors of a building that players and bots alike can navigate. (You can probably guess which of the two options I chose to use in my maps.) The building interiors take more time to create, but offer even more playspace than just a hill.
Building InteriorsMy buildings always have more than one entrance. If an enemy were defending a flag inside a building with one entrance, the building becomes a chokepoint and would be difficult to capture. Having multiple entrances encourages players to explore different routes in case one is guarded by enemies. If you're feeling extra spicy, make the roof accessible and provide cover to encourage bots to snipe from the rooftop. Roofs also improve spec ops game mode compatibility because ammo caches can then spawn where players have access to them.
Flag and Spawn LocationsFlags should always have cover within their capture radius. I always try to have at least two normal spawnpoints per flag and move them so that bots and players spawn in cover. For contested spawnpoints, I also have two per flag. The contested spawnpoints are moved to be inside the protect range and placed in opposite directions of each other. When bots spawn at a contested point, they can attack the capture point in different directions making the point more difficult to control.
[Sudo] Optimizing Unity Maps
LODsTo improve performance on my maps, I use Level of Detail (LOD) models[docs.unity3d.com] and occlusion culling[docs.unity3d.com] .
LOD refers to a game object that switches its model depending on the camera's distance from the game object. When farther away, the object's model switches to a lower polygon version to help improve performance. When close, the object's model becomes more detailed.
Refer to LMH Poly's tutorial on creating LODs for Unity in Blender here.
Occlusion CullingOcclusion culling disables rendering of game objects when they are obstructed by another object.
In order to use occlusion culling, objects must be marked as "Occluder Static" and "Occludee Static."
Then open the occlusion culling window, found under Window > Occlusion Culling.
Then click bake.
[Sudo] Playtesting
Summary: I export my map and play it in each gamemode. I try to make sure the bots and players spawn correctly and that any gamemode with different mechanics (Skirmish and Spec Ops) work correctly. I run around the boundaries of the map as well to see if the barriers I put in place are working. Any bugs, such as missing collisions or spawning inside a wall, are noted and fixed. I also try to take screenshots of gameplay to use in the workshop slideshow.
If I feel like the map lacks something, I will likely expand on it. Sanatorium, my Hallowe'en map, was originally just the courtyard and the upper and lower square corridor. The map was tiny during the initial playtests which made me realize that I needed to expand it. I added the collapsed corridor, surgical room, and cafeteria, but playtesting made the map still feel too small. Then I decided to make the exterior playable and with multiple entrances. Playtest during that time made the map feel appropriately sized.
[Sudo] Release To Workshop
Summary: Make a thumbnail, upload screenshots, and write description.
When I write descriptions, I include a small snippet of "lore" to the map. The next thing that gets added is the recommended bot count. I try to offer a range so people with varying computer specs can play it comfortably.
Having a section crediting asset usage is VERY ENCOURAGED SO MUCH THAT IT MIGHT AS WELL BE A REQUIREMENT BEFORE UPLOADING YOUR MAP TO THE WORKSHOP. I say this because some free asset packs require the user to credit the asset maker. It's also good form so that other map makers interested in those assets can find and use them in their maps as well.
Lastly, I include tags. Tags exist to help users find my maps. I type words vaguely related to what the map's location as well as ideal gameplay type (typically CQB).
[Sudo] Destructible Glass/ Objects (Unity Only)
The prefab can be found in:
Tug's Tugboat discord server, under the pinned messages in the #projects channel.
Ravenfield's official Discord Server, under the pinned messages in the #map-making channel.
Unzip the file and move the folder to your assets folder.
Drag the prefab into your scene.
You can find it by searching "Prefab breakable glass" in the search window.
Open the dropdown menu of the prefab in your hierarchy window, and select all of the "glass_cell" objects.
Type "destruction shrink" into the search window, and drag and drop the destruction shrink object into the "animator" tab in the inspector window.
As you can probably guess, you can make more than just destructible glass. This technique can be applied to buildings as well. You should experiment with the destructible script and use the prefab as a basis to learn from.
How it works:In the Ravenfield toolspack is a script called "destructible". If you add that script to an object, it makes that object destroyable.
What I did is add the object with the destructible script to the "Disable On Death" parameter. Then, for "Activate On Death" parameter, I add destroyed versions of that object.
The rigidbody component makes the fragments fall because of gravity. For a rigidbody to work, the collider must either be one of the primitive shape colliders or a mesh collider with convex enabled.
The Lifetime script makes the object despawn after a set amount of time. Despawning improves performance since the fragments are not a part of the game and physics no longer need to be calculated for them. The animation helps hide the despawning because the fragments shrink in size. Without the animation, the fragments would just disappear without warning.
I made the glass shards with Blender's Cell Fracture Addon.
To enable the addon, go to Edit > Preferences > Addon
Tick the checkbox to enable.
I create a cube, then press F3 and search for "cell fracture."
This menu will pop up. Tinker around with the settings, but I HIGHLY recommend lowering the source limit to less than 12. Source limit determines the maximum amount of fragments that will be created. More fragments that are made means the more objects you need to add to your "Activate On Death" parameters.
Edit: Just place your broken pieces in a empty game object and the use that game object in you "Activate on Death" parameter. Wayyyyy easier.
[Sudo] Doors, Animated Scenery Camera, & Performance Friendly Rain
DoorsIt's possible to make doors that swing open and close in Unity by using the Hinge Joint component. (Play Sanatorium for a demonstration[gfycat.com] )
I recommend watching Speed Tutor's tutorial on creating a door with a hinge joint.
This screenshot shows the components used for making the doors in Sanatorium.
To make bots be able to use the door however, you will need to use pathfinding links.
Because the doors have colliders, the bots would normally see the doors as walls.
With a pathfinding link, the bots will see the areas as traversable because they can walk through the doors.
The doors can be shot open and will not leave a floating bullet hole after being shot.
Moving Scenery CameraIf you've played Club Night, you may have noticed that the camera for the loadout selection screen moves before the player spawns in. This is done through Unity animation.
You will need the animation tab in Unity to make animations.
I recommend watching MrQboll's tutorial on the basics of Unity animation:
Animations can be done on more than just the scenery camera. How do you think I made the racing blimps in Crest Isle, after all? ;)
Performance Friendly Heavy RainUsing the Follow Main Camera script, it's possible to make a rain effect that is performance friendly.
To add the script, you'll need to right click in the Project window, import package, then select utility.
Next, make a rain particle system. There is a rain prefab provided in #map-making pinned messages in the Ravenfield discord[discord.gg] .
You can also follow this tutorial by Fast Solution.
Place a cube underneath the rain particle system, and parent the rain to the cube.
Then give the cube the Follow Main Camera script by adding it as a component.
Make sure to disable the cube's renderer and collider, or else this happens.
You can also just use an empty game object instead of a cube, I recommend the cube so it's easier to see where it is in relation to the rain.
[Sudo] Flag Capture Animations (Unity Only) (WIP Section)
Capture Animations are animations that play depending on which team controls the flag.
In the example, the radius rotates around the flag and changes color depending on which team controls the capture point.
Give the object you want to play the animation an Animation component. (Labelled 1 in the image)
Make sure to untick the "Play Automatically" box. (Labelled 2 in the image)
Animate the object as you please. Refer to the video guide from the previous section to get an overview of how to use Unity animations.
One object can have different animations depending on which team holds the flag by using different animation clips.
New animation clips can be made by clicking the dropdown and clicking "Create New Clip" (Labelled 3 in the image)
For the example above, the animation is a rotation along the y-axis. The color changes by editing the material's color. Each clip has a different color because they each represent which team controls the flag.
The curves were also edited to make the animation loop near seamless. The first and last frames' handles were dragged to match each other's respective positions.
After your clips are made, turn the clips into Unity Legacy Animations.
Find where you saved your clips in the project window then go to the menu and click "Debug."
Click the "Legacy" tickbox.
Then go back to the menu and click "Normal" to return to the normal view.
The wrapmode determines whether an animation will loop or not. Choosing once will make the animation only play once while loop makes the animation repeat itself.
Go to your capture zone that will activate the animation.
Click on the "Capture Animation" dropdown to open it. Change the size in Animators to 1.
While the capture point is still in your inspector window, drag the object that has the Animation component into Element 0.
For the Neutral, Blue, and Red Captured Animation parameters, type in the exact name of the animation clip you want played for when which team controls the flag.
It is possible to do more complex animations using Unity Legacy Animation.
Upon capturing the flag, a rocket is launched into the sky.
Multiple objects can be parented to a gameobject, then the parent gameobject can control the animation of its children.
This guide won't be covering such complex animations, but you should try to experiment and learn what you can and can't do!
Outline:
What is Flag Capture Animations, and why would one want to use it
Examples of maps that use it: Sofa's Countdown map (missile launch) and Vovcheg's Soviet Airfield map (capture radius with team color support)
Notes:
Need(? do more research on this) to use Unity Legacy Animation
Add Animation component NOT "ANIMATOR" before making animation
Disable "Play Automatically" in the animation component
Hyphens, underscores, and spaces in animation filename affect?
Pics to Make:
Make clips for whatever team
Change animation clip to legacy
Where Capture Animation is in capture point script
Drag animated object into capture animation
How to set up parameters
[Sudo] Missing Cloth Flag Fix! (Unity Only)
Made a map in Unity but the cloth physics flag don't work?
Here's a prefab that will work guaranteed!
https://drive.google.com/file/d/1tVpnu_Pbokla21jEyFi40_e4Y_-GUaxm/view?usp=sharing
The cloth flag is saved as a .blend file in the tools pack.
Unity 5 can only recognize .blend files if Blender 2.79 is the default app to open .blend files.
If you use a newer version of Blender, or don't have Blender installed at all, Unity can't read the cloth flag.
I fixed the issue by converting the cloth flag into an .fbx and then manually aligning the new flag.
.fbx files can be read because it's a common file format for 3D models and is supported by all versions of Unity.
Final Words From SudoName
Thanks for reading through this guide. It's pretty subjective and doesn't cover vehicles or large maps, but some information can still be applied. If you disagree or think some information wouldn't work well with your style, then don't follow it. It's your map, do what you want with it! :)
If you're wondering why I don't make as many mods as I used to, it's because I don't find making them interesting for the time being. Making maps was just a fun way to past the time for me. I released the stuff because I thought the maps were fun and that other people would enjoy them.
"If it's not fun, why bother?"
I don't take suggestions by the way. If you leave a comment suggesting something on one of my mods, don't expect a reply.
[Starstrafe] Microguides
The following microguides were made by Starstrafe. The guides were re-uploaded to this guide with Starstrafe's permission. Transcriptions written by SudoName.
Microguide: Spawnpoints
Transcription- Spawnpoints automatically connect to their nearest flag, and will designate where re-spawning bots/players will appear.
There are 2 kinds; Normal spawnpoints will spawn bots when the flag is safe, and Contested ones will only spawn bots when the flag is being captured.
HOWEVER: placing them like that can still lead to problems like bots appearing just before you start to cap.
So get creative with their placement, and never forget to add them!
Microguide: Turrets
Transcription- Turrets go inside a flag's "protect radius", and will appear once somebody owns that flag.
Bots will use them while defending. They are very useful, HOWEVER: they can become overpowered if misused. Do not spam. 1 per attack angle is usually enough!
Do not cluster; they may hit each-other.
Do not over-protect; they may become too hard to hit, or may risk hitting themselves with their explosive bullets.
And: while it is tempting to place one in a "perfect" vantage point. maps usually play better when turrets have strategic blind spots!
Always remember this!
Microguide: Avoidance Boxes
Transcription- Used for: Fully blocking off all bot navigation. AVOID USING THEM.
A.V. Boxes are like barriers only visible to bots;if the player walks through one, their squad will be unable to follow. This sucks. It also limits the bots' natural ability to find their own path, which can make a map stagnant.
Then what are they for? Only use 'em in "emergencies" when you have, say, a cliff that is 99% un-climbable, but the bots find a way to climb anyways.
Otherwise, if you must block an area, use physical obstacles!!
[Tug] The Seven Stages Of Map-Making
Hello, Tug here to provide some very insightful advice 100% guaranteed to help you make the map of your dreams:
Just follow my seven stage guide to map-making, and you'll be crying in no time:
The conception of a map idea
The modelling of said map idea
The regretting of said map idea
The dilemma (continue or scrap it)
The torture of following through with it
Release
Repeat!
[RavenWaffle] How To Make A Map Atmospheric
This can be achieved in different ways
When, Where, How, and What
-The most obvious one is to make a background for your map, a good one is to tell the player When was it, where they are, how did they get there and what is happening
For example: in my Radio map, trees, buildings, electric Pylon can be seen and the sound of static radio noise can be heard
+The trees indicate that the player is in a forest
+The sighting of Pylons and buildings indicate that they are not far from civilization
+Take note of how some Pylons are broken down and the distance Cooling Tower is missing a big chunk of itself, they indicate that the place is abandoned
+The sound of static radio noise from the main attraction of the map, the radio tower, helps in creating this abandoned theme mentioned above
That covers where you are, what about how you got there
When you first spawn, you spawn near a crashed APC which indicate that your APC was crashed into the station and you now have to stay there for the night (from the dark sky and dark lighting)
you know where you are, how did you get there but you still don't know what is happening
I added sounds to the APC, no not the engine sound but the sound of Morse Code, 3 short 3 long 3 short which indicate that you are in immediate danger
That's all for creating a map ambiance!
Get Creative!
[Hans] Crafting An Enjoyable Zombies Experience
Hi, I'm Hans and I'm the guy behind the CoD zombies maps and I'm to share some ideas on creating zombie themed maps.
Personally I highly recommend using baked lighting on zombie maps since the outcome results in a more moodier atmosphere and hence visually looks better and works to the benefit of performance whilst in realtime lighting, the results don't always hit the mark.
Pathfinding is critical to having the zombies chase and attack the player. Without the proper pathing, it could seriously ruin the experience. Make sure that the zombies can move through tight corners to give that added tension of being chased.
Fog effects are another way of showing off the atmosphere of a map and it completely transforms feeling of the map.
Verrückt without fog -:
Verrückt with fog -:
And finally, don't just stick with traditional survival gameplay, try incorporating scripted events via the animation flag trigger in the capture point to open doors or set up traps. Animations don't have to be complex either since simple keyframe animation can be achieved in Unity itself.
And remember, keep fighting the good fight.
Source: https://steamcommunity.com/sharedfiles/filedetails/?id=2275430861
More Ravenfield guilds
- All Guilds
- - Ravenfield
- RAVENFIELD THE SERIES: SEASON 2
- WHAT TO DO AFTER QUIT RAVENFIELD
- Guide to NefariousDrH's First Unholster Script
- Railgun
- Ravenfield?
- Ravenfield - Landing Gear Troubleshoot
- Ravenfield - Secret Weapon Locations
- Ravenfield - Helicopter Guide