The first quarter of 2014 has ended, so it is time for another development update on the Citadel of Sorcery project. In the last briefing we talked about refactoring the code, and integrating systems afterwards in hopes of getting the new terrain system ready for publisher demos early in 2014. However, that is still ongoing at this stage. After the refactoring we got the terrain system up and running, but there were many issues to deal with once we actually got it working. Here are some of those issues:
1) Texture LODs: Our new terrain engine transitions from a polygon system up close to a point cloud system in the mid range and then to a lower detail system in the far distance. This allows us to achieve a lot of great things, like high detail up close with more efficient rendering in the distance. We can stand on a mountain and look out over vast distances, and walk to a feature we see a hundred miles away, keeping it in sight the entire way. However, we were noticing abnormalities in the long distance textures, and had to fix this issue.
2) Model LODs: Another oddity we experienced was when the polygon models switched to point cloud, the transition was too obvious and we had to go back and write routines to smooth this out.
3) Grass distribution: Since our system uses actual grass blades instead of a few billboards, this first iteration of the terrain made that grass look too much like a carpet, so we had to work on a more natural distribution system to get the grass to look more realistic.
4) Tree distribution: Our trees are all uniquely grown from a seed, not a few models copied and rotated. Though this worked, the layout of the trees was looking too grid like, and so we had to write a tree growth distribution system. This involved figuring out how existing trees dropped seeds, and how those seeds would then sprout (or not) and grow new trees. By distributing our trees in this more natural system (vastly accelerated initially, though they continue to grow new trees as time passes now) we fixed our tree distribution issues. This routine was not simple, and took quite some time to perfect.
5) Then there was the speed. Though the terrain was working, it was rendering too slowly for our taste. Therefore, we had to optimize the system, moving a lot more of the calculations over to the GPU (off the CPU), which was our current bottleneck.
All of these issues are resolved now, but each of them has taken time to fix or create. This postponed the demo of the game because we are not willing to show it until the terrain can show the full potential of this new system. Even with all of these issues handled, we still have a little time to go on the terrain. The final stage is inserting the new terrain into our tools, the Game Editor and The Enact Tool Set. This is what we are working on this week, but no doubt this will cause some unforeseen issues that we will have to resolve. However, at least the new Trident3D Terrain system is functional, and it is now just a matter of shoehorning it into the tool set.
This has not stopped the rest of the team from working, and using this time to get the demo further along. When we realized that the new Terrain was going to take even longer to integrate (several months ago), we made the choice to have some other programmers work on systems that allow us to move both Static and Dynamic model layouts from the old Terrain to the new. This has been done, and it allowed the Level Design Team to keep working on the demo, even though it was in the old Terrain. We also have to move the entire A.I. net from the old terrain to the new, and that code/tool is still being completed, though we anticipate it being done before the new Terrain is ready. That allows us to move all the simulated Intelligence instructions and events built into the current world and import it into the new terrain so that work does not have to be redone.
So, with that coming, our LD team has been working on the demo game play. Much of that is now ready, though there are some bit and pieces still being tweaked, added and adjusted. However, we anticipate that when the new Terrain is ready, it will now be a short time to import the work, make a few adjustments, and have the demo ready for prime time.
By necessity, a demo has to be quick and powerful. We cannot spend hours showing off the depth of our game play system. Instead, we have to pick a few short examples that show off the difference in our game play vs. other MMORPGs. We have decided to show two main aspects (out of hundreds). The first is how the players actions and choices change what happens, and how NPCs base what they do off of what they witness.
So, to do that we built a simple situation that can show this in a couple minutes. The situation is this: there is a treasure room in a dungeon, guarded by a squad of Maggotmen. They are too strong for the PC to take on alone, but the PC needs to grab something in the treasure room and get away. We demonstrate how when the PC approaches the NPCs do not agro on them just because they get into a set radius (which is how most MMORPGs do it). Instead, they have to see the PC character, and when they do, they choose what to do, instead of just charging the player. In the example, some of the Maggotmen come toward the PC, but stop some distance off, spreading out ready to defend the passage. If the player approaches closer they might then attack. However, if the player darts down a side passage, trying to go around the blockade, the Maggotmen make a choice based off of what they saw the player do. In this case they send some Maggotmen to cut off the player, others to come around behind them to cut off the player escape route, and they still leave a few guarding the door to the treasure room. If the player instead hides from sight at the beginning, and sneaks around a side passage, he can expose his position at corner, and when they chase, hide in some debris, letting the Maggotmen run past. There are several more examples of things the player can try, and in each case they Maggotmen use different choices to try to thwart the player.
The second part of the demo involves a story, and demonstrates how our stories are not linear, but change depending on what the player does and says. In this demo there is a village where some villagers have been disappearing. The PC, as a Fallen Hero, was sent to investigate. We will not go through the entire scenario, as that would take too long for a demo, but we will take one piece of the story and show how it can unfold many ways. This example involves a stranger passing through, who the villagers come to believe is responsible for the missing members of the village. A mob forms and they plan to hang the man. The player needs to speak to the man about to be hung, and has to figure out a way to stop the mob and talk to the prisoner. There are many different ways of attempting this, and depending on which one the player tries, things will unfold differently. There will be no going back and trying a new method, once a choice is made, this is the way this story unfolds. However, we will reset time and show how a different player coming into the same situation can make and do different things and change the entire scenario. Not only that, but we will also show how even if the player does the same things they did last time, the rest of the NPCs and situations may not. The game is making choices that change the adventure as well.
These are very small examples that we believe show the core of the game play in CoS, which is story based adventures that require changing player strategies, and offer a satisfying climax. These stories differ for each player based on their choices, and the choices made by the game. It is hard to show this in a few short minutes during a demonstration, but we hope these two scenarios will do that.
The Art Team has been supporting the Level Designers, giving them the models they find they need, if they do not already exist. This means thousands of new models have been created in the past few months. In addition, since we had the time, we have been working on a couple of finished PC and Monster models. Originally we had planned to just use placeholder models for characters and NPCs for the demo, and every character you may have seen in previous screenshots is a placeholder. Creating detailed models and smooth animations is something we planned to do after signing with a publisher. But, we decided to use this extra time to go ahead and make a couple examples of what those finished models will look like in the future. To that end we have made a new Gargoyle PC character and a new demon NPM (non-player monster).
Other sets of models have also been added, including a new 3rd Age ruins set that can make many different ruins.
There are other areas of development that continue as well, though to a lesser degree, since we are concentrated on the demo right now. These areas include story writing and further refinement of the game design.
Things have certainly taken much longer than we wanted, but since the game is still 99% self funded (the other 1% being from player donations) we have had to keep our development team fairly small for a game of this scope. This means that things take longer, though they eventually get done. If you have followed the development of this title, it may seem like a very long time, but in truth, it is going along at a good pace for the size of the team. Once we get this demo completed, we feel that publishers will be quite amazed at what we are showing. As soon as we sign a deal, we will expand the team significantly, and the pace will accelerate to match.
We are working hard to bring the new technology, and new game play to the players, so keep the faith, we are working on it!