Creating a strategy game in Esenthel?
Hello everybody.
I'm currently starting to work with a small independent team, with the goal of creating a turn-based strategy game with a isometric top-down perspective (that allows for camera rotation and zooming in and out). You can think of the perspective as similar to modern 3D Heroes of Might and Magic games, except the game would take place in the urban, rather than fantasy/natural environment. This also means characters can enter buildings, which should hide all of the building's floors above the one the character is located on, so that the building interior and characters inside can be seen and interacted with properly.
I'm in charge as the lead programmer for the project, so it was up to me to find the right 3D engine for the job. The most important requirements I am looking in the engine are that the engine has either the C++ or C# programming interface, is relatively beginner-friendly (I already have a good programming experience, but I've never worked with 3D graphics before), provides at least decent looking renders with the support for shader model 3.0, and contains tools which make material, animation and world editing with objects exported from 3DSMax a quick and painless process, yet are affordable and accessible to small indie teams and not only large and previously established game studios.
Amongst the engines our team and me have taked into consideration are:
- DarkGDK (seems solid enough, but apparently the developers abandoned the development of the project, leaving behind some bugs, and making further support and updates, as well as bug fixes somewhat uncertain).
- Leadwerks Engine 2 (which people criticised for limiting the size of the maps to 4096x4096 square units, which could prove to be a problem when a game takes place in a large city, implemented as a single map, and for not exposing all of it's internal functionality through C++/external language programmable interface, relying on it's internal scripting language for certain operations instead).
- Terathon C4 (which looked like a good engine candidate to me, until my friend, a fellow programmer with some actual experience in 3D programming, who worked with C4 engine in the past, recommended me to avoid it, because his experience with C4 ended up being not very pleasant - granted, it's been some time since he used that engine, so maybe it got improved in the meantime, but I'll remain cautious about it for now).
- UDK (lacks C++ interface support, leaving UnrealScript as the only programming method, also requires paying royalties for commercial products).
-Unity (this is the engine our designers pushed the most, not to mention it generally received lots of praise from the game development community in general. But it simply doesn't suit me, as it lacks any kind of externally programmable interface, which turns it more into an all-in-one game making tool - albeit quite powerful one - with a good integrated 3D engine, than a software development kit. Maybe I'm a bit old-fashioned, but I prefer to be able to actually control the behavior of the engine from my own code, rather than simply put all the assets inside a pre-made black box environment, connect them together with scripts, and hope everything works the way I intended).
I pretty much ran out of options, with every engine I took into account ending up having some sort of drawbacks. It is then I stumbled upon the recommendation for Esenthel engine on the gamedev.net forums. So I looked it up, checking out it's features, capabilities, tools bundled with it, comparisons with other engines, licencing methods, and went through the manual and a few examples. So far, Esenthel left a very good impressions with me. It appears like it satisfies all the needs I listed above: it's powerful, manual contains lots of info useful to the beginners, it's not tied to a particual genre, has lot of examples, comes with sophisticated tools, has a good reputation for a fast support, and it's affordable.
The only thing that seems to be missing is the full documentation of the engine, i.e. the description of all public members/interfaces/classes/methods/etc. of the engine available to the end-programmer with explanation for their purpose and usage and grouped in their respective categories. But with all the tutorials given, and community support, this can be easily forgiven.
Anyway, after spending about a month looking for the best pick, while constantly switching preferences amongst several engines, I've finally proposed to my team the usage of Esenthel as our final engine of choice (replacing Unity which was our graphics designer and 3D modeler's first choice and DarkGDK which was my alternative choice).
Hopefully I've made the right decision, and while Esenthel certainly appears highly capable of handling our needs, I just wanted to check with the folks of this forum what kind of experience can we expect from using this engine in a strategy game sprawling across posibly rather large cityscape, viewed through the isometric perspective. How well suited is the engine for this type of games? Does it have suitable functions for tasks such as 3D picking and pathfinding (game will be played primarily with the mouse, by clicking on the characters and objects player wants to interact with, click on destination to make the character walk toward it, etc.), how good is the world builder at building urban instead of natural areas, can I define custom objects or "hot-spots" in the world builder, which may not mean anything to the engine itself (and therefore won't be rendered and graphically visible from the game either), but will be recognised and used by my own game code (they may represent such things as enemy spawn points, triggers to certain events, special area dedications (for example, I may want to dedicate an empty area as a parking lot, and the AI may decide to park their car there if such an area is nearby, rather than leaving it on the street) etc.).
So basically, I'm just looking for that one final approval from the actual developers who used Esenthel and have some experience with it, before we start the production, which means buying the licence (we would go with personal licence, as we don't have a large budget), and dedicating a lot of time simply experimenting and getting to know the engine before we could actually do something with it.
Any replies are appreciated.
|