Is Skyrim’s Creation just Gamebryo?

Not really, but yes, Skyrim’s Creation Engine still has at least some Gamebryo in it.

I actually made the claim that Creation is based on the latest version of Gamebryo in my last article on the subject, but I then edited it out. That post was about the perception of bugs and quirks coming from Gamebryo when they were specific to Bethesda. Properly substantiating the claim that Creation is based on Gamebryo and explaining why the usual counter-arguments don’t hold up would have taken up too much room, and detracted from the impact of the original point.

That original point was that problems with Bethesda games are not problems with Gamebryo, but with Bethesda itself, otherwise those problems would exist in other Gamebryo-based games. It bares repeating.

I also want to stress, once again:

  • Creation is most certainly not the same thing as Gamebryo.
  • Skyrim has the same engine as Oblivion only in as much as it’s still the same engine as Morrowind.
  • Gamebryo is not an old, dated engine, it is constantly updated with new features, much like Valve’s Source.

I did find the best way to substantiate it without relying on rumour and here-say. Simply look at the code, well, the text embedded in the executable and other program assets at least.

Sure enough it’s not hard to find.

Skyrim’s executable file is called TESV.exe. Running a quick grep for the string “gamebryo” gives us 11 results. We can even see the version of Gamebryo that is attributed in the executable file.

Here are those examples after I sanitised them for readability from the raw strings output.

iMaxViewCasterPicksGamebryo:Interface
C:\_Skyrim\Code\TESV\TES Shared\Animation\BGSGamebryoSequenceGeneratorHolderSingleton.cpp
PlayGamebryoAnimation
Gamebryo File Format, Version 20.2.0.7
TtBGSGamebryoSequenceGenerator::generate
TtBGSGamebryoSequenceGenerator::update
Gamebryo Sequence name.
BGSGamebryoSequenceGenerator
!BGSGamebryoSequenceGenerator
AVBGSGamebryoSequenceGeneratorHolderSingleton
BSTSingletonSDMOpStaticBuffer
VBGSGamebryoSequenceGeneratorHolderSingleton
BSTSingletonSDMOpStaticBuffer
VBGSGamebryoSequenceGeneratorHolderSingleton
AVIGamebryoSequenceGeneratorHolderSingleton
NiAnimation Gamebryo Version 2.2.0.0
NiMain Gamebryo Version 2.2.0.0
NiSystem Gamebryo Version 2.2.0.0
AVBGSGamebryoSequenceGenerator
NiDX9 Gamebryo Version 2.2.0.0
NiParticle Gamebryo Version 2.2.0.0

Yes, there are more than eleven there as some of the stuff was on one line, but for readability, I’ve separated them out and removed some of the repeated stuff. The point being, as these lines show, Skyrim has plenty of Gamebryo in it. Whether or not a lot of this code is rewritten, it clearly isn’t enough to simply remove all mentions of it. There are another 17 Gamebryo mentions in Data/Skyrim.esm all talking about Gamebryo File Format, Version 20.2.0.7, but a file format isn’t code. Creation is mentioned only as in creating variables, screens, etc. Not as the engine for the game.

Of course, this is all in a vacuum, we need a basis for comparison.

Let’s look at the game whose engine Skyrim’s is most often accused of being a rehash of; Oblivion.

The Oblivion executable has 9 results, these ones are straight from strings:

r@Failed to Recreate Gamebryo Render in desired dimensions.
Unknown error creating the Gamebryo Renderer.
iMaxViewCasterPicksGamebryo:Interface
bActivatePickUseGamebryoPick:Interface
Gamebryo File Format, Version 20.0.0.5
NiAnimation Gamebryo Version 2.0.1.1
NiMain Gamebryo Version 2.0.1.1
NiSystem Gamebryo Version 2.0.1.1
NiParticle Gamebryo Version 2.0.1.1
NiDX9 Gamebryo Version 2.0.1.1
NiCollision Gamebryo Version 2.0.1.1

From this I’m going to conclude that Skyrim in fact does use Gamebryo code, I’m going to say Skyrim’s Creation is based on Gamebryo, with large sections rewritten.

Counter arguments I’ve seen include things like:

Creation cannot be based on Gamebryo because it is not mentioned in the credits, or booklets. Including Gamebryo code without having that mention is copyright infringement.

It’s not an uncommon practice to have more than one type of license (the express permission which makes it not copyright infringement to include someone else’s work) available where you can pay more money and not have to mention which technology your game uses. Often what will happen is that it is the licensee which wants to tell people they use X cool technology, or as a thank-you to the makers of said technology. Like I hinted at in my last article, I suspect someone at Bethesda noticed that people tended to blame Bethesda’s errors on Gamebryo and someone thought it would be better to not include attributions to Gamebryo in the game, advertising, and public documentation.

It’s a brand new engine called Creation. Not Gamebryo.

Yes, it’s a brand new engine called Creation, based on Gamebryo. There’s nothing wrong with that. Bethesda has the source-code for Gamebryo and makes big rewrites and adjustments, and they may well consider the result as a brand new engine.

Why should I believe some podcaster / blogger / random guy on the internet over news sources and press releases?

Ad hominem is way of distracting from what someone is saying to who is saying it. The executable’s contents remain the same.

That’s not definitive proof.

Depending on your standard of evidence, what I’m saying I suppose, could be not enough, it is however, parsimonious. If you are saying that despite this evidence, no Gamebryo code is used at all, you then have to explain why Gamebryo appears as strings in the executable without that executable being based on Gamebryo code. As this involves extra explanations, it is not parsimonious.

Programmers are lazy creatures of habit when it comes to naming conventions.

Yes, they can be, however, lazy naming is having loops where the iterator is called ‘i’, or having two parameters called value1 and value2. Generally, this wouldn’t include making an engine not based on Gamebryo (or containing some Gamebryo stuff) that just happens to include more strings mentioning Gamebryo than an executable that is Gamebryo-based.

You can’t say any of this for certain, it proves nothing, you need the source code!

I’m simply coming to a conclusion based on the available evidence and the explanation that makes the most sense. I make no claims of certainty.

Have you heard any others? Leave a comment.

Just for fun, here’s some further analysis and points of interest:

Morrowind, which is also said to use the Gamebryo engine, its executable file has … 0 results.

Okay, this is only because the executable doesn’t talk about Gamebryo, it talks about Gamebryo’s predecessor NetImmerse. Here’s the spew from strings.

NiSystem NetImmerse Version 4.0.0.2
NiCollision NetImmerse Version 4.0.0.2
NiDX8 NetImmerse Version 4.0.0.2
NetImmerse File Format, Version 4.0.0.2
NetImmerse File Format
NiMain NetImmerse Version 4.0.0.2
NiAnimation NetImmerse Version 4.0.0.2

Isn’t it odd that we regard the engine for Morrowind to be Gamebryo? Perhaps some of the newer Gamebryo code made it in to Morrowind, perhaps it is Gamebryo, but just has the old information executable-embedded. Or maybe they just wanted to push the Gamebryo name with an obviously brilliant game.

How about the Fallout games, the modern ones. Let’s look at Fallout 3 and Fallout New Vegas.

Fallout 3 first.

Failed to Recreate Gamebryo Render in desired dimensions.
Unknown error creating the Gamebryo Renderer.
iMaxViewCasterPicksGamebryo:Interface
bActivatePickUseGamebryoPick:Interface
Gamebryo File Format, Version 20.2.0.7
Default Shader From Gamebryo 2.1
NiCollision Gamebryo Version 2.2.0.0
NiMain Gamebryo Version 2.2.0.0
NiDX9 Gamebryo Version 2.2.0.0
NiSystem Gamebryo Version 2.2.0.0
NiAnimation Gamebryo Version 2.2.0.0
NiParticle Gamebryo Version 2.2.0.0

Now Fallout New Vegas.

Unknown error creating the Gamebryo Renderer.
Failed to Recreate Gamebryo Render in desired dimensions.
iMaxViewCasterPicksGamebryo:Interface
bActivatePickUseGamebryoPick:Interface
Gamebryo File Format, Version 20.2.0.7
Default Shader From Gamebryo 2.1
NiAnimation Gamebryo Version 2.2.0.0
NiMain Gamebryo Version 2.2.0.0
NiSystem Gamebryo Version 2.2.0.0
NiParticle Gamebryo Version 2.2.0.0
NiDX9 Gamebryo Version 2.2.0.0
NiCollision Gamebryo Version 2.2.0.0

Isn’t that interesting? Almost identical, but not quite identical. Also note the similarity to Oblivion, and the difference betwixt all three and Skyrim despite the Gamebryo version strings being the same. Evidence of rewriting?

One more, completely unrelated the bethesda, and then I think I’m done. Divinity 2: Ego Draconis (this one’s cleaned up a little).

Gamebryo File Format, Version 20.3.0.9
cone in the traditional DX manner. Gamebryo only allows setting of
c:\develop\divinity2\code\libraries\gamebryo 2.3 source\corelibs\nimain\NiExtraAllocator.h
Default Shader From Gamebryo 2.1
;Gamebryo KFM File Version %s%s
GAMEBRYO_USE_D3DX_FALLBACKS
cone in the traditional DX manner. Gamebryo only allows setting of
c:\develop\divinity2\code\libraries\gamebryo 2.3 source\sdk\win32\include\NiExtraAllocator.h
Perfmon_Memory_Gamebryo
c:\Develop\Divinity2\Code\libraries\Gamebryo 2.3 Source\SDK\Win32\Include\NiExtraAllocator.h
CSpeedTree_Gamebryo_Allocator::Alloc
NiMain Gamebryo Version 2.3.0.0
NiParticle Gamebryo Version 2.3.0.0
NiDX9 Gamebryo Version 2.3.0.0
NiSystem Gamebryo Version 2.3.0.0
NiAnimation Gamebryo Version 2.3.0.0
NiPortal Gamebryo Version 2.3.0.0
NiD3D10 Gamebryo Version 2.3.0.0
Gamebryo Application

So there you have it, an empirical examination of the link betwixt Gamebryo and Skyrim. So the next time you hear someone say, “but I thought they dropped Gamebryo”, you can tell them that there is still definitely some Gamebryo in Skyrim.

19 thoughts on “Is Skyrim’s Creation just Gamebryo?

  1. Pingback: Skyrim, 6 gig, and Gamebryo | Peter Reviews

  2. Gamebryo is not necessarily mentioned in credits by name. Instead, you’d see something along the lines of “Portions of this software are copyright 2010 Emergent Game Technologies.” Emergent was the company that produced and licensed Gamebryo unitl late 2010. Gamebryo is now licensed by Gamebase. Older titles would have licensed from Numerical Design Limited (NDL).

    I haven’t checked to see if that’s in the manual for Skyrim.

    Regardless, it does not surprise me if vestiges of Gamebryo are in Creation even after a large scale rewrite. Refactoring an engine is a huge effort. It’s still fair to call Creation a new engine. In fact, it probably wasn’t fair to call all the previous engines Gamebryo. Bethesda put a lot of hard work into building their engines on top of the Gamebryo code that they licensed.

    dba

  3. I did check for writing this article, and there are no mentions of anything Gamebryo, NetImmerse, NDL, Gamebase, or otherwise. Actually, the credits, in-game, in-manual etc. are quite light compared to other games I’ve seen.

    Anyone can correct me if I turn out to have missed something though.

    I wholeheartedly agree with you about not being fair to say that the engine for the older games was Gamebryo, Bethesda made some massive changes each time. I think it would be better to say that Morrowind and Oblivion ran on The Elder Scrolls Construction Kit, and Fallout 3 ran on the GECK engine – with credit to Gamebryo of course.

    From what I can tell, Skyrim is just so much more different than the older ones too, so yes, my conclusion is that Skyrim is a new engine based on Gamebryo.

  4. Instead of basing comparison on finding strings including “Gamebryo” in the EXEs look at the game itself using some console commands.

    There are countless examples of similarities between Oblivion and Skyrim. Many console commands are identical. Many of the Oblivion ones work in Skyrim and some have become obsolete and do nothing now but do not bring up an error like a typo would indicating the programming part is still there but blanked off.

    Use TLC or TFC and fly high. Type TB and see that Skyrim (for all the hype about increased draw distance uses exactly the same 5 x 5 exterior cell grid as Oblivion. This is where the detail is. Now fly below ground level within the 5 x 5 grid and see the LOD is submerged under the 5 x 5 grid in exactly the same way as Oblivion. What they have enhanced is the detail possible outside the grid.

    Netimmerse (nifs) have been used for 3D models since Morrowind. There are many examples of the similarities and it would have made no sense for Bethesda to start from scratch on a new engine but logical to continue to build on Gamebryo that they know so well and an excellent job they have done too.

    I don’t understand the discussion regarding unfairness, better naming and the like, Bethesda have developed the Gamebryo engine since Morrowind bringing at each game release new and enhanced features. This time, as Mr Howard said, they felt they had done enough to give their engine a new name. A new badge on their Gamebryo masterpiece.

  5. I didn’t use things like console commands, visual similarities etc. because they may be not much to do with Gamebryo, but with Bethesda itself, otherwise those features would exist in other Gamebryo-based games.

    You don’t even need to use the same language to implement a console command, let alone the same engine. I wanted something I could say with more confidence.

    If Bethesda simply “developed the Gamebryo engine since Morrowind” they wouldn’t bother using an updated version of Gamebryo since they’d have already made those changes themselves.

  6. I meant the identical concept of the cell grid and LOD not particularly their visual appearance. If you start attributing features to Bethesda rather than Gamebryo be careful that there is something left that Gamebryo did. We know Bethesda developed Radiant AI and used Havoc and Facegen. As far as I recall the cell grid in the Morrowind version was 3 x 3 and that could have been a consideration for upgrading Gamebryo using 5 x 5, then according to the Wiki Gamebryo last stable release was in 2009.

    Have a look at the data file structures then they’re virtually identical too. So many things that tell you this is still Gamebryo. However, this is all evidence not proof but put simply I’ve been modding, 3d modelling and scripting for many years now and I’m comfortable with the fact that the Creation engine is a developed Gamebryo engine and not new from scratch and that will be very clear to most when we get the Creation Kit in January.

  7. I don’t think I did attribute features either way, the point is that if you are comparing two Bethesda products, it is difficult to say if a similarity is due to being a Bethesda product or another common factor.

  8. Open up the .bsa files shows we have .nif files which *are* gamebyro meshes. You also may find that it lacks effects such as particle collision (Snow floats through walls, rain falls through the ceiling). Other things such as lack of cloth physics (Havok has a good cloth simulation engine) Lack of; sun shafts, DOF, ambient occlusion, DIrectX 10 or 11 and having only mediocre res textures. Could have been incorporated but weren’t out of half-arsedness. Skyrim really is failing in the graphics department. Still it’s a buggy console port so what would you expect?

  9. Skyrim is a big dissapointment. Before it came out I was led to believe it took 100 programmers (of which some came from the likes of unreal), 5 years to program a new engine. I was almost watering at the mouth. Instead we got choked with steam and the old crashes still exist. There is no 64bit and the game seriously needs more memory resources for modding. I’m not angry. I can understand that it takes a lot to program, not to memtion how tedious and boring it can get. I just wish they could have done a better job and kept steam out of it. I won’t be buying another version unless its a 64bit and b has no steam.

  10. I just read this blog and couldn’t help thinking that some posters lack an understanding of how the game industry works with ‘commercial’ game engine customization.

    But why bother… contemplating if it’s this or that engine…

    On the other hand I want to know the (runtime configuration) limits to the ‘Skyrim’ Gamebryo game engine so I can max out the GFX and AI for my particular PC with an acceptable FPS – Basically that’s all I want know in order to enjoy the Skyrim game

  11. I think this is a case of correlation is not causation.

    Think about it. If a studio, with a vast collection of assets in its library for use / reuse in their products is all using a specific file format, what would you do if you wanted to use them in your latest game?

    Would you, a) write or reuse existing conversion code and loaders to load that format, or b) reconvert ALL your assets to some new format, taking the chance that something could be broken in the process? And also, keep in mind, that the vast majority of what makes up one of these games IS the pool of assets, which they are no doubt reusing (either for placeholder pieces while developing and testing, in substitution for the new assets until the artist is finished with it, or just plain reusing an old asset).

    For example, the string “PlayGamebryoAnimation” – this could be either existing Gamebryo code, as you assume, OR it could be someone’s entirely new code that happens to play an animation sequence stored in a Gamebryo format. It’s just an identifier. And, apart from all the other strings in the list, the only things that look like they MIGHT be vestiges of existing code (based on your ‘empirical’ comparison of other executables from other games) are all those lines with Version x.x.x.x in it. But even then, that’s a false assumption, without actually comparing the code bytes themselves.

    Anyway, this is all still meaningless and pointless conjecture without actually comparing the code bytes against each other, or having the existing code to compare.

  12. Not sure why empirical is in scare quotes, but anyway.

    Your explanation is interesting, and would be plausible if there were only references to loading, but of course, there are not. I did think of what you said when I was researching the article though, which is why I dismiss a specific example with:

    “There are another 17 Gamebryo mentions in Data/Skyrim.esm all talking about Gamebryo File Format, Version 20.2.0.7, but a file format isn’t code.”

    So yes, I realised that a format was shared with Gamebryo, but this is evidence for what I’m saying, not against it. So I suppose to answer your question, I would c) Base my code off of Gamebryo and call it Creation avoiding the bad press associated with Gamebryo.

    I make a judgement based on what I can see, not on what I don’t have.

  13. As someone who spent quite a few years as a programmer, all I can really say is that Kilanash is honestly more right than you are, that non of your so-called evidence is compelling, and that all you’ve really pointed out is that programmers are lazy creatures of habit when it comes to naming conventions. Without seeing line by line code comparisons of the engine, putting forth any claim opposing the developer’s publc statements based on what you’re presenting is slanderous.

  14. I have to agree with everything the developer says unless I have access to the sourcecode otherwise it’s slander?

    Hmm, I’ll have to take that with all the seriousness it deserves.

  15. They actually managed to create the impossible a worse game than Oblivion, clearly the age shows engine wise but I think its more a case of lack of development time. They simply wanted to push it out the door and that is exactly what we received, a tripped out beta that lacks any form of life, aesthetics, and proper functionality. They simply didn’t want to play around with the Gamebryo engine to it’s full extent and thus what we got is a buggy Oblivion clone that manages to fix some annoyances and introduce new ones.

    Bravo Bethesda bravo!!

  16. Pingback: Fallout 4? - Android Forums

  17. I suspect that it’s essentially a fork of the Gamebryo engine at this point. It would be far from the first time a game developer has taken someone else’s engine and made it their own. For example, Valve’s Source engine began life as a fork of id’s original Quake engine.

  18. It’s obvious that it is. Just try to climb on a cliff in Oblivion, Age of Conan or Skyrim… It’s so typical

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>