Friday, December 28

Dreaming



Dreams can be incredible healers. Letting yourself go without worrying about tomorrow, and allowing yourself to dream; I woke today with my feet and arms absent of the usual pain, and amazing energy for productivity.



Last night I was inspired to dream, after watching a fantastic film called "Paprika". Their were references to Millenium Actress, and Tokyo Godfathers so I'm only assuming it was done by the same art director, but quite on par with the visual quality of those films. I absolutly don't want to ruin a single moment of the film so I wont say a word more, but it's a must watch by everyone.


A few days I've also finished reading Ender's Shadow. The fourth book in the series from Ender's Game by Orson Scottcard. I was recommended to skip the second and third book and go straight to the fourth, and I enjoyed it just as much as the first. Orson's writing improved considerably, as I spent less and less time trying to outsmart little Ender, or in this case little Bean. Still, what's most fascinating about the series are the various types of games the kids play. As someone who still holds onto his childhood, and a game developer I am extremly enticed to maybe one day produce one of these games, especially the squad based AI.

That's pretty much it, I wanted to give you guys some updates, and a little entertainment. I guess I should get back to work.

PS: I finally got DXUT working, but the architecture still seems to puzzle me in several places. I just can't believe there isn't any documentation .... should I take the initiative?

Monday, December 24

Trouble with DXUT

For those who aren't familiar with DXUT, it's an API that's included with DirectX to be used for games. With convenient functions like DXUTInit( ), DXUTMainLoop( ). It is incredibly enticing and trying to build a Game Architecture based around it is incredibly temping. On the other hand, their is very little documentation on it outside of the MSDN that seems to be heavily DX10 oriented.

I am currently stuck at the fact that dxut.h doesn't have any body definitions for DXUTInit() and I am puzzled by my inexperience. If anyone is familiar with the API please leave a comment, or contact me?

String theory, and the ten dimensions?!

I'm sure some have read books; some understanding the concepts, others not really, and some others, well they think they understand. For me, I found this amazing video online that simplified the entire concept (and I do stress concept) into a short little video that I can't help but share here.

So check it out. the string theory unraveled.

http://www.tenthdimension.com/medialinks.php

Thursday, December 13

Getting Ready for GDC08

I'm incredibly excited with so much to do in order to get prep. Finish a website, learn dx10 shaders, and find a roomate. Btw pictures from last year's GDC are here. Check em out, and shoot me an e-mail if your going.

Monday, November 12

The Devil and David Webster

The Devil and David Webster

by Chris R. Lunt.

Heaven's donuts are jelly donuts. The blend of texture, from the cool, sweet ooze of the jelly, mined with tiny rasberry seeds, to the firm, spongy cake, so lightly encrusted in a thin glaze of sugar, that cracks and flakes as you gingerly tear off small pieces of delight, is certainly the greatest experience a humble man can afford.
I was eating a jelly donut when he first appeared in my office, smelling slightly of gunpowder. He was tall and gaunt, with deep-set eyes and crooked teeth, long, delicate fingers, and sloped shoulders. He wore a black Ozzy Osborne concert t-shirt, frayed black jeans, and dusty black high-tops, unlaced. He smiled at me in an ugly way. I put down my donut and glanced at my watch. 7:00 PM.
"You're David Webster."
I nodded.
"You're a programmer for Core."
I nodded again. Not only was I a programmer for Core--I was the best damn programmer this group had ever or would ever see. I suppose I should introduce myself. I am David Elijah Webster, master programmer. I'm not just blowing smoke here either. I'm the best damn programmer to come out of MIT since code was constructed one bit at a time. I can do it all: C, LISP, assembly--even the languages no self-respecting programmer would deign to look at. I can do it all in no time flat, with the most elegant of style. Code sprinkled with glistening semicolons and flowing rivers of indentation. Lesser programmers avert their eyes when I enter the room.
"They say you're the best, and I'm here to challenge you."
I sized this guy up again. He had the right shape. The pot-belly, the greasy hair, parted with percision. The fingers. And the funny smell.
I told him I didn't have time.
"I'll make it worth your while," he said. "I have something you might be interested in. Follow me."
I grabbed my box of donuts, and followed him down the hall and into the elevator. He pressed a button and the elevator descended into the basement. I'd never been in the basement before. For that matter, I didn't even recall that the building had a basement. Nonetheless, the elevator chimed, the doors opened, and we stepped out into a wide room that was entirely featureless. That is, except for the fog on the floor and two workstations that were set up, side by side. One of the workstations was mine. The other was a workstation like none other that I had seen before. It was magnificent.
It was matte black. More than an object, it looked like a hole in space. The monitor it sported was the biggest I had ever seen, and the keyboard was a flow of liquid lines, containing a field of keys of different sizes and shapes, packed in like cobblestones. The mouse floated above the table, and had no wire. Next to the computer was a box with a small chute coming out of one side, and a large red button on the top. The monitor was flanked by two gigantic speakers, and I could see a sub-woofer poking up out of the fog. It hummed. It steamed. It was the most beautiful computer I had ever seen.
"You approve," said the stranger.
I swallowed and said, "It is beyond description."
"It's a custom job. And it's yours. If," he said, "If you can beat me in a coding contest."
I looked at him incredulously. "What's in it for you?"
"I will have defeated the greatest coder in the world, and thus, I can claim that title. AND, I get to keep your immortal soul."
He smiled the ugly smile again.
Here was a dilemma. I was dealing with the Devil. There was no doubt about that. And he was no doubt very good. I am somewhat attached to my soul, but oh, the prizes. The glory. I can easily claim to be the best coder in the company, in the Bay Area, probably on the whole planet, but if I pulled this off, I will have shown myself to be the best coder in this entire theology! Vanity got the better part of me.
"What's the contest?" I asked.
I won't bore you with the details, but it was seriously ugly. Ugly in a way that makes the most arrogant of coders cringe and causes managers to pad development schedules into the next century. It had to run in any language, including the nasty chicken-scratch ones. It had to be backward compatible all the way to the ENIAC. And it had to run on Windows. I cringed.
But vanity won. I signed the forms, agreed on a deadline of midnight, and we sat down at our machines and started to code.
My watch said 8:00 PM, and I started warming up. Class definitions flew off my fingertips like throwing stars. Structures and declarations grew like perfect crystals, and I didn't even break a sweat. True to the task, I soon lost myself in an endless cycle of postulate, create, instantiate and verify. Bits grew to bytes, to K, to Megs, and finally to Gigs. By 11:00 PM it had come to that crucial point. With an hour to go, I had to put all the peices together. It wasn't going to be easy. It was going to take all the concentration I had.
Then I hit the first bug.
At first, I wasn't sure where it was coming from, but then I spotted it. It wasn't mine. It was bug in Windows. Even worse, it was a bug in Windows that stemmed from a timing problem with the system clock itself. I couldn't see a workaround. I was stymied. I genuflected and called Microsoft support.
"Hello, and welcome to the Microsoft help line. Please enter your 64 digit user identification number, followed by your 32 digit password."
While I frantically typed number after number, trying to navigate through layer upon layer of phone menu, I heard him pick up his phone and call a number.
"Hello, is Bill in? ... I don't care, wake him up ... Tell him it's Mr. Black ... Hey Bill, what's shakin'? Listen, I needed to know a workaround to one of your bugs ... Yes, I know what time it is ... Yes, I know ... Bill ... Bill! You remember our little deal? ... That's right. Now be a dear and give me that workaround ... Mm-hm ... Right ... Thank you, Bill. I'll be seeing you."
I was shocked. It was obviously pointless continuing my desperate journey through Microsoft's Help line. I needed immediate genius! I scarfed down a grape jelly. Sugar shock engulfed me, and my vision tunneled. I shuddered once, something clicked, and I determined the answer I needed--I could use the clock on the sound chip to get my timings.
I dove back into the code, and was quickly integrating modules when I hit bug number two. It was even uglier than the first. In fact, it was the ugliest bug I had ever seen. It was a problem with C. With the language itself. There's no way fix a broken hammer using the same hammer.
I wracked my brains. I clenched and grunted and sweated and thought and Thought and THOUGHT, but to no avail. Over my shoulder, I could hear Him chime in, "Bugger, isn't it? I remember putting that one in back when I was working on the Unix kernal. Did you really think there was a Kernighan and Ritchie? Rearrange the letters in their names and you'll discover an interesting anagram."
I ignored him and continued thinking. My mind went deeper and deeper into the problem at hand--my senses dulled, my breathing grew shallow. My eyes rolled back and sweat beaded on my forehead. Clumsily, blindly, my hand pawed it's way to the box on my desk, containing my last jelly donut. It raised slowly to my lips, and I bit.
Pounding waves of sugar induced euphoria washed through my mind. I felt my brain hum and crackle. My hands trembled, my body shuddered, and I began to type. I was a man possessed. Complex topographical math equations formed on my screen. Klien bottles and hypercubes locked neatly into place like pieces of a puzzle. Beyond my control, a complex mathematical world formed in my computer, with additional dimensions unimaginable.
I felt a small pop, and I came to. I looked at my screen. I had worked around the bug.
My watch read 11:45. Frantically I continued putting all the modules into place. Glancing for a moment at my rival, I could see I had him worried. He was typing furiously. Smoke poured from his ears, and flames licked around his collar.
Then I hit the third bug.
It was not so much a bug, it was a limit. I only had 4 Gigabytes of memory, and I had used it all. There wasn't a bit left. I had compressed data to a point so fine that it was in danger of collapsing into a black hole. I was storing memory in every conceivable way, including keeping a chain of sound waves running between the speaker and the microphone. There was no memory left to be had.
Frantic, I reached into my box of donuts, and my heart sank into my stomach when I realized that I had eaten the last one. I glanced at my watch, but it was too late. I was sunk. I had done the best that I could, and I had nothing more to give.
The Devil laughed, and grinning cruelly, he reached over to the box with the chute and the button. Remember the box? Slowly, firmly, his hand pressed the red button, and a jelly donut slid down the chute and onto the table.
My jaw dropped. "What...is...that?" I asked.
He languorously chewed as he replied, "The Box of Eternal Donuts."
"The Box of Eternal Donuts!?"
"Yes," he said.
"It never runs out?"
"Never," he said.
"It's mine if I win?!?!"
"If you can win, it is entirely yours," he replied, grinning cockily. My mind reeled. The Box of Eternal Donuts. The Box of Eternal Donuts! My eyes darted everywhere, my jaw hung slack, and my throat emitted strange animal-like noises. Anything. I would do anything to win! I just needed the smallest amount of memory. But where could I get it from? I glanced at my watch again, and a plan came into my mind. A beautiful, devious plan.
I went quickly upstairs and retrieved the emergency toolkit that we keep in the medicine cabinet. I ripped the case off my computer, and quickly scanned for the right connections. I pulled two wires, and unscrewed the back of my watch. The Devil's eyes widened and he desparately started coding again, but it was too late. I got the last of the memory I needed out of my watch, and pressed the ENTER key seconds before he did.
The watch burst into flames. Sparks flew from the disk drives and the monitor glowed and throbbed, finally melting into a puddle of glass. The computer exploded in a shower of sparks, and then there was absolute silence.
There was a pause, and both of us turned as the printer started, slowly emitting a single sheet that wafted gently into the out bin. I nonchalantly strolled over, and held up to the Devil's scowling face, a sheet imprinted with two words. "Hello World".
Nothing more needs to be told, other than, as I write this, I am sitting in front of my new computer, munching on what is undoubtedly the best jelly donut I have ever eaten.
(c) Copyright Chris Lunt May 1995

Sunday, July 29

Everyone can draw



Is something I trully believe, creativity is something that all humans can do. With that being said, I am a huge supporter of user created content, customization, and this brings me to some good news regarding Little Big Planet. It was recently announced that Little Big Planet will not just be "an obstacle course simulator". The enemies ranging from giants to little robots I'm confident that the creators of Kung-Fu will provide plenty of variations, but the question is how much of this will be sandbox and open to user manipulation.

Customizing the materials is fairly given, but what about the AI? Will the user be able to modify stats such as strength, hit points, and maybe even create our own creatures of evil.

Well suffice to say, I'm very excited. Could you imagine a story driven game with free episodic content created by users?

Friday, July 27

Heavenly Sword Demo

The demo starts off all too familiar. If you've followed gametrailers.com than this is nothing new, but it was extremely satisfying to move through the environment which might I add looks absolutely gorgeous. It hard to put my finger on it but be it the moving of the grass or the colors, it's something I could easily see myself being taken with no matter how many times I see it. So than I start swinging that big sword on my back, the first swing follows a delay and reminds me heavily of devil may cry style game-play. So with that in mind I start looking for a pattern and quickly begin stringing together quick swings followed by a heavy swing. Aside from the familiar there were several things that the game was doing that seemed unfamiliar, and unfamiliar to some is usually regarded as bad but let's not judge too soon. Heavenly Sword does not let you jump easily, in fact there is no jump button and so there is no easy way to escape from being gang banged by dozens of enemies. Now there is a roll button, but quite frankly it's nowhere near as enjoyable as skillfully leaping feet above them and quickly landing behind the front lines. So although at first I abused this feature; I don't like to cheat games. So I begin to look for a more cinematic solution. I find that blocking works pretty well, and quickly the game became very fun. My only real complaint is the fact the demo is un-satisfyingly short.

Saturday, July 14

Left 4 Dead

My top pick from this year's E3

Sunday, July 1

New toys, I hope they'll let me play

So lately I've been hearing rumors of things like Vista becoming the official OS for FullSail laptops, an upgrade to DirectX 10, and now the news of NaturalMotion coming I am trully thrilled. You can read more on this announcement at Gamasutra.com.

Emotions in Videos games



Another big promise from the great Peter Molyneux : )

Tuesday, June 19

Eve

New Additions

I don't know why I'm always up so late. I couldn't fall asleep earlier due to a headache the size of Texas, and now I'm sitting here making it worse by taking part in what probably caused it to begin with.
Today was pretty uneventful, I've been sick the past few days, so I've been trying to recuperate. I slept most of the early part of the day, but woke up not feeling any better so I made a rash decision to take two hours out of Arthur's lecture. This probably wasn't a very good idea to begin with because Arthur is very similar to Shane who doesn't waste a single breathe without spewing out something important or at least mildly interesting. Still the part of the lecture that I missed were dos commands, and basic batch file applications. The topic became quickly more complicated as we dowelled deeper into the subject with binary iostreams. The practical on the subject had me worrying as I spent the entire Lab trying to perfect myself on the subject. As far as I am aware, only one person got a 100% on this one (Dan), and I believe Taylor also did pretty well. Me, personally, well I think I did well. Basically speaking, I know the material covered very well now.

The practical was simple actually, it involved opening up a binary file, reading in the arguments passed to the program and than printing them back out. The part I missed involved reading back from the file. When I read in a string, I had missed the null terminator and had assumed that it would be copied over to the char* in my program. Well to make the long story short, I'll probably talk with Arthur and see if he can be a bit more lenient when it comes to grading these practicals, as there is a heavy penalty on each section that doesn't work even it was caused by a very minor error.

I also spoke with Arthur about maybe being able to put some of these practicals up on the blog for others to check out and try out themselves but he made it pretty clear that it wouldn't be a very good idea to distribute any FullSail related content. So I might try and replicate the examples if I have time using my own versions.

Well that about wraps up this update, last but not least I wanted to mention that this site might have a new writer. Payton Gannaway has been a supporter of StrayStudios for some time now and I asked if he would be interested in blogging here along with me. Hopefully he'll find the time to do so, and provide another point of view.

Sunday, June 17

Prepping for Resistance






Well give me time :D

Friday, June 15

FX Composer 2 Beta 3

This news came from Gamedev.net, but I simply must pass on the news. After diving back into Maya and 3D I'm starting to see the power and potential of a tool such as this. So this is simply a quick share. Go check it out here.

Thursday, June 14

Exceptions

Last weekend was really busy, I barly got a chance to play any video games between the XNA Tutorials, and the additional FullSail homework; more work was given on the conecutive Monday and Tuesday.

On Monday I was given a fairly rude awakening as it's a lot harder to keep up with normal classes when you don't get extra practice. The topics covered in PG3 were Templates and a review of Linked Lists. Here are a few intresting things I picked out from my notes.


Container – the usual name used for Linked Lists or objects that hold other objects.
Every virtual function is put into the virtual function table
Because the virtual keyword uses more memory we try to shun from it when it’s not appropriate
Templates need to be all inside the header file.
CCYA - Check Cover Your Ass. Check for copyright code.

and some useful VC++ shortcuts

CTRL K, S - surround your code with a snippet
CTRL K, K - Bookmark a section in the code
CTRL K, N - Move to the next bookmark


I did pretty well on the Practice Test for Physics, and things began to look up from there on. So that pretty much takes me to the today's topic, Exceptions. Although not a new topic for me, I had no idea how little I actually knew about the subject, but all's well that ends well as I aced the practical on the subject that night. This practicular practical was kind of fun to make and I'll remember to ask for permission to put it up for download. So that's it, I'll wrap up tonight and go to sleep with some more snippets from my notes.


  • Nesting classes

  • Nested Classes are not in any way related to one another

  • Access types are as default (classes::private)




  • Exceptions



  • throw

  • Syntax:                 throw variableName

  • The moment you throw, the stack unwinds

  • The stack unwinds until it reaches a catch

  • If there is no catch than the stack unwinds to main, after which it
    will call Terminate and then abort()



  • Exception Specification

  • throw(int it)

  • A way to better notify the catch what your trying to throw


  • http://blogs.msdn.com/larryosterman/archive/2006/03/22/558390.aspx

  • try



  • attempts, otherwise unwinds

  • catch (dataType)



  • if the dataType matches exactly, it’s as if the exception never happened

  • specifying a variable to dataType such as catch(dataType num) allows
    for manipulation of the thrown variable



  • catch(…) also known as ellipsis

  • will catch all dataTypes



  • can not be given a variable



  • throw bad_;



  • ex: throw bad_index(“Naughty subscript”);

  • #include <exception>



  • struct bad_index : public exception // : is a base list, public
    inheritance “is-a” an exception


  • bad_index(char const * const message) : exception(message)
    { }

  • .what()



  • by adding a (gcnew String(instance.what()) is a trick to go from managed
    to unmanaged exception handling.



  • finally()

  • will execute regardless of try / catch block

  • this will execute even after a re-      throw()

  • Only works in the focal



  • CTRL + F3



  • Set a keyword and search down



  • F3

  • Search Down Next

  • SHIFT + F3

  • Search Up Next

Monday, June 11

Learning is Exponantial

Everyday we learn a little about something, or else the day is wasted and we start tomorow no different than the day before. We learn unconsciously most of the time, and because of this, the knowladge passes through us like wind. Still human potential is boundless and when a person becomes self aware of his potential and the ability to learn, things become limitless.

In the past few days, to be more exact in the past week or so; I've learned so much about what can be done, that I have a hard time sleeping at night, just thinking about what else I could be doing this very instant.

Below I'd like to share some of the fastest knowladge I've managed to get my hands on this weekend.

XNATutorial.com
A collection of 30 videos covering both XNA and CSharp syntax. The final videos cover the Farseer Physics library which further pushes what can be done in very little time.

Although XNA is a fantastic tool for many, I'm not a fan of managed code, and although I plan to continue learning all that can be done as well as with time exploring the rest of the .Net framework.

What's to come:
http://playstation3-homebrew.blogspot.com/
http://ps2dev.org/ps3/Tutorials

Wednesday, June 6

Too Slow

I'm certain that I checked my e-mail at around 8pm eastern today and had no new e-mails to speak of. Than my outlook bin updates itself at 1:42 am and I get an e-mail from EA asking if I want to fill out a survey concerning C&C3. Having actually purchased the game I was thrilled to do so. Only to be told ~ "Sorry we got all the opinions we needed"

: <

Tuesday, June 5

736+ Pages in 28 Days

A few days ago I posted a picture of the two new text books that we received for June. One of those books is a Physics for Gaming book. FullSail doesn't expect us to completely memorize the text but we are expected to do as much as we can outside of class. This month's personal ambition of mine is to read it all. So below I've outlined the 736+ pages.

CH1 & CH2
Chapter 2 covers Basic Conepts which will mostly be review of Newton's laws, and forces. I expect this is where we'll spent at least three classes.

CH3
Rigid Body Motion, here comes the calculus.

CH4
Deformable Bodies for chapter 4 looks like the first heavy chapter as it covers basic spring systems, and the more complicated control point deformation among other things. I'm saving this for the weekend.

CH5
Physics Engines, obviously we're not going to be making one this semester and although this is a very math heavy book the chapter covers all the fundemental techniques, depending on what we learn in PG3 I might tinker a little if I can follow this far.

CH6
Chapter 6 is titled Physics and Shader Programs. Sounds simple enough, well here is an in depth preview.
- Pixel Shaders
- Skin and Bones Animation
- Rippling Ocean Waves
- Refraction
- Fresnel Reflectance
- Iridescence
Well I'm excited!

CH7 & CH8
This is the halfway point and dives back into Linear Algebra and Calculus. We will most likely dive deeper into the following chapters in class.

CH9
Numerical Methods as a name suggests will be a very boring and slow dive into concepts like "Higher-Order Taylor Methods" and other famous old people's methods of number tricks. Heck their is even a section called "Stiff Equations."

CH10
The last official chapter of the book is on Quaternions and rotation. I expect that we will cover this in depth near the final days of Physics at FullSail.

Hackers





Hackers is a fantastic movie that in a quirky way is kind of cool. I know that I'm one of the few that hasn't seen it, but I can see how some of my peers got into programming after seeing this movie, I know I would have.

Monday, June 4

June

Just picked up books for June classes.


I'm looking forward to this month a lot more than the previous. Although the skimpy C# book that we got hardly accounts as a text book, our instructor Arthur is someone to look forward to.