Home › Forums › Education, Training and Jobs › Structure of a 1 semester course
- This topic has 32 replies, 9 voices, and was last updated 19 years, 1 month ago by Anonymous.
-
AuthorPosts
-
-
09/11/2005 at 11:51 am #4765AnonymousInactive
Hello there.
This is my first ever post on gamedevelopers.ie.
Anyway, I am teaching a one semester course on games programming this year. Its for final year computer science students who should already have programmed C++ for the past 3 years. I am about half way through and things seem to be going well. However, I am interested in receiving peoples thoughts on games programming in education to see basically if people think students are learning useful and relevant things on the course.
Before the summer of this year, I knew very little about how games are actually programmed and so to teach myself, I developed a simple 3D FPS using DirectX called Dalek World. I used two books to teach myself “Introduction to 3D Game Programming using DirectX 9.0” and “Programming Game AI By Example”. The game I developed is not complete, but it has the elements of a deathmatch style FPS:
A player controlled camera moving around a textured 3D world
NPC Enemies that fire projectiles at the player
Ammunition spawn pointsThe approach I use on the course is to guide students to create the game themselves over the 12 weeks of the semester.The toolkit I use is DirectX and Visual Studio .Net (C++)
In a nutshell, this is the course:
Refresherer on vectors, matrices and trigonometry
Using DirectX vector, matrix and trigonometry API’s to solve problems like perception, movement etc.
Game architecture (a game loop algorithm)
Introduction to DirectX
Vetrex buffers and texturing
Creating a “level loader”
Creating a moveable camera
Creating an OO framework for daleks, ammo, the world, the player, walls etc.
Colision detection (bounding box and sphere)
Steering behaviours – seek, arrive and follow path
Graph theory – The A* algorithm
Perception algorithms (basically intersection of two lines and a FOV check)
State machines – the state machine design patternSo like I say I am about half way through the course and its building up nicely, so that by the end of the course students should know everything I learned in programmibg Dalek World.
Anyway, the course is quite “low level” requiring students to programming everything in C++. There are advantages and disadvantages in this I suppose. These are the questions I would like to answer:
Is what I am teaching appropriate and relevant?
Is the course relevant for the Irish games industy?
Is the approach correct?
Am I using an appropriate toolset? In other words should I be using Torque or Quake or something else instead of having students program everything in C++?Thanks for your feedback!
Bryan
-
09/11/2005 at 12:30 pm #27096AnonymousInactive
Is what I am teaching appropriate and relevant?[/quote:5caf7a830e]
Probably. However, I think you might be teaching a little too specificly. Make sure they know thats the methods you teach aren’t for your dalek game, they can be used in all circumstances. Make sure its not the dalek game you are teaching, but the methods involved.Is the course relevant for the Irish games industy?[/quote:5caf7a830e]
Sure, why not.Is the approach correct?[/quote:5caf7a830e]
Probably. Make sure you set some sort of goal in the course for the students. They should be asked to create a game of their own, hopefully deviating away for your taught dalek game as much as possible to show their adaptibility and understand of the code.Am I using an appropriate toolset? In other words should I be using Torque or Quake or something else instead of having students program everything in C++? [/quote:5caf7a830e]
You could get an engine in, but I think you’d probably spend a lot of your time trying to teach the engine toolset rather than the methodology that you are currently intending to do. In my opinion, I’d make them stick to using C++ and DirectX, they’ll learn more.I’m not a lecturer, so don’t quote me on it, but it seems alright to me. one of the goals that was put on me as a games student was to make sure you have a demo by the end of the course that you can show people as that’s what you’re going to be using to try get a job afterwards. Games industry is a bit strange like that, a great cv won’t get you your first job, unless you have a decent demo to show with it.
-
09/11/2005 at 1:15 pm #27100AnonymousInactive
Basically what Omen said. I’m currently working on a demo to hopefully get a job….. so it’s real important to make people aware that the qualifications alone aren’t likely to make it any easier for you to get your first job. As I was told by a very good source you need to “Wow” them.
-
09/11/2005 at 1:19 pm #27101AnonymousInactive
As I was told by a very good source you need to “Wow” them.[/quote:9c92d0b3b5]
who ever told you that is right in part, not everyone needs to wow them. only the very exceptional student will produce a demo which blows them away, majority of poeples demos are similar. Ability to finish the project, however complicated is worth alot more. Amount of unfinished code submitted is pretty high.
-
09/11/2005 at 1:44 pm #27103Aphra KKeymaster
I can’t really comment on teaching programming so Bryan this is just to say hi and to suggest that you could e-mail the contact names in our courses section also to sample people’s opinions..
us lecturers are sometimes not great at posting!
oh and come along to the shindig this Friday evening in Mahaffys!
Aphra.
-
09/11/2005 at 1:58 pm #27106AnonymousInactive
As I was told by a very good source you need to “Wow” them.[/quote:9cadb514da]
who ever told you that is right in part, not everyone needs to wow them. only the very exceptional student will produce a demo which blows them away, majority of poeples demos are similar. Ability to finish the project, however complicated is worth alot more. Amount of unfinished code submitted is pretty high.[/quote:9cadb514da]
Dave Perry….
-
09/11/2005 at 2:01 pm #27107AnonymousInactive
oh, and i might be an idea to try make some contacts with art people. programmers are usually bad artists and there’s nothing better than some good art to spruce up a demo :)
-
09/11/2005 at 2:54 pm #27110AnonymousInactive
also read the IGDA’s Curriculum Framework which outlines what ‘should’ be included in game dev courses:-
http://www.igda.org/academia/curriculum_framework.phpand as Aphra said if you’re in Dublin this Friday come along to the Shindig and you’ll be sure to have your ear bent with 101 informed opinions!
-
09/11/2005 at 4:50 pm #27116AnonymousInactive
As I was told by a very good source you need to “Wow” them.[/quote:11f6673af2]
who ever told you that is right in part, not everyone needs to wow them. only the very exceptional student will produce a demo which blows them away, majority of poeples demos are similar. Ability to finish the project, however complicated is worth alot more. Amount of unfinished code submitted is pretty high.[/quote:11f6673af2]
Dave Perry….[/quote:11f6673af2]
fair enough. but wowing isnt essential. few people produce work you havent seen before. alot are clones of other games etc. which is fine.
-
09/11/2005 at 5:44 pm #27123AnonymousInactive
Thanks everyone for the feedback.
I did have a look at the IGDA framework and my course seems to cover the “Game Programming” course they suggest.
The main points I can gather are:
Not to make the course Dalek World specific. I try and do that by demoing how the techniques students learn are used in commercial games, such as comparing camera movement in half life vs C&C generals for example and looking at path finding in RTS games.
Encourage students interested in working in the industry to create a portfolio.
Based on the feedback, I think I made the right choice in getting students to develop everything in C++/DirectX rather than using an existing toolkit. After all, I want them to understand the algorithms and there are many advantages to developing everything from scratch:
1. Students learn lots of useful C++, such as templates and the STL
2. Students learn appreciate the importance of OO
3. Students learn reusable design patterns as a side effect, such as singletons, observer, state machine etc.
4. Students don’t have to learn a new class library.Anyway, hopefully see you Friday
Bryan
-
09/11/2005 at 6:03 pm #27124AnonymousInactive
A one semester course is a very short time to be dealing with the topics that are mentioned – to obtain an acceptable understanding of any one of the areas involved that you mentioned would deserve a full year in its own (AI, 3d graphics, windows programming etc). Are any of these skills covered elsewhere during the course?
-
09/11/2005 at 6:59 pm #27127AnonymousInactive
Well students can already program in C++ and understand UML. Students have 4 hours per week for one semester on the course. 2 hours lectures and 2 hours labs.
I don’t cover AI, windows programming, graphics in great detail as these are covered in other courses. I just cover whats required to get the game together. For example, for graphics, I just explain:
1. How to draw textured polygons
2. How to draw a meshFor steering, we just do seek, arrive and follow path. For graph traversal, we just do the A* algorithm. For perception, we just do the intersection of 2 2D lines and an FOV calculation. The world is all rectangles, so colision detection is easy. Etc Etc.
Bryan
-
10/11/2005 at 9:45 am #27150AnonymousInactive
Students learn lots of useful C++, such as templates and the STL [/quote:cc9d867354]
STL….*shudder* -
10/11/2005 at 10:13 am #27157AnonymousInactive
Students learn lots of useful C++, such as templates and the STL [/quote:39a7593f68]
STL….*shudder*[/quote:39a7593f68]I agree few retail games use STL. We tend to use our own data structure libraries. And recycle our arrays etc. But its something i would like to see being used in games more, would sure as hell make my life a little easier :)
-
10/11/2005 at 10:48 am #27160AnonymousInactive
Are you serious? STL is horrible and more difficult to debug. There’s a reason companies use their own libraries, cos they’re written better :)
-
17/11/2005 at 9:55 am #27360AnonymousInactive
Guys,
I never made it on Friday sorry about that. I fully intended to, but got waylaid in Ryans on Camden St after college. Oh well next time!
Bryan
-
17/11/2005 at 11:04 am #27364AnonymousInactive
Are you serious? STL is horrible and more difficult to debug. There’s a reason companies use their own libraries, cos they’re written better :)[/quote:a47aa9321e]
why would you want to debug stl, if theres a problem 95% of the time its how you used it. STL is generally fairly solid, well tested and debugged by developers.
-
17/11/2005 at 11:40 am #27369Aphra KKeymaster
I was wondering Bryan. There was a good turnout, many pints and I believe a trip to Fibbers (that is where I had to bale out!)..
no idea what happened after…
Aphra.
-
17/11/2005 at 11:52 am #27371AnonymousInactive
Sounds like you left at just the right time Aphra!
-
17/11/2005 at 12:03 pm #27373AnonymousInactive
why would you want to debug stl, if theres a problem 95% of the time its how you used it. STL is generally fairly solid, well tested and debugged by developers.[/quote:fad24f5b1e]
Problem is when its someone elses code and its written badly. I’ve had bad experiences. -
19/11/2005 at 12:10 am #27437AnonymousInactive
I would tend to agree that the STL can be quite useful for games programming. I’ve just writen an implementation of the A* algorithm using the STL priority_queue and map templates. It outperforms Matt Bucklands versions using a variety of different heuristics and IMHO is much easier to understand than the one from his book. It also adds nodes on the fly so unlike Matts it does not require you to pre-generate the graph. Its so good I’m thinking of writing a paper on it :D. Id be happy to share it if anyone is interested in seeing it.
Bryan
-
19/11/2005 at 7:46 pm #27447AnonymousInactive
I would tend to agree that the STL can be quite useful for games programming. I’ve just writen an implementation of the A* algorithm using the STL priority_queue and map templates. It outperforms Matt Bucklands versions using a variety of different heuristics and IMHO is much easier to understand than the one from his book. It also adds nodes on the fly so unlike Matts it does not require you to pre-generate the graph. Its so good I’m thinking of writing a paper on it :D. Id be happy to share it if anyone is interested in seeing it.
Bryan[/quote:bd9c162c8d]
think if you look you should find some papers published in relation to pathfinding and STL.
-
21/11/2005 at 9:54 am #27474AnonymousInactive
Bet you could write it without STL even faster :)
-
21/11/2005 at 9:59 am #27475AnonymousInactive
Possibly,
But it would have taken twice as long to write! :D
-
21/11/2005 at 10:03 am #27477AnonymousInactive
Ah, but once you’ve written a good equivilent to STL to manage exactly what you want it to do and nothing extra, it’ll be solid re-usable code and twice as fast :)
-
21/11/2005 at 10:05 am #27478AnonymousInactive
Incidentally and on an unrelated matter. How does one search for A* in google?
Ive tried:
A*
“A*”
+A+*And none of them work :(
-
21/11/2005 at 10:10 am #27480AnonymousInactive
“A star”?
-
21/11/2005 at 10:17 am #27481AnonymousInactive
Google searchin with this : A star path finding
works well.Although if you want a provably faster and easier implementation of A* search for Fringe Search.
I implemented this some time ago in C++, you can download if from here.
http://student.cs.ucc.ie/~pb2/work.html -
21/11/2005 at 12:22 pm #27496AnonymousInactive
Damian,
Thanks for response. Was rather hoping for something a little more insightful. In case you didnt understand my post, google thinks * means the wildcard. I was looking for to make google recognise * as *. Hope thats a little clearer for you.
Bryan
-
21/11/2005 at 12:23 pm #27497AnonymousInactive
Nice paper peter.
-
21/11/2005 at 12:58 pm #27498AnonymousInactive
?
I was suggesting writing “A Star” rather than “A*”. I never put symbols into google, never works well.
Pete just expanded that to add “path finding”.Sorry if you’d already tried that, but you didn’t mention it… Not an expert on AI so wouldn’t know what pages would have tickled your fancy :)
-
22/11/2005 at 10:08 am #27529AnonymousInactive
Peter,
Your Decision Trees paper is really good. Great to see this kind of work going on around the country ……
-
22/11/2005 at 1:36 pm #27533AnonymousInactive
Peter,
Your Decision Trees paper is really good. Great to see this kind of work going on around the country ……[/quote:9492e239a2]
thanks for the thumbs up hugh. That paper that got me a good few job interviews and ultimately my job at Sega :)
-
-
AuthorPosts
- The forum ‘Education, Training and Jobs’ is closed to new topics and replies.