11 Replies - 6017 Views - Last Post: 11 February 2011 - 01:56 AM Rate Topic: -----

#1 (Cryptic)  Icon User is offline

  • D.I.C Head

Reputation: 15
  • View blog
  • Posts: 69
  • Joined: 13-January 11

General Game Programming VS Console Game Programming

Posted 09 February 2011 - 02:21 AM

I'd like to discuss the differences between the two. What are the differences you face over the other. Or what you presume would be different. I'd like to keep the topic generally towards C/C++.

Some of my thoughts, questions, assumptions & experiences.

1. In university, most general game courses teach C++ and not C. C which goes into more technical issues which are covered up through C++ extensive libraries. Thus, a good majority of students are not equipped for console development.

2. There are many different optimization techniques in regards to/from C++ to C.

3. In console development there are more memory related issues (such as http://www.dreaminco...rview-question/ which sparked off this little topic).

In general games development for windows, linux & mac. We/I generally do not care as much about memory consumption. Its usually in the back of my mind, but I do what I can, as long as it doesn't hinder my project.

Thoughts?

This post has been edited by (Cryptic): 09 February 2011 - 02:22 AM


Is This A Good Question/Topic? 1
  • +

Replies To: General Game Programming VS Console Game Programming

#2 Antiokus  Icon User is offline

  • D.I.C Head

Reputation: 10
  • View blog
  • Posts: 192
  • Joined: 06-September 06

Re: General Game Programming VS Console Game Programming

Posted 09 February 2011 - 03:39 AM

So... are we talking about C/C++ or Console vs. PC(general) game dev?
Was This Post Helpful? 0
  • +
  • -

#3 stayscrisp  Icon User is offline

  • フカユ
  • member icon

Reputation: 1040
  • View blog
  • Posts: 4,325
  • Joined: 14-February 08

Re: General Game Programming VS Console Game Programming

Posted 09 February 2011 - 03:54 AM

I think universities need to start leaning to wards console development as it seems that a lot of game companies are doing this as well. Why take the time to make your game compatible across PC's with different drivers and hardware when you can just make the game for one console, makes sense. Unfortunately console SDK's are expensive.

I am developing a DS game and I am using all the C++ tricks and style I use for developing on a PC, so far it hasn't made any difference to my frame rate or anything like that. I think a lot of the issues (not all) that used to plague consoles can be forgotten due to increases in memory.

If you want to know more about what it takes to develop on consoles then there are a lot of resources online from homebrew developers :)

Here's an article on developing for Playstation 2
http://lukasz.dk/pla...tion-to-ps2dev/
Was This Post Helpful? 2
  • +
  • -

#4 Antiokus  Icon User is offline

  • D.I.C Head

Reputation: 10
  • View blog
  • Posts: 192
  • Joined: 06-September 06

Re: General Game Programming VS Console Game Programming

Posted 09 February 2011 - 04:02 AM

View Poststayscrisp, on 09 February 2011 - 02:54 AM, said:

I think universities need to start leaning to wards console development as it seems that a lot of game companies are doing this as well. Why take the time to make your game compatible across PC's with different drivers and hardware when you can just make the game for one console, makes sense. Unfortunately console SDK's are expensive.


Are there really worries for PC devs about drivers? Other than proprietary components like PhysX I can't imagine there is much to worry about.
Was This Post Helpful? 0
  • +
  • -

#5 stayscrisp  Icon User is offline

  • フカユ
  • member icon

Reputation: 1040
  • View blog
  • Posts: 4,325
  • Joined: 14-February 08

Re: General Game Programming VS Console Game Programming

Posted 09 February 2011 - 04:16 AM

Well some PC's might be using OpenGL drivers and another using Direct X drivers and you have no idea what the quality of these drivers are and how well your game performs on them, how do you find out? PC's have so many different hardware configurations one of them is bound to crash your game. Then there is making sure that you have good graphics configurations so that people can turn off parts to get the game running well. Sounds really time consuming.
Was This Post Helpful? 0
  • +
  • -

#6 Antiokus  Icon User is offline

  • D.I.C Head

Reputation: 10
  • View blog
  • Posts: 192
  • Joined: 06-September 06

Re: General Game Programming VS Console Game Programming

Posted 09 February 2011 - 04:39 AM

I find that hard to believe honestly. With the exception of older video cards not supporting DX10/11 I don't see where there would be a problem graphically. In the world of audio its a question of to use EAX or to not. Both of those abilities are easily determined. And if a game requires Direct X, usually it's included in the installer. Last I knew AMD and nVidia actively update drivers with better support for new games if there WAS a doubt about a driver's ability to run a game.

Any engine worth it's weight has to ability to toggle most settings. How time consuming is it to add an options menu?
Was This Post Helpful? 1
  • +
  • -

#7 stayscrisp  Icon User is offline

  • フカユ
  • member icon

Reputation: 1040
  • View blog
  • Posts: 4,325
  • Joined: 14-February 08

Re: General Game Programming VS Console Game Programming

Posted 09 February 2011 - 04:47 AM

Hey, this is what I have read about in game development books. Maybe the issue is not as big these days but it was and it's worth thinking about. Until I get into the industry and see the real world issues in game development I'm going to heed any advice I can get.

One quick google brings up forums full of people having compatibility issues with games, even the latest ones, you make it sound so simple when it really is not.
Was This Post Helpful? 0
  • +
  • -

#8 anonymous26  Icon User is offline

  • D.I.C Lover

Reputation: 2
  • View blog
  • Posts: 3,638
  • Joined: 26-November 10

Re: General Game Programming VS Console Game Programming

Posted 09 February 2011 - 10:21 AM

View Post(Cryptic), on 09 February 2011 - 09:21 AM, said:

I'd like to discuss the differences between the two. What are the differences you face over the other. Or what you presume would be different. I'd like to keep the topic generally towards C/C++.

If you're just going to stick with comments only specifically about C and C++ there wouldn't be very much to mention in terms of differences in coding for the different platforms. Generally, every game that is written should be using the most memory- and performance-efficient techniques available. This is the reason why C/C++ is used across platforms for this flexibility.

View Post(Cryptic), on 09 February 2011 - 09:21 AM, said:

Some of my thoughts, questions, assumptions & experiences.

1. In university, most general game courses teach C++ and not C. C which goes into more technical issues which are covered up through C++ extensive libraries. Thus, a good majority of students are not equipped for console development.

You can be as efficient in C++ as you can C. If you see any professional game code you will see a subtle blend of the two. That's pretty normal.

View Post(Cryptic), on 09 February 2011 - 09:21 AM, said:

2. There are many different optimization techniques in regards to/from C++ to C.

Certain features of C++ are avoided if code needs to be tight for a game, like the STL as an example. The STL has a high degree of functionality but at the cost of being a resource hog in terms of performance.

View Post(Cryptic), on 09 February 2011 - 09:21 AM, said:

3. In console development there are more memory related issues (such as http://www.dreaminco...rview-question/ which sparked off this little topic).

In general games development for windows, linux & mac. We/I generally do not care as much about memory consumption. Its usually in the back of my mind, but I do what I can, as long as it doesn't hinder my project.

Thoughts?

With the complexity of games nowadays, such constraints are starting to become true for even the PC. Not that I've had a go, but I'm sure that I can easily write code that will bring the fastest machine to its knees, and not because the code is badly written, just because there is so much to do! Whether you are coding games for the PC or console you should always be aware for resource usage - even if it's to maintain consistently good habits. :)

View Poststayscrisp, on 09 February 2011 - 11:16 AM, said:

Well some PC's might be using OpenGL drivers and another using Direct X drivers and you have no idea what the quality of these drivers are and how well your game performs on them, how do you find out? PC's have so many different hardware configurations one of them is bound to crash your game. Then there is making sure that you have good graphics configurations so that people can turn off parts to get the game running well. Sounds really time consuming.

Windows PCs should have some version of both as standard. :)
Was This Post Helpful? 0
  • +
  • -

#9 anonymous26  Icon User is offline

  • D.I.C Lover

Reputation: 2
  • View blog
  • Posts: 3,638
  • Joined: 26-November 10

Re: General Game Programming VS Console Game Programming

Posted 09 February 2011 - 10:28 AM

View Poststayscrisp, on 09 February 2011 - 11:47 AM, said:

Hey, this is what I have read about in game development books. Maybe the issue is not as big these days but it was and it's worth thinking about. Until I get into the industry and see the real world issues in game development I'm going to heed any advice I can get.

One quick google brings up forums full of people having compatibility issues with games, even the latest ones, you make it sound so simple when it really is not.

As mentioned, when a PC game is written it is impossible to guarantee that it works for every possible PC configuration. There are specialist testing houses that 'certify' PC games across a variety of computers with low, medium and high performance configurations. The little label you see on the back of PC games offering details of the minimum and recommended specs is most likely a result of such reports from testing houses and tweaking at the studio who wrote the game.

Sometimes as well when you launch a game you might see something like "Run best with nVidia cards". This is because the game developer and chipset manufacturer have worked together in creating graphics drivers that enhance the performance of that game on nVidia cards. Next comes the middleware on which the game was built, which has its own system requirements.

PC games are a real pain to make for pro developers.
Was This Post Helpful? 0
  • +
  • -

#10 (Cryptic)  Icon User is offline

  • D.I.C Head

Reputation: 15
  • View blog
  • Posts: 69
  • Joined: 13-January 11

Re: General Game Programming VS Console Game Programming

Posted 10 February 2011 - 06:08 AM

View Poststayscrisp, on 09 February 2011 - 03:54 AM, said:

I think universities need to start leaning to wards console development as it seems that a lot of game companies are doing this as well. Why take the time to make your game compatible across PC's with different drivers and hardware when you can just make the game for one console, makes sense. Unfortunately console SDK's are expensive.

I am developing a DS game and I am using all the C++ tricks and style I use for developing on a PC, so far it hasn't made any difference to my frame rate or anything like that. I think a lot of the issues (not all) that used to plague consoles can be forgotten due to increases in memory.


I agree with the above, in the above that Universities should be targeting console development (well generally both). But for general programming classes (classes as in school class), it should revolve around console development just for the sake of learning hard to use techniques.


View PostButchDean, on 09 February 2011 - 10:21 AM, said:

You can be as efficient in C++ as you can C. If you see any professional game code you will see a subtle blend of the two. That's pretty normal.

Certain features of C++ are avoided if code needs to be tight for a game, like the STL as an example. The STL has a high degree of functionality but at the cost of being a resource hog in terms of performance.


An issue here is that, companies developing console games, generally give harder questions to the interviewee.

Once particular technique I noticed with Embedded games programming and console is that 'they like' the usage of templates and re-usability. Even though all programming is/or should be based around usability and OOP. The general use in the console world in higher (not considering major franchises games that without a doubt, is of utter importance).

In PC games programming, I generally ignore templates, class polymorphism (though i'm starting to use this a bit more, as I delve into my older codes and begin to get fed up of modding each one for a particular usage), and significant usage of low-level techniques such as including ASM within C++ games. I've seen a few source codes do this, and have no real idea of what is going on.

Also, then comes in the realisation that there are more console codes that use techniques such as (mentioned in the link above), bit mask or the increase usage of bitshits. And generally I've never usage either of the two or had a real reason to use it (as I program for PC). And thus lack, creative understanding of using such techniques.

Even simple basic techniques, such as using * 0.5, instead of using /2, are usually picked up, either from reading a good book, or noticing a significant performance hit (considerable more so on console).

Question: As for code structure and hierarchy would anyone know (or have experience), if keeping your class structure's smaller is of importance in console dev? I ask this because, even when developing PC games/program, and not using any major opensource or free libraries and API's, and instead re-inventing the wheel, usually leads to faster performance and/or small executable sizes.

One major difference in the general game programming vs console game programming is console game programming requires more skill to get a game working at full performance as compared to the PC line, where, code that just works is usually good enough.
Was This Post Helpful? 0
  • +
  • -

#11 anonymous26  Icon User is offline

  • D.I.C Lover

Reputation: 2
  • View blog
  • Posts: 3,638
  • Joined: 26-November 10

Re: General Game Programming VS Console Game Programming

Posted 10 February 2011 - 07:43 AM

View Post(Cryptic), on 10 February 2011 - 01:08 PM, said:

...

View PostButchDean, on 09 February 2011 - 10:21 AM, said:

You can be as efficient in C++ as you can C. If you see any professional game code you will see a subtle blend of the two. That's pretty normal.

Certain features of C++ are avoided if code needs to be tight for a game, like the STL as an example. The STL has a high degree of functionality but at the cost of being a resource hog in terms of performance.


An issue here is that, companies developing console games, generally give harder questions to the interviewee.

Once particular technique I noticed with Embedded games programming and console is that 'they like' the usage of templates and re-usability. Even though all programming is/or should be based around usability and OOP. The general use in the console world in higher (not considering major franchises games that without a doubt, is of utter importance).

In PC games programming, I generally ignore templates, class polymorphism (though i'm starting to use this a bit more, as I delve into my older codes and begin to get fed up of modding each one for a particular usage), and significant usage of low-level techniques such as including ASM within C++ games. I've seen a few source codes do this, and have no real idea of what is going on.

Also, then comes in the realisation that there are more console codes that use techniques such as (mentioned in the link above), bit mask or the increase usage of bitshits. And generally I've never usage either of the two or had a real reason to use it (as I program for PC). And thus lack, creative understanding of using such techniques.

Even simple basic techniques, such as using * 0.5, instead of using /2, are usually picked up, either from reading a good book, or noticing a significant performance hit (considerable more so on console).

Question: As for code structure and hierarchy would anyone know (or have experience), if keeping your class structure's smaller is of importance in console dev? I ask this because, even when developing PC games/program, and not using any major opensource or free libraries and API's, and instead re-inventing the wheel, usually leads to faster performance and/or small executable sizes.

One major difference in the general game programming vs console game programming is console game programming requires more skill to get a game working at full performance as compared to the PC line, where, code that just works is usually good enough.

To be honest, I'm going to go against the grain here and disagree with the extensive use of console development in Universities for a variety of reasons, including:

1. Console programming requires advanced techniques.
2. Good game programming should be learned first before taking on the more advanced techniques for console programming.
3. People starting out in game programming have a hard enough time getting games going on the PC anyway, and if they have problems doing that they are going to have major problems getting something going on the console.
4. Because coding for consoles present a whole new world of difficulties, that will only serve to detract from what the student should be learning in learning the write games.
5. It isn't coding on consoles that teaches you the advanced techniques, it's being able to write games and learning those techniques through writing them!
6. The only reason why console programming requires extra skill is because the resources are fixed and architectures proprietary, so you have to squeeze the best that you can out of them.

I have seen some very, very clever guys over my time pull their hair out over both PlayStation and XBox360 issues. It happens.

On the other note of you not using certain techniques... well console programming isn't going to teach you those, you learn them through good game coding. :)
Was This Post Helpful? 0
  • +
  • -

#12 Antiokus  Icon User is offline

  • D.I.C Head

Reputation: 10
  • View blog
  • Posts: 192
  • Joined: 06-September 06

Re: General Game Programming VS Console Game Programming

Posted 11 February 2011 - 01:56 AM

I'm going to disagree with focusing on console development.

In a course that meant to TEACH game development it seems like adding in the extra complication of developing and debugging consoles is unneeded. Especially when you consider that >90% of the people in these courses don't understand the underlying fundamentals of game development in the first place. There are more pertinent things that need to be addressed before optimization techniques for different (read: proprietary) consoles.

And IMHO I see PC development as being a much bigger gateway to pushing the limits of hardware, software, and the field in general where as consoles don't offer that same kind of "open canvas" feel.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1