Visions Of Afar
The Struggles of a College Student in the Gaming Industry

New Projects Page

November 4, 2008 09:46 by admin

I finally got sick of how ugly my old projects page looked. So, I created a new one!

Check it out if you have chance.

- Garrett


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categories:
Actions: E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed

Wave File Format

October 21, 2008 09:38 by admin

I wanted to play around with a wave file in C# that way I could create my own procedure generated waves. So, I started searching around on Google to try and find a C# wave file generator. I couldn’t find anything. I decided to go about making my own and found a lot of information on the wave file format at  : ccrma.stanford.edu.

I created a C# library so that anybody else that wants to play with these wave files can. You can get the source code here : Wave Library

This is how you would create a wave file, with white noise, or a constant sound.

   1: WaveFile file;
   2:  
   3:         private void CreateWaveFile()
   4:         {
   5:             bool whiteNoise = true;
   6:             Random rand = new Random();
   7:  
   8:             file = new WaveFile(1, 8, 11025);
   9:  
  10:             int samples = 11025; //Creates 1 second of audio
  11:  
  12:             // Sound Data Array
  13:             // Size needs to be :
  14:             //          Number Of Channels - 1 for mono
  15:             //                               2 for stereo
  16:             //          Bits Per Sample    - How many bits are used to describe each Sample
  17:             //          Samples            - How many samples that are provided
  18:             //
  19:             // Sound Data Size = Number Of Channels * Bits Per Sample * Samples
  20:             byte[] data = new byte[file.NumChannels * (file.BitsPerSample / 8) * samples];
  21:  
  22:             if (whiteNoise)
  23:             {
  24:                 //Creates White Noise
  25:                 for (int i = 0; i < data.Length; i++)
  26:                 {
  27:                     data[i] = (byte)rand.Next(256); //256 is the max size of a byte
  28:                 }
  29:             }
  30:             else
  31:             {
  32:                 //Creates a Constant Sound
  33:                 for (int i = 0; i < data.Length; i++)
  34:                 {
  35:                     data[i] = (byte)(256 * Math.Sin(i));
  36:                 }
  37:             }
  38:  
  39:             file.SetData(data, samples);
  40:             file.WriteFile(@"C:\Test.wav"); //Writes the wave file out to the destination given
  41:         }

You can play with the for loops and create some neat sound effects :

   1: float push = 0;
   2: //Creates a Constant Sound
   3: for (int i = 0; i < data.Length; i++)
   4: {
   5:     push += 0.0001f;
   6:     data[i] = (byte)(256 * Math.Sin(i * push));
   7: }

That’ll create a nifty little whirl noise with very minimal effort.

The best part is you can then use the DirectSound framework to play your new wave file. This approach could be an easy way to limit your game size and create some neat procedurally generated sounds, all on the fly.


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categories:
Actions: E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed

DirectX vs XNA vs Open GL

September 11, 2008 07:46 by admin

Say that you've just started college. You're excited about the prospect of learning all about computer programming, and you have an extreme wanting desire to learn about game development. What's the best course of action to take as of today?

If you do a quick search on the Internet for game development tutorials you'll find a slaughter of choices. These choices are all ranging from DirectX, XNA, Open GL, to simple Game Makers. If you're just starting out in this huge world of development, what's the best way to start? Where do you want to end up?

There are three main choices to choose from. XNA, definitely good for someone just starting game development. DirectX, very good if you want to work in the gaming industry. Open GL, good choice for working in the gaming industry and for cross platform solutions.

XNA is the perfect choice to start learning game development. It's in an easy to use framework that has an even easier to use and learn language. It also has the increasingly useful ability to work on the XBox 360. This means you can easily push your work out to friends and family that have that console while still allowing the game to be used on Windows with very few code changes. Unfortunately, that same ability is also a downfall. The XNA framework is technologically stuck. It can't add any new features that DirectX or Open GL can because it's restricted to the hardware that the 360 has.

DirectX overcomes the downfalls of being stuck in hardware restrictions. It does however have a downfall in the fact that there is a steep learning curve because of its requirement of using C++. DirectX requires that you have a solid knowledge of C++, pointers, and memory management. DirectX and C++ are the most commonly used technologies in a game development studio though. So if you're looking to jump into the gaming industry as a game development coder, then DirectX is one of your best choices.

Open GL has an amazing advantage of being cross platform. It will work on Linux, Windows and Mac. It uses C++ just like DirectX however it's not used as much as DirectX in the gaming industry. Both frameworks are a great choice though for learning anything about 3D game development.

If you're just starting out in game development, start learning C# and XNA. Otherwise jump to DirectX or Open GL.

DirectX Tutorials

http://www.directxtutorial.com

http://www.drunkenhyena.com/cgi-bin/directx.pl

XNA Tutorials

http://www.xnadevelopment.com

http://www.ziggyware.com

Open GL Tutorials

http://nehe.gamedev.net/


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categories:
Actions: E-mail | Permalink | Comments (1) | Comment RSSRSS comment feed

Find a Hero

July 23, 2008 13:15 by Admin

In the entertainment industry it becomes difficult to succeed at anything. Software and interests change faster than the weather. There will always be something to desire, and someone will always be a few steps ahead of you.

In order to succeed you need to know what does succeed. The Internet is full of people who have passed the test that the gaming industry forces you to take. These people leave their mark on the Internet, and give you a chance to follow in their foot steps.

In the simplest of terms, I'm telling you to find a hero. Find a person that succeeds at everything you wish you could. Then follow in their foot steps. Accomplish your goals in the same manner that they succeeded with a few twists of your own.

My "hero" is Chad Vernon. I've never talked to the guy, but I've followed his blog for a long time now. He's amazed me from time to time. Both sides of his brain work together far better than anyone I've ever met. He can combine his artistic talents and his computer talents together to create an amazing piece of work. He has created several tutorials using DirectX 9 and Managed DirectX. After getting his first degree in college he preceded to go to Ex’pression College for Digital Arts and became a CG man. He creates some stunning 3D work for Imagemovers Digital as a Character Setup TD. Check him out at http://www.chadvernon.com


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

The College Beginning

July 17, 2008 12:33 by admin

Michigan Tech University is a college located in a small town in the Upper Peninsula of Michigan, called Houghton. It's here that the minds of thousands of late teenagers start their journey every year to become something better. It's here that I started my journey into the world of education.

Before my trip up to Michigan Tech and far after the process of unloading all of my things into a tiny 15x8 foot box, formally called a dorm room, I knew I wanted to be in Michigan Tech's newly formed enterprise, Husky Game Development. If you were to browse Michigan Tech's course catalog you would find several entries related to it's enterprise classes. These classes are groups of students who get together to form, in essence, a structured club, and sometimes to the degree of a full blown business. These enterprises are counted as credit, and can replace a senior project at the end of your Michigan Tech days.

Husky Game Development is an enterprise that was started up only a few years ago. The concept is to get several people together to create video games within 1 or 2 semester intervals. There are several teams, and several games that are developed at all times. Each team consists of 1 team leader and usually between 2 and 4 team members. Sometimes it can vary, having multiple sub-teams under one team leader.

For 1 full year I was a team leader for Husky Game Development. I gave my team the name "Revolutionary Works". Our goal was to evaluate and attempt to use XNA for game development. For Semester 1 I had 4 people under me, and then for Semester 2 I had 2 teams of 4. I was in command of 2 games being developed for XNA under Husky Game Developments name.

I was excited to have been given command of 2 teams to develop games under the XNA platform. I was one of the first people to jump into XNA. The moment that XNA came out in beta, a friend of mine and I downloaded it and created one of the first few publicly created games that anyone could download. I was ecstatic about XNA and the possibilities that it created.

I was unfortunately brought down to reality when I was given my team. When Computer Science majors come to Michigan Tech they are taught Java for the first year and a half. They are taught nothing that's game development related nor .net related. In order for my team to even start developing a video game, I had to teach them how to use C#, and then I had to teach them how to use XNA, and then finally I had to teach them how to do 2D game development. 2D game development usually requires a minimal understanding of Vectors and at times a small understanding of physics for calculations. These freshmen had no previous knowledge on any of this.

Instead of building video games, the semester was spent teaching team members how to program a game in XNA. The idea of Husky Game Development is a great idea. The time allotment for Husky Game Development doesn't allow it to succeed to my liking. Most teams create a game based around Java. Unless you are creating a game for a mobile phone, you will not find any game studios using Java. Husky Game Development does not give a proper look into the gaming industry which is filled with C++, DirectX, OpenGL, Modeling, Texturing, Animating, 3D, etc...

Further yet, if a team in Husky Game Development were given 3rd year students, who have taken C++, at least Calculus 2 and may even have a general idea of 3D graphics, there is still a large problem. Michigan Tech is full of students who are absolutely brilliant. From getting out of homework, to acing it the legit way, these Students are some of the brightest people I will ever meet. They are not artists. They are logical, predictable robots. They can not create art.

With no art, and no 3D modelers, it creates a very poor introduction to the world of 3D game programming. The gaming industry thrives off the ability to create more stunningly beautiful 3D real time graphics every year. With HGD's inability to create a 3D game, or even it's ability to escape Java, it's headed for a hard and bleak existence.

Husky Game Development is a fantastic idea, but is best left alone unless you are completely new to game development. If you have any experience with 3D development it's best to stay on the path and learn on your own through the Internet and lots and lots of books.


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5