With so many areas of the game coming along I wanted to play with one of the few areas that I haven't really focused on before... world building.
Up until now, we have been more or less using demo scenes from assets that we have bought from the Unity asset store. A few terrains were generated using Gaia, but nothing that felt like something we'd include in the game.
Luckily over the past two years I have been picking up tons of assets whenever there is a major sale on the Unity Asset Store, so I have a pretty good set of models and tools to start with.
Designing A Zone
This part was pretty tough for me. Honestly, I do not consider myself much of an artist, but I do feel like with enough iterations I can come up with something that is passable. I'm also noticing that my results are 10x better if I first sketch out my design before trying to build 😛
With that in mind, lets take a look at the zone I created in respect to the rest of the world. NOTE! The following picture of the world needs quite a bit of tweaking before we can call it complete (the large river system in the center continent is likely to change). In fact, this is pretty old version that does not contain some of the changes we have already made.
For example, although there are two connections between the middle continent and the east continent, we have since decided to make one connection between the continents. This connection would be made in Cape Commons, the zone that I will be reviewing in this article.
With that in mind, lets look at some of the characteristics I wanted for Cape Commons:
- Connects directly to a Human starting city
- Has a tunnel which is one route to head west across the continent
- Given the placement of merchants, this tunnel may serve as a commonplace for players of all alignments to sell wares.
- Alongside the ocean.
- Connections to the east continent
- We decided to have the city be up high on the cliff-side. Therefore, rather than having its own dock, the port will be located in Cape Commons. Evil aligned characters will still need to sneak through onto the boat which will take you to the east continent as NPCs within the port will be generally good-aligned.
- Fair amount of trees, but hardly enough to call this zone a true forest.
- Orc camps that groups players can use to grind from level ~5 - 15. There should be multiple spots to support multiple groups grinding at the same time. This would be opposed to 1 off "bears" or "wolves" wandering around the zone which can be handled by a single player. The camps will require 2-3 players.
- Connects to a dungeon that is optimal for players between levels ~ 6 - 15
It was a bit tough knowing where to start, but in the end I created a rough outline of the zone using the vanilla tools in Unity. I decided to take this route rather than using procedural tools such as Gaia given that I will likely be creating 90% of the content and will want to have some consistency in the areas that I do have to manually modify. However, after I had the initial shape in place I began using 3rd party tools to speed up the process.
In the above picture we can see the end of result of my first week of terrain building. To give a rough overview of the creation process:
- Created a raised corner of the zone. This had no edges -- the terrain was flat. It was simply raised higher than the other 3 corners.
- Add height around the raised section to create the beach.
- Raise mountains around the edge of terrain
- Use AQUAS 2020 to create the ocean
- Stamp mountains/hills/etc using Gaia 2 - Terrain & Scene Generator.
- Use Digger - Terrain Caves & Overhangs to create tunnels and overhangs.
- Use Gaia and GeNa 2 - Terrain & Scene Spawner to procedurally generate textures, grass, trees, flowers, etc.
- Use Path Painter™ to quickly add roads
- Use Octave3D-Level Design to place/snap objects into place
- Use R.A.M - River Auto Material to create river & lake
In the end I used quite a few tools to help detail the zone. There are many things that either can't be done natively in Unity or are simply made easier with 3rd party assets.
For example, it wasn't until the most recent release that you could "punch out" holes in terrain. And even then, the feature feels pretty lacking. Whereas the Digger tool made it very easy to quickly build the tunnel which will serve as the entrance to our desert zone as well as a trading hub.
Additionally, it was easier to give some areas of my zone a natural look and feel by using Gaia to carve out / stamp in mountains, hills, etc and to generate the initial set of textures, trees, grass, etc.
To give an example of how this works, below shows a stamp being used to add a mountain.
Similarly, I can invert the same exact stamp and use it to carve out land.
Finally, I spent my last day or two adding in objects and playing around with Enviro - Sky and Weather, a Volumetric sky/weather asset that I picked up during the holiday sale. Below is an example of the orc camps during a storm.
I'm really excited to start tracking in game time on the server and synchronizing weather between all players, but I think this is a feature that can wait until after we finish the first version as described in our roadmap.
Honestly there is a ton of polishing needed before the this zone is complete. Just to name a few things..
- Grass needs to be cleaned up around many objects
- Need more objects/detail around the city/tunnel.
- Need a lot more environment objects -- driftwood on the beach, rocks across the terrain.
- Borders so folks can't swim off of edge.
- Finish docks/port that will serve as a connection between continents
- Add better particles to waterfall
- Add zone line to low level dungeon
Even though there is a lot to do, I'm pretty satisfied with what I have so far given that I really did not much have experience beforehand. Additionally, this will be enough to get a simple demo going where we have a single town, a larger starting zone to level up in, and a dungeon to crawl with harder mobs, named placeholders, and rarer loot.
I could spend a few more weeks polishing up this zone, but instead I am going to get more familiar with other areas that I just haven't touched yet -- rigging armor to my character models and animating non humanoid models.
I'm sure I'll have an update to share on those topics soon 🙂
Until next time..