View Full Version : Contents for a Game developing Course...
leevan 12-05-2009, 10:46 AM Hey there
I work in a CG school and we are planning to start a Game Developing Course sometime late next year, so at this point I am trying to figure out the contents, resources, staff.. everything it may require.... so as you can imagine i first come here to post the initial course structure......
we can run a maximum of 20 units and every unit will be 12 lessons, delivered in 12 weeks (one lesson a week)
so here are my question:
Would you suggest to have 4 or 5 days per week?
We can have 3 or 4 hours per lesson, which one would you suggest?
Following is the very first draft contents me and my colleague have put together, what are your thoughts about it? what else can we add? what should be removed or changed?
Flash Development - 3 units
3D Content Development (Maya or Max, which one would suite us better) - 4 units
Maths for Game Programming - 1 unit
C++ Object Oriented Programming - 2 units
Direct X (openGL) Programming - 3 units
Game Engine Study (Unreal Engine or do you suggest something else?) - 3 units
Mobile Phone Application (Game) Programming (iPhone or ""?) - 2 units
Cuda Programming - 2 units
Python Programming - 2 units
I's appreciate it, if people with game programming/ development, specially those with teaching experience in these matters would voice their opinions and give me their suggestions...
thx
|
|
DanielWray
12-05-2009, 02:28 PM
About the 3D content, would it not be better to teach the principals of 3D modeling, such as how to better model for computer games, talk about topology, edge flow for animations, optimizations and all that stuff, then do a little bit about the tools in max, maya or any other 3D modeling package, since they all do the same thing basically.
That way the students will be able to pick their application of choice and have a better understanding of why and what they should be doing when modeling for computer games, and modeling in general, instead of just knowing how to push buttons in the maya/ max etc.
I'd actually go for 3 hours if it's lecturers, even that may be to long though, at University I usually zone out after an hour and a half, purely because taking in information for that long is very hard to do. However if it's all seminars or perhaps even half and half then I'd go for 4 hours, and 5 days a week, it'll mean the students have more time to take in more information, of course it'll only give them evenings and weekends to produce work/ assignments, but I think it would be better spend that one more day learning.
I can't really help with the programming, but perhaps give the students (If possible) the chance to learn the basic concepts of programming, about how to think like a programmer, show them some C++, Flash, OpenGL, Mobile/ console programming examples and allow them to pick the module which they want to go into further, since offering all of them would probably be a little overwhelming, better to concentrate on a smaller section than tackle all of them.
Also I'd personally leave Cuda as I think OpenCL will be it's replacement. Unreal should be pretty good as an engine to concentrate on I think.
Hope this helps :)
Stinkfist
12-05-2009, 03:11 PM
1. The more time in class the better, but students must be given time to work on projects independantly
2. Longer classes are better, more time to learn and work
3:
It would be a good idea to have a class about game design and the actual pipeline of games development, otherwise you're teaching people skills without any kind of context in which to apply them.
It also seems like you're trying to train universal masters of everything. Id cut it down to teaching them the basics of a single scripting language, otherwise their skills will be extremely shallow and not really useful for anything. If they even pass the class since this sounds extremely challenging, learning botjh
grantmoore3d
12-05-2009, 05:35 PM
1. 4 days because you want to give them appropriate time to actually do the tasks and apply the knowledge.
2. Longer classes, but I would suggest going over 5 hours. You tend to lose interest and will lose information after that.
3. You can't learn all that in 12 weeks. I just finished a 4 year University degree which covered a lot of topics like that, and even I feel it was a little rushed. Also, there's no point learning all those different language... focus on teaching the basics, the process and good programming practices as they relate to games.
What I would suggest overall is to forget about the variety. 12 weeks is a short amount of time, and you have to assume these people know nothing. This is what I would suggest;
C++ Object Oriented Programming (Basics of Programming)
Mathematics for Games
DirectX (to apply the mathematics of games, matrix transformations, etc...)
Game Theory & Design
Flash Development (project based)
Unreal ED (project based)
taxguy
12-05-2009, 06:13 PM
I am NOT a game designer; thus, I may be all wet about this. However, wouldn't you also want some basic foundation classes in figure drawing, Anatomy, head and hand drawing and creature drawing, not to mention color theory and lighting, shading and rigging?
grantmoore3d
12-05-2009, 07:13 PM
That's really more for a 3D arts course, this is clearly meant to be more about the technical side of game development. Preferably these students would not necessarily be making the game art and would team up with someone in an arts course.
leevan
12-05-2009, 07:22 PM
I am NOT a game designer; thus, I may be all wet about this. However, wouldn't you also want some basic foundation classes in figure drawing, Anatomy, head and hand drawing and creature drawing, not to mention color theory and lighting, shading and rigging?
well.. i am not quite sure about the Anatomy and drawings.. cause this ain't an animation or vfx course, as for the shading/ rigging, we are thinking of implementing them in the 3D Content Creation modules...
1. The more time in class the better, but students must be given time to work on projects independantly
2. Longer classes are better, more time to learn and work
3:
It would be a good idea to have a class about game design and the actual pipeline of games development, otherwise you're teaching people skills without any kind of context in which to apply them.
It also seems like you're trying to train universal masters of everything. Id cut it down to teaching them the basics of a single scripting language, otherwise their skills will be extremely shallow and not really useful for anything. If they even pass the class since this sounds extremely challenging, learning botjh
we are not exactly trying to teach them everything .. but I think we have some reason why we chose every topic...
for instance, we figured, one who is pitching for a game programmer job, should be familiar with flash game development, he needs to have some 3D knowledge so that he can find his way in 3D game studios as well. Cuda and Python are in an introductory level, so that they have an idea about the future of programming! so on and so fort.
You are right about having one consistent scripting language all over, but would say a graduate student, which for instance knows directX only, has a good chance to land a job?
1. 4 days because you want to give them appropriate time to actually do the tasks and apply the knowledge.
2. Longer classes, but I would suggest going over 5 hours. You tend to lose interest and will lose information after that.
3. You can't learn all that in 12 weeks. I just finished a 4 year University degree which covered a lot of topics like that, and even I feel it was a little rushed. Also, there's no point learning all those different language... focus on teaching the basics, the process and good programming practices as they relate to games.
What I would suggest overall is to forget about the variety. 12 weeks is a short amount of time, and you have to assume these people know nothing. This is what I would suggest;
C++ Object Oriented Programming (Basics of Programming)
Mathematics for Games
DirectX (to apply the mathematics of games, matrix transformations, etc...)
Game Theory & Design
Flash Development (project based)
Unreal ED (project based)
This course isn't 12 weeks, it's a 2 years course, consisting of 6 trimesters, each trimester has 12 weeks, that makes 36 weeks of the year, the other 16 weeks, are 6 weeks of holidays per year, and 10 weeks of Project Based Work! It makes an over all of 70 weeks of study and that would be either 280 or 350 lessons! and 20 weeks of project throughout the study.
and there are other units such as game design and Principals of interactive multimedia... the reason i am not putting them in here is that they come to us from a head quarter and we have no control over their contents, so i wouldn't be really debating on them..
Thanks for the replies guys...
I would like to express that at this point we are really really open to suggestions, so please keep them coming in
grantmoore3d
12-06-2009, 07:18 PM
This course isn't 12 weeks, it's a 2 years course, consisting of 6 trimesters, each trimester has 12 weeks, that makes 36 weeks of the year, the other 16 weeks, are 6 weeks of holidays per year, and 10 weeks of Project Based Work!
Oh okay, sorry I mis-interpreted what you said in the first post, didn't realize it was a 2 year program. However I would say that most of my advice remains the same, limit the number of languages and focus on the design process and practice, practice, practice. The biggest mistake the program I took (which was Interactive Multimedia Design) was that we did so many different things, that if I didn't do study outside of school, I would have had a very shallow set of skills and would not be a master at anything. That's the one thing I would want your course to avoid at all costs.
rakmaya
12-08-2009, 01:07 PM
.....for instance, we figured, one who is pitching for a game programmer job, should be familiar with flash game development, he needs to have some 3D knowledge so that he can find his way in 3D game studios as well...
Game programmer job is an extremly competitive job. Just having basic knowledge is not good enough. Almost every programmer from college has basic knowledge about 3D, OpenGL and Graphics, especially ones graduating with Comp Sci degree in US or Asia. What you just said is not going to get them a game programmer job in any 3D game studio. Guaranteed.
For game programmer, you need to have a good knowledge in math (linear algebra a minimum) and very good in C++. These two are a must. An average programmer knowing a little bit about DirectX and OpenGL or some level editors is not going to go anywhere.
I would suggest the following items for programmers
C++ Programming (For people who doesn't have any programming background. Other should be allowed to skip this). Don't do any other languages. It will get in the way.
Math Basics (You should approach it from Graphics perspective instead of pure math. B/c of time constraint. And recommend some Linear Alg books to them)
DirectX Or OpenGL. This should be taught immediately after Math topics
Math Intermediate (Lighting and Physics).
Shaders (I would probably go at HLSL or Cg)
On a more applied level, I will include the following
UDK (Since it is out now for free) or another professional Game Engine. Don't use many other free ones. Not because they are useless. They are plenty useful. But in the end they would want to work for a game company and knowing a commercial engine is a big plus to get the foot in the door.
You should also recommend them to other math topics such as Calculus, AI and Physics. Although it is rarely used directly in game development, it does help if they want to dive into other areas such game technology development or film.
leevan
12-10-2009, 09:09 AM
.....................
I would suggest the following items for programmers
* C++ Programming (For people who doesn't have any programming background. Other should be allowed to skip this). Don't do any other languages. It will get in the way.
* Math Basics (You should approach it from Graphics perspective instead of pure math. B/c of time constraint. And recommend some Linear Alg books to them)
* DirectX Or OpenGL. This should be taught immediately after Math topics
* Math Intermediate (Lighting and Physics).
* Shaders (I would probably go at HLSL or Cg)
On a more applied level, I will include the following
* UDK (Since it is out now for free) ...........
Hey
Sorry it took me for ever to write back, this thread was moves and for some reason i wasn't getting the email notification either..
Anyway reading through your post, i think this would be a brief of what you suggested:
C++
Maths
DirectX (or openGL)
Shader Programming
A Game Engine
Now, here is what i am thinking, do you think this much data would serve a 2 years course, i know there is probably more data only in C++ to be discusses (and Practiced) that can fill the entire two years;
but how about teaching it for 2 years?
How many units would you suggest for either of them? (every unit is 12 weeks, 1 lesson a week)
Wouldn't you suggest to have some 3D content creation as well?
Also, in some other forum people suggested to have python as an integrated part of another application such as Maya, what o you think about that?
I hear you about having focused on some certain language but at the same time i have to look into having a course that has an appeal for students and also immediate market, any thoughts on that?
thx
rakmaya
12-10-2009, 02:30 PM
My assumption is that this course is more focused on the technical (i.e development side) than 3D Art (Modeling/Animation). That is why I put emphasis on the programming and actual game development element.
2 Years is plenty of time to be very good in game development if the student is dedicated and classes are inspiring.
A person who already knows programming would perhaps take a semester less.
Hey
How many units would you suggest for either of them? (every unit is 12 weeks, 1 lesson a week)
Programming in C++ is a task which cannot be mastered if you are in just one industry. Many areas of science uses C++ in wide variety of ways that most veterans cannot even imagine unless you start working in that industry.
But we are not talking about that. We are talking about teaching the basics.
Your C++ class should consists of examples and projects that initiate logical thinking and not OOP principles and guidelines. You can also give them an OOP class seperately. But that is not the priority. The priority is in teaching to apply logic inside a computer program. This is the most vital fundamental principle that any starting programmer should understand.
The reason I suggested C++ for this (as opposed to Basic or Python) is because, you can use that to continue to other game programming courses that require C++.
An approx. time line is below. For each class I counted 2 hours
Programming Basics in C++ - 12 Classes (approximates a semester worth of work)
You should focus 2/3 of the classes for fundamentals (inducing good examples and simple project work)
Last 1/3 should be intro to OOP
Math Basics
Into Linear Algebra - 4 Classes
3D Basics - 4 Classes (Most basic topic such as transformation, camera, etc...)
Reference a good Linear Algebra book to accompany for further self study
DirectX 8 - 12 Classes
I would say about 8 class on hand picked topics
4 class on intro to shaders
Math Intermediate - Lighting and Physics
--> Focus should be to introduce simple concepts in use and not pure mathematical.
--> Lighting section - 6-8 classes
If I were teaching this, I would elaborate on different lights and mathematical priciples behind them.
I would start with a scene that has the generic setup (closed room with sphere, box) and few lights and a camera.
Include the HLSL shaders in the .fx file for each geom and start explain how the code and the math behind them work.
Projects will focus on this one room example with various ideas for light based effects.
--> Physics section - x classes ?
This is primarily a hit and miss section. I would go on the safe side and stick with a physics engine or perhaps even use engines such as UDK for practicals.
Some people also include AI here. But I don't know if that is a good thing or bad thing
Shaders - 6 - 15 classes
This really depends on how much you want to get into. Perhaps you might want to seperate this into 2 Course works. Shader 1,2. So students have the option to skip the second one if they are not too interented in it.
I would include geometric surface based effects and post processing effects in the first part.
Game Project - Using xxx Engine - 12 Classes ( More the better)
This is the heart of the matter. I would go every detail on working on a sample game level with various effects items, simple AI.
Course should be structured so that if you have 3D Modeling Course, programming students should work with them.
Wouldn't you suggest to have some 3D content creation as well?
Defenitly. However, it is more like content creation to understand the overall picture of game development. Do NOT go into modeling. I would stick with creation of simple objects and exporting them. Cover simple scripting here. The best project is to let them work on some export script to export geometry out. Generally you end up learning a lot about the 3D package when you do that project.
Since it is game development and not technology development, you might not want to spend too much time inside a 3D modeling application.
I would perhaps spend a good 12 Classes here. 6 for static models and 6 for bone animation/skin matrices. The reason for the animation is that, as a game programmer you have to know how to manipulate simple bone matrices. This is easy to do in code, but letting students know how it was all formed could be inspiring.
When students learn DirectX, they start with objects and animations pre-made by others, Here they get the chance to go into the actual maya or max file that has the objects and animation that was used earlier.
Also, in some other forum people suggested to have python as an integrated part of another application such as Maya, what o you think about that?
Yes, Like I mentioned with the 3D Content Creation, depending on the software you pick, you should use that scripting language it has. If has python, I would prefer that as well.
I hear you about having focused on some certain language but at the same time i have to look into having a course that has an appeal for students and also immediate market, any thoughts on that?
thx
This is a tough decision, as you can only concentrate on one thing or the other. The advantage of learning 3D curriculum like above is that game programmers can pick up flash and handheld games in few weeks by themselves. But going reverse is not quite possible without adequate resources. Besides, you should focus more on the 3D game development than the flash ones as it is more appealing to new comers and the skills are easily transferable to 2D. Added benefit is that most of the things in Shader topics is transferrable to render engines in film such as Renderman shaders.
I think I am really generous on my approx class times. Do not rush on the intro classes (Math and DirectX esp). You want to give students the feeling that "it is very simple and I understand that" instead of "the industry is quite advanced"
CGTalk Moderation
12-10-2009, 02:30 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
vBulletin v3.0.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.