Creating Your Own 3D Battle Map
Starting with Version 2023 Infinite Realms allows you to express your creativity by designing your very own 3D tabletop battle map! This guide is here to help you get up and running.
Requirements
You will need to download and configure some tools and project data to get started. This section describes in detail how to setup your scene creation environment.
Before you begin, make sure you have downloaded or cloned the Unity project from our GitHub repository. It contains all the required scripts to compile an .irscene file and some demo scenes to play around with.
You will also need the Unity3D 2021.3 Editor. Unity is a commercial product, but the Personal plan is free and totally sufficient for this purpose. You can get it at unity.com.
To completely avoid compatibility issues we recommend using the exact same sub-version Infinite Realms was built with: 2021.3.27f1. You can get it in Unity Hub -> Click Install Editor -> Archive Tab -> Go to Website -> Select Version -> Click Unity Hub
As Infinite Realms is a cross-platform app all scenes will be built with shader compatibility for both Windows and macOS. To this end it is required to manually install Build Support for the platform you are not on. This will be Windows Build Support (Mono) on macOS and Mac Build Support (Mono) on Windows.
You can do this in Unity Hub -> Installs -> 2021.3.27f1 -> Gears -> Add modules
What is URP?
Infinite Realms uses Unity's Universal Render Pipeline (URP) version 12.1, a powerful graphics engine that allows for highly customizable and efficient graphics rendering.
It is important to note that the URP settings in this project should not be changed. Altering these settings can lead to unexpected behavior and may make your map incompatible with the Infinite Realms app.
Also, keep in mind that not all Unity assets are compatible with URP. If you are using assets from the Unity Asset Store or elsewhere, ensure that they are URP compatible or easily convertible.
There is a lot of stuff out there that only supports the legacy BuiltIn pipeline or the High-Definition Render Pipeline (HDRP).
Let's Get Started!
Step 0: Learn Basic Unity Level Design
A 16 minute video on how to create terrain. You can ignore the last 3 minutes as Infinite Realms takes care of fog, skybox and postprocessing.
When importing models for the BuiltIn pipeline, all materials will be pink. The last part of this video explains how to fix this issue.
A short video showing how to easily place objects in your scene.
Teaching you the intricacies of designing compelling Unity scenes would go far beyond the scope of this guide. But that is not really a problem as there are lots of very good channels and blogs out there to teach you everything you need in short order.
Anyway, in case you never touched Unity before it is most likely a good idea to have a look at the basics first as it can get very confusing very fast without some background.
Concerning scripting: You may stumble upon this in most tutorials at some point but you will not need to learn C# just to build a battle map. On the contrary, for security reasons it is not even possible to include custom scripts in a scene bundle.
Step 1: Open the Project
After downloading the project, open it in Unity. It is easy to make sure your Unity version is compatible with the project as the Editor will warn you if the version you use is different from the predefined version.
Step 2: Load the Demo Scene
To get you started, the project includes a demo scene named Dark Lands. You can modify this scene or use it as a reference for creating your own. To load the scene, navigate to /Assets/Demo/Scenes and double click the Dark Lands scene.
Step 3: Customizing or Creating Your Scene
If you choose to modify Dark Lands, you can start by deleting or moving around the existing 3D models.
To add new models or elements to your scene, you can either create them in a 3D modeling software or download them from various online resources. The Unity Asset Store has lots of free stuff and is a good place to start as it has the simplest workflow, but make sure to check whether the assets are URP compatible.
Other resources like Sketchfab also offer a vast library of free 3D models. Just download the model as .fbx, unzip, then drag and drop to your Assets folder.
But be warned! Using bare models usually requires some more work as the automatically configured materials likely don't work out of the box and you may have to manually assign textures, set transparency, change some values like smoothness and so on.
Dark Lands
The demo scene has a lot of stuff in it that will appear in most 3D battle maps: terrain, vegetation, details (rocks) and some carefully placed and sized models.
There are even point lights and audio sources at the tree stump, the menhir and the portal.
Sizing & Compatibility
Mind that one Unity unit is 1 meter or roughly 3 feet when sizing your models in the scene. For reference you can temporarily create a capsule in your scene and scale it to 1.8 on the y axis to represent a big human.
When the compiled scene is loaded into Infinite Realms the camera view will initially be placed at x = 0, z = 0 and y = 20+, depending on player screen settings.
This YouTube video guides you through the key steps of this tutorial. Check it out, it's just about 5 minutes long!
The ground level in Infinite Realms can be set between y = 0 and y = -50. It is generally a good idea to roughly limit your terrain to these vertical constraints and not produce too many unplayable areas or big hills poking out of the grid.
The horizontal playable area is 250 * 250 units, 125 in every direction from the center starting point.
In our own workflow we create a central 300 * 300 terrain placed at x = -150, z = -150. This terrain will be painted and set up in detail to look pretty in 3D View, even near the edges. Then we surround the area with more terrain tiles on all sides that have less detail. This gives the scene more depth and can block direct view on the empty horizon using hills, mountains and trees.
Limitations
As mentioned it is technically not possible to include custom scripts in a scene package. Also some components will automatically be deactivated to not interfere with Infinite Realms systems. These include Cameras, AudioListeners, WindZones and directional Lights. You can use Animations, AudioSources, all other Lights and URP compatible shaders & ShaderGraphs.
Speaking of shaders: Another thing you may notice is that the vegetation included in the demo does not react to wind. This is due to us not having access to (or time to build) a free quality URP compatible foliage shader. Using trees and grass from creators like NatureManufacture or SpeedTree will fix this. But it is not possible to include these in an open project due to licensing.
Step 4: Build Your Scene
When you're happy with your scene, it's time to pack it into a bundle that can be loaded into the Infinite Realms app. The project includes a script that does this for you.
Just navigate to the menu bar and click on Infinite Realms -> Complete Scene Build. This process will take a while and create an .irscene file in your Assets/Output folder.
Step 5: Test Your Scene in the App
Finally, load the bundle into the Infinite Realms app and see your creation in action!
Remember, the goal is to have fun and create something uniquely yours. But why not share your map with the community on Discord? We would love to see your work! Happy map making!
Examples
While developing the Create project we added the option to load the 3D map files compiled by the included scripts to Infinite Realms. To test all of this we created two new maps using this new path.
Even if you are not interested in building your own 3D maps you may still want to use these maps in your games. Here they are!
Download Unity 3D scenes
Dark Lands is the demo scene included in our Create project that includes all the tools you need to build your own Infinite Realms 3D scenes.
We are all about inclusion, so here is the vanilla version of the map for all non-creators:
Danny originally built Forest Pond to test the new 3D scene file loading feature in 2023.0.2.
We have added some points of interest and visual candy to get you a nice, full-features Infinite Realms scene: