Does anyone still build engines from scratch?

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Does anyone still build engines from scratch?

      A lot of games companies license middleware technology to help them build their next killer AAA title. In a recent interview with Tim Sweeny (of Unreal fame - no pun intended), when asked if he would ever write an engine again from scratch he responded that it would not be likely since the turn around time to start the (Unreal Warfare) engine from scratch is probably five years.

      So having said that is it beneficial for a studio to write the next killer engine from scratch? Or would it be time better spent licensing a proven commercial engine and just concentrate on making great games?

      If everyone keeps licensing technology is there a danger that innovations in engine design will stagnate?

      Just my 2c worth :D
    • RE: Does anyone still build engines from scratch?

      There's an interesting subtext of your question - that "killer" technology isn't developed as a part of evolving an existing engine. Well, looking at what Ion Storm has added to the Unreal engine, and knowing how the Ultima engines evolved while I was at Origin - I can say with 100% certainty that there's no reason to develop any game engine from scratch.

      Instead - you might take an existing engine and replace the renderer. You might start using 3D Studio Max to edit your game data instead of your home grown 3D world editor. You might change your object data structure or replace some AI code.

      In fact, these things aren't "mights", generally - as programmers become familiar with the codebase and the problem domain, they'll inevitably find new ways of doing things, and seek to improve the system for the next set of projects.

      Even if you start with nothing, you'll probably license a game engine to give you a leg up. Two to three years of 5-6 programmers is actually a conservative estimate for developing a game engine and all its development tools from scratch, and that's before the first level is ever built.
      Mr.Mike
      Author, Programmer, Brewer, Patriot
    • I think it depends on what type of games. if you are looking into high quality ass-kicking 3d games which pump more than 100000 million textured polygons per frame, then you are better off licensing. Writing a 3d game engine, along with editor, texture manager and the mathematics is not for the faint of heart and those who are short on lifespan.

      So I agree about the liscening part, but that doesn't mean a programmer shalln't write an engine. Getting an engine for your game is the first step. How to customise it for your game? You will need to pry into the code. Having a firm understanding of software engineering, opengl/directx and how game engines work in general can greatly aid in the process.
      Act in haste and repent at leisure.
      Code too soon and debug forever.
    • There's definately a seperation between game engine and graphics/sound engines. At Super-Ego, we use a third-party engine for all rendering, sound, low-level AI (A*, etc), and world building. This engine has been heavily modified for our needs.

      We're writing a game engine on top of all that for our unique style of game, which we've deemed a social strategy game. This engine is being used in two actual games which theoretically should only need some data changes to work. The two EXE's *should* be identical, though in reality they probably won't be.

      I'm not sure if this engine layering is what other game companies do. I believe Maxis wrote the engine for SimCity 3000 more or less from scratch, but that was like 7 years ago; it was a 2D tile-based engine.

      -Rez
    • Kain exaggerates...
      Mr.Mike
      Author, Programmer, Brewer, Patriot
    • I've decided to go ahead and attempt to design my own full game engine implementation. I've been in design stages for upwards of 3 months now making sure everything is going to fit together which can be extremely difficult in a project of this size. My goal is to make the engine open source once I've completed version 1.00.0 but that is still months out...also learning the differences between Linux, Mac and Windows while designing is soaking up more time than I thought (some of my foundation classes are absolute murder).

      Ultimately it seems a lot of studios are picking up third-party software as their basis but I'm looking at this as a learning experience for me and something to add to my list of accomplishments.
    • Originally posted by Permafried-
      Ultimately it seems a lot of studios are picking up third-party software as their basis but I'm looking at this as a learning experience for me and something to add to my list of accomplishments.


      That's a very good philosophy. I wrote my own implementation of the STL for that exact reason. The main reason most companies go with third-party software is because it's faster and cheaper to do it that way rather than write your own, especially if you use open source. I forget what it's called, but the XML parser we use at Super-Ego Games is open source.

      -Rez
    • Originally posted by rezination
      That's a very good philosophy. I wrote my own implementation of the STL for that exact reason. The main reason most companies go with third-party software is because it's faster and cheaper to do it that way rather than write your own, especially if you use open source. I forget what it's called, but the XML parser we use at Super-Ego Games is open source.

      -Rez

      Same goes for the company I work for...they've used a number of freely available libraries to tie into our system including Xerces as the XML parsing library...I just happen to be utilizing this for my engine's implementation since so far I like what I've seen. I was at first intending to stay away from available librairies and implement everything myself until I realised my design doc was turning into an encyclopedia and would take me years to implement. By the time it was done the technology would have been obsolete and I would have been starting from square one again.

      The post was edited 1 time, last by Permafried- ().

    • Of course, in Win.NET you can always cheat and make assemblies that you can interface with from your unmanaged code to read XML. And with almost no hassle, too. Other platforms, not so much....

      Guess for x-platform it's better to use freeware when you can. It's almost always tested pretty thoroughly on multiple platforms.
      "Your job is not to die for your country. Your job is to make some other poor sod die for his."