Home General Discussion

Roll your own engine, roll your own problems

polycounter lvl 18
Offline / Send Message
Rick Stirling polycounter lvl 18
Word up.

http://www.rsart.co.uk/2006/09/15/roll-your-own-engine-roll-your-own-problems/

C&P for the lazies.

Recently I was approached by a group of hobby gamers who wanted me to make some art for a game they were working on (for the record, I have no interest). They tried to persuade me that they were worth working with with the line “…and we’ve built our own engine.”

A few days later I heard the same on MSN, about a small hobby project - “We’ve built our own engine”.

Which made me ask - “WHY?”

If you are a programmer wanting to learn about engines, then by all means, go ahead (although you’ll learn quite a lot just tinkering with existing engines). But if you are a small group of hobbiests wanting to make a game, you really shouldn’t.

Writing engines is hard. Really hard. And there are already so many out there that there is bound to be one that suits your needs, or almost suits your needs without you having to write it all. Some do costs hundreds of thousands of pounds, but Torque costs $100 for a single license.

You’ll need to write your own tools, and probably exporters. You’ll need to figure out lighting, and memory access, and probably streaming. Oh, and animation systems and directional sound. Input and output routines. I almost forgot about particle systems, and the scripting language to write the actual gameplay with. Oh, did you want network code with that?

You are going to end up writing more engine code than game code.

“But it’s a great way to learn!”

Yes, for one or two people - but what are rest of your team going to do while you hack away for months? Yes, they can make assets, assets that they will not be able to see in game because there is no game yet, because there is no engine to build a game with.

In the end, an engine is a program that maintains the game world, and if you want to make a game, why not concentrate your efforts on making a game? An off the shelf engine will probably suit most of your needs, allowing you to spend more time on the fun stuff.

Thank you to Dino for the phrase I used for the title.


Comments in the usual place (that'd be http://www.rsart.co.uk)

I'm off to sleep.

Replies

  • KeyserSoze
    Options
    Offline / Send Message
    KeyserSoze polycounter lvl 18
    Pretty good article, but I think anyone who already thinks it's a good idea to build their own engine is probably going to think the article doesn't apply to them. "That's some pretty good advice for no0bs, but I took a C++ course at my local community college. I'm going to be the next John Carmack."
  • ebagg
    Options
    Offline / Send Message
    ebagg polycounter lvl 17
    Great article RS, your write-ups are well done.

    ....but you forgot to add that making an engine from scratch increases the size of your eCock by 250%!!
  • flaagan
    Options
    Offline / Send Message
    flaagan polycounter lvl 18
    I must agree with you wholeheartedly on this one, Rick.

    In college we had a 'game development club' which was pretty much where only the people who cared about their 'game design degree' hung out (... great way to learn teamwork and figure out structure and organize a project... usually). We always used the Unreal Engine (ut2k3 / 2k4) as a basis for our little projects, as the core engine was there, and was accessible enough for the coders to go on their merry way.

    Towards the end of my time at college, though, the programmers started whining about how they wanted to make their own engine. Everyone was cool with this, but some of us knew what it would mean... we based our projects on a single semester deadline, so for two semesters we spent very little time actually doing anything and most of the time waiting for the coders to finish up (which they never did).

    This ended up restructuring the whole club into using GameMaker (and occassionaly torque or Flash) for individuals or small groups of individuals to have to fend for themselves to learn the apps since everyone else was off doing the same for their own little projects.

    In my opinion, this greatly hurt the whole club because we no longer had any sort of structure that resembled a game company (project / art / code leads who met once a week, concepts and styles the artists had to follow). I really think it hurt the new 3d artists at the school / in the club, because now they spend less time learning about prepping models for an engine and more time figuring out the engine.

    I don't think it's a bad thing for an artist to have an understanding of what else is going on in a game's development (I think it's stupid for an artist to NOT have a clue about those sort of things), but it shouldn't take time away from what they're doing to begin with.
  • Jelmer
    Options
    Offline / Send Message
    Jelmer polycounter lvl 17
    Sorry Rick, but I have to disagree with you.

    http://www.projectoffset.com/

    ''Offset Software started as 3 people: Sam McGrath, Travis Stringer and Trevor Stringer. Initally working out of an apartment and completely self-funded, the engine and all art was created with a tiny budget -- just enough to purchase the software and hardware needed for development.''
  • KeyserSoze
    Options
    Offline / Send Message
    KeyserSoze polycounter lvl 18
    [ QUOTE ]
    Sorry Rick, but I have to disagree with you.

    http://www.projectoffset.com/

    ''Offset Software started as 3 people: Sam McGrath, Travis Stringer and Trevor Stringer. Initally working out of an apartment and completely self-funded, the engine and all art was created with a tiny budget -- just enough to purchase the software and hardware needed for development.''


    [/ QUOTE ]

    Those guys aren't exactly "hobby gamers." They were 3 of the 7 guys originally from S2 Games. I'm not trying to diminish their accomplishments, I'm just saying this article obviously isn't directed toward people like them.
  • doc rob
    Options
    Offline / Send Message
    doc rob polycounter lvl 19
    Jelmer, those guys are seasoned game developers with many years and shipped titles under their belt, not to mention sucessfully having built a game engine from scratch before for Savage. Not quite the same thing as a hobbyist. They're also well funded now with more than 3 people working on the game (as was always their plan).

    That said, if you're not making a clone of another game, licensing the engine for that game doesn't necessarily get you such huge head start. Heavily modifying an existing engine can be as much work as rolling a new one. Tools are a different subject, but the engine itself can be rolled new by people who know what they're doing.

    I think the problem is with inexperienced people who think they can build a big, modern game from scratch with no base tech to start from.
  • aesir
    Options
    Offline / Send Message
    aesir polycounter lvl 18
    Sam McGrath is also a programming genius...
  • acc
    Options
    Offline / Send Message
    acc polycounter lvl 18
    [ QUOTE ]
    You’ll need to write your own tools, and probably exporters. You’ll need to figure out lighting, and memory access, and probably streaming. Oh, and animation systems and directional sound. Input and output routines. I almost forgot about particle systems, and the scripting language to write the actual gameplay with. Oh, did you want network code with that?

    [/ QUOTE ]
    All of these are things that you'll need to either: a) redo or heavily modify to suit your purposes, or b) spend extensive time learning how to do in any pre-built engine that doesn't cost thousands of dollars, usually just to find out that it was poorly done and you need to go back to a) to do properly, all the while dealing with the lack of intuitive tools and program flow that you're forced into dealing with.

    There are "so many" engines out there suited for hobbiest use? Name some. Have you used any? Have you seen any successfully used? Any besides Torque?

    I don't hear of hobbiest completing games based off licenced engines very often. Why? Because most engines suck and/or have terrible documentation. Generally, it's easiest to bang out a quick engine for a specific task than to find, learn, and modify someone else's.

    And unless you're trying to make a super-massive-online-next-gen-hyper-realistic-shading-40-hour-open-ended-branching-storypath-game-to-end-all-games, making most of a functional engine is not that hard and doesn't take that long.
  • Ninjas
    Options
    Offline / Send Message
    Ninjas polycounter lvl 18
    Well, I agree with Rick, but at the same time I am working with a small team using a custome engine and it is great.

    There are reasons why you would go with a custom engine.

    -Like in the case of Offset, the coders can simply do better than what is available on the market

    -Your game is so original that it will be faster for your coder in the long run to write the code himself rather than learn and rewrite existing code. That way he will understand it better and will work faster once things get rolling.

    -You want commercial control of the engine

    Also, the line between writing your own engine and using an existing engine is a bit blurry. Many coders out there make extensive use of existing open source code libraries. How much code do you have to write before you say it is your own?
  • Vailias
    Options
    Offline / Send Message
    Vailias polycounter lvl 18
    Im using torque, and from an artist perspective I spend about as much time finding and fixing bugs in the export process than I do actually making usefull assets.

    And from a code perspective, we basically will have to roll our own lighting, occlusion, etc. The bundled stuff simply doesn't meet the needs of the project. Sure its workable, but its performance is not so great, all the tools are still beta, the built in map/mission editor is clunky at best, and inumerable other irritations.

    So why roll your own engine and tools? because they will WORK how you expect and you can expand it without dealing with someone else's restrictions. Its crossed the minds of our team more than once.
  • Snowfly
    Options
    Offline / Send Message
    Snowfly polycounter lvl 18
    All references to Torque need to be replaces with C4 Engine, Rick! smile.gifhttp://www.devmaster.net/engines/engine_details.php?id=42

    But to get back on topic, I have worked with teams that did roll their own engines, not from scratch but by picking the best low-level API's for the job.. because a thorough game design document preceded game development so they knew exactly what their needs were. Free tools were also tied-in with the art pipeline. Shepeiro is working on a roll-your-own project right now that I am sure will be finished and kick ass.
  • Robert Headley
    Options
    Offline / Send Message
    Robert Headley polycounter lvl 18
    Speaking as the Hobbiest Group on MSN I would like to defend our decision to write our own engine
    and for clarification, we aren't a "hobbiest" Group at this point, we are a fully licensed Limited Liability Corporation in the state of Indiana. I prefer Independent Game Studio wink.gif

    1.) The game we are currently developing came out of engine development.
    2.) There really wasn't any engine that did what we wanted to do, and allowed for larger projects down the line, why keep having to learn new toolsets, Epic got it right with Unreal.
    3.) True source or C4.. or whatever costs 100 dollars, what about the time to learn to use the toolsets, not to mention wrangle it into doing what we want.. which would be quite difficult. This cost us nothing, other than hundreds of manhours of our principal coder / gamedesigner. He wasn't doing anything anyways.
    4.) we didn't re-invent the wheel, we used open source and freely licensed code where applicable, like Rak-net for Networking and TinyXML as the data subsystem.
  • Vermeulen
    Options
    Offline / Send Message
    Vermeulen polycounter lvl 18
    I think it entirely depends on the game your trying to make.

    For an FPS, there is no reason to build an engine from scratch. The Quake3 engine is a extremely well done piece of work, which is completely free in every way. And if not Quake3, then Torque, or a Quake engine modification like Darkplaces and Xreal.

    But there is not an engine out there for any game design. If your making a racing game, fighting game, etc, it really is not that much work for a small team to create. Most of the code time spent would most likely be game mechinics. When it comes to tools, even tools for maps, use a currently made format. Many teams are using the Md5 (doom3) for model assets, maybe doom3/quake3 maps (or just use the md5 format for maps also).
    Many GPL engines have been used successful, just look at Nexuiz/Tremulous/Alien Arena/Warsow. Those games might not be commercial quality, but i think thats entirely due to the art not the engine


    This is slightly off topic, but why is everyone so focused on project offset? They have shown no screens or movies of gameplay, everything i've seen of it is scripted. I am very certain anything shown could be done in a free engine like Xreal (maybe exception of physics, if, the physics they show are not scripted). All Project Offset is, is just great art, and unique in that its a fantasy shooter.
  • oXYnary
    Options
    Offline / Send Message
    oXYnary polycounter lvl 18
    (This is ontopic in a offhand way)

    Robert Headly, remember that thread I had about the indie developer I was asking about with the self made engine and what to look for good and bad? I think from your posts you would agree, but here it is.

    Game engine mechanics need to be down pact before worrying about any advanced Game rendering functionality, elsewise what you get is a very nice looking tech demo.

    Is this the type of problems you think self made engines run into commonly Rick? As a parallel to us, making a extremely loose sketch, but then overly focusing one section versus building up the picture as a whole overtime.
  • Dravalen
    Options
    Offline / Send Message
    Dravalen polycounter lvl 18
    I spend close to 3/4 of my work day debugging other people's code to figure out why something that should be pretty simple isn't working. In a perfect work 3rd party engines would have great documentation, awesome mailing list support and work right the first time.

    It's great when it works right but spending a large portion of my time figuring out why the code we paid for dosen't work isn't my idea of fun.
  • Robert Headley
    Options
    Offline / Send Message
    Robert Headley polycounter lvl 18
    Our game is a physics based puzzler. Skill based.

    I don't think that Torque or Quake would have worked out too well for that.

    Project Offset is all about what small motivated teams can accomplish. It had good art sure, but the engine itself is nothing to slouch at, not only does it have blended physics, but its a workhorse, rendering thousands of particle objects and having them cast shadows on each other, I don't think that could be done in most engines out there now.

    Also, I am sure the Project offset rolled their own, cause they could not afford unreal or didn't want to use Unreal, probably both. The video with the dwarf, where they do localized motion blur tho, that was impressive.. thats kind of hard to do.
Sign In or Register to comment.