4 ms·
Writing your own engine, when you intend to make a game is a black hole where many many projects go to die. Implementing a cross platform modern game engine is
by jmatthews 11y ago
Writing your own engine, when you intend to make a game is a black hole where many many projects go to die.
Implementing a cross platform modern game engine is perhaps a single step below writing an operating system from scratch.
Source- I've written 3 feature rich, but not feature complete, game engines over the last 25 years.
- hacker_9 11y agoWriting an 'engine' is just good code reuse - as I build my game I have 2 separate groups of projects: one is for the engine where I put generic game tools such as model loading, input handling etc - and the other group of projects is my game logic which contain specific jobs and tasks my AI perform in-game for example. When new engine features come out, FXAA for example, it's mainly just a case of finding it online [1] and implementing it as needed. I've done this with many parts of my engine (model loading [2], animation [3] and physics [4] come to mind) where I don't need to re-invent the wheel, but I have full source for when I need to modify it (always the case), and it comes unrestricted by licences which is another plus. Cross platform? Mono runtime + Monogame already has me covered, and I can use a modern language to write my games for faster iterative development. [1] https://github.com/SeriousMaxx/FXAAMonoGame https://github.com/SeriousMaxx/FXAAMonoGame [2] https://github.com/assimp/assimp https://github.com/assimp/assimp [3] https://xnanimation.codeplex.com https://xnanimation.codeplex.com [4] http://community.monogame.net/t/which-physics-engine-is-working-with-monogame/472/11 http://community.monogame.net/t/which-physics-engine-is-work...
- Keyframe 11y agoI both agree and disagree with you. It's certainly possible to write an engine by jury-rigging stuff you find online/in books around, but that will not lead you far. Modern graphics approach is not even possible anymore with elementary knowledge of trigonometry. You can't do anything complex if you don't have, at least, a basic grasp of calculus. It is just not possible anymore. And, on top of that, you have to be able to parse modern research in graphics in order to understand what is going on and why and then implement that. Most of modern rendering approaches lie on the shoulders of this great paper: https://graphics.stanford.edu/papers/veach_thesis/thesis.pdf https://graphics.stanford.edu/papers/veach_thesis/thesis.pdf but they have since built upon that. You have to keep at it, new stuff is always brought to light, and you have to know both how and why. It's a task that needs special attention, a lot of it, and you still have a game to write - which is a large task in itself. So, my takeaway is that it's great to outsource that large of a task to Unreal/Cryengine/Unity/whatever and concentrate on game design and mechanics itself. Unless, you enjoy writing graphics engines/renderers (I wrote a couple over the years, and used in production. I wouldn't do that again.). Other thing is if you want to do something special, not possible with what's available - streamlining performance for certain cases, some special technique, etc. One other benefit, apart from outsourcing, is that there's now a large pool of people using the same system. So, you're not working in isolation anymore and you can ask for help when you get stuck - and stuck you will get.