Archive for the 'Greg' Category

In Search of the Oracle: Indie Developer Productivity Snacks and Calisthenics

Mike’s parents were kind enough to bring us some developer rations on Thursday. None of us really eat very healthy in the office, except for Josh, who is all into flax seed. So here are our favorite bits of sustanence.

Daddy Ray’s Fig Bars. This is one of Josh’s staples, the rest of us still don’t know where he gets them, but we think they’re delicious.

2 lb. box of Pepperidge Farm Cheddar Goldfish - Whole grain if you can find it. This is a classic, and therefore manditory.

Sam’s Choice Mountain Trail Mix - recovered deep within the belly of the beast, these precious nuts, chocolates and raisins are tainted with corporate shame, but are oh so fortifying.

Gatorade lime Rain, 64 oz. - Possibly the finest drink to ever grace the Earth. I’m really the only one who drinks it. But we use the old bottles for water bottles now.

Red curry rice and beans. I’ve got a recipe on my site, it’s cheap and easy and can stretch a long ways over a large amount of rice. We have some form of it once or twice a week here at the office.

Oh yea, Nerf hoops are the new pilates…

Today’s Office Tunes - Old School Amiga

Josh found this sweet music today while sifting through some dusty bookmarks of his. It’s freely distributed music (under the creative commons license) and would work for our game if we wanted it. Mostly it’s just kick-ass and old school, and we listened to it all day. Check it out. This one too. The recording label, Monotonik, has other cool compilations that have albums beyond the Amiga stuff.

Internet Archive rocks, it’s easy to forget about; but so is Mike, so we forgive you.

It’s Biznass Time! - Business cards and the importance of a developer’s identity

We’re going to GDC! Come hell or high water, we booked the tickets, marked the calendar and laid out our nerd uniforms for GDC 2008. Now what? Maybe we’re missing something…

Business cards!

As a soon-to-be card-carrying graphic designer–and by “card-carrying” I mean diploma-carrying–why not create our own identity, or any such materials we may need to promote ourselves? Really that’s what graphic design is all about, visual communication for some end, and in a lot of cases that end has something to do with money. The identity system can be a very complex task, and cost a great deal of money to get it done right. This kind of work is reserved for large business who can hire a firm to overhaul their look completely, but being an indie dev, that just isn’t going to happen. Devs are smart enough to figure this stuff out on their own, right? So I offer you this:

A cake! Baked with logos and typography. But really, this is just a rough recipe for that cake. There are always exceptions to these guidelines, but I’m going to assume that the reason you’re reading this is because you need guidance, and if that’s the case, then follow the guidelines. Get it? I know dev teams are made up of a variety of creative people, so if you have an artist, that will be a big help when designing the logo and just general aesthetics along the way.

1. A logo.
This needs to come first above anything else. The logo can be just text, a simple circle or illustration. The logo (sometimes called a “mark” or if it’s text, “logotype”) will inform every other decision you have about the identity, the typeface (font) you choose and the way it’s applied to different applications (letterheads, business cards, stickers).

I’m sure you have all seen logos, and they seem simple enough, they are for the most part… However, since you’re a developer, mainly promoting your stuff on the internet, the idea of doing a bad ass full-color raster (bitmap) logo illustration may seem like a really good idea. It’s not. Most of the time. When it comes time to translate over to the printed page, you’ll be faced with a disaster, and with little to no print experience, and even less budget for professional printing and file preparation assistance things will get messy. That being said, if a simpler logo can’t express your indie spirit then so be it, go with the tattered warrior illustration scaling a dark and smoky mountain. Just remember the Aqua Teen Hunger Force episode when Master Shake assumes the role of “The Drizzle” and has those t-shirts made with his “logo.”

2. Color
Colors should usually be limited to 2-3. Our identity uses one color (pantone 297U) along with black. Again if you do the full-color illustration, at least leave one dominant color, in order to give your identity some direction when you design other applications. If you don’t choose a color for the logo, then you’ll have to decide on colors at some point, when you design the website and etc. so it may as well be now.

3. A typeface (font)
Typography separates professional from amateur design. It is the easiest thing in the world to slap some text down on a page, but if you do that, your identity may look like a middle-aged crafty housewife printed something out from her word processor. Don’t make that mistake and pay attention to details!

A typeface should reflect the feeling and structure of the mark it will sit beside. If your mark is an oak tree, then perhaps a serifed font (times new roman, baskerville) would be best to complement the shapes of the branches. [Serif fonts have horizontal bars often terminating the vertical strokes of a typeface by linking the two with curves. Zoom in on the Baskervile or Times “T”, and you’ll see what I mean. If your mark is simpler, with less decoration or intricate shapes, maybe a sans-serif font (helvetica, verdana, univers) would be better due to its simpler shapes. If a shape-to-shape relationship doesn’t do it for you, then perhaps what a typeface “says” would be more your style. Blackletter fonts (lucida blackletter, isn’t the best, but it gives you the idea of what I mean by blackletter) can give a more medieval tone, or even a Latin or tattooed sort of look. Engravers, a font with very wide letter forms, can reference the early part of the 20th century. Even serif fonts in general can make things more traditional or older looking, while a sans serif can communicate a modern or clean feeling.

4. Setting the type
After selecting the typeface, it’s important to continue scrutinizing the details. In graphic design, there are a few simple terms with weird words that refer to the layout of a typed word or group of words.

Leading:
The value assigned to the vertical space between two lines of text.
Tracking:
The value assigned to the width between a group of letters, for instance: a sentence.
Kerning:
The value assigned to the width between two letters. This allows for really detailed tweaking of letter-spacing.

When setting your logotype (the title of your company that will accompany your mark, if you have one) you can either convert the type to outlines and use a vector-editing program to maneuver the letters left and right, or you can use the kerning option in your chosen program. Most of the time, every word that is typed out based on the default settings of any program will not be optimal. Evaluate the spaces between letters and kern them so they appear even. Problems can arise with different letter combinations like “WL” or “AT.” It’s best to do this by hand and use your discerning eye, instead of with a mathematical process.

Finally, decide where that logotype is going to go in relation to your logo. Sometimes this can be really easy and logical, and others it can be a huge pain. Use your eye, maybe find a natural point of alignment running through your mark. Be open to alternative relationships, such as side-by-side instead of just below the mark, or even off-center.

4. Hierarchy and grids
Now you have your colors, your finished mark, logotype and everything ready to go. Now how do you put it on your business card?

Grids.

Yes, a grid can save you a lot of trouble. Instead of pushing elements like the block of contact info around incessantly, put down some straight grid lines, and decide on some conventions for the layout. For a business card, there aren’t many options for layout, since you want things to be legible and your brand to be dominant. Hierarchy built into your grid in a business card can solve a lot of confusion when first laying things out. If you put section off a piece larger than the rest, that’ll be where the logo goes. Then the remaining section can be divided once more to separate things once again, and that can be where the name, title and contact info will go respectively.

This is a completely oversimplification of grid systems. They are the foundation of any layout, and bad ones are easy to come by. Overall, err on the side of large margins, even spacing, and points of alignment. If your grid isn’t working start over, maybe try some pre-made grids, like the golden section which I used for a layout of Intuition’s business card.

5. Other applications
With other types of promotion, such as brochures, letterhead, posters and etc. things can get a lot more complicated. Frankly, with the knowledge imparted to your here, I would suggest not attempting anything without first doing more research. There are publications out there that can provide a great deal of inspiration. One such periodical, Before&After magazine is designed for novice to intermediate designers and provides electronic .pdf tutorials and will mail you a binder-buddy type issue as they are made available. Other than that, there is always the internet, but if you find yourself in dire need of a brochure, perhaps either need to evaluate that need, or find the money to hire someone to lay it out. There are plenty of starving graphic design students out there that would get wide-eyed with a chance to add a line to their resume.

ISU Game Dev Education Testimonial on Game Career Guide

It’s been awhile, and I know you have all been clamoring for a new post, but we’ve been busy with business stuff, and I’ve been busy with Rome. If you’re interested in my personal exploits in Rome and the surrounding area, check out my blog at my personal site.

In other news, Intuition squeaked out a little PR with a requested article from GameCareerGuide.com about my game dev education experience at ISU. You can read the whole article here.

Shiggy <3 Reggie + Martha = Game Cake

Photoshopping of the beloved Shigeru Miyamoto and Reggie Fils-Aime atop their grand cake. Martha Stewart helped and was rumored to have a hand in the couple’s initial meeting.

The Professor preys on boats

Recently we nicknamed Prof. Porpoise, “The Professor” due to his extreme agility on the court as well as his radical dissertation on The Crossover: An Application of Metafluid Dynamics and Quantum Mechanics Subsystems to Underwater Basketballs. The Professor isn’t all sneakers and snow globes. When he’s not drainin’ half-court PS-triples he’s sinking sea-faring vessels in the name of the Almighty’s Reckoning.

So I drew a few of those ships that he’ll be snacking on. I’m going to illustrate them fairly soon based on these drawings. Right now we’re just gathering ideas on the different types of boats and which would be funnier and more effective. For now this is a pretty good smattering of boats, ranging from early level rafts, to millionaire customized yachts. When I draw I use a ballpoint pen, preferably a Bic Cristal but normally it’s just whatever is lying around. If enough people want tips, I’ll post something about the technique in greater detail later on.

Clocky! and other recipes for indie dev survival


How do you actually wake up, instead of waking up every 9-10 minutes to throw your arm at the over-sized snooze button of your oil-burning alarm clock? This is the answer, and of course it’s in the form of a robot. Damned robots. If DaVinci went polyphasic then maybe this is the way to do it.

While we’re off the subject of anything actually involving game development, or the gaming industry, I’ve decided to share a recipe, that also help you and I survive, just as Clocky hopefully will. I usually cook in large quantities which make for a good amount of leftovers that I can reheat whenever I want while I am at work. This is one of my old stand-bys that I learned from my very good friend, Shyam.

Red Curry Beans

1 can of black beans
1 bag of frozen stir fry vegetables (use fresh vegetables if you live on the edge)
1/4+ cup peanut oil (vegetable or any oil will work, but peanut tastes best)
1-3 Tbs red curry paste (personally i use Mae Ploy, it’s delicious)
3-5 cups of rice (i buy short-grain rice in bulk to save money, $20 for 25 lbs.)

Firstly, if you do have fresh vegetables, I advise you to use at least one or two tomatoes, along with an onion and a green pepper. If you just have the bag of frozen vegetables, that will work, however the final result of the bean curry won’t be as soupy, which will not penetrate the rice as much.

Chop, cut or throw your vegetables into the pan (onion first, then green pepper, then tomatoes) with a tablespoon or two of peanut oil and saute on medium. This isn’t low in fat, I use a lot of fat when I cook because it tastes better and works for this recipe in particular. Once the onions are translucent or the vegetables are nice and sauteed, add in 1 tablespoon of red curry paste, and mix with the remaining oil in the pan. This should dissolve and season all of the vegetables mildly. If you want it stronger this is the time to add more, tasting as you go.

After you’re happy with the amount of heat, keep the vegetables cooking, we want them cooked through pretty well so this will eventually turn into a thick chili-type consistency. Now thoroughly drain the black beans and add them to the pan. Next mix the beans and vegetables together and spead on a piece of bread, cracker or spoonful of rice to taste. If the spice isn’t up to snuff, you can add more red curry paste here.

I usually let this cook down on medium-low for a good bit, allowing the heat to breakdown the vegetables and the beans enough to become one substance. Store this in your fridge until you re-heat and serve on top of rice, or any carbohydrate you have around for a well balanced snack or meal. This also works really well for a tortilla chip dip.

Bouncing balls… and cubes?

A few weeks ago, I was getting antsy and wanted to redo intuition’s web page with some sleek looking CSS, a web 2.0ey PHP backend and a Flash navigation interface. This might still happen, but not in the near future as we have other priorities… like making games. But around that time, I decided to give actionscript 2.0 the good ol’ college try and with the help of the book I posted about on Friday.

While this isn’t all the functionality I wanted with this little do-dad, I am pretty happy with the results, and with what I’ve learned by doing it.

Firstly, is the problem with rotating movie clips in flash. During the later stages, I wanted to be able to scale the movie clip to any size I want, and then subtract a relative value from the global variable: gBOTTOM in order to adjust the world bounds accordingaly, however the problem I encountered can be seen in the .swf below. Also note the jumpy bug was something I didn’t care to fix since it wasn’t part of the end goal.

While the movie clips in the above .swf are not circles, but cubes, the behavior is the same since the bounding boxes are always rectilinear, no matter what shape lies inside. While it sort of makes for a neat animation of squares, I wanted circles, so the code looked something like this in order to get the radius of each circles.

//ROLLING CUBE BOUNDS

if (this._y >= gBOTTOM - this._height/2) //bouncing upwards bounding relative to size
{
this._y = gBOTTOM - this._height/2;
this.ySpeed = (-this.ySpeed)/2.22;
}

This really didn’t work, since the resting point was so sporadic, the circles didn’t seem to hit the ground most of the time, but rather float. In this case, I conceded what may have been a victory and reverted my code back to using constant bounds for constant sizes of balls.

Next for this would be collision (and reaction) of all and any balls, and Mike, who has been helping me throughout this, mapped out what that would take, and it looks terrifying. While adding collision detection and reaction to this would be stunning, I think I may tackle that once I get at least some OOP experience under my belt.

Meanwhile here is the code for the entire rollingcubes.swf heavily edited from it’s original form as the first lesson in Chapter 10 of the book I’m using from Friends of Ed “Foundation Actionscript for Flash 8.” The code all lies on frame 1 of the .fla and if enough people want the .fla I’d be happy to post it, however I doubt this will arouse much interest.

//BOUNCING BALLS SANS COLLISION

function mover():Void
{
this._x += this.xSpeed;
this._y += this.ySpeed;

if (this._x < wall =" 1.22" _x =" gLEFT;" xspeed =" -this.xSpeed/1.22;"> gRIGHT) //bouncing off right wall = 1.22
{
this._x = gRIGHT;
this.xSpeed = -this.xSpeed/1.22;
}
if (this._y < gravity =" 3">= gBOTTOM - this._height/2) //bouncing upwards
{
this._y = gBOTTOM - this._height/2;
this.ySpeed = (-this.ySpeed)/2.22;
}
if ((this.ySpeed <= 2) && (this.ySpeed >= -2)) //clamping the vertical movement
{
this.ySpeed = 0;
this.stop();
}
if (this.xSpeed < -0.5) //friction on leftward movement
{
this.xSpeed += 0.5;
}
if (this.xSpeed > 0.5) //friction on leftward movement
{
this.xSpeed -= 0.5;
}
if ((this.xSpeed >= -0.5) && (this.xSpeed <= 0.5)) //clamping the horizontal movement
{
this.xSpeed = 0;
}
if (this.pressState == 1) //stop everything while pressing
{
this.ySpeed = 0;
this.XSpeed = 0;
this.lastX = this._x;
this.lastY = this._y;
this.stop();
}
if (this.pressState == 2) //link the rotation with the horizontal speed
{
this._rotation += this.xSpeed;
}
}

function dragster():Void //use on press, drag the balls around
{
this.pressState = 1;
this.startDrag();
}

function dragsterOff():Void //use on release, vectors for launching the balls
{
this.pressState = 2;
this.stopDrag();
this.xSpeed = (this._x - this.lastX)/3;
this.ySpeed = (this._y - this.lastY)/3;
this.play();
}

//WORLD BOUND CONSTANTS & STATES
_global.gLEFT = 83;
_global.gRIGHT = 550;
_global.gTOP = 5;
_global.gBOTTOM = 400;
_global.pressState = 0;

//apply event handlers to movieclip instances on the stage
bigBall.onEnterFrame = mover;
bigBall.onPress = dragster;
bigBall.onRelease = dragsterOff;
bigBall.onReleaseOutside = dragsterOff;
medBall.onEnterFrame = mover;
medBall.onPress = dragster;
medBall.onRelease = dragsterOff;
medBall.onReleaseOutside = dragsterOff;
smallBall.onEnterFrame = mover;
smallBall.onPress = dragster;
smallBall.onRelease = dragsterOff;
smallBall.onReleaseOutside = dragsterOff;

Learning to Flash

Intuition has spent a lot of time working on ideas, writing them into pitches for places like Adult Swim and Kongregate, (my user name is: aeiowu) but we haven’t had a chance to really flex our development muscle as of yet. So while doing all this “scholarly” writing and whatnot, I’ve taken on the task of learning actionscript in hopes of helping out the prototype situation later on.

I normally like to learn things on my own, or through the interpipes somehow, but Josh did some research (he’s learning, or relearning actionscript as well) and found some promising books for designers who want to code, rather than coders who want to learn a new language. Call me fickle, but I need a book from an author who knows how to relate to me, and given I have more of a design background, is working out very well.

I’m through the first ten chapters at the time of this post, and am working on my own programming problems with the help of Mike. I have made a couple “cool” demos from the tutorials in the book and my own marginally customizable “particle system” (just using the x and y scale of a movie clip). The particle system is really just a jiggly sphere, but the lesson I learned here was how to control the parameters of a function outside of the function itself because I built the function so guidelines could be applied when assigning the function to each movieclip.

function bubbler(thing:MovieClip, jitter:Number, size:Number):Void
{
var xVal:Number = 0;
var yVal:Number = 0;
onEnterFrame = function()
{
xVal = (Math.random()*jitter) - size;
yVal = (Math.random()*jitter) - size;

thing._yscale = yVal;
thing._xscale = xVal;
};
}

//Initialize
bubbler(blob_mc, 22, 222);

Getting my failures out of the way

Hi! I’m Greg

I’ve been playing games for a long time. I remember the introduction of the Prodigy internet service, the rise and fall of Sierra games, and a jaw-dropping incident with Pong at an uncle’s house. Today, I am studying graphic design at Iowa State University, with a heavy emphasis on game development. While ISU doesn’t offer a game-dev major, a few classes do help with networking like-minded individuals towards a common goal. Combine that with 3D modeling & animation classes, a background in english at the University of Iowa, and a pretty solid design education, all that seems to be missing is the programming. This blog isn’t about any of that though, at least not directly. Instead I will share some of the information and misinformation I’ve gathered over the last 4 or 5 years with all of you guys, and then once that’s over with, which will be soon, I’ll post documentation, process and maybe even some tutorials.

So here are some simple lessons that ring true for just about everyone trying to get into this industry at this age (college aged and younger) without much experience.

Make games, don’t play them
Sure, you wanna play games, and you should, but game development has nothing to do with high-scores or head-shots, and everything to do with a passion for creation.

Start small
Use flash, Torque game builder trial version, Multimedia Fusion or something like that to prototype your first simple game idea. Make checkers or breakout, you’ll learn a lot. If you want to break into the 3D realm, make a mod with the SDK of an existing engine, half-life unreal tournament 2004 and etc.

Sell-out
At least a little bit. You still have to make compromises about your ideas. If you don’t have to make compromises, then you’re either a rich programmer/artist and don’t need funding or you’ll never get your game past pre-alpha due to the scope being larger than SPORE and you not budging on any of your ideas with your team members .

Work like crazy
The harder the work, the more you will learn, the better you will be. This industry is not for the weak-willed and throws a ton of obstacles in your way of becoming part of it.

Focus on your craft, prepare for rejection
After a year or two, you shop your stuff around and nobody likes it, keep going. After 5 years, find a different craft, or a better way to do it.

Do it yourself
With nearly all the jobs in the land requiring 2-3 years of experience with a AAA release under your belt, it seems like you’re staring down the business end of a catch-22. And you are. However by working on your own portfolio, in small projects and in unfunded teams, you can overcome this gap by investing your time into all your failures. Or better yet, go indy!

Fail first
Failures are a necessary and important part of learning how to develop, especially with such a technical art form, skills are constantly improving, as is software and tools. Learning how to structure a project, gauge feasibility and beyond, are all huge parts of a project’s success, and by getting them wrong without anyone footing the bill for it, you’ll do your career and your would-be publishers all a favor.



-->