Sunday, 07 September 2014 Written by 

Follow us as we take a look behind the scenes of the Fleet Operations NX project. Today, the ezEngine crew will introduce themselves.

Hello Fleet Ops community, this is the ezEngine team!

As you might have heard, Fleet Operations has moved to an independent game engine as a platform, away from Star Trek Armada II. This future version of Fleet Operations (dubbed NX) is being built on the ezEngine. As promised, we'd now like to give you more background information about ezEngine's development and the team behind it.

Oh, one thing to note before we start: The pronunciation of ezEngine is supposed to be "easy engine" :)

Who are we anyway?

The ezEngine team is composed of about six people. All members of our team are from the gaming industry. We all work professionally on game engine technology every day.

What drives us to develop an engine privately, outside of our jobs, comes from our personal interest in these technologies.

We've had the chance to meet with Optec and DOCa from the Fleet Operations team, since we luckily don't live too far apart. Much like Fleet Operations, ezEngine is developed in our spare time. We are also all fans of Star Trek or Scifi in general. We are enthusiastic to work on something that others can make use of. If you were concerned that we are just a bunch of students, with just a great idea and no foundation, you don't need to worry. We have many years of experience in this field and we also have the recipe to get the "big tasks" finished.

Why are we developing an engine?

It’s all about fun and doing right by the community. Most of us have privately developed smaller engines before. These engines are meant to bring to light simple game ideas or are utility to automate tasks. You can understand an engine as a toolset to build your concept. However, if you lack the right tools to bring your idea to fruition, you have to invest time to create those tools first. It’s not always possible or desirable to do this. There are various commercial and non-commercial engines out there already - so, why don't we just use one of those?

ezEngine was never meant to be a competitor to any existing engine. While it can be annoying at times to not have the right tool at hand when you need it, it is also always fun to figure out your own solution to a problem. This is why we decided to pool our knowledge and build a "proper" framework together, which can serve as a great basis for our personal projects, too.

Of course, ezEngine is not just supposed to serve as a tool for our personal use. We are sharing our effort with OTHERS to allow them to realize their amazing ideas.

What are our goals for ezEngine?

A game engine is a very abstract thing. It is difficult to explain what an engine is and where it fits into the final game. So much of what we are talking about might sound boring or even strange to most. Maybe we can dig a bit deeper into all of that in a future post.

We want to have a rock solid foundation for whatever ideas anyone might come up with. Initially, although we intend to be users of our own technology, everybody else will benefit from this philosophy as well.

We put a lot of effort into what we consider "doing things right". From our professional work in the industry, we know that proper documentation is important. Therefore, we provide thorough documentation with each feature. Extensive automated tests ensure that the engine behaves the way it is expected after each code change to avoid regression bugs. We try to test the code against every thinkable use case that someone might come up with. This is not common policy to all engine projects.

I think this mentality was one of the deciding factors for Optec and DOCa when they evaluated our work. While our code was still in a very early stage back then, it was already apparent that our code would become a solid base for the NX project. There wouldn't be many bugs to worry about due to bad design and they would not have to work with an undecipherable, undocumented mess of code, where it is unclear what does what.

License? Pricing?

When we came together to pool our resources, it was clear to us that we couldn't create an engine where some people are considered "owners" of the source code. If we want people to contribute, they must be able to take the entire thing and build their own game and then sell it, without owing anything to anybody.

Therefore we decided to use a Creative Commons license, which basically means that we give up our ownership and right to charge for it in any way. That means YOU could just take the source code and sell it for a million bucks and it would be totally legal.

Why should Fleet Operations use ez and not some other engine?

Well, we asked them the same thing :D . We didn’t expect to get involved in a project of that scale so early. Optec and DOCa had investigated several alternatives before they even heard of us, but came up unimpressed and unhappy with the choices. Apparently ezEngine made a good impression and we agreed to cooperate. This cooperation helped all of us, since we are now able to work toward a goal in an actual large scale use case. We are honored that someone chose our engine, even when it was still at such an early stage. We intend to deliver something that will live up to this expectation.

thumb ezinspectorOne of the ezEngine tools: The ezInspector in action debugging the current dev build of Fleet Operations NX.

Why would we agree to cooperate?

Not all of us had heard of Fleet Operations before. We weren't sure how far such a project could go that had not originally been designed with a fully configurable engine in mind.

However, after meeting with some of the core team, it became quite clear to us that this is a talented and very dedicated team that has no unrealistic expectations for us or about the goals they want to achieve. Furthermore, after familiarizing ourselves with the project and the forum community, we came away with the impression of an active community, supportive of the developers. We are happy and proud to be involved in a project like this - though we'll keep a more indirect role in this.

What exactly does this 'indirect role' mean for Fleet Operations?

This is where we have to set some expectations straight. The ezEngine team is really mostly working on the core technology - the stuff that is actually completely independent from the game. We are not involved in the development of the actual game code or content. So, if you have the impression that the Fleet Operations team works too slow, or there is a feature not in the game you'd like to have, you have to blame them :)

This whole cooperation however means that the NX team is always able to directly reach us and get direct responses in case there is a question or issue. So far any bug they have reported to us has been fixed within a day or two. They also have access to our daily updated code base.

Game related decisions, and the work to implement them, is all up to the Fleet Operations team. Which features they will actually make use of is up to them. For example, while the ezEngine now fully supports Linux and Mac platforms, in its first versions Fleet Operations will not. This is a decision they had to make.

Having your own code base that you can fix and improve as the technology around you changes is a huge boon. Supporting new hardware and new operating systems is a lot of work. Doing this for a game for which you do not have the source code is often just not possible. However, writing and maintaining both an engine and a game is such a huge task that a team of only a few people is just not enough.


Since this work is now shared between two teams, where we take the former role and the Fleet Operations team the latter, I am confident that something cool will come from this endeavor.