A few words about NeoAxis

    A few words about NeoAxis

    Sooner or later, before each team of game developers, the question arises of choosing an engine. The reasons are different: it either turns out to write your own for too long and costly, or lacks knowledge, experience or specialists, or simply having estimated the time spent and the cost, it is decided that buying a finished product is better than writing your own. 7 years after his debut in the field of gaming, we faced the same question (before that they wrote everything themselves).

    We have studied several C ++ game engines with a license price of up to $ 1000 (I think it would be incorrect to mention the names of those engines that were rejected in relation to their authors). By chance, the C # engine NeoAxis got here, which I liked so much that it was decided to stop on it and switch from C ++ to C #.

    Why did he so impress us? I will try to briefly talk about this in this article.

    Firstly, the architecture of the engine itself is very convenient in my opinion. I will quote the description of the authors:

    Entity System The Entity System

    is the heart of the NeoAxis Engine.
    Using a single entity system, all game logic is created.
    Each game or application has a certain system of objects. In each such system there is a set of objects and rules for their interaction. In fact, it would be convenient to describe the objects, the algorithms for their functioning, methods of interconnection with other objects in a certain unified way. And, again, to organize a base for describing objects in such a way as to create new objects with minimal effort. And at the same time, in most cases, such a system should be well associated with the real world, so that you can easily identify the game and the world that we create in the game.
    Usually the game has a world. The game is divided into levels. Each level lives according to the rules of the world + according to properties specific to this level.
    An entity is any object of game logic. Players, items, bullets and any other game objects are entities.
    Each entity has its own class and type.
    An entity class is a basic entity behavior algorithm. Entity classes are written in a programming language and are easily integrated into a single system. This integration allows you to expand the editors (resource editor and map editor) without directly changing them.
    An entity type is actually a set of customized properties of an entity class. Entity types are created and configured in the resource editor. (.type files). Setting involves configuring various properties of objects (appearance of characters, maximum number of lives, etc.).

    Logic System

    Often it is necessary to set special game logic at the levels. Logic that is specific to each level. For convenient assignment of such logic, a logic system was invented. It allows you to expand the basic game elements with additional functionality.
    Programmers write basic game logic in a programming language, and level designers extend it within a level using visual tools or scripts.
    Two methods of setting logic at the levels are supported:
    * Visual The
    ability to construct algorithms by visual means without resorting to writing scripts. Algorithms are represented in the form of trees.
    * Scripting
    A typical way to extend functionality with scripts.

    Secondly, good quality graphics.. The NeoAxis graphics engine is based on the well-known OGRE engine, and has all its features. There is support for materials, shaders, in general, for our needs, more than enough.

    Thirdly, 2 physical engines (PhysX and ODE) were implemented, you can connect any of your choice and use. Since we previously used PhysX in our projects, we were very happy about its presence in this engine. There is a blessing and experience of working with him, and the physical engine itself is very good.

    The fourth is a wide and convenient toolkit.There are exporters for different graphic packages, there is a Resource Editor - a program where you can configure each game object, attach graphics and animations, sounds, particles, some properties to it (Attached Objects System - a very convenient architecture for working with game objects). You can immediately create a GUI, test it. You can create different effects, particle systems, adjust materials, create a physical model of an object, attach dots, ...
    The next tool - Map Editor - in it you can create a level by arranging game objects on the map. There are several ways to create a map, you can download Static Mesh, you can create HeightMap, or you can somehow. It is worth noting that the engine is not sharpened for a certain type of game, in the demo you can find examples of both RTS and Arcade, TPS and even Jigsaw Puzzle. This is the rare case when versatility does not compromise convenience. In Map Editor, you can click on any object, change its properties or add some kind of script or event, both for a given instance and several instances of this type. As already mentioned, this can be done both visually (so to speak by programming with the mouse) and a handwritten script. Very comfortably. There are a couple more utilities - Configurator - for choosing a physical engine, graphics settings (OGL / DirectX), maximum shader versions, sound library selection, localization selection. And the second - Deployment Tool - creating a distribution kit.

    Fifth - convenient debugging. Programmers will understand what it is and how many nerves it can save. The engine keeps logs for all events, rashes and errors are informative, up to indicating the class and line number where the crash occurred. There is a console to which you can add your own commands, there is debugging graphics (show static physics, show dynamic physics, etc.), there are statistics windows - you can see how many objects are on the scene, how many polygons, how many milliseconds physics takes to calculate, how many render well, etc.

    Sixth - Cut Scene Manager, Splines and Bezier curves, cameras flying along these curves and other convenient, necessary and beautiful things already implemented.You can insert and use it if you lack functionality - you can add it, if for some reason you don't like it - you can redo it completely.

    Seventh is a big demo with source codes. This paragraph rehabilitates the fact that the engine still does not have full documentation with tutorials (there are only 3 of them and the simplest ones). But in the demo there are different types of games - strategy, shooter, you can run and ride a tank ... The authors of the engine tried to compose a demo so that all the features of the engine were presented and the developers of the game could see for themselves and see how this and that was done something. It helps a lot, especially at first.

    Eighth - Add-Ons.Paid and free add-ons are posted on the site, from fairly simple and free (like sky or water) to commercial (car mechanics). Although we personally didn’t need it, I decided to mention it all the same.

    The ninth is the community. The site has a forum where developers using this engine quite actively help each other. Against the background of competitive projects, the forum is quite lively, and has been ongoing for a long time.

    Tenth - developers are our Russian guys from Kazan. Therefore, the support is all in Russian (though the forum on their site is in English). Since we took the average license ($ 395), and expected to spend 1,000 on the motor, we bought another support for the rest. They are very responsible, help and delve into, we added the features we need to the engine.

    The engine has Web Deployment and games on the network. Although it is not necessary in our project, it is worth mentioning it. There are many more interesting features that I have not mentioned. What can I say, download, run the demo and see for yourself. :)

    engine site.
    article on the website of the Russian community, a more detailed review.

    Also popular now: