For those who have pre-ordered it is already here, the rest have to wait a little longer. Starfield is finally here! Have you bought it, why or why not? If you’ve already played it, what do you think of it? We are very curious!

Discuss all things Starfield below!

  • dylanTheDeveloper@lemmy.world
    link
    fedilink
    English
    arrow-up
    13
    arrow-down
    1
    ·
    edit-2
    1 year ago

    Modern game engines are extremely complex machines, starting from scratch would take decades because it’s fundermental things like drawing geometry in a 3D space, getting input, memory handling, garbage collection and all that low level stuff that needs to be re-done. Physics requires lots of work, so much infact for a time HAVOK was the go to plugin for most engines (still kinda is) just because of how God damn hard it is to have nice physics and high frame rates (tried to build a physics engine from scratch in C++ and I couldn’t get past the floating point position problem so anything too far away from 0,0,0 would spaz and handling multiple collisions on an object simultaneously caused all sorts of freaky things to happen).

    Then when that’s done you still need to write additional tools and plugins so developers can import assets and scripts into the engine plus a level editor for designers to place objects, triggers and all that fun stuff.

    After that you can now start making the game.

    Bethesda probably rewrote huge chunks of their engine to support larger texture sizes and improve performance across the board for Starfield.

    If they do decide to dump it then they’re most likely to use an existing engine like Unreal or Cry rather than build one from scratch.

    Personally I believe the reason why they didn’t re-write the character movement is because it would also mean altering way to much stuff on the front end.

    A good example would be if I use FunctionGetVelocity in my script to determine if a player is moving and it use to return an int but now it returns a float because of the rewrite, without conversion would mean you’d probably get a crash.

    Another example would be AI related. If I use a variable to get a rot data type but now that’s been replaced with a struct that needs to be split to get rot now suddenly you have to touch the code to make it compliant.