Monday, September 1, 2008
And now for something completely different
Data Structures - this one will keep you busy
We covered a lot of data structures, these are structures you will not get in a normal data structs class. I think that goes for just about every class here, they are geared toward game development and games are made to be fun but there are tons of very advanced programming techniques and mathematics that come together to create that game.
Sooo the topics we covered
- singly linked lists
- doubly linked lists
- dynamic arrays
- hash tables
- Binary Search trees - (do yourself a favor and learn this one before you get here)
- Insertion sort and Binary Search
- Graphs and finite state machines
- Huffman Compression
Each of these topics was introduced, then in 4 hours we had to build the entire workings on the data structure from scratch, most days we used the entire 4 hours. Some days, like Binary Search Tree day, we couldn't get it completed in lab. And since you a graded on your lab work in this class that's not something you want to do. So read and ahead, and you should be ok.
This was a great class overall, the data structures we learned are the bread and butter of video game development, they are very interesting to learn about, and really cool to program from scratch, definitely challenging, but that's a good thing right?
So we had 3 projects in this class, a data driven menu system, a dictionary Word Scramble game, and a turn based strategy game. All DOS based games, the focus is on the data structures here not the interface (that's next month: Windows Programming 1). I enjoyed them all thoroughly I tried to build in as much polish and pizazz as possible in a short amount of time (short being 3 - 5 days). I ended up getting a 100 on all of these but I had a lot of sleepless nights, I may have gone a tad bit overboard on some things which caused those sleepless nights, but in the end I think it was worth it.
Ethics and Psychology
Overall an easy class, entertaining and insightful.
Physics - long over due
So physics, physics was much more advanced than I had thought it would be, we covered the basics first off: velocity, acceleration and friction. We used Euler method for simple velocity and acceleration calculations, then the Verlet Method for a good balance of accuracy and computational speed, then Runge Kutta 4 or just RK4 for the most precise calculation of velocity and acceleration. The rest of the class was filled mostly with calculating the impulsive forces after a collision, and calculating the angular velocity and acceleration taking the impulse and inertia of the object into consideration.
We did several labs in this class to demonstrate the techniques and they were a bit more challenging the Linear algebra but overall the class is fairly easy to pass. However, there is a ton, I mean a whole exact English measurement of a ton, of notes that you "could" take if you are so inclined (which not many are) on how to put some awesome physics in your game. We got into some really advanced topics some of which you would not get to till graduate level courses in a typical university. All of what we learned is geared to 3D real time "discrete" physics, which, according to our instructor and math guru Bahin, you will not find any courses for in more than a hand full of places across the globe. We learned physics but not the typical physics, we learned physics and how to implement it in real time. Not something a normal physics major would ever have to concern themselves with.
So the overall the class is very valuable, but you have to do more than just the course work to get everything out of this class.
Ok on to Data Structures and Psychology