Questions and Answers – Session 8 DigiPen “Introduction to 3D Game Programming” Webcast

Mike Asked: Internet does not seem to be working. Is there a phone bridge available to use?

Mike Asked: Internet does not seem to be working. Is there a phone bridge available to use?

Answered Privately: Sure, 800-231-5632pin#0194

Dave Asked: may I have the number/pin for the audio please?

Dave Asked: may I have the number/pin for the audio please?

Answered Privately: Sure, 800-231-5632pin#0194

Frankie Asked: Hi, ALL!! Ready for another GREAT Webcast? I know I am since Doug got the pace down to a followable level!!!

Xposure Asked: i'm sure this is the wrong place, but i need a audio codec to listen in, reported error was format tag 111

XXL Asked: will there be more interesting webcasts about game / mdx programming in the future?

Xposure Asked: i'm sure this is the wrong place, but i need a audio codec to listen in, reported error was format tag 111

Answered Privately: Might try the dial-in #,800-231-5632pin#0194 or further streaming audio help from

rd Asked: the slides are changing before he completes talking about what's being presented, arghh!

XXL Asked: will there be more interesting webcasts about game / mdx programming in the future?

Answered Privately: It is quite possible

XXL Asked: guess, all the guys here hope so, because its very good!

paulki Asked: what was that url again? slower pelase.

rd Asked: the slides are changing before he completes talking about what's being presented, arghh!

Answered Privately: There is a 4-5 second streaming audio delay.

XXL Asked: guess, all the guys here hope so, because its very good!

Answered Privately: if i had to guess... yes... but since i don't know... you'll just have to wait and see

paulki Asked: what was that url again? slower pelase.

Answered Privately: http://www.digipen.edu/main/Webcast/Introduction_to_3-D_Video_Game_Development

PHIL T Asked: What is the call in number and pin

paulki Asked: there are about 20 links, which has the complete source code?

Xposure Asked: doing CurrentLevel = new ClosingLevel(WIN), does the GC call CurrentLevel.Dispose() on the current object if it supports the idisposable interface?

PHIL T Asked: What is the call in number and pin

Answered Privately: 800-231-5632pin#0194

paulki Asked: there are about 20 links, which has the complete source code?

Answered Privately: the final source is not up on the site, you will need to build each session as they are presented (after the 11th session) or just wait until the 11th session is over and download it all then...

Dave Asked: what is "Puc"? Is he a snake?

Mace Asked: Is there a dial in number available?

Dave Asked: what is "Puc"? Is he a snake?

Answered Privately: We're not exactly sure, I think he is supposed to be a play on "Pac" man, but as to his specific species, it's up to you to decide.

Mace Changes Question To: Is there an audio dial in number available?

Frankie Asked: Do we leave the game status checker in permanently?

Guskio Asked: the sound is very low...can you speak highter...

Carolina Asked: Puc´s formula was just,like,made up?

Guskio Asked: the sound is very low...can you speak highter...

Answered Privately: Might try dial-in #, 800-231-5632pin#0194

Carolina Asked: Puc´s formula was just,like,made up?

Answered Privately: The formula is based on traditional acceleration equation due to graivty, with tweaked constants to work for the scale of the world.

Xposure Asked: doing CurrentLevel = new ClosingLevel(WIN), does the GC call CurrentLevel.Dispose() on the current object if it supports the idisposable interface?

Answered Privately: It doesn't appear that Level is derived from IDisposable.

Jorgie Asked: can you auto-hide the solution explorer so we see more?

Frankie Asked: Do we leave the game status checker in permanently?

Answered Privately: Yes - although it may not be the most efficient way, it's simple and straightforward.

Guskio Asked: Could I attend the class that I lost with audio?

Guskio Asked: Could I attend the class that I lost with audio?

Answered Privately: Sure, all the previous webcasts are available on demand at www.microsoft.com/webcasts

Jorgie Asked: can you auto-hide the solution explorer so we see more?

Answered Privately: it will be mentioned to him...

Jack Asked: In order to allow puc to stop when any of the direction keys are released the key handler would need a key up event. How can this be implemented?

Frankie Asked: Can PUC jump over the walls also?

Frankie Asked: Can PUC jump over the walls also?

Answered Privately: His movement is node-based, so he can only move between nodes, so he isn't able to jump over the walls.

AJS Asked: could you please comment on the object intersection changes/behavior now that Puc can jump? If z is < 0, do they intersect at all? IT is fine if it happens at the end of the session

Frankie Asked: Thanx. I should have figured that out myself, darn it!!

Frankie Asked: Thanx. I should have figured that out myself, darn it!!

Answered Privately: welcome

Carolina Asked: What is the stencil buffer used to?

DracoWiz Asked: is the depth buffer dynamicalyset, so objects could become occluded - like a submarine slowly submerging?

Jack Asked: In order to allow puc to stop when any of the direction keys are released the key handler would need a key up event. How can this be implemented?

Answered Privately: If you look at the Main() function in Main.cs you will see the line GameFramework.Window.KeyDown += .... which assigns the project's OnKeyEvent function to happen when a key is pressed down. If you defined in the project another function that was called when a key was let up, you would just do GameFramework.Window.KeyUp += ... I hope that makes sense.

Carolina Asked: What is the stencil buffer used to?

Answered Privately: The stencil buffer is used for some different graphical effects, most notably stenciled shadows (or shadow volumes).

DracoWiz Asked: is the depth buffer dynamicalyset, so objects could become occluded - like a submarine slowly submerging?

Answered Privately: that is definately possible with a depth buffer

Carolina Asked: And what is a shadow volume?XD

Jos Asked: what is the presicion for the timer in C#?

ED Asked: I think I lost the part tha we defined the backgroud limits, like a wall, ways

David Asked: Thank you for your time and knowledge.

David Asked: Thank you for your time and knowledge.

Answered: sure thing David

wade Asked: What are the main differences in developing a game for a PC and one that is strictly an online game?

Frankie Asked: How about we add a SAVE LEVEL function, or is this gonna be a one-level game only?

Carolina Asked: And what is a shadow volume?XD

Answered Privately: A shadow volume is a bunch of polygons that represent the projection of a 3d model based on a light source, which allows you to calculate the shadow cast by that object.

ED Asked: I think I lost the part tha we defined the backgroud limits, like a wall, ways

Answered: You can review the previous presentations at www.microsoft.com/webcasts if you missed pieces

kroamian Asked: Thanks Doug!!!

kroamian Asked: Thanks Doug!!!

Answered: no problem

Jens Asked: if you added a new level with a different grid where would you add the nodes?

Jos Asked: what is the presicion for the timer in C#?

Answered Privately: it is as precise as possible, it uses ticks where a tick is a pass through the cpu, and it has a freq which is the number of ticks per sec... so if you get the curr tick count then sometime later get the next tick count, subtract the two and divide by the frequency to get the amount of time passed per sec... so it is accurate because it comes from the cpu

jli Asked: bye

Niax Asked: is the jumping function really required in the game engine, it seams like it's a "bolted on" idea which doesn't really feature much in the gameplay.

paulki Asked: where is the webcast eval?

cal Asked: I have all sorts of errors when trying to use the code: protected List<int> EnemyRespawnPositions ... this makes squiggles under the < and > part.. does not recognize those.. do i have the wrong .NET envir?

William Solberg Asked: To make this webcast more complete, could you go over on how to send an event to a game object by clicking on the object? Such as the objects on the menu.

Xposure Asked: i seen that some of the classes tho do infact inherit the IDisposable interface, should the programmer call them for cleanup or does the GC check for the interface and call it if it hasn't been called by the programmer

Machaira Asked: Any pros and cons of locking the frame rate other than what was mentioned? What you you use given the choice for a PC game?

ED Asked: Which part we have that?

kroamian Asked: can ypu recomend a book to develop games for a control?

TonyV Asked: When are the winners annouced?

paulki Asked: where is the webcast eval?

Answered Privately: You should see it now.

cal Asked: I have all sorts of errors when trying to use the code: protected List<int> EnemyRespawnPositions ... this makes squiggles under the < and > part.. does not recognize those.. do i have the wrong .NET envir?

Answered Privately: You should be using .NET 2005 (Express or Full)

cesar Asked: what about the difference on pc games and xbox games?

Dana Asked: Any book on Newtonian physics engines?

Jos Asked: are you posting the Q&A for the session 5?

Niax Asked: is the jumping function really required in the game engine, it seams like it's a "bolted on" idea which doesn't really feature much in the gameplay.

Answered: In a sense it may be a bit bolted on but as far as gameplay it does allow you to jump over a pirate and be able to avoid being captured. However, yes it is an extra feature and not required.

paulki Asked: don't see it. Where?

cal Asked: ok, thx.. i have 2003 .NET

slope Asked: is your way the standard way to fix the frames per second? i think the loop will waste a lot of cpu cycles. are there any other possibilites? (threads?)

Wayne L Asked: What is the funnest game that you've developed?

cal Asked: ok, thx.. i have 2003 .NET

Answered Privately: C# Express .NET 2005 is available via a free download from Microsoft.

Dana Changes Question To: Any book on Newtonian physics engines? I need to give one of the pirates a graviton gun in the later levels...

wade Asked: How hard would it be to add a gun like feature and blasting an enemy?

Jorgie Asked: sorry for the repeat question, but where is the survey link?

Tunca Bergmen Asked: Is it possible to develop a professional quality game using managed languages (c#, java etc.)?

TonyV Asked: When are the winners annouced?

Answered Privately: Not exactly sure but a number of these have already been given away, probably more info at www.microsoft.com/webcasts

DracoWiz Asked: I think we all won, you all have done an Awewsome job

Paul Asked: Have you recently been backloged with email? I sent an email last week but have not recieved a response. Should I expect one or did I overload it with too much background info?

Juergen Asked: Is there a good book you can recommend for learning the basics of matrix transformation, camera positioning and so on?

Carolina Asked: there is one good book from premier press named physics modeling for game programmers

slope Asked: is your way the standard way to fix the frames per second? i think the loop will waste a lot of cpu cycles. are there any other possibilites? (threads?)

Answered Privately: Yes, the theoretical best way would be to put the current thread to sleep, and wake it up when enough time had passed. This was just the easiest solution to it. Although in a typical game, you would only be locking the rendering framerate. You would still run physics and other processing as fast as you could, and lock the graphics to your vertical sync refresh rate.

cesar Asked: when/where can we see the winners of the mp3 player?

Manuel Asked: what were the new features in this lesson.. becaus i had sometroubles and i only know the fps.. so what was else

Wayne L Changes Question To: Is it possible to develop a realistic game with ASP.NET - online?

wade Asked: Is there any webcasts coming to show how to create the 3d meshes and textures?

Jay Asked: What is the plan for additional game webcasts beyond the current series?

Tunca Bergmen Asked: Is it possible to develop a professional quality game using managed languages (c#, java etc.)?

Answered Privately: Yes it is possible and may be ideal for casual games. However since C# uses a virtual machine it runs slower than code that could be written in C++ or another language that compiles into machine language. Hence big title games have not been developed in C# to this date.

Machaira Asked: Any pros and cons of locking the frame rate other than what was mentioned? What you you use given the choice for a PC game?

Answered Privately: Locking the framerate avoids tearing, which occurs when parts of multiple frames are on the screen when the screen draws. But it also means that your framerate is now limited to speed. If your refresh rate of your monitor is 60 hz(fps) then with a locked framerate it can only give a framerate that is a fraction of that 1/2, 1/3, 1/4, 1/5, or 30, 20, 15, 12 fps. I usually do not sync when playing games, but when you are acheiving a fast rate, i would turn sync on.