Sign in to follow this  

Programmers becoming better, or just the hardware?

This topic is 4746 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

If you compare games from the early consoles, and even some early PC games the graphics (mainly) are alot lower than they are today. Now obviously the hardware has improved immensely BUT have the programmers who are creating the games actually improved? IE, do you think if we had the hardware for doom 3, 5 to 10 years ago, would it have still been possible?

Share this post


Link to post
Share on other sites
Yes, of course. Programmers do not become better and better. They follow (or anticipate) the technology. But there has always been good programmers around. The best example is Knuth.
Now, there is also another phenomenon. When a hardware is released, you can't expect the programmer to already know everything about this hardware. There is always something new to find, and of course, the discover of a new trick may allow big improvements in the overall game quality.

Yours,

Share this post


Link to post
Share on other sites
Quote:
BUT have the programmers who are creating the games actually improved?
we've had to. Anyone who wants to make a commercially successful title usually has to bow to the latest-and-greatest technologies (good graphics are required to sell units as far as some publishers are concerned). These technologies are obviously more complex and require more time/effort to master.

The next generation consoles (as well as the PC in some respects) are heading towards multi-programming environments, which is not an easy form of programming to master. Expect this sort of evolution (revolution) to raise the entry bar a notch.

Quote:
do you think if we had the hardware for doom 3, 5 to 10 years ago, would it have still been possible?
to be picky, of course it would be possible, but seriously - I reckon it'd still have been done. Maybe the industry as a whole wouldn't of been as good, but you'd still have the "gods" who were capable of such complex graphics.



I will maintain the view for a long time, that a good games programmer is often a lot lot more technically proficient than other general programmers. I know there are exceptions to the rule, but the game developers at my university are in a different league compared to some of the people who're only interested in making financial applications using databases and .Net [grin]. My colleagues here at work, some of which have been programming for longer than I've been alive, are obviously very talented though - but I put that more down to experience than outright "born to program" skill.

Jack

Share this post


Link to post
Share on other sites
[flaming]

Quote:
Original post by jollyjeffers
< snip >
I will maintain the view for a long time, that a good games programmer is often a lot lot more technically proficient than other general programmers. I know there are exceptions to the rule, ... < snip >
Jack


Please... Do not say that ever again. There are "general" programmers around the world that did marvellous things. I am a "general" programmer (I confess I'd describe me as a programmer, not a "general" programmer), and I believe my talent/knowledge is as good as some other "game" programmers.

The recent move to learn game dev in university is more a tactical concern than an educational one. I am able to make games - I worked for a game dev studio some years ago - but will these guy be able to develop embedded mips OS core?

And I beleive that if we had the same hardware 10 years ago, we'll have done doom 3.

Yours,

Share this post


Link to post
Share on other sites
Quote:
Original post by Emmanuel Deloget
Quote:
Original post by jollyjeffers
< snip >
I will maintain the view for a long time, that a good games programmer is often a lot lot more technically proficient than other general programmers. I know there are exceptions to the rule, ... < snip >
Jack


Please... Do not say that ever again. There are "general" programmers around the world that did marvellous things. I am a "general" programmer (I confess I'd describe me as a programmer, not a "general" programmer), and I believe my talent/knowledge is as good as some other "game" programmers.

The recent move to learn game dev in university is more a tactical concern than an educational one. I am able to make games - I worked for a game dev studio some years ago - but will these guy be able to develop embedded mips OS core?


I agree. I've seen many people state that games programmers are for some reason the best programmers around because games involve several fields (e.g. graphics, sound, AI). There are hundreds of software projects that take considerable skill from developers, such as operating systems and safety critical systems, that are orders of magnitude more difficult to program than a typical computer game.

Share this post


Link to post
Share on other sites
A game can only do as much as the hardware allows. Doom 3's graphics would be infeasible 5 years ago. The programmers didn't got better: they just applied their skills to newer, better hardware.

Actually, I think hardware is getting better faster than many programmers out there. I see many games with outrageous hardware requirements that don't look that much better than games from 2 or 3 years ago. The plenty of RAM and CPU speed has made many people wasteful.

And please, a game is not only made by programmers. Do you think John Carmak ever touched one of Doom3's models or textures? Hardware got better and as well did the tools like 3D modelers and 2D editing tools. Doing UV unwrapping and animating a character nowadays is easier than it was years ago. And with lotsa RAM you get to do things faster in Photoshop, since you can use more layers and keep more files oepend at the same time without the computer dying at you.

Share this post


Link to post
Share on other sites
M3d10n: I second that.
If it#s about the programming skills, then I don't think programmers have improved at all. you just plain couldn't have more than 16 colors with an EGA adapter. It was a pure hardware limitation. And the gfx did never make the game even though publishers still wish they do...
To me, skill is about getting the most out of the available hardware and that hasn't changed much during the last decade. It's quite natural that programmers get better at using existing hardware over time (e.g. compare the first PS1 games to the ones that came out a few years later). It's just that - as someone already pointed out - programmers lack the time to fully use current PC hardware because it progresses way too fast and the PC is no uniform platform when it comes to hardware.
Another thing to be considered are budget and staff size. 15 years ago games didn't have multi-million dollar budgets and staff sizes of dozens of (fulltime) people.

Share this post


Link to post
Share on other sites
I don't think programmers in general improve over the years. I mean, the games 15 years ago are much worse technically than today, but if you think the limitations (CPU,memory) the programmers had those days, you'll admire them for what the did.

But I have to agree with the person that said that usually game programmers are more talented than application programmers(not people that design OS, that's a different league IMO), although I do both, with game programming as a hobby for the moment. That doesn't mean that an application programmer can't be as good or even better, but in my opinion the average game programmer is better than the average application programmer. He has to deal with many fields, be very creative on how to use the resources and most importantly he has always to "adapt" to new technologies that keep coming at much faster pace than the world of application programming.

Quote:

I am able to make games - I worked for a game dev studio some years ago - but will these guy be able to develop embedded mips OS core?


IMO, yes. A good game programmer(==someone that also knows how things work in low-level), with enough study and work, can do pretty much anything. Besides, one doesn't start with game programming, a good game programmer is also a good general programmer. I'm not so sure a good general programmer's transition to game programming will be this easy. Sure, he will be able to make games, but how good will they be(technically, design is another issue)?

Share this post


Link to post
Share on other sites
I will not argue more about this subject. I think some of you are unfair in their vision of what programming is about. To be short: in the average, game programmers are not better than other programmers. In my experience, they even may be less organized and more hacky than "general" programmers. Remember that only 6 years ago, most game programmers were learning programming as hobbyist. Can you decently say their knowledge is superior to a BSc? BSc and PhD are still rare in the industry - mostly because of their cost.

Quote:
Original post by mikeman
< snip >
But I have to agree with the person that said that usually game programmers are more talented than application programmers(not people that design OS, that's a different league IMO), although I do both, with game programming as a hobby for the moment. That doesn't mean that an application programmer can't be as good or even better, but in my opinion the average game programmer is better than the average application programmer. He has to deal with many fields, be very creative on how to use the resources and most importantly he has always to "adapt" to new technologies that keep coming at much faster pace than the world of application programming.


Gosh. Grin. No.

Me and my cowokers and a lot of people in the software industry need to adapt to new tech just as game programmers do. Even if you are not aware of these technologies, it is still true.

Game programming is not where you find the most people. Statically speaking, it cannot be where you find the most creative and most clever people. Hell! Who will say that The Gimp is not a clever piece of code? And the GTK+ library? And gnumeric? And KDevelop? And ACDsee? And Oracle? Who is able to say that there is no complexity in the ASP code of gamedev.net? Do you really think that a banking application (which need some near real-time network xfer) is easy to do? Do you think that a budget control application need less security than an anti-cheat system for a net-based game?

Quote:

IMO, yes. A good game programmer(==someone that also knows how things work in low-level), with enough study and work, can do pretty much anything. Besides, one doesn't start with game programming, a good game programmer is also a good general programmer.

See my point in my introduction. While this tends to be less true, most game programmers are ancient hobbyist. Most of them didn't learn more about what computer science really is. So (no offense intended, of course - I have much respect to every programmer in this world (in fact, I have much respect to anyone who lives on this planet)) basically, a good game programmer may not be a good general programmer.
Quote:

I'm not so sure a good general programmer's transition to game programming will be this easy. Sure, he will be able to make games, but how good will they be(technically, design is another issue)?


No, design is not another issue. Design is code. The rest is micro-optimization and believe me, everybody can learn how to micro-optimize. The application we do deals with rather large images - and we need to handle them fastly. Most application needs to do things fast, not only games. You don't want to wait 10min to have the result of 1+1 in Excel, do you?

Good programming requires a well crafted brain, and most programmers have well crafted brains.

Yours,

Share this post


Link to post
Share on other sites
In regard to many of the other programs besides games, such programs have little to no room for error. Bugs and programming oversights that would be fixed nonchalantly by a simple patch for video games could spell certain doom to certain other programs. Remember what happened to NASA's space probe? Similar bugs occur all the time in games, yet when it occured in that program, millions of dollars ended up being wasted.

Of course, the sheer amount of processes a game programmer has to work with should be taken into consideration as well. There are few projects besides games and specific simulations that require the programmers to have a proficient understanding of physics, artificial intelligence, and accurate sound modeling (and really, what are these 'simulations' but realistic games, so to speak :P )

Share this post


Link to post
Share on other sites
It sounds as if some of you think every game programer is a specialist in graphics, low-level assembly, physics simulation, networking and A.I.
This is simply not true! The average game programmer is just as specialised to any of these fields as the average application programmer is in any applicable field (e.g. DBMS's, embedded systems, driver programming, etc.).

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Quote:
Original post by jollyjeffers

I will maintain the view for a long time, that a good games programmer is often a lot lot more technically proficient than other general programmers. I know there are exceptions to the rule, ...
Jack


Please... Do not say that ever again. There are "general" programmers around the world that did marvellous things. I am a "general" programmer (I confess I'd describe me as a programmer, not a "general" programmer), and I believe my talent/knowledge is as good as some other "game" programmers.


I feel a need to defend myself. I have 3 points of reference:

1. Games programmers I know
2. Software Engineers from IBM's SWG (my current colleagues)
3. Fellow students at university


Your averageteenage programmer thats enthusiastic about games (like a few people around this site) is often a better programmer than a teenage database/VB editors/hobbyist progammer. That is not to say, in the slightest, that either are **bad** programmers.

The software engineers at IBM are phenomenally talented, almost all of them are BSc/MSc in computing/maths/physics. Yet, maybe just on the fact that they are mostly older ("Real" programmers [razz]) I credit their skills mostly because they have classical training (most of them were *not* trained in software engineering) yet have decades of experience within the industry.

The fellow students at university are good, but I dont rate many of them. Most people (and quite rightly so) are only interested in going as far as the first-class degree they require. If they have to learn such-and-such an algorithm they will, but if they *could* learn another way or read another research paper they probably wont. I know many (similar age) games developers that tend to read around the subject and (at least try to) absorb information like a sponge.

But, contrary to those 3 paragraphs, I did say "I know there are exceptions" - there always are.

Bottom line, I respect your opinion, but based on my above argument, I stick to my original assessment. Game programmers are better, but two points for clarification:
1. That doesn't mean whomever they're better than is **bad**
2. That doesn't mean that just cos they're better they're godlike or two/three/four times better.

Sorry to come down all heavy, but I didn't want people running off with the wrong idea from what I said!

Have a good weekend all!
Jack

Share this post


Link to post
Share on other sites
Quote:

No, design is not another issue. Design is code. The rest is micro-optimization and believe me, everybody can learn how to micro-optimize. The application we do deals with rather large images - and we need to handle them fastly. Most application needs to do things fast, not only games. You don't want to wait 10min to have the result of 1+1 in Excel, do you?


When I said "design", I said it in the context of the phrase "how good the game will be", and I meant "game design", like gameplay,story and such, not code design.

As for Excel, it's interesting you mentioned that. A couple of years ago I was making a small 3D graph application, and I wanted the user to be able to insert any random function as a string and see it in 3D. At first, I just linked to Excel, and evaluated the function for different parameter values using the grids of a spreadsheet. For large detail, it was slow as hell. I had to write my own code that translated the string into postsign notation(e.g: ab+), and then translate that into FPU opcodes. Basically, I just translated the string into real machine code and store it into memory. After that, that code could be executed as many times as I wanted and return the results and it was incredibly faster. Correct if I'm wrong, but to this day, Excel is much slower than this solution.

Share this post


Link to post
Share on other sites
I actually think programmers are getting worse overall.

Referring back to the Lounge's Smartest Person thread, they were all talking about Einstein, Newton, etc. Newton's comments about standing on the shoulder's of giants applies here too.

The reason why people can apply better algorithms is because someone discovered it. It's one thing to make an impressive program when you have all the knowledge you need, it's another thing when you're the first person ever to attempt such a program.

With hardware out today, and the graphics SDK's, I can look up in MSDN functions to draw triangles, create textures, etc. But remember, back in the late 70's, early 80's, you had someone who figured out they could hack the character outputs of computers to display pixels as anything they wanted (within reason of course). It would be the equivalant today of someone creating a newer and better pixel and vertex shader before the hardware even officially supported it.

As for getting worse...

The better compilers are making people more lazy. The more memory and hard disk are making people lazier. Trying to create a game with a 4 MHz processor and 32KB of RAM & 64 KB of diskspace on a slow access tape is completely different than with a 2 GHz processor and over 2 GB of RAM and gigabytes of diskspace (at 7200+ RPM/sec).

Think about it. No automatic memory management. These newer languages help take away many of the pains of programming. But you didn't have the resources to have such things. You needed to figure out cheaper ways of doing algorithms, etc. You had to simulate floating points, because your processor didn't support it. At the same time, your code needed to be compact too, because the more verbose your code, the less you can fit. (I have to give props to those people who actually worked with and can understand punchcards).

That's not to say that laziness is a bad thing. I think when it comes to programming it is a good thing. After all, we write programs, create things to simplify our lives, not make them more complicated. I just don't think that programmers today are as talented overall as 20+ years ago.

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
Your averageteenage programmer thats enthusiastic about games (like a few people around this site) is often a better programmer than a teenage database/VB editors/hobbyist progammer. That is not to say, in the slightest, that either are **bad** programmers.


The problem comes from how do you define 'better than' ?
You cant go on 'output' because games are always going to look better than a DB (although, it could be argued thats down to the artists and not the programmers).
Speed, well to take the example mikeman gave with Excel, now it wasnt fast enuff for 'im but its fast enuff for office work, so its speed is fine.
Code construction? That would vary between programmer regardless of the field of expertise.

As another example, I'm currently working my way along making a MD5Mesh model viewer, however I dare say their are people out there who are younger than me and have already mastered it. However, how many of them could have written a data collection backend which can sample around 50,000 servers in about 3mins, with multithreading and I'd even go as far today 100% uptime, all in about 4months from the ground up? I dare say some could, talent is talent, but not all, so who is better there?

Anyways, to get to the point of the main topic, yes programmers have gotten better because they have the resources open to them to improve. If we had had this tech 5 or 10 years ago then we would have adapted to use it earlier, maybe not such in great numbers, but it would have happened.

Share this post


Link to post
Share on other sites
Maybe programmers are getting worse. I mean every day theres new things to make our lives easier, take Managed DirectX for example, no memory management, no need to deal with pointers. But is this an effort to make our games better, by making it easier for us? I dont know, because it could swing either way, people may decide to be lazier and just hack games together, or put a game together really well to a professional standard.

But then again, a programmer is only as good as the hardware he has to program on :).

Share this post


Link to post
Share on other sites
Quote:
Original post by Nytegard
I just don't think that programmers today are as talented overall as 20+ years ago.


I think they are, just not in the same direction.
Back then it was all about squeezing every last drop from the cpu/ram, making things small and fast and while to an extent that still applies its become less important when it comes to writing programs because, as I said above, we adapt to the resources we have.

Dont get me wrong, what they did back then was amazing and I first cut my programming teeth on an 8mhz Atari STe so I more than appricate the skill involved , but programming now and then is a different skill set, instead of make it small and fast the pressure is make the worlds BIG and fast. The speed is still needed, we just happen to have better tools, kinda like comparing a man who made tables with simple tools (an axe to cut down the tree, saw to cut it etc) to a man who has to make bigger tables with modern tools (chairsaw, bandsaw etc), the skills are just different

Share this post


Link to post
Share on other sites
Ok. Very last post, since I will not argue anymore about this. Because I'm not a game programmer, I have been somewhat hurted by some of these words. OK, hurted is a but strong, but I believe you got my point. I apologize if some of you found me rude - it was not intended.

If we continue to argue about the "who is the best programmer" thing then it would be better to have this thread moved to the lounge. If not, then we should come back on OP's question.

Quote:
Original post by mikeman
When I said "design", I said it in the context of the phrase "how good the game will be", and I meant "game design", like gameplay,story and such, not code design.

My mistake. I did not understand that.

Quote:
Original post by mikeman
As for Excel, it's interesting you mentioned that. A couple of years ago I was making a small 3D graph application, and I wanted the user to be able to insert any random function as a string and see it in 3D. At first, I just linked to Excel, and evaluated the function for different parameter values using the grids of a spreadsheet. For large detail, it was slow as hell. I had to write my own code that translated the string into postsign notation(e.g: ab+), and then translate that into FPU opcodes. Basically, I just translated the string into real machine code and store it into memory. After that, that code could be executed as many times as I wanted and return the results and it was incredibly faster. Correct if I'm wrong, but to this day, Excel is much slower than this solution.

< sarcasm >
Right. It was also very bad design [grin].
< / sarcasm >
Here, the "use the right tool to do the right job" apply. The "Excel is slower" is nothing compared to its power when used correclty - which, you'll have to admit, was not the case here, since you found a better solution. Excel is also a spreadsheet program with support for (possibly buggy) VB macro. You do not launch ms Word to execute a single VBA script, do you?

Best regards,

Share this post


Link to post
Share on other sites
Quote:
Original post by Nytegard
I actually think programmers are getting worse overall...

The better compilers are making people more lazy. The more memory and hard disk are making people lazier. Trying to create a game with a 4 MHz processor and 32KB of RAM & 64 KB of diskspace on a slow access tape is completely different than with a 2 GHz processor and over 2 GB of RAM and gigabytes of diskspace (at 7200+ RPM/sec).


I agree with this. I think that as hardware has gotten better, programmers have become sloppier. I remeber back when WarCraft II came out, one of the best things that I liked about it had nothing to do with the gameplay itself. It was simply the fact that it required only an 80MHz processor to run (that was back when the stadard was 200MHz). These guys wrote tight, efficient code. These days, there are games which require a 2.8GHz processor, 64MB of VRAM and they still run like molasses. Where the programmers aiming too high or did they not program efficiently?

The one thing that I am really afraid about is that as we get farther from the low-level details, programmers will have a smaller understanding of the underlying principles that make these tools work. It is my opinion that if one wants to be really good at anything, one needs to not only know that something works but how it works as well.

Share this post


Link to post
Share on other sites
Quote:
Original post by TheWanderer
I agree with this. I think that as hardware has gotten better, programmers have become sloppier. I remeber back when WarCraft II came out, one of the best things that I liked about it had nothing to do with the gameplay itself. It was simply the fact that it required only an 80MHz processor to run (that was back when the stadard was 200MHz). These guys wrote tight, efficient code. These days, there are games which require a 2.8GHz processor, 64MB of VRAM and they still run like molasses. Where the programmers aiming too high or did they not program efficiently?


Right, so you are comparing a 2D game, which probably ran at 640*480 in 256color to a modern game which runs at least at 800*600, in 32bit color, in 3d, with more graphical content than you can shake a stick at, more sounds than they dreamt possible back then, better AI, better collison detection and general mores stuff going on...

Hey! Mr Apples, meet Ms Oranges...

Share this post


Link to post
Share on other sites
having a programming job in a non-entertainment software company, and doing game programming as a hobby, i'll say that my game programming is more challenging and mentally stimulating than my job programming.

i work in the billing department at my company, and billing systems are arguably the most complex parts of companies. having designed a large part of our billing system internals and maintaining it on a regular basis, i'll say that it is not even as complicated as, say, the part of my game code that partitions, determines visibility, performs physics, and does other more complex things having to do with just the virtual envronment.

maybe it's because i'm a perfectionist, but i feel there is much less room for poor programming in a game than in, well, the billing system i maintain (or any non-real time application for that matter). i spend hours upon hours designing a game algorithm, but give much less thought to algorithms i implement at my job. at my job it's ok if a function that could run in less than a second takes more than 5 seconds. while it's enough for my job programs to simply work, for games this is just the starting point. game algorithms must take the least amount of time and use the least amount of resources, be the most aware of how other parts of the system work (i.e. the video hardware), etc. etc. you just don't see this level of detail with most other programming. while an exception might be OS designers and low level programmers in general, i don't think these are today's "average" programmers. case in point: i try to structure my game code to use less conditionals, because conditionals mean jmp instructions and jmp instructions are expensive.

Share this post


Link to post
Share on other sites
Quote:
Original post by _the_phantom_

Right, so you are comparing a 2D game, which probably ran at 640*480 in 256color to a modern game which runs at least at 800*600, in 32bit color, in 3d, with more graphical content than you can shake a stick at, more sounds than they dreamt possible back then, better AI, better collison detection and general mores stuff going on...

Hey! Mr Apples, meet Ms Oranges...


I was comparing WarCraft 2 with other games at the time (i.e. the ones that required 200MHz). Even so, I believe that even today you can still find examples of games which use lots of resources yet fall far short in terms of performance when compared to others with smaller requirements.

Still, point well taken. I should have presented a better comparison.

Share this post


Link to post
Share on other sites
Quote:

<sarcasm >
Right. It was also very bad design .
< / sarcasm >
Here, the "use the right tool to do the right job" apply. The "Excel is slower" is nothing compared to its power when used correclty - which, you'll have to admit, was not the case here, since you found a better solution. Excel is also a spreadsheet program with support for (possibly buggy) VB macro. You do not launch ms Word to execute a single VBA script, do you?


It was you that mentioned Excel as an example that application programmers are just as concerned with performance as game programmers. And when I said that in fact they could have done it a lot better, you say that I just didn't use the "right tool". That's not really an argument on why those that programmed Excel didn't use a similar solution to vastly increase the performance, is it? It wasn't the right tool simply because it wasn't fast enough. If they implemented it more efficiently, I would use it for this particular job. It's not like I wanted to do something insane, I mean one of Excel's main uses is to evaluate functions and make all sorts of graphs, isn't it? Of course, it does that and offers many options, but performance-wise, it falls short.

Besides, I don't use Excel much, but I know my father does for his job and I listen to him complain many times about how slow it is when he needs to update many sheets that contain functions.

As for code design, which you keep bringing on, my opinion is that it's useful, but not the answer to everything. Let's face it, programming is not a science, and IMO, it will never be. Unstructured programming, if you know what you're doing, can be much more efficient. Since we're talking about game programmers, Carmack is a very bad software enginneer. He doesn't design his engines, he hacks them together. Does that keep them from being the most powerful engines of their times? Of course not.

Oh, and that seemed weird to me:
Quote:

Because I'm not a game programmer, I have been somewhat hurted by some of these words. OK, hurted is a but strong, but I believe you got my point.


We just said that in general, the average game programmer tends to be more talented than the application programmer,because let's face it, it's much harder to make a 2D scroller in C++(average gamedever) than to make an logistics/database application using RAD, and maybe writing a little code as well(average app programmer, and I know what I'm talking about). You might not be average, but amazingly good. Besides, you mentioned you know how to build OS, so you're in an entirely different league.

[Edited by - mikeman on December 17, 2004 1:46:17 PM]

Share this post


Link to post
Share on other sites

This topic is 4746 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this