• Advertisement
Sign in to follow this  

Video game programming vs. Software application programming. Which is more complex?

This topic is 4046 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

Are the challenges of programming a video game more complex than programming a software application? For example a spyware scanner or filing system for a company. I have a good feeling that game programming probably involves more mathematical calculations.

Share this post


Link to post
Share on other sites
Advertisement
It is difficult to answer this question in the general case.

I can think of some very simple games, and some remarkably complex applications involving hundreds of lines of math.

Share this post


Link to post
Share on other sites
It really depends on what you are trying to do.
I mean I can use VB and make a photo viewer or even an application that connects to a database in 5 min it's that easy.
And now with microsoft releasing XNA you can pretty much just use a wizard to do pretty much the same thing with video games.
Now making a software application or game someone will actually shell out money to buy is another story!
I'd have to say game programming is more work/complex however you want to see it just due to the fact that there really is no standard way to write a game. I mean most applications have a menu at top and pretty much work the same whereas have you ever seen 2 games that are pretty much identical?
In otherwords there are alot more hacks in game programming and stuff that noone's ever done before/thought of doing in contrast to business apps that have pretty much been the same forever except for now the work that's being done to make them also accessible as web apps.
Then again there are compilers,OS,not to mention encryption like AACS that can make game programming look like child's play so you really are asking the wrong question.

Share this post


Link to post
Share on other sites
Your question is equivalent to:

What is more complex, a Corvette or a car?

Share this post


Link to post
Share on other sites
I would have to say game programming by far.

Take however hard application programming is, then add physics, mechanics, AI and a story line and you have game programming.

Share this post


Link to post
Share on other sites
I've got more experience with application programming than anything else, but I've found that game programming is trickier than most application programming. Application programming can be extremely complex, but most applications don't have realtime requirements, which in a lot of cases means they can reduce complexity by sacrificing a bit of speed. That isn't a trade that game programmers can make too many times.

Share this post


Link to post
Share on other sites
[opinion]

In my experience, game development is more complicated (generally). If anything the tendency for game companies to be under funded/organized, and the (more) fickle and demanding nature of their customers is enough to sway things that way.

Share this post


Link to post
Share on other sites
i would say games are more complex to make, i dont know if its because of the people who tend to work in game development or the nature of games them selfs but making a games usually seems to be just screwing around with code until you get what you want. On the other end how to make a business application is a fairly well document step by step procedure.

Share this post


Link to post
Share on other sites
It depends on the application and the game. Some applications, like Office, or Maya, are extremely complex, and IMO, much more complex than the vast majority, if not all, of games out there.

Share this post


Link to post
Share on other sites
My analogy in the last post was carefully chosen.

There are a lot of different cars out there. Many are a lot simpler than the Corvette. Many are a lot more complex. Many are just different. It really depends on what you're talking about.

Share this post


Link to post
Share on other sites
I have reinterpreted your question as:

Quote:

Which is more complex, video game programming or business application programming?


And I would tend to suggest that games programming is WAY more complicated.

As a professional developer of business software of nine years, I know a few things about it. My evidence is:

1. The quality required of games programming is much higher; business software is absolutely *FULL* of bugs which make the application go wrong (e.g. corrupt data, get the wrong answer) and fail (e.g. crash) constantly, and most of all, nobody minds too much. Patches are much easier for business software.
2. Most games programmers I've met are of a MUCH higher standard, as developers. I've met a few good business application programmers, but I've also met a lot of absolutely useless ones.

Granted this is somewhat subjective, as I've mostly met business programmers on a professional level and mostly met games programmers socially.

Mark

Share this post


Link to post
Share on other sites
Quote:
Original post by markr
I have reinterpreted your question as:

Quote:

Which is more complex, video game programming or business application programming?

And I would tend to suggest that games programming is WAY more complicated.

As a professional developer of business software of nine years, I know a few things about it. My evidence is:

1. The quality required of games programming is much higher; business software is absolutely *FULL* of bugs which make the application go wrong (e.g. corrupt data, get the wrong answer) and fail (e.g. crash) constantly, and most of all, nobody minds too much. Patches are much easier for business software.

By Gosh!
Quote:
2. Most games programmers I've met are of a MUCH higher standard, as developers. I've met a few good business application programmers, but I've also met a lot of absolutely useless ones.

You haven't met the right ones [smile]. Or maybe you have.
Quote:
Granted this is somewhat subjective, as I've mostly met business programmers on a professional level and mostly met games programmers socially.
Mark

Frankly, I think that the comparison between game programmers and "the other programmers" is baseless. First, the number of "other programmers" is largely superior to the number of game programmers. If you want to compare the elite to the nass, it won't work. You have to compare the elite against the elite - and in this case, you'll have hard time to prove that game programmers are better.

There is one thing that I find quite strange: it's all this hype around game programmers - as if every game programmer around the world was Carmack or Forsyth. Big Programmers are very rare - most of the time you'll have a clever guy and a bunch of other guys. Now, you assume that because they are in the game industry, they are obviously better than every other guys. This can't be true. Yes, it's hard to enter in the game industry - but that's really not because games are complex pieces of software - that's because the interviewers will require you to have a previous experience as a game programmer (that's where the whole thing is flawed in my opinion). Since they require this (often artificially), even very valuable engineers will have hard time to penetrate this industry.

The downside of this attitude is that game programmers just start to work using normal engineering method. From an old, previous experience (ok, it was short, but I met a lot of game programmers from different companies), game programmers in 98 were unaware of things like "source control", "formal methods", and so on. Things that were already used in the (normal) software industry since 10 years. So they were good at coding in their own world, but working in teams proved to be quite difficult.

I'm not sure I'm clear. To simplify, let's say that I'm pretty sure I'll do a very good game programmer - and I know a lot of other people that are just like me. But I don't work in the game industry. That doesn't make me less good than the average game programmer (or even than an elite game programmer). Sure, there will be a shift in knowledge - he will know very well the effect of a small change of the code on the workload of the GPU. Things that I tipycally don't care in my job.

Now, regarding software complexity, let me introduce you Visiowave, an Helvetic company. They sell security cameras and the needed softare to deal with them. Can you imagine the complexity of a software which have to render a real-time captured scene with additional informations (such as outlining a car that goes in the wrong direction, signaling all the guys who have a long, black coat in a street, and so on?). These software are in development for years. There degree of complexity is probably 100 time the complexity of an average game.

What do you find complex in games? AI? Non-games industy does far better. 3D? Visiowave is using 3D technoligies in their software, to a point you wouldn't think that would be possible; Cad softwares or plane simulators goes far beyond what you'll see in games. Data management? Well... I don't have much to say there... Sound management? Physics? Whatever?

For one game that technically push the limit, there is at least one (normal) software that did far better, and that did it years before.

Game programmers are kind of proud to be game developpers. "We are the World, We are the Champions. We do the Biggest things out of this world". That's an attitude I really dislike. Games programmers do have some merits. But the fantasm of the Game Programmer Who Is A Genius And Is Better Than All Other Programmers Around The World is just plain... well... let's say unfair.

Share this post


Link to post
Share on other sites
Quote:
Original post by markr
And I would tend to suggest that games programming is WAY more complicated.

As a professional developer of business software of nine years, I know a few things about it. My evidence is:

1. The quality required of games programming is much higher; business software is absolutely *FULL* of bugs which make the application go wrong (e.g. corrupt data, get the wrong answer) and fail (e.g. crash) constantly, and most of all, nobody minds too much. Patches are much easier for business software.
2. Most games programmers I've met are of a MUCH higher standard, as developers. I've met a few good business application programmers, but I've also met a lot of absolutely useless ones.

Granted this is somewhat subjective, as I've mostly met business programmers on a professional level and mostly met games programmers socially.

Mark


1. The required quality of a product does not necessarily reflects its complexity. The more complex a system is the less likely it is to have a good quality in the same timeframe as for a less complex system.

Therefore I would actually put it the other way around: Business software is more prone to crashes due to its very high complexity and thereby induced lack of quality.

2. The quality of the programmers also does not reflect the complexity of the software.


What exactly would you define as "complex software"?

For example a game with a physics engine is not necessarily complex. The code could be very simple and easy to understand, even though the mathematics and physics involved are very complex. 90% of the code could simply be mathematical expressions.

A spyware scanner on the other hand probably does not require the same level of maths. However, you may need to have a very good knowledge about Windows, file systems, security concepts, domains, user rights management etc. because they could affect your application. As such the code may be very complex because it must take all these things into account.

My personal view is that both business software and games are complex in their own unique ways. As such they cannot really be compared.

Share this post


Link to post
Share on other sites
It very VERY very much depends. I've been working as a unix consultant/network engineer for about 15 years now, and i can honestly tell you, that what someone else said above about business software being buggy, is very much, yet unfortunately true. I will not name names, but most software that does 'simple' things (i.e., software that does not do complex mathemical calculations, i'm talking stuff like network management software, frontend software, database management software, database software itself (granted, a toughy) and other useless crap business can easily sell for 20k a piece. Doesn't work? Send us a coredump and we send you a patch. That's the way it goes. Business software is renowned for using professional businesses as their testing ground. And business find it normal (and have the budget) that software crashes. They have grown accustomed to it at least. It doesn't come out of their own purse you know, it's the company. And the CEO does not usually make decisions on software above 20k (see the trend here?)

So, business build crappy software and get away with it. This is for most software true. There are however complex pieces of software that are a) complex because of their huge codebase and hence complexity (needed or unneeded), and software that just needs a lot of knowledge about memory management, file systems, etc. Trust me, that ranks up there with all the graphic calculations up there easily and above. Honestly, how much math do you actually use in your game?

Games can't afford to be buggy because they have a fluctuating userbase. Business sign contracts for years and are all set. But are they more complex? If you compare them to management/front end applications i would say yes, if you are comparing games to things like filesystems, databases, kernels, i would say definately no. Games have way less lines of code, have less to care about , and so i would say they are easier off in the long run. Ofcourse my previous argument about huge pieces of software with a big codebase also explains why business software has so much crashes.

So, define complex.

Share this post


Link to post
Share on other sites
The only reason why I think Game programming in general poses a greater challenge for MOST general software development is because it isnt enough to just work. In most cases, it has to look good, run fast and be prepared to take on an army of people TRYING to break the program.

Obviously a program for NASA has those requirements and more, but I'd say a professional game programmer will almost always be required to fill those, while a professional business programmer wont necesarily have to.

I have no experience professionaly, so ;(

Also, Promit: I dont think he meant, "what is more complex, programming or game programming" because that is inclusive, as your analogy suggests. I know his question/title could have been choses better, I think with reasonable confidence he meant an exclusive question.

Share this post


Link to post
Share on other sites
Quote:
The only reason why I think Game programming in general poses a greater challenge for MOST general software development is because it isnt enough to just work. In most cases, it has to look good, run fast and be prepared to take on an army of people TRYING to break the program.

Obviously a program for NASA has those requirements and more, but I'd say a professional game programmer will almost always be required to fill those, while a professional business programmer wont necesarily have to.


You are also confusing complexity with polishing a program so that it looks good and feels good. The topic was complexity. Complexity kicks in when:
a) the codebase is large and very much intertwined
b) when it uses techniques which off which only a view people are expert in [hardware optimized routines, using assembler, physics, math, system specific code or information etc.)
c) the codebase is large and it is a mess [spaghetticode]


Share this post


Link to post
Share on other sites
It really depends on you. I don't really find game programming really challenging. But I do find writing distributed systems/Network programming code and having to keep things in sync etc quite challenging.

So I guess it depends on the individual.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement