0
\$\begingroup\$

Unreal has built in systems for stuff like lighting, for example. If a developer wanted to create and use their own lighting system in Unreal, how do they go about doing that? Or are these systems already so customizable that creating a custom system isn't necessary?

\$\endgroup\$
  • 1
    \$\begingroup\$ This will depend a lot on the specifics of what you want to do. I'd recommend using the edit button to narrow this down to one concrete system change you want to make. Take a look at this question about creating a darkness-emitting light source in Unity for an example of the kind of flexibility these engines often offer, and how a well-focused question can invite constructive answers. If you're wondering about multiple system changes, it's best to give each question its own post to be answered separately \$\endgroup\$ – DMGregory Apr 20 '17 at 20:06
  • \$\begingroup\$ I'm not trying to do anything, the question was just out of curiosity. I've been interested in game development for a very long time, but I've never actually used anything like Unreal or Unity. I wasn't sure if the built-in systems were robust enough by themselves, or if bigger dev studios would usually need to build and implement their own. If they did, I wasn't sure if these engines include hooks, or have plugin support, or if they'd actually have to dig into the source of the engine itself. I wasn't sure if the last one was even possible. Apparently it's all of the above! \$\endgroup\$ – Ralphred Apr 20 '17 at 22:04
2
\$\begingroup\$

We use the tools made available to us by the engine.

Major engines tend to try to cater to a reasonably large demographic of developers, which means trying to offer as many knobs and dials to turn as possible. If knobs and dials start to become cumbersome, engines typically support extension mechanisms such as writing plugins, replacement shaders, ways to disable or replace entire major subsystems or integrations, et cetera. This tends to get very engine specific.

At the lowest possible level, we simply(*) change the source code to do what we need to do. Many engines these days permit source code access, either relatively directly (like Unreal) or if you arrange a special licensing deal (like Unity). The latter is usually expensive (the kind of expensive where they don't tell you the price until you call them kind of expensive), but usually fit into the budget of the larger-scale games that would really be needing to change this kind of stuff.

(*) It's of course not usually simple, but fundamentally it's still just programming, almost exactly as if you were writing such a system from scratch, except you also have the benefit of being able to leverage the rest of the code provided by the engine and the challenge of having to fit it into the rest of the assumptions provided by the engine.

\$\endgroup\$
0
\$\begingroup\$

I work with Unity, and you do not need to create new systems for physics or lightning, as they are highly customizable with a lot of different variables that you can play with. These systems are also so advanced that creating a replica will be, in itself, a big project.

Having said that, if you want to create your own physical world based on new rules, you can do that; and for that project, the existing systems will only help in achieving the end result in a better and faster way.

This answer holds true for other big game engines, like the Unreal Engine or CryEngine. For game engines that do not have their own physics system, existing physics engines such as Box2D can work.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.