Current Generation Games Analysis Technical Discussion [2023] [XBSX|S, PS5, PC]

Status
Not open for further replies.

Here is great take on the subject from people who develop own engine.
I am not saying that devs who do their own engines don't have good reasons. As remedy says they can customize things more to the games they are making in the details.

But it's also a fact that many devs don't see the merit in that. Both approaches are valid and crapping on middleware engines with dumb arguments isn't neccesary
 
I am not saying that devs who do their own engines don't have good reasons. As remedy says they can customize things more to the games they are making in the details.

But it's also a fact that many devs don't see the merit in that. Both approaches are valid and crapping on middleware engines with dumb arguments isn't neccesary
No No i am not disputing anything you said. The blog post pretty much says what you said and I though I will share it.
 
Employing anyone with a proper education should result in a higher level of competency than this. This points a finger at either eduction being useless, or recruitment being sub-par and accepting people who aren't up properly educated.

And I'm willing to think it's computer education that's lacking with it too high-level and people passing so long as they are able to write simple functional C/Python code with no real understanding of how it fits to realtime operations.
It’s the education system. Go to a typical college out here in America and you would be shocked. Well that’s not entirely fair. There is also some blame on recruiting as actual merit continues to drop in importance.
 
@neckthrough I don't even know that CS degrees generally teach people about the hardware anymore. I'm not sure they all have asm courses. Operating systems is usually optional. I think generally they're tailored to the markets, which means there's a much bigger focus on web focused technology, ai. If you study computer engineering you'd probably have a better grasp of the whole picture of computing.

This may have changed but back in my day computer engineering degrees were light on application programming. There was a lot of Matlab. Maybe some systems development.
 
This take is really dumb and shows how elitism and snobbishness even runs in the gaming dev circles. It's the realities of game development! You adapt your toolkit to what can churn out games faster. It's unviable for most teams to have their own engines due to the complexity of moden games. It's just a fact.

I have most sympathy with Alex and John's take on the situation, but these types of guys quickly dry it up.

"Every unreal engine game looks the same!" Am I back in 2009 or something? Guilty gear strive doesn't look a single bit like Tekken 7. Final fantasy 7 remake doesn't look a single bit like kingdom hearts.

And that's before we get to ue5 which has vastly more reach in graphical fidelity to create ones ideas.

Don't blame the tools, blame the artists.
The "every game looks the same" thing is absolutely dumb, I 100% agree with you. The other tweets in the quoted thread (not sure if you were referring to them or not?) are spot on though -- you can ship good looking, good performing games on the big engines, but you'll never get the kind of engineering quality you get by making an engine for your game and your team. I contend ue is a lot easier than unity though -- at least it's open source, if you have the resources to get stuck in with their engine and internalize all their systems you can at least make heavy changes. (That might just be grass is greener thinking by myself though, I work on a unity game.)

Let's let the javascript intern touch the render thread. There are definitely a lot of programmers that don't really understand how computers work at all, especially with so many coding bootcamps in the USA. I just wouldn't have expected that those people would end up in a role where they'd make critical decisions that would affect performance that way.

Most skilled senior engineers from non-games also don't really know how computers work either for a game's purposes. The problems games face are basically all about avoiding cache misses, the biggest challenge of running a lot of different code at 60fps and basically entirely off the radar of every other software developer.
 
The "every game looks the same" thing is absolutely dumb, I 100% agree with you. The other tweets in the quoted thread (not sure if you were referring to them or not?) are spot on though -- you can ship good looking, good performing games on the big engines, but you'll never get the kind of engineering quality you get by making an engine for your game and your team. I contend ue is a lot easier than unity though -- at least it's open source, if you have the resources to get stuck in with their engine and internalize all their systems you can at least make heavy changes. (That might just be grass is greener thinking by myself though, I work on a unity game.)
Fair play to you friend. Again Wasn't arguing against either approach with proprietary vs middleware, they each have their place depending on developer. But I will call out people who are shaming popular middleware just because it's popular when it's high adoption is just a reality of efficiently making projects
 
Again. Wasn't arguing against either approach with proprietary vs middleware they have their place depending on developer. But I will call out people who are shaming popular middleware just because it's popular and it's high adoption is just a reality of efficiently making projects
Yeah, I think there's a weird line to walk here -- on the one hand, obviously this middleware can't perform like a custom game engine, and even a small team might be better off making an engine that suits their scope if they have the necessary (immense) engineering resources.

On the other hand, these big engines are what they are -- for the same reason making an engine for yourself will result in better tech, making an engine for everyone will result in worse tech. It's pretty silly how people demonize or mock ue for what it is -- it's an amazing engine with amazing features that's helping to push the whole industry forward. There's just no way ever game using all of its tools is going to ship with perfect performance. (I do think ue5 is a gigantic leap in the right direction here though, and it's a place where the fortnite/metaverse focus is clearly pushing the game in players/devs best interest: a fundamentally scalable rendering solution will seal off a ton of potential performance pitfalls present in other engines.)
 
...

Most skilled senior engineers from non-games also don't really know how computers work either for a game's purposes. The problems games face are basically all about avoiding cache misses, the biggest challenge of running a lot of different code at 60fps and basically entirely off the radar of every other software developer.

I'm going to date myself, but I started studying programming in college about 23 years ago. At the time we started programming in java, didn't have a single course on how a computer actually worked for at least two years. Our professors would generally say things like, "You can't out-optimize the compiler" and that java will approach the speed of C as the compiler improves. They'd also talk about how we should move away from C and languages that allow developers to make simple errors in favour of languages that are portable, safe and allow developers to write applications quickly. Basically everything they said was anti performance, which is why every application that gets released is just unnecessarily slow. People don't know how computers work, they don't know how fast computers can actually be and they've been taught that caring is actually detrimental. Gaming and back-end scale stuff are the only two places where people actually care, but that's starting to change: Rust, zig, odin, mojo etc. People are looking for ways to make programs fast, especially as hardware increases become more incremental. So you see languages like Swift, Rust, zig show up and kind of abandon a lot of the O.O. stuff in favour of SoA, data-oriented design and to leverage things like SIMD. The software world might be healing, but it's only just starting.
 
Yeah, I think there's a weird line to walk here -- on the one hand, obviously this middleware can't perform like a custom game engine, and even a small team might be better off making an engine that suits their scope if they have the necessary (immense) engineering resources.

On the other hand, these big engines are what they are -- for the same reason making an engine for yourself will result in better tech, making an engine for everyone will result in worse tech. It's pretty silly how people demonize or mock ue for what it is -- it's an amazing engine with amazing features that's helping to push the whole industry forward. There's just no way ever game using all of its tools is going to ship with perfect performance. (I do think ue5 is a gigantic leap in the right direction here though, and it's a place where the fortnite/metaverse focus is clearly pushing the game in players/devs best interest: a fundamentally scalable rendering solution will seal off a ton of potential performance pitfalls present in other engines.)

The barrier to entry keeps getting higher. Like, at some point are people going to roll their own Nanite type software rasterizer? Every year it gets harder to make a competitive engine, especially as a lot of the top technical talent is migrating to Nvidia and UE. If you're an idie, maybe it makes sense to make a simpler game engine that's tailored to exactly what you need, instead of a generalized one, because you don't need cutting edge. You can use old technology that fits your design. If you're making a huge AAA game, keeping up with the latest and greatest will get harder and harder.
 
A degree in computer science isn't intended to make one an expert hacker. It's intended to impart the fundamental principles of what it takes to build the entire stack of a computer system from scratch, starting from transistors all the way up to programming systems. Building expertise to deftly manage the idiosyncrasies of contemporary shipping products (whether in hardware, OSs, networks or general software) is a valuable skill, but is often not an explicit objective of a CS degree. That said, many students (especially at higher-tier colleges) pick up those skills anyway, often out of personal interest. I would lay the blame on recruitment, mentoring and team management. You can't just hire a NCG and have them coding real-time mission-critical subsystems.

It's not just recruitment. But it's also who universities and colleges allow into their CS departments these days. It's no longer just the people that are interested in and proficient at coding that are being admitted, but also people who only see a CS degree as a portal to a high paying job with little to no interest in programming itself. So they end up graduating with the basic knowledge that a CS degree imparts but none of the skill that a motivated programmer or software architect will have by the time they are through.

I see this happening more and more as more universities become more focused on pumping through CS degree graduates in hopes that they'll become highly paid alumni willing to then donate back to the university.

Regards,
SB
 
Yep. Game development was never easy, but the complexity of everything nowadays is off-the-charts more difficult compared to back in the 90's or something, with these people that some people like to glorify as infallible geniuses who totally would have no issues in today's development environment. It's not just naive, it's downright cynical. Many people dont WANT to recognize the actual problems, they just want to be outraged and bash specific targets(ie - people, not systemic problems).
 
A degree in computer science isn't intended to make one an expert hacker. It's intended to impart the fundamental principles of what it takes to build the entire stack of a computer system from scratch, starting from transistors all the way up to programming systems. Building expertise to deftly manage the idiosyncrasies of contemporary shipping products (whether in hardware, OSs, networks or general software) is a valuable skill, but is often not an explicit objective of a CS degree. That said, many students (especially at higher-tier colleges) pick up those skills anyway, often out of personal interest. I would lay the blame on recruitment, mentoring and team management. You can't just hire a NCG and have them coding real-time mission-critical subsystems.
My CS degree was almost all programming. Whatever the qualification is for programming, people getting it and being qualified and employed for the roles where they are making these performance-crushing decisions should know better. Is the education inadequate or is the hiring process getting the wrong people?
 
My CS degree was almost all programming. Whatever the qualification is for programming, people getting it and being qualified and employed for the roles where they are making these performance-crushing decisions should know better. Is the education inadequate or is the hiring process getting the wrong people?

I think most CS degrees people are tailored to industry now which is JavaScript, Python, web applications, maybe mobile apps and machine learning and deep learning. Most applications are built by importing many libraries and gluing them together. No one is really thinking about performance. It’s about development speed.

I’m in a software project where people constantly get their hands slapped all the time for importing libraries to call a single function. Why not massively expand your dependencies so you don’t have to write a function to manipulate a string or whatever?
 
I think most CS degrees people are tailored to industry now which is JavaScript, Python, web applications, maybe mobile apps and machine learning and deep learning. Most applications are built by importing many libraries and gluing them together. No one is really thinking about performance. It’s about development speed.

I’m in a software project where people constantly get their hands slapped all the time for importing libraries to call a single function. Why not massively expand your dependencies so you don’t have to write a function to manipulate a string or whatever?

Yup a relative in CS right now talks about some of the stuff they learn. The only thing important WRT how quickly something runs is if it's an order of magnitude faster or slower, anything other than that and they are being taught that it doesn't matter. 2x faster or slower? Meaningless. 5x faster or slower? Still mostly meaningless. 10x faster or slower? Now it's something they need to work on.

Regards,
SB
 
That's one of the issues with formal education still seeing 'game development' as unimportant. I don't know what propertion of software jobs are in game development, particularly lower-level. Likely a tiny percent. So I guess you need specialist training from very limited specialist colleges for a focussed qualification, or CS students/self taught with plenty of experience.

Maybe it's just bloody hard getting the staff? ;)
 
That's one of the issues with formal education still seeing 'game development' as unimportant. I don't know what propertion of software jobs are in game development, particularly lower-level. Likely a tiny percent. So I guess you need specialist training from very limited specialist colleges for a focussed qualification, or CS students/self taught with plenty of experience.

Maybe it's just bloody hard getting the staff? ;)

The solution likely has to happen internally, like a trade. You go to school, you get some base knowledge, but then you need to apprentice with someone specialized to learn practical ins and outs of a particular job. Game studios probably need a lot more mentoring and internal training to cover for differences in CS programs and the game dev world. I'm going to guess that an industry with notoriously bad working conditions is not doing a good job of this.
 
To be fair, the game industry does have a high gate to many. In general I feel the people in the industry are getting older without enough new blood refreshing. I highly doubt whether it's the "new people" coming in that cause the problem.
A better argument against the old game is that many of them were not in the same production scale. New games usually have a ton of gameplay systems embedded in one game, complex UI states that is not just some text to display on screen, better animation that is no longer simple finite state machines, insanely larger maps... Surely it's impossible for one engineer to look over all the bottlenecks in the code. When meeting the deadline is a problem, optimization comes last.
 
Yep. Game development was never easy, but the complexity of everything nowadays is off-the-charts more difficult compared to back in the 90's or something, with these people that some people like to glorify as infallible geniuses who totally would have no issues in today's development environment. It's not just naive, it's downright cynical. Many people dont WANT to recognize the actual problems, they just want to be outraged and bash specific targets(ie - people, not systemic problems).

Sure but why should any of that matter to someone shelling out $70 for the game? It's interesting to understand all of the reasons why it's happening. That's an academic exercise. Let's not imply that paying customers should eat shit and say thank you.
 
Sure but why should any of that matter to someone shelling out $70 for the game? It's interesting to understand all of the reasons why it's happening. That's an academic exercise. Let's not imply that paying customers should eat shit and say thank you.
Precisely. It's insane to me that pubs and developers apparently think that just because it's hard and complex, means that they can ship broken or very unoptimized products which barely work and are hardly enjoyable because of the issues and that consumers should just understand...

LOTS of jobs are hard and complex in this world.... that doesn't mean that the end product gets to be shitty without repercussions...
 
Status
Not open for further replies.
Back
Top