Archive for the ‘Articles’ Category

T-Shirt Design

Tuesday, February 2nd, 2010

The release of the next update for Caster is fast approaching so, time to make another t-shirt design!

I’ve always liked the negative space design ideas for t-shirts where the color of the shirt becomes a dominant factor in the design itself.  Here’s an example of a favorite t-shirt of mine from back in high school:

I’ve also liked the idea of an unbalanced composition where the design sits on one side of the shirt.  Here’s an example of a design I did back in 1998.  The idea was that the picture should sit on the left side if the shirt.

And here’s what I just finished for Caster.  The black is replaced with the color of the t-shirt (preferably a dark color for higher contrast).  And since this is a “Caster” shirt, the white is of course glow in the dark.  (Click image for larger view).

Now who wouldn’t want a shirt like that!

iPort Slides from GDC Austin

Friday, September 18th, 2009

caster_iphone_021

Here are the slides in several formats from our presentation on porting games to iPhone at GDC Austin.

The notes section on each slide contains the real meat of the information.

Bolded notes were bullet points for me while reading the slides since many of the slides just had simple pictures.

Hope you find the info useful!  Hopefully I’ll have a video up soon.  Thanks!

http://www.elecorn.com/mikedsmith/data/iPort_GDC_Austin_2009.key

http://www.elecorn.com/mikedsmith/data/iPort_GDC_Austin_2009.ppt

http://www.elecorn.com/mikedsmith/data/iPort_GDC_Austin_2009.pdf

GDC Austin! iPort: How to Bring Any C++ Game to the iPhone

Sunday, September 13th, 2009

I’m heading off to Austin tomorrow morning to attend GDC Austin.

I will be giving a lecture on some stuff my friend and I learned while doing the iPhone port of Caster.

We hope that it will help other people considering porting their existing C++ games to the iPhone.

If you’re going to be at GDC Austin, look me up!

I’ll be posting the slides and notes after the conference.

Thanks!

Caster iPhone icons

Monday, July 20th, 2009

My first job in college was to create several dozen 16×16 icons for an engineering software package.  Obviously at this level you work per pixel since every pixel counts.

In the app store, icons need to be 57 x 57 pixels.  While this allows you to do quite a bit, it’s still a small space to work in.

When designing the icons for Caster, I wanted to convey a sense of movement and power as well as display something representative of the game.

Here’s the icon I came up with for the first version of Caster:

Icon

While I like this icon because it’s clear, I don’t really like how it looks.  I decided to do a new icon for the next update for Caster using this source art:

CasterBackAtCha_final_web

Click HERE to download a high res version.

Here are a few icons I came up with:

CasterBackAtCha05_icon05eCasterBackAtCha05_icon05dCasterBackAtCha05_icon05bCasterBackAtCha05_icon05aCasterBackAtCha05_icon04_57x57_final

CasterBackAtCha05_icon05f

I think I’m going to go with with the last one.

Hopefully this will help it stick out a bit more.

Which icon is your favorite and why?

Interview on iGame Radio

Sunday, July 12th, 2009

Header04aLast year at Casual Connect in Seattle, I met Omaha from iGame Radio.

Here’s a recent interview we did on Caster.

Enjoy!

http://www.igameradio.com/2009/07/09/podcast-ep-75-plants-vs-zombies-9-innings-and-elecorn/

Game in 10 hours with Unity 3D

Thursday, July 9th, 2009

unity

So I gave myself and some of my friends a challenge to make a game in 10 hours.

My purpose for this was to have an excuse to finally try out the Unity engine for real.  Not just playing around with it here and there, but legitimately trying to make a real game with it.  Here is the result:

A, S, W, D and Arrow keys to move / shoot or use an xbox 360 controller.  You’ll need to download the small unity plugin for your browser if you haven’t already.

www.mikedsmith.com/Moderation.html

And here’s what Kyle Schouviller did using the Flat Red Ball Engine:

www.kyleschouviller.com/files/AcidBoots.zip

I went through the Unity tutorial and played around a little bit before getting started.

I had an idea for a game design… however, I never got to that point with this project.  I still plan on trying out the game design idea (probably with the Caster engine), but the main purpose of this was to take Unity 3D for a test run.

I met with the Unity Team a year ago at Casual Connect in Seattle.  At the time they were just starting to get some traction.  I was immediately impressed with their tech and paradigm for game development tools.

There are so many good things I can say about Unity, but I’ll just some it up with it’s done right and it’s awesome.

So where does that leave me with my Caster engine?  Well, I’m a “right tool for the job” kind of guy.  There are some things the Caster engine does better than Unity and some things Unity does better.  Depending on the type of project I do next, I could go either way…. I could, but I think I’ll just stick with the Caster engine.  More control (I can fix bugs in the engine instead of hoping Unity does it), better performance, super sweet features you won’t find in any other engine ^_^.

So when looking into what engines to use for your next indie project, I suggest you check out the following and see which one best fits your needs.  Prices vary, but FlatRedBall is free.

FlatRedBall  (www.flatredball.com) Xbox Live Communities / PC / Silverlight in the works, best developer support you will find anywhere.

Blade3d (www.digini.com) Xbox Live Communities / PC

Unity (www.unity3d.com)  Mac, PC, Web Browser, iPhone, Wii

Viva la Indie!

Embrace your bugs

Thursday, April 2nd, 2009

When I first started programming, a bug was an indication that something was wrong with the code.  While this is still true, I now look at bugs a different way.  I pretty much take a “glass half full” attitude towards them.

A bug is an opportunity to make your software better.  Instead of asking: “How could this happen? Who made this mistake?”, rather say: “What can we do to make our system more robust or safe so this doesn’t happen in the future”.  Sometimes it’s a code fix and sometimes a process fix.  But either way, finding a bug is an opportunity to improve in some way.

This attitude avoids the “quick and dirty fixes” and reduces occurrences of future bugs of the same type.  It lets you focus on other areas that need work resulting in better, more stable software.

So next time you get a bug, try asking yourself “What can I do so that I handle this type of thing better in the future”?

You’ll find that you actually get excited when things break because you’ll see it as an opportunity for improvement rather than evidence of a mistake.

Caster Preview!

Friday, November 7th, 2008

Here it is! The first public preview on Caster!

http://www.indiegamemag.com/2008/11/caster-preview.html

The chaps at the Indie Game Mag gave what I feel is a very fair assessment of Caster.

Based on their feedback (which is similar to some other feedback I’ve had before) I will be upresing some of the textures and increasing the poly count a bit on some of the models.

Thanks Indie Game Mag!

Stealing from Indies is Good

Thursday, October 30th, 2008

Some people are doing some great stuff in the indie games sphere!

However, the main stream game industry shouldn’t feel they need to experiment as much as the indie games world does.

What they should do is just steal learn from all the good ideas that come out of it that they feel would work in their titles.

Let the indies take game play risks, they’re in a better position to do so. Let the AAA polish the game play and presentation, that’s what they’re good at.

That’s my take on it.

What’s yours?

Coding Conventions: Boolean Function Parameters.

Wednesday, October 29th, 2008

Here is a coding convention that I have recently adopted and wish I would have adopted earlier. I would recommend it to all without exception. It is:

Use enumerations instead of boolean values as parameters to functions when there is more than one parameter.

For example these are okay:

Show(bool value);
Setup(ShowState showState, Orientation orientation, CollisionState collisionState);

These are not okay:

Setup(bool showOnStart, bool orientLeft, bool enableCollision);
Serialize(string filename, bool save);

Consider reading:

Setup(true, false, true);
Serialize(“myfile.bin”, true);

Vs. something like this:

Setup(ShowState::Show, Orientation::Right, CollisionState::Enabled)
Serialize(“myfile.bin”, SerializeOperation::Save);

Another advantage is that this opens things up later if you decide to add in more than one state for a variable.

For example, let’s say we wanted to add “Forward” and “Backward” to Orientation, or a “LoadAndWriteBack” to Serialize.

So there you go. A little gem to make your code better and your life easier.