Is there a need to code a new 3D engine? [closed]
Coding a new 3D engine is fascinating but I there a开发者_StackOverflowre so many out there. Is it sane for a programmer to start a new one? Are there industry sections in need?
Reasons to do it:
- You want to learn about how to make a 3D engine, and don't really care if anyone but yourself uses it.
- None of the existing engines do what you want and it's too much trouble to modify their source code (if you can even get it).
- You have such an awesome idea and no other engine has done it so you need to do it because whatever you're doing doesn't exist yet.
Reasons not to do it:
- You don't have enough of these resources: time/budget/expertise.
- An existing engine fits your needs perfectly.
There are lots of reasons to build a new 3D engine (in no particular order):
- The old one is a first person shooter, but you want a flight simulator.
- The old one works, but isn't easy to use or has too many bugs
- Someone else owns the old one
- New hardware feature XYZ is fundamentally incompatible with the old engine
- Someone is paying you to build one
- You've never built one before.
- Your game (simulation) only needs χ, but the old engine provides χ, ψ, ζ, α, β, γ, δ, and even π.
I happen to be building an OpenGL-based 3D engine in my off time right now. By implementing it myself, I'm expanding my basic knowledge of OpenGL way more than I would have by programming to someone else's interface (way more than I did when I implemented my own software affine texture mapped engine years ago). The downside is that I may never finish it :)
Generally, you code one if you have a need for one and there doesn't already exist one that suits your need.
Is there someone out there who needs an engine built for them because there doesn't exist one that suits their needs? Probably.
This is highly similar to the question should I write my own program/technology/framework X instead of using an existing one?" and that has been asked plenty, so I won't go over the usual boilerplate reasons.
While the answer to this question will always be somewhat subjective, a great deal depends on the context in which it is asked.
If it's being asked along the lines of I want to learn about game engines and rendering then it always can be beneficial to write your own game engine as developing the code is arguably the best way to learn. However, there may already exist good open sourced well documented engines to learn from as well.
If it's a commercial endeavor, then it's more of an issue of whether or not an existing engine provides what is needed. Modern commercial engines are written by some truly brilliant people and contain all the latest bells and whistles so it's more than likely they would suffice. This is evident by the sheer number of games that have been developed on two of the most popular game engines: idTech and Unreal engine. However, there still may be no tech related prohibiting factors to using an existing engine where writing your own is better. Such as if it can afford to be done, whether the engine can be licensed adequately, and, if the license can be afforded.
精彩评论