The Serious Editor 2 is much more than just a plain level editor. It's more like a complete game development environment, designed to allow a designer to fully control all possible segments of the game. Various small editors are implemented into Serious Editor 2 that allow in-place editing of each game resource. These include a custom-made editor for meshes, animations, destructions and fonts, as well as numerous others, like the simulation editor that allows a user to exit from the player's body and take complete control over running the game from the editor. In the middle of a fight the user can switch to edit mode and modify elements of an active game, like stopping flying rockets, moving enemies around, destroying things, adding new items, etc.
Simultaneously developing a game along with its engine and editor is indeed as hard as it sounds, but it is also very rewarding. When you develop a general-purpose engine, you have to think about it having a clean and open design. It means that the engine must be able to run all kinds of games, not only games that you are developing in conjunction with the engine. Also, it has to be able to adopt, with ease, all the new technologies that will be added to it. This is also true of the editor. It is of crucial importance for game engines to be developed along with top-quality games. The engine could never get the necessary sharpness and refinement if it weren't tested on a real-world project. Proof of excellence can be assigned to an engine only when it is able to run a AAA title.
And therein lies the challenge. Creating your own engine is a challenge itself. The art of coordinating different engine modules with the common goal of making the whole work flawlessly is a part of that challenge. The ability to develop such a fine-tuned creation that can adapt and transform as the needs and imaginations of its users grow, is yet another part of that challenge. Making a cutting-edge engine sharp, fast, modest in requirements, and showy in features is again, another part of the challenge. The acceptance and approval of others seeing such an engine deployed is great pleasure.
However, the greatest challenge is making all this easy to use. Usability is key; this was our mindset when we set out to rebuild the Serious Engine Editor. The Serious Editor 2 is capable of creating, editing, or viewing different types of resources. For example, you can create or view 3D model documents, text documents, textures, fonts, and most importantly, many kinds of your own specific document types, like material documents, particle effects, shader presets, documents describing puppets and their behavior, projectile physics, camera parameters, global game parameters, documents for describing players, head up displays, etc.
Editing of resources is separated to logical aspects, for example some model document can be edited in:
- 1. Mesh Editor - vertex/polygons editing, UV maps adjustment, etc.
- 2. Animation Editor - adjusting of bones in animation frames, playing animations.
- 3. Collision Editor - editing physical properties of model's parts.
- 4. Destruction Editor - editing of model destruction, defining particle effects and debris that will be created on model's destruction, defining model which will substitute this model after destruction.
- 5. Skeleton Editor - editing model bones and connecting them with meshes.
- 6. Model Editor - editing of all mentioned data manually, through model properties.
On the programmers' side, we have implemented a meta-data system into the editor. When some data is edited, you know exactly which member is changed or read from what file. The editor can import/export resource documents. With this, you can work on the same resource in multiple applications. For example, you can export a model to a 3D application.
The editor can also work on different operating systems (Windows and Linux). We have developed our own graphic user interface so it looks and behaves exactly the same no matter which OS it is running on.