5 ms·
Tooling is a big chunk but it is not the main benefit of an engine in my opinion. There are so many optimizations and abstractions (think build, platform, gl, L
by binthere 10y ago
Tooling is a big chunk but it is not the main benefit of an engine in my opinion. There are so many optimizations and abstractions (think build, platform, gl, LOD handling, skeletal anim, memory handling for things such as landscape) done in your game to make sure it runs super smooth and beautiful at the same time that if you decided to do it yourself you would be working countless of hours to get to the first abstractions.
- mikulas_florek 10y agoI think importance of tooling is highly subjective, depends on your habits and workflow. Some people need to have an editor like Unity, others just want to create their whole game in code, e.g. www.randygaul.net/2017/02/24/writing-a-game-engine-in-2017/
- mrec 10y agoI suspect WebAssembly is going to create a niche for very lightweight engines optimized for download footprint, too. And as you say, UE and Unity seem to be optimized for artist-driven projects rather than coder-driven projects. Which, realistically, are always going to be the majority of commercial efforts, but coders often prefer code. I've written a (basic) 3D object modeller app, and I still can't work out how to use Blender.
- mikulas_florek 10y ago> I suspect WebAssembly is going to create a niche for very lightweight engines optimized for download footprint, too. I wanted to create a simple 2D game once, aiming for lot of platforms, including mobile and web. Most engines (I looked into Unity and Godot) produced just too heavy results for web. I ended up using Haxe/Flixel.
- galangalalgol 10y agoThat guy says his must-have feature of c++ is operator/function overloading. That seems an odd choice to me. I have been a c++ developer for over a decade. I would have leaned more towards it being a necessary evil.
- mikulas_florek 10y agoMust-have necessary evil :) Anyway, I do not agree with all the stuff in the linked article. He was just used as an example for need of programmer-focused engines.
- jackmott 10y agoIt isn't even necessary. Its just convenient, maybe sometimes =)
- iainmerrick 10y agoIt's a must-have for 3D programming, for working with vectors and matrices. OpenGL's shader language is basically C with (hard coded) operator overloading for this reason.
- schoen 10y agoCould you explain a little more about how the operator overloading is used in this context? Is it just that arithmetic operators are made to work in their linear algebra sense on objects representing matrices, so M*N will return a new object representing the matrix product M×N?
- hacoo 10y agoThat's exactly how it would be used. Game programming involves a pretty enormous amount of geometry and vector arithmetic, so it's a domain where being able to write s*(u+v) is an advantage over scaleVec(s, addVec(u, v)). Same logic applies to matrices, as you described. Personally, I think there are more important advantages of C++ over C, and operator overloading can get ugly FAST if you're not careful.
- schoen 10y agoThat makes sense. Thanks for the explanation!