I know I sound demanding, but can somebody please write an advanced book about game engine programming? there are several introduction to game programming books out there, but almost 0 advanced book. Assume I know vectors, trigonometry and… calculus too, I need a nerdy game programming book. game engine development is more difficult than rocket science, and unreal c++ is hard. (apparently star citizen lumberyard engine is gonna spend half a billion $ but we can go to the actual space cheaper).
I guess the best person to write it gonna be Tim Sweeney, the best game developer and one of the best programmer ever. this book is probably don’t have to be too big, he just have to mention many other type of programming paradigm.
I think I know what he wants, he is in philosophical battles. UE5 is going to destroy the normal bump height maps, maybe in distant future, translucency calculations also, WOW WOW. What mr. sweeney sees, he gets. he saw that iterative process of game development has to be improved so epic made many tools inside engine. epic saw that texture map industry is not needed if they can improve some nerdy mechanics so here comes lumen and nanite in ue5. epic games saw unigine and others making physics based space games so epic is making chaos physics.
what I am trying to say is that corporations like sundar pitchai, satya nadale and tim sweeney have specific visions for industry. mr. sweeney has to just write books to explain his visions so others will think like he does, then they all will join unreal in order to take over the 3 dimensional virtual world.
what I really want-
compare how shader works in different game engines and why unreal is best. which equations unreal use to mimic real lighting?
why ue5 can use lumen and other stuff. how other apps like 3ds max etc. uses lightmaps?
compare how other engines work with collisions.
should unreal do physics on gpu instead of cpu? chaos demo says intel needs new avx to calculate chaos because single data won’t work, they need SIMD. gpus already have SIMD and SIMT. seems to me that chaos doesn’t need pinch perfect physics, it is an approximation using parallelism.
i have a feeling that when tim sweeney saw that 8th gen devices can have trillion of basic sprites as particles and volumes with semi accurate physics, so he came up with the idea of making particles out of everything. now unreal will have water fluid mechanics where every niagara can tell other niagara how to collaborate movement. unreal is making everything niagara systems, even animations is niagara particle, animations can be shared across crowds. you get a niagara, you get a niagara, you all get a niagara system.
epic games saw how 9th gen consoles and pc is moving to ray tracing and vectors so ue5 is now making everything out of vectors, changing the whole graphics process?
this is a knowledge graph battles where epic games predicts the industry then connect architectures together. how does their brains work:?
now, software engineering level-
how does computation comes in play of these codes. how does programming paradigms play in here? functional programming vs imperative programming? i thought tim sweeney wanted a python or c# support in unreal because he was worried about the lack of declarative parallelism in c++.
what is epic’s target? forgive my noobness but does ARM architecture prefer declarative programming more? less variable manipulation?
web world- availability consistency partition tolerance, blockchain world- performance scalability security, game dev world- performance visuals develop speed/iteration.
how does unreal 5 improves iterative process? unreal using everything as plugin, in future we will have blender code inside unreal to make 3d sculpts?
they say every programming problem can be solved by renaming, refactorizing and dependency graph. how does unreal help refactorization?
there is a distributed while multithreading programming paradigm. there are languages where variables that can have states. are these programming paradigms useful in unreal at this time? i guess not.
now in api level-
vulkan or dx12? tim sweeney hates apple and kinda hate windows uwp too. what is prohibiting vulkan to take over? why does epic now trust microsoft?
however, if vulkan wants to takeover, what programming architecture they have to follow? for some reason apple didn’t go to vulkan from opengl, they went to metal.
unreal engine 5 is ‘killing’ texture maps and many other things. how does it play with modern gpu architecture? gpus still have compute units? do they need heavy compute units when unreal nanite ‘killing’ lightmaps?
industry people thinks rasterization is dead, time for vector graphics takeover, whether it’s ray tracing or deep learning. deep learning matrices and convolution are parallelized just like how gpu works.
now, if unreal kills lightmaps, do we need gpu buffer? or the gpu should stop thinking about layers altogether. process will change, no? no more vertex painting? do we need vertex, primitive geometry, fragment and pixel and normal map generation in different processes or it’s gonna be all in one in a new ultimate api?
if lightmaps are not needed, it’s not a game anymore, we are looking at videos. these ue5 ‘games’ are kinda like ‘videos’, where the engine computes your camera angle then shows you nanites, avoids drawing complete meshes. it supersamples things for anti aliasing. sounds like a video to me.
now, in logical level-
how does it work with P vs NP programming? how does these philosophies can help computer avoid NP like traveling salesmen or warehouse or knapsack problem?
CPU is too weak and linear for knapsack problem? how GPU comes to play?
apparently nvidia rtx uses box to approximate where to raycast. that sounds like knapsack problem to me. fluid mechanics- that’s pathfinding with segmentation problem?
isn’t everything a pathfinding, constrained shortest path, approximated ILP?
mathematically, how does it play with cartesian coordination and polar coordination? gpus uses matrix, matrix can be parallelized.
maybe we should make hardware more polar? angle-dependent instead of numeric 4x4 matrix? is polar coordinate better at approximation than numbers?
however angle based approximation requires pinch perfect floating point accuracy. unreal really needs 64bit first.
now, in hardware layer-
where does arm vs x86 x64 comes into play?
unified shader instead of vertex and fragment shader unit improved graphics computing… what next? and how ue5 and ue6 gonna handle the future when arm based graphics will be popular? nvidia buys arm, arm already has supercomputer, apple m1 arm beats x86 x64. google making pixel with tensor core, what the hell is going on?
i don’t understand hardware, but how about hyperthreading? is hyperthreading dead because arm doesn’t use it? intel has hyperthreading bugs or backdoors called spectre and meltdown? is CPU dead? SoC is the future?
how should nvidia and amd make gpus? how would epic games want nvidia to change architecture? more integer vs more floating?
consider me uber noob when it comes to electricity, but in future will we see new paradigms in field effect transistors? aren’t we all using waves? transistors amplify waves.
how does ue5 architecture play in atomic level? after all, these are all transistors and field effect transistors depend on voltage, and loosely depend on electron’s traveling angle in the insulator/depleted region.
there is a common battle here-> electron’s angular momentum, insulator’s feelings about voltage driving waves to be amplified; calculating the angle of camera to show nanite; calculating angle of vector for ray tracing? we are fighting angles.
if scientists use new materials instead of silicon galium germenium arsenic we can get more out of field effect transistors? this is not really relevant for unreal engine, but maybe in future there will be new FET which amplifies multiple waves/fields at once, kinda like how ray tracing rtx uses parallelization for determining reflection.
deep learning world- everything is wave, backpropagation and lambda calculus- waves. statistics and variance are wave-ish. waves and virtual neurons determining complex things that humans can’t.
physics level- are you making game engines or are you calculating space-time-mass and wave-particle duality? this is not really on topic but how does epic games plan to beat the quantum realm? in future will epic make hybrid quantum computers which can approximately factorize a matrix even before the matrix even came to existence? jokes apart, quantum computers are matrices, so in future will we see total death of x86 architecture and total dominance of tensors?
in future, the industry gonna move into game streaming because of fast internet and city life.
do we even need powerful computers? isn’t a mid tier arm chip enough for portable game streaming phone/foldable/phablet? monopoly internet companies and cloud will calculate physics of a game then stream the video to us? shared processor, gaming as a service? pre-computed geometry based on our possible positions when looking a specific mesh?
game AI- even though AI has improved and they can predict many things, game AI has gotten worse in the years. why? should unreal introduce new AI systems where AI can coordinate with each other more effectively?
also, how does anti cheat improve in future? elon musk made an AI which can play dota, and he is making machine learning deep learning AI which will shoot people based on color of a single pixel. how would we know some esports winner is a human? maybe in future we will only play physics based games, which are hard for AI to mimic? maybe we will play huge starcraft style rts with 1 billion units so AI gonna have tough time mimicking supply chain battles?
what do we really want? gamers just want to feel games. emotion through motion. philosophically, aren’t we all waves? how does unreal makes gamers feel better? (technically there is modding tools where gamers can unite with mods.)
do we even need computers? maybe in future mark zuckerberg or somebody else gonna invent virtual brain impulse where it makes you feel like you are playing ultimate fpsmmorpgspaceephysics. don’t try to see the rendering, don’t try to understand it, just feel it.
I want a book which explains many part of engine C++ code as well as compares programming paradigms, vectorization vs rasterization, future nanite/lumen/chaos. and maybe even discusses P vs NP, approximation, gpu parallelization philosophies etc. maybe even discusses different industry predictions.
If some other unreal expert writes an advanced book that’s good also. why I want this? because there is an unreal api documentation but no guide for understanding code segments or files. C++ is hard.
on 2nd thought… i want tim sweeney and a mid level unreal engineer to write this ultimate book conjugatively. one book to rule them all. tim sweeney will focus on the industry and architecture and mid level guy will explain how code segments gonna work on the gpu.
note that mentioning too many unreal engine codes in a book is actually a violation of epic games policy, so you should just mention links in the book from unreal github repo.