Monday, March 1, 2010

DirectX

So at Full Sail we have a whole class dedicated to DirectX. The class is instructed by Wendy Jones author of several DirectX books (http://www.amazon.com/Wendy-Jones/e/B001JP274W/ref=ntt_athr_dp_pel_1).

When I came through this class it was Wendy's second class - today the class is more shader driven, but when I took it we did a lot of fixed function pipeline.

The class was challenging with 4 hours to finish all the work correctly and submit it - almost all assignments came down to the wire, I remember sweating through each lab, you can hardly look up or lose focus for even a moment without it affecting your grade. In this class we really put into practice the idea in agile programming that you "just make it work" then optimize and refactor. From this point on, in the program, most classes are like this - very limited time to get a lot done; you have to work fast - real fast - but you get good at it. Eventually you begin to incorporate design aspects and OOP principals that make your life easier and help you get things done faster.

So as stated we used a lot of fixed function pipeline in the class, we covered things like vertex and index buffers supporting position, texture-UVs, and normals. Direct Sound (including streaming sounds), X-Input and Direct-Input, rendering 2D sprites, rendering 3d Models created by hand and from file, loading textures, lighting (point, directional, and spot), billboarded quads, point-sprites, and particles.

The class was a good covering of all the basics of DirectX, for the final we put it all together and created a scene that uses input, streaming sound, 3d models and texturing, and several types of cameras like 3rd person and free cam. As I said the pace is very intense and it really prepares you for the next class (SGD) where you create a game by yourself using DirectX wrappers provided by the school.

From what I hear this class just keeps getting better with Wendy at the helm - if you take it in the future look forward to lots of HLSL shader techniques and possibly writing an importer for your own custom model format.

Thursday, November 12, 2009

Software Architecture

Ok so a few words about the software architecture course here at Full Sail. This class has some extremely useful information, however, you will only start to see how useful it is once you start getting into designing larger projects. Even now I feel like I'm barely scratching the surface of some of the ideas taught here.

For instance one of the major focuses of the class is to teach design patterns, I'm using those same patterns, where I can, to implement my code for final project. However, it seems that the more intimate knowledge of the design patters I have the simpler it becomes to maintain my code, the patterns have a lot of depth, you can't learn them in one sitting, it takes lots of practice - they might not seem directly applicable to you (in this class) other than using them to finish the labs - but put extra effort and time into understanding and using them!

Do a little side project and force yourself to use the observer pattern, the state pattern, the command pattern, and the Model-View pattern. Just these alone will make the projects you do here at Full Sail that much easier because there is nothing more time consuming than backtracking in your work because of poor design choices. This class will help you to avoid those mistakes, but you have to apply yourself - as always - and use it or lose it!

Wednesday, November 4, 2009

Is this my blog?

Hello internet people - its been a long time. I'm doing fine I graduate in Febuary next year. Got real busy and kinda fell off the blog wagon, but I want this thing to be complete so I'm not letting go completely just yet.

I see that I left off with Windows 2, which means DirectX is the next class I took along side Software Architecture or SWA.

What to say about DirectX - when I took this several months back Wendy Jones had just started teaching, it was her second month. Wendy has a few DirectX books out there and she knows her stuff for sure.

This was a pretty tough class with her, lots to do and little time to do it in, the main mistakes I kept making in this class were copy and paste mistakes (were copied code compiles fine but creates a bug). This type of mistake is really common, I don't want to say don't do it, just get good at it. In this class you will learn lighting, particles, 3D sound, rendering 3D models and 2D sprites.

Overall the course is just a start into DirectX it will teach how to use Direct3D, Direct Input, and Direct Sound which is just a small part of making a game (but important).

Things that have changed:
Today this course is fully shader driven so you will learn how to implement 3D graphics using what the industry uses - shaders. (Shaders use custom scripting/code that give you near complete control over what gets put on the screen). Another big change is that now you read in 3D models from Maya using a custom exporter that you write a month prior to this class in 3DCC (3d Content and Creation)

Sunday, January 4, 2009

Windows Programming 2

This class is exclusively in C#, which is cool but by the time you get out and have to propram in C++ you feel a bit rusty.

Chuck teaches this class, you meet him in WP1 for a couple of class. He is a very organized teacher and is pretty easy to follow but he is probably the fastest typer to this point so it can be a challenge to keep up. I downloaded the previous months content so I was able to copy and paste from that when I start to fall behind.

So this class teaches you alot of the .Net framework stuff, it will be used in later months to create tools for your games. C# is a cinch, so it makes since to use it for anything that doesn't need to run super fast. Actually let me say that C# can get really advanced but its easy to figure out, things are intuitive and the intellisense that compiler has is make it easy to see what the language has to offer.

The main objective of the class is to create a tile editor, which is good to know, I actually used this to create my game in The Structure Of Game Design, overall this class was not to challeneging and requires little effort to stay on top of. This class is taken accross from 3D Content and Creation, which is also an easy (but really cool) class. So that makes for a pretty easy month, enjoy it cause I think thats the last time you will see a full 8 hours of sleep, seriously things get tough after this point so be ready!

Windows Programming 1 (Pong)

Ok so windows programming marks the beginning of life outside of the command console, you learn some cool Win32 stuff, actually you learn the basic win32 stuff for most of the class then you learn how to use DLL's, static Libraries, Multi-threading, and some neat tricks like have a command console and window running together. This class was really packed with good stuff, the Multi-Threading, DLL's, and Static libraries are covered again in more depth.

One of the first things we did was create tic-tac-toe, this takes up the first half of the class, the other half is used to your very own version of pong.

I used my little math library to create the ball and paddles in 3D, but I ended up just using them in a 2D fashion. Z-buffering was becoming a problem and win32 does not have a simple fix for this.

Anyhow, this was a good class with some really good knowledge to be had.

I will try to post the game once I get ftp access to my road runner site again, apparently they thought it best to only allow uploading of music and picture files through their main interface.

Tuesday, October 28, 2008

HAM: AKA Historical Archetypes of Myth and Mythology

OK so how about a quick update

Hysterical Archetypes of Mythology - ;)

I was excited about this class because Mythology is pretty cool subject. It does have some interesting content such as Celtic, and Norse mythology with their totally trippy creation myths (I think out of all the creation myths the Cherokee's is by far the weirdest). But overall it seemed like we kinda just blew by the mythology and focused more on the Hero Cycle - which was somewhat formalized by mythological scholar Joseph Campbell and merchandising genius George Lucas (may he and Spielberg never make another movie again for what they did to Indiana Jones - completely unforgivable). We did talk a bit about what made the original star wars movies so different from the prequels, our instructor pointed out that George strayed from Campbell's formula and thus made some lacking films.

So the Hero Cycle has been around a long time, even since the oldest known piece of literature: Gilgamesh, a Mesopotamian myth and about the search for immortality, all the way through Egyptian, Greek, and Indian mythology to today. It can be easily seen in Tolkien's work and more modern books, I read a lot of Dean Koontz he brings his own spin to it. Pretty much every movie I have seen since this class I see the Cycle unfolding, its kinda distracting. So Joseph Campbell didn't really invent the Cycle he just discovered pattern and gave form to it.

So the main things I took away from this class were the Hero Cycle and color symbolism and how they relate to video games, which is... meh - loosely. Color symbolism seems to have a greater impact than the Hero cycle; the cycle is still there its just bit harder to pinpoint in games, but all the great games seem to follow it. So that's about all I have to report, I'll have much more to say about Windows Programming 1 so stay tuned...

Monday, September 1, 2008

And now for something completely different

So how are things in Florida and whats it like living the in a city where the average IQ of a person drops from 120 to.... I-dunno about 2 when they slide behind the wheel of their brand new Chevy Bumper Car, or Dodge Ram-the-guy-in-front-of-you-cause-he-looks-funny-and-waited-two-seconds-to-long-after-the-green-light-and-man-that-pisses-me-off-i-have-no-patience-for-people-maybe-I'm-Cuban-i-don't-know-all-i-know-is-I'm-totally-$*%&#-nuts-when-I-get-in-a-car


So in case you didn't catch the subtleties of my hints that elude to that fact that there may be something in the water here and it maybe turn people into totally insane, rude, unethical dare devils on the highway let me say it again. The drivers in Orlando SUUUUUCKKKK! And I truly mean that from depths of my heart, with great passion and vigor. Now I'm used to bad traffic, bumper to bumper sitting around for 30 minutes to an hour, but where I'm from (Austin, Texas) people are generally considerate and mindful of other people, at the very least they grasp the concept that there in fact ARE other people. Now you may be thinking, he is exaggerating its really not that bad, and I will tell you; no its actually worse words just fail to describe. I digress... what I was going to say was: the traffic is not bad here its just the drivers. Example: there was an intersection, 4 lanes for both intersecting roads, they light at the road started flashing red. In "normal people land" this means 4-way stop, stop, look make sure there is not, I dunno, a huge car in front of you before you proceed into the intersection. However, in "crazy people land aka Orlando Florida" this means everyone stop at the same time, so far so good, and then everybody go at the same time (nooooooo!) get to the middle and stop because there is no more road left to drive on that isn't occupied :( and somewhere in that pea brain is a little voice that says.... no not really it doesn't say anything.


Ok so that's my rant about the drivers here, and it truly is a singular experience driving the roads of Orlando, its probably the most talked about topic at Full Sail (about 95% of students there are not from Florida)


Next rant - the weather: HOLY COW the weather here sucks, all it does is rain - maybe that's cause there is a hurricane - pssshhh - like that would cause a lot of rain. At first the rain is nice, I generally like the rain but seriously 2 weeks of straight rain? My dog is going nuts from being inside all the time. Now that we got one hurricane done another is forming, ughhhh, the joys of living on the southern Atlantic coast, I can't wait to move. Everything gets so wet, then the water sits and huge swarms of mosquitoes as thick as molasses chase you down and try to suck you dry. After while the water starts to stink, a thick miasma hangs in the air, smells like pooh and sulfur - I know - pleasant. But everybody says the winter months are great - if you can make it!


So I have been asked for pictures and stuff, no pictures of Full Sail yet - and not much to see of hurricane Fay just lots of rain but I did take this one picture on my phone that I think is pretty comical


In other news...
Tammy started brushing Charlies teethe with an electric tooth brush check out this little video

Data Structures - this one will keep you busy

Data structures is nothing to sneeze at, this is first class that has really made me work, and by work I mean 20 hour days, staying up till 3AM creating little console based games that uses really awesome data structures, then studying for a midterm, or quiz, or trying to read up on the next days topic so you don't get left in the dust.

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

This was another gen-ed it was easy and it was entertaining, we go over typical psychology stuff like Freud and Jung, we had a whole day of the MBTI (Myers Brigs Type Indicator) personality test, which was a lot of fun. The actual class work consisted of developing a personality of a character for a game, movie, book, etc. We focused on using techniques born from Jungian psychology, Freudian, behaviorism, different types of ethics, existentialism and humanistic psychology. And I think it worked, its pretty cool to be able to walk away from a course and know how to create a fully developed character with beliefs and ethics, shortcomings, and disorders. And be able to put that into a game or movie and know how they will respond to different situations based on the ethics you gave them and what not.

Overall an easy class, entertaining and insightful.

Physics - long over due

Ok, last month was really tough ( I took data structures and "ethics and psychology" ) so I have not had much time to sleep or breath let alone post anything on the blog; but I will try to catch up.

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

Saturday, August 2, 2008

Linear Algebra - month 3

Everybody is familiar with Algebra, but a common question about Linear Algebra is simply "What is Linear Algebra?" Here is the definition according to wikipedia - "Linear algebra is the branch of mathematics concerned with the study of vectors, vector spaces (also called linear spaces), linear maps (also called linear transformations), and systems of linear equations. Vector spaces are a central theme in modern mathematics; thus, linear algebra is widely used in both abstract algebra and functional analysis. Linear algebra also has a concrete representation in analytic geometry and it is generalized in operator theory. It has extensive applications in the natural sciences and the social sciences, since nonlinear models can often be approximated by linear ones."

At Full Sail we focus mainly on vectors algebra (adding, subtracting, dot-products, projections, and so on) and how it applies to games. We really leverage the dot product its amazing how much it can do for you, being a math geek I get excited just thinking about it! We also do a lot with linear transformations (rotation, translation, and scaling matrices) we do a lot of matrix computations. And finally we use quaternions to do rotations, which everybody is scared of but are actually way easier to deal with if you ask me and much safer because they avoid what is known as a Gimbal Lock

The main theme of the class is the mechanics, everything you need to manipulate vectors and matrices. The secondary topic is how to use them in video games, but you are only tested on the mechanics. So basically you can get away without learning much, mechanics are necessary but they don't mean much unless you know how to use Linear Algebra as a tool. So if you go through this class you take notes, you pay attention to the usage of these tools (because it is thoroughly covered) and you learn not only how do the mechanics but how to make the math work for you, then you can do some really cool things! And that's the key to this class, the information can seem complicated and convoluted at times but don't quit taking notes or lose focus. The things you don't understand look up online or in the book to learn more about them (I have this book Essential Mathematics for Computer Graphics by John Vince that turned out to be a good supplement).

The Instructor (Richard Bahin) is an interesting guy, very animated, very good with math, and very hard to understand. He is from the Ivory Coast and has a thick french accent. It took me a while to be able to catch most of what he was saying. The actual math I could follow because it was math but the accent was a definite barrier to understanding the context. Over time though you learn to interpret bahin speak then things go pretty well.

So the math is a powerful tool and Bahin drives this home at every class, he always says video game programmers who are afraid of math are not video game programmers. Some people would debate that but I believe he is right, using the techniques from class I was able to do some pretty cool things that would have been immensely complicated without linear algebra, with it they became trivial.

I started a library of math functions for vectors and matrices, I've been using my library to put the math to practice and reinforce the what I've been learning in this class, programming, and anything to come really. I'm constantly tweaking and adding new functionality and sometimes re-writing pieces of the library. Just to demonstrate the power of the math I have used some very primitive Win32 API draw functions to draw a triangle then using the math I make it look like its in 3D. Now the built in draw functions are only meant to be for 2D but it was trivial to turn this into 3D with the power of quaternions.

Rotation example (triangle rotation on an xyz axis, axis = (1,1,1)
Rotation

Same thing with a cool effect!
Rotation2

We also learned about collision detection in this class. Again, we were not tested on this but obviously collision detection is very important, and hard to implement I might add. Here is another example, its not pretty but that's not the point, this is just an example of what I have been able to accomplish using some of the math. So far the response to the collision is not smart I'm just trying to detect a collision then send the colliding object off in some other direction, no physics involved (yet) so its kinda interesting what happens to the balls when they are skewered by the ray.

Some collision Detection (this uses tons of vector math)
CollisionTest

Again all these examples were just some of the stuff I have been able to do with the math. Eventually we will cover this stuff in class but I just want to get a handle on it as soon as possible because to me the math is the most important part. And that's about it so far for linear algebra, next posts are for for Programming 3 and Physics.

Monday, July 14, 2008

Programming 2 thoughts

So I finished the PG2 course, it was a very difficult course for some people when my group went in there was 14 of us, only 7 made it through. PG1 - PG3 are intentionally hard to pass, they call it the gauntlet, the purpose is to teach you programming and to fail anyone who is not serious about it, if you fail twice in any of these courses your out of the program for a year. This way Full Sail ensures that very few people can just skate by, which is good you do need to know how to program well to make a game. I wouldn't want a slacker on my team for finally projects, I will have enough to do I don't want to teach someone who never paid attention how to do stuff they should know how to do. However most of the people in our group studied very hard, and they still failed. So even with a lot of work if your just not getting the topic you can easily fail. From talking to other gamedev students I have found that most people have to retake PG2, the good thing is that's its free to retake the course if you fail for bad grades. You have to pay again if you fail for attendance (which happened to two people). Most people get it the 2nd time around, its better to spend the time learning than to rush ahead I think.

So PG2 is over - yeah, I'm 2 days into PG3 now but I will just recap some PG2 topics. We covered Classes, Linked Lists, Queues, Public Inheritance, Dynamic memory with classes, and with inheritance, a lot of operator overloading, operator overloading with friends, bitwise operators, base conversion, Recursive functions and function pointers, and I think that's about it. Of course there was a test everyday of class, for PG2 they alternated between programming tests and written tests.

Overall the class was laid back and the instructor was very cool. The most difficult topic to get down is probably the inheritance topic, a lot of new jargon is introduced and can get confusing so pay close attention and take lots of notes. Also one annoying thing, the final is based off of the book, not the lectures, if you didn't read the book you will probably do bad on the finally which is a ridiculous 40% of your grade (remember they want to fail you if your not putting in the effort). There are questions on the finally that assume you remember a class object from an example in the book and how it was used.

Next post - linear algebra and some cool things I was able to do with.

Monday, June 16, 2008

Programming 2 and Linear Algebra: Month 3

So I'm about half way through month 3 now and things are going good, finally getting into some cool stuff. Programming 2 is insightful and challenging, linear algebra was slow to start but has finally started to become very interesting actually. Details follow...

[programming stuff]
Programming 2:
So programming 2 was challenging from day 1. The first thing you do after lecture is get kicked in the teeth with a sorting algorithm. There is no easing into anything here, and very little explanation too, although assistance is there if you need it, figuring it on your own is more satisfying. After thinking the program through its not too bad to write, just a big change from programming 1 where things are kept very simple. In general the labs are challenging in PG2 but optional however you should do them because the next class will have a programming test or a written test having to do with concepts the labs and lectures went over. The big thing in PG2 that people seem to have a problem with though is the abstract nature of C++ classes - which if your new to programming can be hard to wrap you mind around. This is one thing that the book Thinking In C++ excels at teaching. Also the new syntax that's involved, especially when to use const or non const functions (another thing Thinking in C++ covers very well). I guess overall there is a lot to remember with classes.
Even though we have learned a lot about classes its not very new to me, the fun stuff has to be Linked Lists and Queues. Although I have messed with them I was never really forced to learn them inside out. So really memorizing their structure and getting into the nuts of bolts has been great (its a programmer thing) cant wait for more.

Linear Algebra
Now this is getting cool, it started off really dull with lots of mechanics on multiplying adding subtracting vectors and matrices and using the cross product. We did learn a cool method to solve a matrix called the Cramer Method which is more complicated than Gaussian method (if your familiar) but Cramer method always has a finite number of computations and Gaussian could go on infinitely (or so they say) I do know that Gaussian method can encounter some major floating point problems probably more so in a video game were you need to balance speed and accuracy. Anyways, its really getting interesting now we are learning transformations and how to build a transform matrix which is literally what you use to move things around in the video game, rotate things and scale them. We are learning reflections off a surface and refractions, its way cool, really awesome application of those years of math and I'm totally digging it. Then we are combining that with writing our own c++ library of math functions so its really an awesome class I just wish it were longer. Actually it kinda is longer next month I start physics which is really just an extension of this class because we will use matrices to do the math of collision detection and what not. So the class so far is not to hard there is a lot to do but its not difficult, it is stuff that you can't afford to forget though it'll be very important when we go to get a job and build our final projects.

[future students]
This class is not to bad as it is but if you really want to get everything out of it that's possible I would do some vector calculus and calculus of 3d surfaces. I have a good resource for this - I learned with Multivariable Calculus concepts and contexts by James Stewart. Get the 2nd edition (its cheaper and it's what they use in the video lectures) and then use these Video Lectures - http://courses.ncsu.edu/ma242/common/media/OutlineOfLectures.html these lectures are phenomenal and will allow you to really dig into the Linear Algebra book and go further than whats covered in class. I would at least go through lectures 1- 21 then hit 34 - 36 on spherical and cylindrical coordinates (very important). This should give a good base to understand 3d math.

So whats going on outside of school?
Well lets see, things are expensive here. Gas is just shy of $4/gallon. Its staying very warm and muggy. We went to the beach again, its was clear blue seas but the water was warmer than before and there were critters out there. Something grabbed Tammy's hand and scratched it up - she thinks it was a crab - now she is paranoid, pssh, like there is anything in the ocean that could hurt you! Also the beaches are getting packed now that summer is on, can't wait till September it should slow down again. On that same beach trip we happened to see NASA launch a shuttle and I must say - it was amazing to see that huge rocket dwindle into space just something awesome about it. If you didn't know Cocoa beach is right next to the Kennedy Space Center, when you see all those videos of the astronauts on parade after a successful space mission that's Cocoa beach, I've been watching the new series on Discovery called "When We Left Earth" it has a lot of Cocoa Beach in it, pretty cool. Not too much else going on that I can think of right now, just been enjoying the time, working hard, hanging out, and seeing some movies (don't see The Happening btw, it was so awful it was funny). Well thats about it for now, post questions and I will answer them - later!

Monday, May 26, 2008

The Back Country

So me and Charlie are way bored with walking behind the apartments and being confined with the narrow uhhhh confines of the dog park. So, I happened to read about this place called the Big Little Econ State Forest that's about 20 minutes away, not a long ways by time but it feels a whole world away - which is fantastic. The preserve gets its name due to the fact that the Little Econlockhatchee river and the Big Econlockhatchee river meet here. The park has several thousands of square miles that have been roped off to preserve this unique environment, being new to Florida I thought it was totally awesome. Very dense primary and secondary jungle growth here with spooky moss covered creek inlets in places and the river itself is an eerily dark and deep river. However I don't think the locals think twice about swimming it, nobody seems to care much about gators around here. They say most gators are too small to be threat - but there is always that chance a big one might be lurking just beneath the surface. Oh and another nice thing about the park, there are actually features to the landscape, its not just a flat plot of land. It would be great to mountain bike if it weren't for the very narrow trails and the unfathomable mass of spider webs you would collect on your face. Yes there are tons of them I took a lot of them out using my face just by hiking through the place. I went about 3 miles (round trip) took about two hours there and back again. Oh and two of us went in, but 8 of us came out. Me Charlie and 6 ticks - I hate ticks - nasty little bugs.

Tammy is visiting her brother in Key West so that's why its just me and Charlie on this little adventure. She also has the camera I think so I took these pictures on my phone.


Programming 1 - programming test [warning: this blog contains mild programming language]

So I took the "programming" programming test on Saturday, so far all the quizzes have been written, but with this tests you are given a task to build a program from scratch. The goal is to create the game Connect Four, all on the text based console. But one catch is that the teacher has already written the "calling" program aka "main" so you have to write the program to fit the way he is calling it in his program. It was challenging to do, took me about 2 hours to finish the core of the program then I messed around with the extra credit which was very challenging. I did figure it out - some in class and the rest when I was driving home from the test. It's pretty well documented that most ideas come to you when your relaxed and a test environment is not very relaxing.

Over all I think I did well, I cant say the same for a lot of the other students who are brand new to programming, you could tell they were really sweating. There are so many little things that aren't necessarily related to the code we've been learning that can help you succeed in the class and on the test. If you know how to think in code and have some experience debugging code and working within the visual studio things will get a lot easier.

For instance one student who is brand new to coding was having major problems because he couldn't figure how to debug his code during the test. This was due to the fact that the teachers code was already written, he couldn't just run the debugger because there were all kinds of functions that the teachers code was calling that he [the student] had not created. Thus this alone would create all kinds of errors. I got around this just by commenting the teachers code out. Creating my behind the scenes code then un-commenting the corresponding piece a line at a time. Just knowing this allowed me to create the program with a lot less stress. Also I could have created a mock environment to test my code before putting into the real program, which is another technique that's very handy for testing code. These an many other tricks are things you learn just playing with programming, thinking of something you would like to building then building it. It just can't be taught in class room environment.

[Future students]
So if you want to go through the game developing course at Full Sail and are new to programming I would pick up a C++ for dummies book, read it, and WRITE CODE. It's not going to help you to just buy it and it wont help much if you just read it you gotta get your hands dirty. In fact you might as well buy the book we are using in class which is: C++ Primer Plus - fifth edition by Stephen Prata. Its a good book, easy to read (for a programming book) and pretty extensive in the topics covered. Also my favorite programming book is Thinking in C++ by Bruce Eckel [BTW the e-version is free - http://www.mindview.net/Books/DownloadSites/]. It's wonderfull book that really does what it says it gets you thinking in C++. It teaches more than just code it teaches how to write safe code, it teaches a lot of little caveats that most books don't mention because they are a bit esoteric. Or so it seems till you run into a wall where knowing some of this behind the scenes info can get you unstuck or put you on the track to get unstuck.

[BEWARE]
If you go to Full Sail and you fail the Programming 1 or the Calculus Trig twice they will pull you out of the program and you either have to switch degrees or go home :(.

This fate is easy to avoid by taking the time and prepping for the math and programming. If you are passionate about this career than it should be no problem to find the motivation to do this. If you do have a problem finding motivation to program or to learn some math then maybe you should look at the newly launched Game Art bachelors degree program, still dealing with games just not all the code. But the nice thing about coding is that it pays better, so if you love to code and you love math then make it your job and be ready before you get here.

Friday, May 16, 2008

Math Man Goes Surfing

So a few things going on. Went body boarding, got my first check, setup a bank account here, got a replacement hard drive for my HP, and saw a HUGE alligator!!!

Yeah so we went to the beach again stayed there pretty much all day, went swimming and boogie boarding on our new boogie boards (only the best from Target). It was awesome, it was about 80 degrees (just pristine weather on coaco beach) the waves were huge. Coaco Beach is an awesome place, I think if I ever lived there I would pretty much lose all touch with reality and the rest of the world cause nothing matters when your hanging out on the beach down there, its awesome!

Also on the way down to the beach we saw a HUGE alligator just meandering along in the grass next to the highway, this was a big sucker at least 6 feet long and fat, big head, fat body, I was amazed. Its weird though when you tell the locals you saw a huge alligator they just kinda look at you and say "uh huh, you see them around" like its no big deal. I don't think a giant pre-historic reptile that fears nothing, would eat you without a second thought, and is scooting down the road like he owns the place is anything to be blas'e about but thats just me I guess.

So in other news, we got our first checks in (yeah! its nice) and I setup and account at Wachovia today, also my laptop starting coming up with a SMART error, which means [geek alert] that the bad blocks limit has been exceeded and an eminant failure is soon to come. I called HP and it was no sweat getting a hard drive sent out (SMART errors are easy to diagnose). Now as soon as this post is posted I'm going to pop in and restore from backup (FUN!).

Note to Future Students:
Back up your hard drives! If you loose a program that you've been writing for a week and its due tomorrow your are SCREWED! There just isn't time in this school for major delays, you will end up failing the class which is very easy to do at Full Sail. Things are so fast paced and they have such high standards its very easy to crash and burn on a class, it happens al lthe time in fact its normal here. Half the tests I have taken I wasn't really ready for, I didnt even realize there was going to be a test. Most people are caught of guard by the speed of things around here, so lost data is the last thing you need. What can you do to fix this? Easy, just get and external USB drive at least 200GB and back up to it (a full system backup) using the built in windows backup [Start -> Programs -> Accessories -> System Tools -> Backup] If your in game dev and you have an HP laptop, then be sure to create the DVD backup (it asks you to do this automatically). This will let you put your OS back on the system, then you can restore your most recent settings using the full system backup on the USB drive.

Wednesday, May 14, 2008

Month 2


So another month is underway, this month its Calc-Trig and Programming 1. I have a transfer credit for calc and trig so I've been auditing the class helping others with the homework assignments (which are liberal).

A word about the calc and trig class:
This class is insane, a lot of the students had some algebra several years ago in high school, did some review to pass the entrance exam, and now in the course of one day in calc trig class are expected to differentiate using the power rule, product rule, and quotient rule. Now they are able to do it, it isn't pretty but they get it done. I had 16 weeks of trig and 16 weeks of pre-cal before I ever touched calc-1 and even then it wasn't till about 6 weeks into the course that we covered the product rule and quotient rule. Lets just say I'm really glad I took my time with the math, I have a feeling will continue to serve me far beyond this school.

[So to anyone reading this blog that is thinking about going to Full Sail, I would recommend at least doing some self study over trig and calculus 1 material, this will help you a lot.]

Programming 1:
This class is much more laid back than calc, its difficult for the people who have never had programming before but its not so rushed that you miss all the details of programming. So far the topics have been review for me with nuggets of new insight dispersed throughout the lectures. So it's been pretty good overall, I'm learning some new things while reviewing a lot of old things.

This month the schedule is Tue, Thur, Sat 5PM to 1AM and Wed, Friday 9AM to 5PM.

It's time to hit the surf, will post again later!

Monday, April 28, 2008

1st month

So I've almost completed the first month, only have two classes left in each course. So what I have learned? Well, I've learned a lot about creating games. At least all the preplanning stuff before you even start to code anything. It has been insightful and its been fun.

There has been a lot of work that goes into group efforts, kinda like at Dell when I would have to corral people and coordinate efforts to get parts replaced or a bunch of servers repaired. Now I have to coordinate with a lot of people to get a robot costume built, sound effects worked out, Power Point content consistent.

In my ever so serious career at Full Sail the most note worthy things I have done so far are dress up as robot - with my own custom made sound effects, and create a very crude 2D animation of an owl biting the head off a rat to demonstrate the kind of sound effects our game could potentially have.

I'm still waiting on video of the robot, its the craziest thing you've ever seen

I do have the rat snack though so without further delay...

Make sure you have your sound turned up, so you can hear the totally awesome CRUNCH!

Friday, April 18, 2008

Went to the beach again yesterday, saw some big waves. There was several people out there surfing and wakeboading.









Thursday, April 17, 2008

Its all game stories and BS

And by BS I mean Behavioral Science.

So I'm actually half way through my first two classes at Full Sail. So far English Comp/Game Doc is the best class. BS is a little odd, some things are helpful, some things are unexpected from a psychology class.

So the game doc class is way cool. The idea in this is class is to create the all the story, character, and level content that will go into a hypothetical game. On day one you start by creating some basic elements. They give you the game genre (My team got "action adventure") then you get three very random objects, we got a key chain with a bird head (it was just a toy not a real bird head), a pink plastic barbie purse, and a tiny plastic cylinder with a magnifying lens at one end. From these three objects you must abstract you game idea, and it has to be done in about an hour and half - it sounds insane but it was really fun. We were all skeptical that we could come up with a game that was interesting but its evolved into something that's really cool. It has personified animals in the game and somehow it's ended up having a story line and characters similar to star wars. It been fun fleshing out the characters and then seeing what other people develop and how they tie it to the main story. We've been learning about how to present the documentation in a way that's useful for the artists, marketers, executives and so on. This way everyone making the game can gleam the things they need from the document.

Its been fun learning how developers created story in some of my favorite games like half life, splinter cell, Max Payne, even Mario. The teacher discusses all the techniques that have been developed and what works and what doesn't. The major problems the industry has trouble with, like developing characters that are 3D or round, most all games characters are 2D or flat. Most characters don't arc, like in a movie or book, they don't really go through hardship and trial then learn from that. If the do its very hard to relay this to the player. There is no way to learn their personality as intimately as in a book. These are all challenges that no one was figured out how to effectively overcome and our instructor challenges us with finding a better way. You really get the sense that telling stories in video games is a craft still in its infancy, and in fact it is, its exciting though there is a lot of room out there to progress the art.

To future students: This class is being broken into two parts now, English Comp traditional style and Game Documentation. This will allow a more in depth approach to designing the game story, characters, levels and so forth. This will be a good thing.

Behavioral Science, while not my favorite, has its benefits. I've learned some interesting things about stress at Full Sail and how to handle it which has been helpful. The class so far is really easy, you get a book but its never required to read it, instead of reading the book we just use Power Point slides from class and all tests are based on them. Mostly this class seems to focusing on having you interact with people and get to know them, the big assignment is to work with your assigned group to come with a presentation, basically a skit, to demonstrate one of the concepts from class. This is a bit weird, I wasn't too excited about doing it but it does force people to work with others from different degree programs so you end up getting some good contacts in other degrees.

Culture shock - So getting up every day and designing stories for fairy tale kingdoms, skits for psychology, playing games for research, going to club meetings on modding the latest RPG game, and hanging out with people who's idea of a full day is 8 hours of World Of Warcraft is to say the least a major, major, MAJOR change. It's been strangely difficult to get in sync with this, I keep finding myself distancing myself so that I can clear my head and be ready to work. But this is the work! Crazy. It seems to be successful here you have to be really creative, really social, and work really hard and maybe not even that creative just social and work hard. It's definitely not the typical school, for better or worse, and when I start to take myself to seriously I have to remember that "hey, I'm making video games" its ok if I have to help design a skit for psychology class, or whatever.

So that's the summary for the past 2 weeks