Hello, I am the lead programmer of the project Bomberlands in game Studio ComonGames. Today I will tell you an example of our design casual RPG Bomberlands what services and tools can save time and effort when creating graphics, interfaces, animation, audio, and game mechanics. The other day marks one year since the inception of our Studio. Then we are faced with two basic questions.
What project to do and what. Since I already was quite familiar with Unity (which, in turn, advised me due to its cross platform nature), its features and advantages, which Ill discuss later, our choice fell on Unity version 4.2. 2014. As a first game project our an unnamed team decided to revive one of the oldest and undeservedly forgotten games.
This game was chosen Minebombers. In the 90-ies it gladly “cut” in classes in computer science. The key features were fully destructible, a wide variety of bombs and other weapons, a high pace of play, built-in level editor and the ability to arrange epic proportions Armageddon on individual card. We were also hoping to have already perfected in the original gameplay, which we thought it will be enough just to move, and nostalgic players.
After a couple of months, our team was finally formed and has gained the name of ComonGames, it included first-class specialists in their field — writer, Modeler, artists and others — the first working prototype was ready, together with a built-in map editor, exchange and mechanics fully transferred. By the way, this was not the first attempt resuscitation of the game. We just met with six such attempts were made by different enthusiasts at different times, the General public, these developments have not been shown.
So then looked out the prototype. After that we were convinced that the simple mechanics of the transfer is not enough. Modern games differ from the old ones not only better graphics and more polygonal 3D models. It turned out that a huge sandbox of the original very difficult to move to 3D.
Even if you replace the objects are very simple, they still remain thousands. And because of the view from the top they all have to get in at the same time. Again, for a comfortable game you need to see the whole map, but the 3D objects look even worse than the original sprites. The office was also outdated.
Hang all the weapons a couple of buttons and constantly flip through it, too, was uncomfortable. Therefore, we have changed the setting (multihack), the main character (minion-Cretan), story, mechanics, interfaces. Weve added RPG elements like quests, leveling your skills and equip the hero, creating and pumping their own base. Appeared PVP fights.
The main interface has been redesigned in the form of interactive locations, in a role which was made by the laboratory of crotona. The map size is reduced, and from the sandbox prototype turned into a RPG-arcade with a large destructible objects. The background was painted game that tells about the hard life the last “scientist supervillain” in a world full of heroes. But our hero was not he but one of his loyal minions.
He was equipped with high-tech exoskeleton or robot. Were drawn and smodelirovali concepts its enemies. Lets move to the technical part.
All this we began to do on Unity 4. To make on this engine, their game concepts you can almost immediately — at the expense of ease of development, a large number of articles, video tutorials and localized reference materials. Due to this around the engine formed a vast community of developers, each of which has contributed to the content store plug-ins and extensions Asset Store. In General this store is a very useful service, which to date contains a large quantity of useful products, many of which are free, but even paid assets can save you a huge amount of time and therefore money.
About those products that have helped us the most, Ill discuss shortly. Despite the low entry threshold, which inevitably generates many low-quality or very simple games that, in turn, is a contempt to the engine among some developers, the fourth and especially the fifth version allow Unity to create games AAA-class. No wonder the developers of the original Fallout in the development of Wasteland 2 chose him.
By the way, we transition to the fifth version was surprisingly smooth. Earlier, as a rule, many of the scripts I had to change manually because of changes made in new version of the engine. So, many plugins developed on Unity 3.x refused to work in the fourth version, not until you fix their scripts. The engine developers have considered it, and now autoupdater solves 95% of problems arise during the transition to the fifth version.
Before beginning development, suggest that you all carefully combing through the Asset Store. Odds are youll find dozens of useful tools that will save you 50% to 90% of development time. First in importance is a tool for creating interfaces.
At Unity had problems until the latest releases fourth version of the engine, therefore, not surprising that in the store there are a dozen different GUI tools. Some better, some worse, but in most cases the choice is based on personal preference. If you learned to work with some tool, and it can solve 90% of your tasks, no particular desire to deal with their competitors. Now, many problems can be solved and the built-in tools, but we still remain true to NGUI.
This plugin was in its time a revolutionary. It was built almost all of our 2D interface. Good performance, easy to work with atlases, events, challenges, programs, besides popular third-party plug-ins is considered good practice to have integration with NGUI. As I mentioned, the main interface we presented in the form of interactive locations.
What kind of ship is the Normandy from Mass Effect. Locations, active zones, interactive objects, smoothly moving camera, character control and animation of events and scenes — these elements holds the majority of quests. It is not surprising that in the Asset Store there are many tools to create them. For me, the clear leader was Adventure Creator.
It is responsible for our lab. If you want to use the quests in your game, you face the problem. Unity has no built-in quest of the engine.
How to record characters, quests, dialogues, how, in what order and in what cases they show how to change the status of quests, as their passing will affect the game environment. Writing this improvised quest engine is no trivial task. Fortunately, it was already done for us. Variants of these engines too much, but our choice has stopped on a Dialogue System for Unity.
It consists of several elements. Quest database, quest interface and quest triggers. The database can be filled inside Unity and importing the DB quest from other commonly used tools (Aurora (Neverwinter Nights), articy:draft, Chat Mapper). To call the dialogs and quests or changes in their condition, it helps to set the appropriate triggers in the game, after getting into which will be called the desired menu.
The set includes many examples of integration with other plugins, ranging from NGUI and Daikon and ending MasterAudio And PlayMaker. He used us to create quests. One small but important elements of a good interface are the HUD-elements.
Although you specify the distance and direction to the target seems a simple task, sometimes it takes a lot of time. Instead of reinventing the wheel, it is better to use ready-made solutions, like the Waypoint System. So, we have in the game if you use some of the equipment players appear the signs of the coming resources or enemies, which is very convenient. Above I briefly mentioned earlier about MasterAudio.
Although in the fifth version of Unity sound has reached a new level, still have a lot of decisions in optimization and global management of the sound system. MasterAudio offers a grouping of all the sounds, create playlists, calibration levels, attenuation when changing tracks, many triggers call sound effects. Not that it was necessary for each game, but the potential of such a system is. And if the game has a lot of sound effects, without such a tool when working with them is easy to get confused.
We have in the game MasterAudio is used to create musical playlists and seamless switching between them. Just where are grouped all the sound effects. If a little distracted, it is possible to lead one of the most common situations when working with Unity, associated with the rapid development of the engine. For example, in the fourth version to create a reflective surface, it was necessary to use so-called cubemap faces, i.e. the structures of six textures that would have been represented by six inner sides of the cube in the center of which is the observer.
Such cubemap faces are created skyboxes. But it is one thing to draw cubemap sky and horizon. But if you want to create cubemap certain areas. Rare artist able to draw like this.
And here we come to the aid utility Cubemapper. It helps to place the object with the desired script to the desired point, press the — key and cubemap ready, but the problem with reflective surfaces seems to be solved, and all is well. But released the next version of the engine, and it turns out that the cubemap faces now not needed.
Reflective surfaces are made much easier and more convenient. However, the author did not remain meaningless. With this utility, you can still create a beautiful skyboxes.
Almost every project sooner or later faces the problem of distribution and update versions of your app. We need to allow users normal application updates directly from himself, in one click. And this is where plugins like Crafty. Builds are sorted into folders, and to create a patch, simply select the start and end versions of the game.
Of course, you must have a server that will store the current version of the game and the patch set, and a list of possible updates, but otherwise updated versions will be significantly simplified. So at the moment there is an update version we have in the game. Exploder — its not really necessary for everyone, but very interesting extension. For us it was very useful.
As I mentioned, fully destructible environments — one of the features of our game. Initially this is achieved by the fact that our playing field is divided into cells, each of which can contain an object, e.g. a stone. Accordingly, each of them can be destroyed individually. I mean how to destroy eliminating them from the scene, by cloaking it under a simple explosion.
But this plugin allows you to really shatter any object. Point him to the stone, statue, mob — and he will break it into a thousand little pieces. An indispensable thing for different shooters.
In General, now our objects dont just disappear and split into several parts and gradually disappear. Of course, the fragmentation of objects takes a significant amount of CPU time that used to cause lag in the game, but now the developers have made these calculations in a separate process and added such a wonderful thing as a limiter of processor time. That is, you can allow to spend for these calculations is not more than 5 MS per frame, thus avoiding the lag. Honor and praise.
And finally, it is worth mentioning about Mixamo. This is not just a plugin, it service animation with lots of useful tools, all tightly integrated with Unity. In my opinion, indie developers have to pray for this wonderful, though not a free service. Creating 3D character models, creating their skeletons (Riga) and their animation is one of the most costly processes in the development of the game.
But this service allows you to do this even for hard-core programmer who is not very good at drawing. Mixamo Fuse makes it easy to create humanoid characters and in a few clicks to animate them. And animation on a very decent level, and thus it is possible to calibrate. Moreover, by using the Face Plus the same developer can even create your own facial animation, at home using a regular web camera or if its really bad with your smartphone.
And although Mixamo Fuse only allows you to create people, he is also able to import your models and automatically generate the skeleton. If you are concerned, you must understand how cool it is and how it saves time. For those not in the subject, I will explain.
It is not enough to develop a beautiful model. To use it in the game, one must first create a skeleton that would be managed by this body, and they did it correctly, otherwise when you animate the arm can move separately from the armpits, the chin will be taped to your chest. Of course, autorig works better than hominoidae model. Of course, a good professional will do a better job, but this service allows you to create a normal game (in a certain genre), with normal characters, taken from public domain or from the same shop, animation which will not cause disgust.
And made it can be man, no ideas about 3D modeling. In my opinion, this is a very big plus in favor of Mixamo. Actually, most of the animations in our game created using Mixamo. There are other plugins we used in the design, but I think thats worth looking at this.
If you work at Unity technologies, want to talk about their experience in the development or ask a question to the experts — leave a request to our mentors with special shape.