This two-post blog series springs from our experiences developing the â€śLet's Grow!â€ť app, with a focus on the implementation and consequences of the chaotic natural growth system. In â€śPart 1 â€“ Putting nature in a box...â€ť, I outlined how our natural growth system works. In short, for those who skipped the rather techy first part, the natural growth system is a self-organizing system, that allows plants to grow into unique versions of a given species each and every time a seed is planted. That is to say the resulting 3D model is not pre-defined by any plant asset or model â€“ instead it is procedurally grown by the chaotic self-organizing system. And in addition, by changing the (100+) variables in the plant genome, we can change the appearance and growth tendencies of the plant, in reality creating infinitely many different species to grow.
In this second part, I will take a look at some of the consequences of implementing this growth system to work behind the scenes and try to answer the question of â€śCan chaos empower the user experience?â€ť from our point of view.
So what happened?
Well... To me, the implementation of the natural growth system had several interesting consequences and it seems that these chaotic systems hold a lot of possibilities in regards to design and user experience, of which I just wanted to share a few examples.
Having a system this powerful to govern the growth of the 3D plant models, meant that creating beautiful, natural-looking 3D plants within the app is easy â€“ anybody can do this, because all it takes is that you water the plant and they will grow by themselves. This raised the bar on what the creations would be like, offering not only a more appealing and aesthetically pleasing experience, but also a different focus for the creative challenge. This was exactly what we were aiming for, as this allows the player to keep their creative focus on being creative with plants, rather than struggling with well-known hardships of 3D modeling or having to settle for a simple â€śbuild-by-brickâ€ť experience.
Apart from setting the player free to be creative, the chaotic natural growth system also guarantees a much higher degree of realism and hopefully engagement, as the plants themselves will actually feel alive and do their own thing on the side, while the player uses the creative tools to shape their creations. These growth intentions, and the shapes and characteristics that emerge from this, are intended not only to challenge the player to master their plants, but also to inspire them to make creations that they would not have thought to create otherwise â€“ and judging from our feedback, it seems to be working. Essentially we can give the player the experience of working with the plant, not on the plant.
Another example is that, while designing the â€śCreate stemâ€ť tool, that allows the player to draw new stems onto the plant by tracing his/her finger across the screen (while rotating the view to draw in 3D), we found that by working with the Natural Growth system we could do much more than just draw a new stem.Â
Screenshot of new stem being drawn (dotted line)
We ended up building the â€ścreate stemâ€ť tool, so that what the player does is actually request growth from the growth system, rather than draw it directly. The tool then influences the way the plant distributes growth resources, to ensure that what the player creates is actually grown. At the same time it also impacts the growth environment, by creating new attraction points weighted so that the plant favors these over natural attraction points, to make sure that the growth is where the player wants it to be. The result is that players request growth, which is draw as â€śghost growthâ€ť and only when the player is ready and waters the plant, this (and the plants natural growth) will actually grow forth.
A River Claw flower with new growth drawn by the player, waiting to grow (Ghosted)
This approach had two interesting consequences. First off, it gave us â€“ as developers â€“ the ability to smoothe out what the player draws to make it fit more harmoniously with the plants own growth, simply by shifting the weight of the player-drawn attraction point. If these greatly outweigh the natural attraction points, the plant will grow exactly what the player draws, whereas a lower weight will give the natural attractions more impact â€“ thus making player-drawn growth look more natural. Secondly, the natural growth system ensures that player-drawn stems may sprout side-branches, leaves and flowers all on its own, again automatically ensuring a high degree of harmony between auto- and player-growth.
And as a final example, the implementation of the natural growth system actually unlocked the possibility of granting a whole new creative experience to the user â€“ namely that of working your plant as a virtual Bonsai. The system actually allows the player the creative experience (and challenge) of using only their cut tools to cut unwanted growth, while letting the plant grow all on its own. Doing so, the player can truly work with the plant to create a virtual bonsai and even replanting an identical seed will offer up a new bonsai experience, as a new plant will always be unique. This whole experience would not have been possible, was it not for the natural growth system.
Now... Can Chaos empower the user experience?
Well, to me the short answer would have to be â€śyes!â€ť. To me there is no doubt that employing these kinds of chaotic systems to power specific features offers numerous advantages â€“ partly to developers, but not least to the user in terms of a better experience.
In our case, the natural growth system has given us â€“ the developers â€“ a number of new levers to use when creating and tweeking our user experience. One such example is the ability to smooth and blend player-growth and natural-growth, something which could even be employed to create different difficulty levels in plant species, as they may be designed to offer varying degrees of â€śresistanceâ€ť to the players creative input. Another example is the plant species and the genome editor that we built on the basis of the natural growth system. Each plant species is essentially a number of variable settings (100+ variables), that determine the growth potential, tendencies and look of the plant. Changing these variables create new species, which means that we can create new content, which we know is consistent and working within the system, with relative ease.
Looking at the user-experience, we managed to create a much higher level of realism, and hopefully a higher degree of immersion, by way of the natural growth system. Rather than being predictable and static â€śbuild-by-brickâ€ť 3D models created by the player, the plants actually feel like real plants as they grow on their own accord â€“ offering the player both an implicit creative challenge, as well as creative inspiration, as they grow. At the same time, the system also makes sure that the plants are unique in every instance (as plants are) and will thus offer the player a new experience and new input each time a seed is planted.
The system also ensures that players, regardless of skill level or experience will have a more consistent experience. Anyone is able to create credible 3D plant models, raising the bar on the visual and creative experience and allowing us (as developers) to design the players creative challenges to exceed the mere challenge of making plants. While the introductory challenges in the app are designed to give players a chance to familiarize themselves with the app and the creation of the 3D models, the end-game challenges require a great deal of experience and the ability to actually work with the growing plant and the traits of each species.
The Natural Growth system has also allowed us to build a free, creative and easy-to-use 3D modeling experience on a tablet interface, as the growth system handles a lot of the nitpicking that comes with creating detailed 3D models. This meant that we could focus the creative tools given to the user on higher-level input â€“ for instance, when the player creates a new stem, the system takes care of numerous details like bud placement, stem thickness etc. â€“ in effect reducing the number of tools and making them much easier to use.
So what's next?
Well, I'll give a few thoughts on what might come to be... While building this system, we considered numerous interesting and even more advanced applications of this and similar systems. So... what could chaotic, self-organizing systems like this offer? Immediately a couple of things comes into my mind.
First off, it could allow us to create game (or non-game) elements that are experienced as more real and more alive, in the sense that they actually behave much more like their real world cousins â€“ and this is in regards to everything from trees over enemy patrol paths to city layouts.
Secondly, these systems could make interaction much easier as these systems are actually sensitive to environmental change and allow players to leave a permanent mark on the state of a game, simply by being and engaging with the game world â€“ making for a much more realistic experience, with a touch of real life gravity.
And finally they would be able to make each instance of a game unique, offering each player his/her own unique experience â€“ not on a macro level, but in the minute details that make up any experience.
Being an old World of Warcraft player, I couldn't help imagining such systems implemented in large-scale persistent game worlds and the would-be consequences. That was also why I was really excited when I first saw videos of EverQuest Next and their voxel-based destruction system, while writing the first draft of this blog entry in early august. The approach to destructivity in Everquest Next, as well as emergent events based on NPC behavior and other features that have been outlined as part of EverQuest Next seem to me to be a huge step in the direction that I wanted to advocate here in regards to the use of chaotic systems in game design.
Rather than designing a world map with static content and patch-based changes, game designers could take the approach of modeling a world, only to populate it with systems like our natural growth system in the case of flora and similar systems to govern the behavior of the fauna, the growth of city sites and much more.
We could experience forests that actually grow and NPC farmers who actually work to keep the forest from taking over their fields. If enemy players kill the farmer, the forest will edge into the untended fields, which will then grow wild. Paths in forest areas will appear as players and animals alike move through the area, breaking branches and trampling sprouting plants â€“ thus unwittingly causing a trail to linger - and once enough players follow a trail, it becomes a path and later on a road. Whole forests might be raided and burnt down as the enemies raid a capital, leaving a permanent scar on the world, as the time it would take for a whole forest to grow back would probably be very long.
Cities might grow depending on the number of players visiting and the amount of gold they spend â€“ leaving the human capital to grow into the largest city in the world on one server, while the Dwarves and their capital may fare much better on another server.
Each instance of a game (each server or each install) could in essence be made unique and ever-changing,with the players each leaving their permanent mark as the consequences of their actions and mere presence feed down through the system.
However to take this approach to its full extent, we â€“ as designers â€“ would have to start distinguishing between designing content and designing systems (environment and self-organizing systems) and figure out when and how to make the two meet. While we would still design all the elements â€“ from NPC hairdo's and what the vendors can offer up for sale, to the color of the leaves on the Iccabok tree â€“ we would have to let the systems decide where the vendor sets up shop and where the trees grow.
If we choose to invite chaos in to be part of our design strategy, granted, we relinquish a degree of control. We would have to focus on designing on a more macroscopic level, where we design experiences and define the boundaries of possible outcomes, as we built these systems and design the initial state of the game. And we would have to accept that in the details, we would not know what would come to be, only what could come. What would actually happen would depend on the world and those who inhabit it â€“ a responsibility and a chance to make the world their own, which I am quite sure players would welcome.