rubbish. learn nothing.
An indie studio, Edda, has been hard at work on a new fantasy RPG called The Traveller’s Notes. It’s an ambitious project about a man who’s traveling through incredible lands while documenting his journey. Unlike many developers who go with Unity or Unreal Engine, the team at Edda decided to use CryEngine. This tech proved to be reliable and useful during the development. In an exclusive column for 80.lv, the team lead Dmitry Shevchenko wrote about the main advantages of CryEngine for the indie crowd.
We have a rather small team. There’s about 25 people, who are actually working for fun (in other words without getting paid). The team is spread out all over the world. A lot of people are working out of office, so it’s important to have a sturdy technological backend to answer all our needs. I believe that technology is the most definitive thing behind a great game project. You could have fantastic ideas, incredible designs, and an interesting story, but without reliable tech all your efforts could be in vain.
When we were only thinking about The Traveller’s Notes an important decision was made, and the decision was that our game would be created with CryEngine. This platform proved to be a valued ally in our quest for AAA-indie game.
There’s a ton of reasons to choose this technology but let me just name some of the advantages that are important for us:
- This is one of the most technologically advanced game-engines in the world. It gives you a chance to create fantastic games and optimize them to different platforms.
- It has all the necessary tools to create game content.
- It’s well suited for indies (not a lot of people know it though). Any beginner can learn the basics and start work immediately.
- It’s powerful. You can create worlds with this tech without any boundaries.
Game Development Progression
Although many of the team members had some experience working with CryEngine, some of the other guys had to start with the basics. They learned the creation of terrain, experimented with gameplay, and cool dynamic mechanics. Later we’ve started filling the map with vegetation, objects, and buildings. When we were finished with the roads and the basic geography of the world, it was time for our scriptwriters to get to work on the story. Right now we’re testing our game, building the community, and looking for new developers willing to try their hand at CryEngine.
FlowGraph and Game Programming
CryEngine is very convenient for in-game logic. There’s even a separate tool for that called FlowGraph (FG). This little feature allows game designers to manage game tasks, AI, and control game objects/events. It provides the tools necessary to create specific game mechanics. You can use it to model weather conditions, build player customization systems, and get access to the physics system. It’s super complex and incredibly effective.
FG is a very visual and transparent tool. All you need to do is to drag some nodes with parameters and connect them, forming a logical progression.
In The Traveller’s Notes we use FG to create in-game events, quests, and to control the interface. We found FG useful as sort of the layer between the game code and gameplay.
Even though FlowGraph is good, it’s not enough if you’re trying to build something as ambitious as we do. Crytek opened some of the basic libraries to create incredible game mechanics. For example, we have access to the CryInput library that enables you to add new control schemes. You can switch on Kinect support or make your game compatible with VR-glasses. Easy.
There are other libraries as well. They are used to describe game logic and various mechanics. You have all the tools necessary to create your own game systems. For example, if you’re making a stealth-shooter you can create a mechanic that will map out dark spots on the level where the player сan hide. If you’re making an RPG, CryEngine can help you build inventory or crafting systems.
The engine is based on C++ and Microsoft Visual Studio. You can debug the game right during the development. This greatly increases the game’s stability as you can find and fix all the mistakes in code.
Most of the information is stored in XML-like files, which is also incredibly convenient. Engineers can write your little programs to edit the data in such files or add JSON support.
Building The Interface
CryEngine supports Scaleform for creation of GUI. Using ActionScript 2 you can create an interface of any complexity. The Traveller’s Notes interface is created using Scaleform, Flash, ActionScript 2, and FlowGraph.
One of the biggest advantages of this engine was the integration of the Maniquen Editor (ME). This is the perfect tool to create and manage animation in game. МЕ provides the developers with a perfect tag system, which allows you to pick up the necessary animation really quickly. Basically you can tag all your in game events to play some particular animation in game. Maniquen Editor also allows the break down of every model and lets you work only with some particular part of the model. A big advantage of this system is the ability to combine animation into one fragment in the timeline. МЕ also has a lot of parameters that allows you to achieve incredibly high-quality in-game animation.
Environmental and Level Design
CryEngine is a dream to work with for any level or game designer. Any beginner can easily learn to build worlds with this engine. The interface is pretty straightforward, simple, and tight.
There’s also a large toolkit that will come in handy for any level designer. One of the best tools in CryEngine is called Designer. This is a very simple utility that helps you build objects directly in the game engine. It’s very similar to SketchUp. This tool allows us to quickly create simple models and adapt them to the future locations. The scale and the textures can be applied directly in the engine. This saves a ton of time for the designer and the whole 3D-team.
CryEngine is great but it’s not without some flaws.
- There’s a ton of work with global lighting. To achieve a realistic day/night cycle, one has to spend a bunch of time optimizing every parameter to the exact hour of in-game time. It’s a lot of work but the results are definitely worth it.
- It’s hard to start working with the engine for the content creators. You have to spend a lot of time teaching new guys how to work with the tools and tell them about all the engine functions. Unfortunately, this slows the whole development process.
Keeping these problems in mind, I still believe that CryEngine is the perfect tool to create video games of any complexity. Even small indie teams can achieve great AAA-quality in their independent projects. It’s a complete package and a very nice tool if you want to experiment and try something completely new. Plus it scales incredibly well, so small teams can grow and still enjoy the power of the engine. There’s really no need to switch, as it often happens with smaller engines.