Plan for Phil Carlisle
by Phil Carlisle · 02/07/2005 (8:31 am) · 18 comments
New term begins, should be an interesting time for my students!!
This semester I'm teaching a new module called 3D Game Programming. Which I must admit, I'm *really* looking forward to.
I've got some idea's for the module which I think will definitely get the students interested and involved.
This module is designed to give the students some practical knowledge of 3D game programming, whilst also grounding them in the theory. So my 3 hour sessions will typically start off with a 45 minute lecture on part of 3D theory (Imagine a cross-section of 3D with things like 3D Math, Rendering, Shaders, Collision Detection, Billboards, BSP's, Shadow Render methods etc).
Then we get on to the meat of the subject. The "real world" problems of making games in 3D.
On the course we are using TGE as the engine of choice, mainly because its the engine I'm most comfortable with, but also because of the great community, available resources and general high quality of the TGE codebase.
So how do you teach 3D Game Programming using TGE?
Well, my approach is to actually do a bit of roleplay and to actually task the students with some real-life problems. This will form the majority of the assignment work and will take the form of a set of problems to solve.
I'm going to split the students into two groups, task each group with production of the code, script and documentation to solve the problem. Then every 2 weeks we will require the groups to present thier solution as a "resource" for the opposite team to evaluate and implement. Once the other team has successfully implemented the solution using the first teams resource, we consider that problem "solved".
I'm expecting that the problems we solve in the class will form the basis for a bunch of resources here on GG, but that will be for the teams themselves to decide.
So what kind of problems are we going to solve in our teams?
A good example would be something like "a generic inventory system". Each resource solution will include documentation and implementation notes and guides etc.
Anyway, thats how I hope to engage my students in learning the essense of 3D Game programming, hopefully showing them the importance of pulling together as a team and maybe giving them some pride in the functionality that they create.
Outside of the new term, I (we) have been VERY busy, what with marking exam scripts from last semester, to working on finalising the AI Pack, to actually creating my own games! (shock horror, we ARE making some great progress!).
I'm still not 100% sure how to fit it all in. My schedule is so hectic right now, with research efforts, project bids, teaching hours and other educational activities.
However, we HAVE made significant progress on the ScaryHead front, including getting ready to start publishing our own brand of mobile phone based games. These games have been a blast to create and are significantly cheaper to create and have a faster turnaround than I ever expected.
So our first ScaryHead games to get released are actually mobile phone games written in Java! who'da thunk it!, of course I'll post a montage screenshot in the image of the day here once we officially release. Although the economics of the mobile dev business means that we expect basically to not make any profit from the games, we are at least building portfolio products to stick in our catalog, plus hopefully attracting some mobile dev contract work in the process.
I'm keeping VERY tight-lipped about our other ScaryHead games, because I've learnt that lesson now. But with the current team we have been gathering, the products are REALLY going to shine!
As with many others here, including Justin, Joe and Clark and others, I'm having problems with time management. Basically, time needs to be compressed so I can have more of it to do the actual work I need to, without all of the diverse pressures we have (work, paid contracts, side projects, technology development or whatever). I must admit that I'm struggling, but I do realise that in essense, unless you ship games, you arent a game developer.
Phil.
This semester I'm teaching a new module called 3D Game Programming. Which I must admit, I'm *really* looking forward to.
I've got some idea's for the module which I think will definitely get the students interested and involved.
This module is designed to give the students some practical knowledge of 3D game programming, whilst also grounding them in the theory. So my 3 hour sessions will typically start off with a 45 minute lecture on part of 3D theory (Imagine a cross-section of 3D with things like 3D Math, Rendering, Shaders, Collision Detection, Billboards, BSP's, Shadow Render methods etc).
Then we get on to the meat of the subject. The "real world" problems of making games in 3D.
On the course we are using TGE as the engine of choice, mainly because its the engine I'm most comfortable with, but also because of the great community, available resources and general high quality of the TGE codebase.
So how do you teach 3D Game Programming using TGE?
Well, my approach is to actually do a bit of roleplay and to actually task the students with some real-life problems. This will form the majority of the assignment work and will take the form of a set of problems to solve.
I'm going to split the students into two groups, task each group with production of the code, script and documentation to solve the problem. Then every 2 weeks we will require the groups to present thier solution as a "resource" for the opposite team to evaluate and implement. Once the other team has successfully implemented the solution using the first teams resource, we consider that problem "solved".
I'm expecting that the problems we solve in the class will form the basis for a bunch of resources here on GG, but that will be for the teams themselves to decide.
So what kind of problems are we going to solve in our teams?
A good example would be something like "a generic inventory system". Each resource solution will include documentation and implementation notes and guides etc.
Anyway, thats how I hope to engage my students in learning the essense of 3D Game programming, hopefully showing them the importance of pulling together as a team and maybe giving them some pride in the functionality that they create.
Outside of the new term, I (we) have been VERY busy, what with marking exam scripts from last semester, to working on finalising the AI Pack, to actually creating my own games! (shock horror, we ARE making some great progress!).
I'm still not 100% sure how to fit it all in. My schedule is so hectic right now, with research efforts, project bids, teaching hours and other educational activities.
However, we HAVE made significant progress on the ScaryHead front, including getting ready to start publishing our own brand of mobile phone based games. These games have been a blast to create and are significantly cheaper to create and have a faster turnaround than I ever expected.
So our first ScaryHead games to get released are actually mobile phone games written in Java! who'da thunk it!, of course I'll post a montage screenshot in the image of the day here once we officially release. Although the economics of the mobile dev business means that we expect basically to not make any profit from the games, we are at least building portfolio products to stick in our catalog, plus hopefully attracting some mobile dev contract work in the process.
I'm keeping VERY tight-lipped about our other ScaryHead games, because I've learnt that lesson now. But with the current team we have been gathering, the products are REALLY going to shine!
As with many others here, including Justin, Joe and Clark and others, I'm having problems with time management. Basically, time needs to be compressed so I can have more of it to do the actual work I need to, without all of the diverse pressures we have (work, paid contracts, side projects, technology development or whatever). I must admit that I'm struggling, but I do realise that in essense, unless you ship games, you arent a game developer.
Phil.
About the author
#2
I'm sorry Phil, I have to disagree. Being a game developer in my mind atleast, it isn't about profit, money, or shipping a game. Its about going out there, expressing yourself, and doing ultimately what you love to do. Even if the game is unfinished, if you made your best go at it, and worked hard. I think you should that should put you in the class of "Game Developer". You do make games after-all.
02/07/2005 (9:54 am)
Quote:I must admit that I'm struggling, but I do realise that in essense, unless you ship games, you arent a game developer.
I'm sorry Phil, I have to disagree. Being a game developer in my mind atleast, it isn't about profit, money, or shipping a game. Its about going out there, expressing yourself, and doing ultimately what you love to do. Even if the game is unfinished, if you made your best go at it, and worked hard. I think you should that should put you in the class of "Game Developer". You do make games after-all.
#3
02/07/2005 (10:14 am)
We can agree to disagree on that one chris.
#4
And of course the most annoying thing.... unless you have branded content, what seems to sell more is the splash screen and the title rather than how good the game is.
Maybe some day we can join forces for mobile phone MMOG poker eh?
02/07/2005 (10:20 am)
Good luck with ScaryHead. Being in the mobile space myself, the biggest problem is always distribution. Telcos chop half of your revenues (at least), aggregators chop what's left...And of course the most annoying thing.... unless you have branded content, what seems to sell more is the splash screen and the title rather than how good the game is.
Maybe some day we can join forces for mobile phone MMOG poker eh?
#5
02/07/2005 (10:22 am)
I think your "cross-team pollination" of the work products each team produces is an outstanding idea! I can't think of a better way to show dynamics between teams then something along the lines...should be a requirement for any class that is working towards showing real world applications of game dev theory.
#6
02/07/2005 (10:23 am)
Scarytimes ahead for us students then?
#7
Judging by papers that I've seen coming out of CS departments, their expressions of how to recreate their experiments is generally lacking. As I'm sure you know, it's pretty hard to advance the discipline without quality communication.
02/07/2005 (11:09 am)
Sounds like it will be a great course. Having the students present the solution to other students and having them recreate the project sounds like a very good idea to me. It could help lend some real credibility to the academic field and help substantiate it as a science discipline in the long run. Judging by papers that I've seen coming out of CS departments, their expressions of how to recreate their experiments is generally lacking. As I'm sure you know, it's pretty hard to advance the discipline without quality communication.
#8
02/07/2005 (11:22 am)
Hmm... so are you going to warn us before you make an assignment so we don't do someones work for them :)
#9
02/07/2005 (11:42 am)
I make a nice living off mobile game development and a number of my peers do quite well... what economics are you referring to?
#10
02/07/2005 (12:40 pm)
And any student who releases something we can use as a resource gets extra credit, right? :)
#11
I have a specific question for you actually, Phil. You said:
02/07/2005 (12:59 pm)
Have to agree with Chris -- do you have to have a recorded album to be a musician? Do you have to have an exhibit to be an painter? But anyway, not an important topic...I have a specific question for you actually, Phil. You said:
Quote:I'm keeping VERY tight-lipped about our other ScaryHead games, because I've learnt that lesson now.Could you elaborate? I'm very curious...
#12
So Little Soldiers has already gone mobile ? :)
02/07/2005 (1:59 pm)
Dan, I think Eugene might mean wireless mobile games (eg phones not pdas, or pocket PCs) where most users don't know about downloading java games through WAP from a website, and where you need carrier relationships to generate enough revenues to sustain a company. So Little Soldiers has already gone mobile ? :)
#13
02/07/2005 (3:06 pm)
Phil, So where do I sign up for the course? :)
#14
Josh: Erm, being tight-lipped and all, I'm just saying that I'll keep the games we are doing quiet until we have a VERY close-to-finished build working. Or until I cant stop myself from showing off the mad art skills of our artists :)
But thats just me.
02/07/2005 (3:14 pm)
Joseph: our info is at www.gamesplatform.com (which is going to get a rewrite VERY shortly).Josh: Erm, being tight-lipped and all, I'm just saying that I'll keep the games we are doing quiet until we have a VERY close-to-finished build working. Or until I cant stop myself from showing off the mad art skills of our artists :)
But thats just me.
#15
02/07/2005 (5:25 pm)
Oh OK, I thought maybe a specific incident triggered the quietude...
#16
What happens if the solution presented by one team is well enough documented and implemented that the second team simply drop it in to the code base and voila!
Do you mean that the second team will have their own assignment and require the first teams resource to complete it i.e. a maze collection game that REQUIRES an inventory mamangement resource. The second team can create the maze game but, must use the inventory resource to enable dot collection, power-up and ammo collection, dropping etc.
In this way Team one learns about creating resources while team two learns about including resources into an existing project. The teams would of course swap around after each assignment.
As for not being a game developer until you ship a game. That is in some ways misleading. A game developer is someone who completes a game. They do not need to necessarily have shipped it for any commercial gain. Simply giving it to friends and family as a finished product is enough (remember everyone starts somewhere).
I do agree that NOT finishing a game definitely does mean you are NOT a game developer. My analogy would be someone calling themselves a car manufacturer, while never having made a complete car. It's fine to create a rolling chassi but, that isn't a car (it's probably a demo of a car ;o))
02/08/2005 (4:17 am)
@PhilWhat happens if the solution presented by one team is well enough documented and implemented that the second team simply drop it in to the code base and voila!
Do you mean that the second team will have their own assignment and require the first teams resource to complete it i.e. a maze collection game that REQUIRES an inventory mamangement resource. The second team can create the maze game but, must use the inventory resource to enable dot collection, power-up and ammo collection, dropping etc.
In this way Team one learns about creating resources while team two learns about including resources into an existing project. The teams would of course swap around after each assignment.
As for not being a game developer until you ship a game. That is in some ways misleading. A game developer is someone who completes a game. They do not need to necessarily have shipped it for any commercial gain. Simply giving it to friends and family as a finished product is enough (remember everyone starts somewhere).
I do agree that NOT finishing a game definitely does mean you are NOT a game developer. My analogy would be someone calling themselves a car manufacturer, while never having made a complete car. It's fine to create a rolling chassi but, that isn't a car (it's probably a demo of a car ;o))
#17
I'd be interested to know how your students get on with Torque, Phil, especially during the initial phase. I guess they are in their final year - have they done any graphics programming previously? How much programming experience do they have? I've been thinking for a while about using Torque as a basis for some final year and msc projects.
Also, do you expect the students 'resources' to be contributed to the Torque community as resources when finished? If so, I think this is an excellent idea, since it introduces the students to the community, provides useful, new material on the site, and provides feedback to the students from the community.
02/08/2005 (6:26 am)
@PhilI'd be interested to know how your students get on with Torque, Phil, especially during the initial phase. I guess they are in their final year - have they done any graphics programming previously? How much programming experience do they have? I've been thinking for a while about using Torque as a basis for some final year and msc projects.
Also, do you expect the students 'resources' to be contributed to the Torque community as resources when finished? If so, I think this is an excellent idea, since it introduces the students to the community, provides useful, new material on the site, and provides feedback to the students from the community.
#18
The idea is that they students ALL get to implement each resource. In class each team subjects the members of the other team to thier "resource" and sees if they can implement it. So in essense we get 2 resources ever 2nd week.
The idea Ive had is that at the end of it, we have 10 resources which are roughly related.
We then give the students free-reign to create whatever game they like, using these resources (and any they care to create) as the basis.
Chris: these are 3rd year students yes. Theyre programming is quite varied, so I'm expecting some fun :) but I *DO* hope they'll submit thier resources to the GG community at large when they complete them.
That will allow them to generate interest about thier own skills, act as a barometer, and generally give everyone a buzz.
02/09/2005 (8:15 am)
Christopher + Peter:The idea is that they students ALL get to implement each resource. In class each team subjects the members of the other team to thier "resource" and sees if they can implement it. So in essense we get 2 resources ever 2nd week.
The idea Ive had is that at the end of it, we have 10 resources which are roughly related.
We then give the students free-reign to create whatever game they like, using these resources (and any they care to create) as the basis.
Chris: these are 3rd year students yes. Theyre programming is quite varied, so I'm expecting some fun :) but I *DO* hope they'll submit thier resources to the GG community at large when they complete them.
That will allow them to generate interest about thier own skills, act as a barometer, and generally give everyone a buzz.

Torque 3D Owner Pat Wilson