Hi all, to follow up on what
@Azherae
said, while procedural generation of content in the context of an MMO is within the realm of technical feasibility, there are a lot of non-obvious challenges which make it difficult in practice.
1. How procedural terrain generation works
In order for this to make sense, I need to give a brief explanation of how terrain is normally generated in procedurally-driven games.
The most common technique for dynamic generation of terrain in video games utilizes computational tools call noise functions, most commonly
Simplex noise
. These generate continuously-changing 2D or 3D fields of numbers, which can be used as inputs to terrain heightmaps, or voxel-based terrain generation functions.
Through applying mathematical operations and multiple layers of noise functions with different parameters, game developers can refine their outputs, resulting in something more tailored to the sort of game environment they're interested in creating. With sufficiently complex algorithms, this can result in some interesting, varied landscapes, which are utilized to good effect in games like Minecraft or No Man's Sky.
However, it's important to emphasize that this sort of procedural generation is, at its core, unpredictable and random. While programmers can influence how terrain is generated, it's not fundamentally possible to get results which will consistently conform to any given set of requirements for gameplay.
2. Non-obvious pitfalls in the context of MMOs
An MMO like AoC has a specific set of requirements for its gameplay areas. Players need wide, relatively open areas to fight mobs, they need the capacity to easily traverse between areas of the world, and they need a certain, logical distribution of resource gathering points for things like fishing and harvesting. In the context of a large, procedurally-generated island, there are some significant technical challenges to achieving these goals. In no particular order:
-
1. Does the island have enough wide, open areas for players to fight in?
-
2. Are there areas of the map which players can get stuck in (e.g., a drop into a canyon with no way out)?
-
3. Are there large areas which are inaccessible (e.g. a plateau with sheer cliffs surrounding it)?
-
4. Do randomly-placed props (trees, rocks, plants) on the island clip through geometry, or display in other janky ways?
-
5. Do any NPC spawn points or resource gathering nodes intersect with props or with terrain features?
-
6. Is there a clear route onto the island from the ocean?
-
7. Will player-operated ships get stuck in shallow areas of water?
-
8. Can the generation system create the required gameplay systems (AI pathfinding nodegraphs, collision geometry) in a reliable way?
-
9. Is this collision geometry generation reliable enough to prevent any spots where the player will fall through the world?
With sufficiently complex algorithms and enough development time, I believe most of these problems could be overcome in the majority of the cases, and manual QA of generated areas would help screen out many islands with obvious technical flaws. However, there's still an irreducible level of inconsistency in this approach, and getting sufficiently good results requires a lot of investment in the procedural generation systems. It's also very easy for more subtle flaws in the generation of any given island to be missed by QA and make their way into production.
Even games with a heavy emphasis on procedural content generation sometimes misstep on these points, either by removing enough of the randomness from the proceed that everything feels kind of generic and "samey" (e.g. No Man's Sky at launch), or by creating areas of content which are sometimes unplayable (too many examples to list here).
Since AoC's main focus is on hand-authored content, I'm therefore not sure if it would make sense for Intrepid to dedicate the technical resources necessary to implement this type of system in a sufficiently reliable way, at least at launch.
3. What game developers can do
While full procedural generation is probably outside of AoC's scope, there are still ways to utilize procedural tools and algorithms to help expedite the level creation process, and blend hand-authored and procedural terrain.
One approach sometimes used in games is to start from a piece of terrain created by a noise function, and refine it into a usable gameplay space via conventional terrain sculpting tools. This can be a good way to quickly iterate on content, and ensure that no areas of the world have significant technical flaws. This kind of workflow has been used in many open-world RPGs in the past (Morrowind, Oblivion, etc).
Another approach is for a level designer to define the broad shapes of a landscape, then allow algorithms to refine the terrain, applying processes like erosion, or applying textures and props to areas of the landscape based on slope angle or a noise-driven biome system.
From what I've seen in the alpha so far, I believe AoC's devs are already utilizing techniques of these types of techniques. UE4 has fairly sophisticated tools for terrain generation natively, which make intermixing algorithmically-driven and hand-edited terrain feasible (e.g.
simulated erosion
,
foliage painting
).
4. Conclusion
This is a case where, although dynamically-generated islands would make for an interesting system, the technical complexity most likely outweighs the benefit unless Intrepid plans to focus heavily on this type of content.
Areas like islands can be generated by hand relatively quickly by level designers, often with a greater degree of quality and visual interest (hand-placed props, environmental storytelling, etc). Based on my experience, putting together a small island without any unique assets or gameplay scripting is something that a designer could finish within a day, meaning that even a relatively extensive archipelago could be put together in a reasonable span of time.