Do you often see the need for changing engine source code in real game development?

Or, ask it another way, do you find the launcher downloaded pre-compiled engine enough for real game development?


In most cases, yes. The only times I’ve absolutely had to modify the engine were either:
A. To fix a bug
B. To implement a feature that requires being embedded in the engine. IE: A new blend mode for the g-buffer.

I see cases to:

  • Expose more things to Blueprint
  • Add parameters to existing classes
    where the engine maker wasn’t aware of users may use things in a certain way.

The adding parameters should be done in derived classes and exposing things to blueprint can be done in a blueprint library.

Using derived classes is cumbersome in these cases: 1. You already added some instances of a class, and you need to add some parameters to the class, then you need to redo all the previously added instances. 2. ThirdPersonCharacter has a SpringArmComponent, if you modify SpringArmComponent code directly, you automatically get the benefit in ThirdPersonCharacter. 3. Your team might create several versions of derived classes of the same parent class, well, this further confuses your artists.

Personally, the time to rebuild the engine is not worth that. I have a quad core i7 clocked at 3.4 ghz and it takes me about 10-20 minutes.

Quite fast : ) even you didn’t mention IncrediBuild. In real game development, 20 mins to build a tool to use for several weeks is quite worthy.

Not to mention an organized team should have dedicate build machine to produce daily builds.

Dude, GitHub says 10 ~ 40 mins, you’re among the top half.

Well, I wouldn’t know about all that. I’m a solo-man indie xD can’t afford a build machine unless I wanna get out an old 1998 mainframe and the 20 1995 towers that go with it…probably still slower than just my laptop. :stuck_out_tongue: