The Blog of Ryan Foss

It's a start!

I Graduated!

It happened, and I have the bills, and diploma, to prove it!

I now have a second Bachelor of Science degree in Game and Simulation Programming from DeVry University.

Classes are Over

I’m done.  My last class final taken and grades are in.  I’m done with DeVry.  I’m not sure when I “graduate”, but I am now completed with my Game and Simulation Programming Bachelors Degree.

I’m pretty meh about the whole DeVry experience.  I wish I could put it in words, but I think a lot of it was wasted on me.  Well, not wasted.  The system is pretty easy to game, but combine that with my 10 years of work experience in “simulation” and I think I’ve been pretty well trained already.

If you, dear reader, are someone considering the GSP degree, be sure to give it a long thought.  I still contend that most would far much better with a Computer Science degree while trying the hobby indie game maker thing on the side.  I have no insight into how degree’s like this lead into the industry, but nor was I aiming for that.  If you’ve got any questions, let me know.


Senior Design, GSP-490

Last week I finished my senior design class in my Game and Simulation Programming (GSP) degree, class GSP-490. I was worried because I was very busy with Deadly Chambers I had made the bad decision of doing a senior project alone instead of in a group/team as advised. This meant everything was on me. Documentation, design, programming. At the decision point I was too consumed otherwise to commit to anything but what I thought I could handle myself.

The good news is it went well. Grades are in and I got a 90.04%, just eeking out the A. This was a wonderful surprise since I had accepted the fact I was probably going to get a B. Luckily everything with my game fell into place at the last minute and I completed the game (for the most part).

PING! is an action game where you control a ball. You decide which direction the ball should turn when it hits something. Concept was by Bill Nagel and me. It was programmed in XNA Game studio 3.1 (C# FYI). I did all the art assets, programming, source control (using SVN), etc. myself.

Here are some screen shots of my game.

Start Menu

Dynamic Camera Fly at Level Start

Countdown to Start

Game Play Example

Win Condition, PING!

Menu Integration

Apocalypse Update

The team has been working along quite well. He have the starts of a basic menu system in place and a leveling system that shows the concept. The art is in the middle of states unfortunately, I’m trying to get some normal mapping to work, which isn’t as easy as I was hoping. Good stuff to learn.

I was hoping to get into shaders a bit to do the shields but I went with a sprite approach. I simply draw 50+ sprites in a circle around the planet. It works, and I can control their vertical size to reflect the shield capacity. Worked like a charm.

Asteroids and Relfection

I added an asteroids class to the game and got them working. You can shoot them now too and they disappear and your bullets bounce away. I’m having some problems with the reflection vector, where the reflection appears to be mirrored. It’s late though, and I just want to post a picture.

Asteroid Apocalypse Template

I spent the better part of the evening yesterday getting this project running. It’s an empty shell really, but it has some art assets from Blender (via a slightly modified FBX python exporter), rotating earth and asteroids too. It allowed me to get the scene setup with a configuration I like. I’m using a tight FOV (XNA uses the horizontal to define their FOV setting which is new to me) so the 3D models are subtle and feel smaller.

Combine Dodge, aka Henry Rain

I took the modified RockRain XNA game project I’ve been working on and deployed it on my Xbox 360. Pretty neat. Henry made me change it from Aidan’s face to his face. Plenty fun though none the less.


Well, it isn’t the best but the basics are there to demonstrate the concept.
Essentially you are looking at XNAMentor’s Space Invaders project modified with our game concept in mind. I also got the Blender to XNA FBX pipeline working so I’m feeling pretty confident we can pull this off.

Additionally, I’ve been reading Beginning XNA 3.0 Game Programming and I’ve got one of the “games” working. It’s originally a meteor dodger game where meteors fall and you have to avoid them. I modified the art so instead of a spaceship, you are combine harvester that dodges my son Aidan’s face. This was a big hit with my son Nate.

GSP, XNA, and SVN Oh My

I bet I’m not going to get any readers based on that title, but I don’t know a better way to sum this up.

My first week of GSP-360, Applied Development Project, ended Sunday and it was a roller coaster ride. First off, the class is more focused on documentation than development and strongly suggested we do a “mod” instead of a “from scratch” project. I was very disappointment but with the professors approval, I recruited a team to make a game from scratch using the XNA Game Studio framework.

The week started off rough, being that our communication needed to be ironed out. That, and I was somewhat stressed because I’m new to C# (the programming language) and XNA (Microsoft’s branding for game related software and development stuff). I didn’t really know what I was getting into. However, after we got together and chatted using Google Talk, we settled on a concept.

I suggested a game and the team was willing and eager. The concept is a simple arcade style shooter, similar to asteroids in design but instead of trying to blow up asteroids, you shoot them to change their course and steer them away. I put the concept art above together to help communicate the idea and I think that helped.

Additionally, I set up a SVN repository for us to work in. This is especially important for programmers. For those who don’t know, SVN (aka, Subversion) is a Version Control System and that means that we can work on projects together, but a master repository holds all our stuff. If we make changes to something, we check it in and others will get the changes. It should help us work together easier because it mandates document control. An easy way to imagine it is if your team had to work on a letter together. Most teams divide out the sections and then put it together, which can work fine. But having one document that we all work in and change, almost like a shared file system, makes it so we all can contribute to every section.

I plan on writing up an SVN tutorial in the next couple days to explain what I did and how.

Onward to Education

I got my grade for GSP-410 (Software Engineering for Game Programming) today. Was excited to see I got an A.

I’m a week into my other classes now and things are going well. I’m taking a career development class, CARD 405. That is a real snooze so far. All about interviewing and the job market. Which would be good, if I didn’t have a job.

The other class is GSP-360, Applied Development Project. The intent of the class to my dismay isn’t to develop in the sense of software, its to develop a mod with focus on the documentation. The concept, game design, technical design, project design, etc. documentation. They suggested using Torque, which I was not a fan of modding to. We had to form teams, so I recruited 3 others to work an XNA project. I’m the lead. We’ll see where we go.

Our first assignment, the Concept Document, is due on Sunday and we haven’t decided what we are going to make yet.

XNA, GSP and Me

My new classes have started for Session B this semester. My GSP-360, Applied Development Project is shaping up to be interesting. It’s designed more to be a modding class, but I don’t want to use Torque (suggested) or mod a different game. So I proposed a XNA project. I managed to find 3 other people willing to give it a shot, with me as leader.

Hopefully we can pull it off. I tried to recruit capable programmers, but thus far they have been pretty unresponsive beyond expressing interest. Though, it is only day 2 of class. I’m just uber excited. Given that, I’ve already jumped into some XNA projects. Hopefully I’ll have something worth sharing in a day or so.

Week 2, GSP 410

Week 2 has been a slow start. That is not entirely true, as I had an incredibly busy week with XNA, working late and other obligations, but I’ve finally sat down to do the reading and homework.

As much as I appreciate DeVry’s online classes, I have a real hard time dedicating any time to the forums. Essentially, each week we (the students) are required to post at least three posts on three different days, with at least one before Wed. This usually isn’t a big deal, as I manage to shake something out quick. But the content of this class is so serious, it’s becoming arduous.

Regardless, I’ve found some of the reading lately very interesting. I may have to blog about that some. FYI, the book is Software Engineering for Game Development by John P. Flynt.

Interestingly, my curmudgeony attitude about installing Smart Draw and its use in this class struck me in realization that the demo comes with the book. Doh, no wonder we are using it in the class.

Week 1, GSP 410

Wow. I mean, wow. I’m having a really hard time not being cynical about my first assignment for this semesters class.

First off, I had to install another program and I really dislike doing that. Especially demo trial-ware of a program I’ve never heard of and I’m unlikely to use. The program is called SmartDraw, and though it has some decent looking features, it isn’t the sort of thing I do every day. The extent of what we did could be done in Word, or Powerpoint, two much more logical choices in the long term. Plus, it bothers me a little that the class assignment is to download and use and turn in work done with a trial demo software. I wonder what the SmartDraw people would think of DeVry using their software this way?

Here’s the instructions as I saw them, the the bad grammar, spelling and missing instructions as is.

And this is what I had to do to it.

That’s it. Well, that’s one third of the assignment, though it was just as simple. Basically select the shape and then fill in the wording as it appears in the book. I hope I can actually learn something from this class. Something outside the “discussion” area, where in my experience to date, little has be learned.

DeVry again

After a much enjoyed and much needed 2 week break from classes, I’m back at it. I’m now enrolled in GSP 410, Software Engineering for Game Programming. So far, the reading has been so dry I can’t get through it. Although I think it has some good points, I just seem to have a problem with non-fiction.

Anyway, I’m downloading SmartDraw for my first assignment. We’ll see how it goes.

On an aside, I decided to try and link with my professor on LinkedIn, he wouldn’t be the first. Unfortunately however, he was unwilling to do so. I don’t know why this bothers me, as it doesn’t really matter. I guess I just don’t like the rejection. Obviously its his profile and he can link with who he wants. Maybe its for the best though, since his profile picture makes him look like a weird stalker.

Dean’s List

Grades are in, I’m on the Dean’s list again!

I was worried going into the final for GSP-380, but once I started it was a breeze. Some of the questions were wonky to try and trick you. Or maybe just poorly phrased to try and be different, but a strong A pulled through.

My next class is GSP-410, Software Engineering for Game Programming. Hope this class rocks. I’m taking it alone so I can give it some focus (and take some pressure off during the summer).

Week 7 GSP 380 Ends, Final Begins

I finished my week 7 GSP 380 homework with flying colors I think. This week was about animation and inverse kinematics. The lab had us calculating the bones of a two jointed arm to find the appropriate angles and then animate them. It was very interesting, although pretty easy since it was really all spelled out. I went above and beyond the assignment and added some controls to adjust the length of the arms and the rate of animation. I also added error checking in the event of unreachable positions so the arms would still do something appropriate.

FYI, the lab’s in this class generally comes pre-packaged with a basic skeleton of a program and then we, the students, have to add the guts. In this case, the window with camera controls and a white sphere were starters and we had to add the arms and do the math.

This is the first class I’ve had some struggles with. I’ve stayed in the A range most of it, though I really messed up one quiz with a 40%. I learned that I should prepare a little better and not make overarching assumptions regarding similarities between OpenGL and DirectX. This puts me at a B if I don’t get above 80% on the final. I get 3 hrs to do the 300 point final, which consists of 21 multiple choice questions and 5 essay questions.

GSP 380 Week 1 Complete

I just finished my homework for week 1 of GSP 380, Multimedia Programming with Lab. This week it was pretty simple though I’m really looking forward to the weeks ahead.

This week I had to get VS 2008 Express and the DirectX SDK installed and then compile and run two programs, one using DirectX and one using OpenGL.

For the OpenGL assignment we had to modify the program, which is why you see a different color and an extra triangle.

DeVry Spring 2009A Completed

I hadn’t written anything about my current courses lately because they bore me severely. It was bad enough trying to participate in the forums and do the homework. No doubt I got A’s, but I don’t think I learned all I could have. Regardless, I just finished both my finals.

My classes were CIS-246, Connectivity with Lab, and PSY-C305, Motivation and Leadership. 246 was a lot lamer than I expected. I had hopped it would involve some programming, getting some communications going across computers but that wasn’t the case. It was more like IT. Make a new user, put them in this group, change their password, etc. I’ve done most of that before. I’ve done my time in DOS and VAX and Unix, and I’ve had a home network since 98, so this was cake. In 305 I actually had to think and think differently. I learned some interesting traits about people and how to lead and make good teams, though I have no real way to apply it currently. I much prefer technical mumbo.

DeVry Fall 2008-2009 Over

Last night I took the final for GSP-280, Simulation Design. It took me 30 minutes of the hour allocation. I need 49% to get an A. Interestingly, the professor e-mailed me today and said that the final was increased to 3.5 hours and that I could retake it if I wanted. I responded with a no-thank-you.

My other class, GSP-130, System Architecture and Assembler, was a different story. This class was a little more challenging. The logic of programming isn’t hard, but the syntax of registers and the little gotchas were often frustrating. Regardless, I took the final tonight, going into it with 667/1000 points. The final worth an additional 300. I need at least 203 points to get an A.

My wife thinks I’m obsessed with getting A’s, but I just want to know that I’m capable to my max.

Next semester (Spring 09) I’ve registered for something a little different.

CIS-246, Connectivity with Lab. This is essentially a networking class.
PSY-C305, Motivation and Leadership. Name says it all.

I had intended on taking something else, but when I called to register for it the adviser said I already took it. I hadn’t, but my transfer credits counted towards it. My original adviser had misinformed my of my transfer credits. This advisor however made it a point to update the DeVry online information, “My Degree Navigator”. A year plus and their database was out of whack. The whole time I just thought the tool was useless, but apparently it has some value. (Note a degree of sarcasm here. This is why I don’t do any registering or bill paying online because what it says online hasn’t yet meshed with reality.)

Back in the Box

My 360 is home now. It came back on Friday, but I had lent all my games and controllers to a co-worker since I wasn’t going to get much use out of them. Thus, I wasn’t able to play again until today.

The system is working well it seems, though my licensed downloads are acting funny. Braid for instance lost its saved games. Haven’t tested much else. Far Cry 2 works and now that I’ve tasted of it again, its difficult to shelve it until after finals and my iPhone work is done.

I’m going to take my final in GSP-280 now, should be a breeze. I’m at 101%, so the 200 point final should be easy to blow through.

Flash Class

I know it isn’t much, but this is what we had to do in my Simulation class. For some reason we have Flash labs. This one basically had us make objects and then move something. Pretty lame, but I assume it’s going to get better.

Arithmetic Operations Timing

In GSP-130, Systems Architecture and Assembler, we had a lab to examine different mathematical operations and the time it takes to process them. The bar chart shows the results, comparing integer and floating point add, multiply and divide.

As I expected, integer add and multiply was faster than floating point, but what surprised me was the integer divide taking longer.

Happy New Year

A lot has been going on lately since I’ve had a long break from school and work. I’ve been spending (read wasting) my time in enjoyable ways.

Grades were posted for my class. I scored 100% on the final, so I got my A. My wife thinks I’m obsessed, but I have this really strong desire to get an A in all my classes.

Other than that, I played and beat Bioshock. It was a weird game. I played through the first bit three times sine I got the game, but didn’t really care for it and didn’t know what the big deal was. But this last time it was really engaging. I couldn’t wait to put the kids and wife to bed so I could play. It does get a little monotonous towards the end though, but all in all a truly awesome game.

Santa also brought me the Orange Box. Wow. Portal was a blast. That game is wicked cool. Trying to explain it to my friends was weird, but they eventually got it. My 5 year old was watching too, and started telling me how to do it. Though honestly, he wasn’t that much help.

I played some online Team Fortress 2. I got tea bagged, which isn’t something to brag about, but it happened. Ran into some pretty lame people too, a griefer and a screamer. Otherwise it was a lot of fun. For $20, Orange Box was totally worth it, and I haven’t even tried Half Life yet.

Classes start up soon again too, and I was so enjoying my time away.

Modification Success

My class is over (GSP-340, Modification and Level Design). I turned in my “game” level and got 100% so I’m happy about that. The final was easy, but annoying like all the online tests I’ve taken so far. For some reason I think someone with English as a second language wrote the questions. Though it could be me, I tend to read into things.

I was taking the first session easy and only taking one class. The last few sessions were quite chaotic taking two classes at once. That put me into the full time student category and it felt like it. I decided to do that again this session however, I want to get the degree faster.

Next session I’m enrolled in GSP-130, System Architecture and Assembler and
GSP-280, Simulation Design.