About MrPhil (twitter: @xMrPhil)

I make video slot games by day and indie games by night. I dream of one day making indie games full time, but it might take a while because I'm highly prone to procrastination.

Mr. Phil Games
MrPhil's Twitch Channel


MrPhil's Trophies

Archive for the ‘LD #23’ Category

Chevy Ray’s Codebase

Posted by (twitter: @xMrPhil)
Friday, August 24th, 2012 7:36 am

I took Chevy Ray‘s code that he released as part of his keynote for LD23 and put it up on github.  It is written for his FlashPunk engine.   I used it to make my LD23 entry Seeds of Destruction and it worked out really well for me.

PS Chevy if you happen to see this, I’ll happily transfer the repository to you.

Seeds of Destruction – Post-Mortum

Posted by (twitter: @xMrPhil)
Sunday, May 13th, 2012 12:55 am

Play Seeds of Destruction
If you haven’t played, I recommened you do. It’ll only takes a few moments to get the gist. It is a flash game, so you won’t waste anytime downloading/installing.

What Went Right?
1. Practice – I spent a good month practicing. I knew I wanted to use Flash and FlashPunk which I’ve never used before. So, I spent about a month before the event doing tutorials and then I worked on porting my Ludum Dare 17 – Islands entry to flash. Althought I didn’t finish the port, it was good to get my hands dirty with FlashPunk.
2. Chevy Ray’s Code – When the keynote was released and I discovered that Chevy Ray had given everyone a beautiful gift of awesome code, I immediately downloaded it and studied it. Then, during LD23, when brainstorming I threw out ones that could not be used with his starter code. It definitely shows that I did this, but I think it was worth the trade off.

What Went Wrong?
1. Bad Screen Switching Bug – in the last hours of the LD I ran into an impossible bug when switching between the different screens. I couldn’t unravel it because I didn’t understand Flash, FlashPunk and the Chevy Ray’s keynote code well enough. I spent too much time trying to “fancy fix” it. I should have switched to hack mode earlier. I ended up with a hack, that included restarting the game within the game. If you play it long enough I think it’ll run out of memory and crash. Doh!
2. Big Plans – I spent a lot of time on my animated cut scenes. It was planned to be more involved, but I noticed in time that I had to triage. I, luckily, was able to tell the bare bones story with what I had already created, but I stress how lucky I was here. I could have easily ended up with a lot of work being abandoned. I need to better judge how much I can get done in the time allotted.
3. Curse the Cursor – Several people complained about the green cursor being hard to see against the light blue sky. I hadn’t noticed this at all. I need to build in some “looking” time into my future plans. I was so busy with game play I didn’t consider the easy of use.
4. Distractions – I spent too much time surfing. If you watch the time lapse below I think you’ll agree. While surfing is a normal part of my routine, I feel it got out of hand. Typically I surf to give me and my subconsciousness time to organize and think about problems. Maybe I need to come up with a different way to take these thinking breaks. One that is less likely to degrade into just procrastination.

Time Lapse

Tools I used
Color Wheel:
MS Paint
Google Images
iPhone 4
My Camera

Lunch 2

Posted by (twitter: @xMrPhil)
Sunday, April 22nd, 2012 1:18 pm

Feeling the presure.. AAAAAAAaaaaaaaaa didn’t bother cooking: tuna salad
Lunch 2

Seeds of Destruction – Play Complete

Posted by (twitter: @xMrPhil)
Sunday, April 22nd, 2012 9:21 am

Play Complete
I’ve had a few freinds play the Alpha test (here, comments welcome.) And! No bugs reported! Comments have been all positive too! My one fear is judges will think I just skinned the keynote’s code, but I guess that is one of the risks that comes with my strategy. Today is all about polish. My next task is to make a sort of intro cut scene that tells the story of how your seed landed.

Screenshot 5

Breakfast 2
Breakfast 2
Bacon, eggs and tomatoes again. And that’s ice tea I’m drinking, have been the whole Ludum Dare, home brewed even.

Sleep 2
Sleep 2

Don’t Forget: The Last 10% is 90% of the Work

Posted by (twitter: @xMrPhil)
Saturday, April 21st, 2012 7:18 pm

Insanity Wolf Advice

Posted by (twitter: @xMrPhil)
Saturday, April 21st, 2012 6:55 pm

Dinner 2

Diner #2 – Cauliflower with Garlic and Butter, with a Butterfly cut pork chop topped in a cream horseradish sauce.

Progress at Half-way Point for Seeds of Destruction –

Posted by (twitter: @xMrPhil)
Saturday, April 21st, 2012 6:03 pm

I have a few more items on my task list and then the game is “Play Complete.” That gives me all of tomorrow to polish, which was my goal!  I’ve never been so far at this point. I think two critical factors have made this possible:

  1. ChevyRay’s code that he gave away with the Keynote!  Thanks ChevyRay!
  2. I’ve spent the last month or so learning Flash and FlashPunk instead of waiting until the contest to learn!

How it looks at this point:

Half-way Point

Snack 2

Posted by (twitter: @xMrPhil)
Saturday, April 21st, 2012 2:19 pm

Celery and Peanut Butter

Bugs have slowed my progress, but I feel good about the direction I’m headed.  I can already see some post-compo potential.  I’m thinking the title will be Seeds of Destruction.

Lunch #1 and Serious Bug

Posted by (twitter: @xMrPhil)
Saturday, April 21st, 2012 12:04 pm

Lunch 1
It’s almost 3 pm here in Arlington, VA and I’m having my first lunch for LD23. Kind of late but I wait until I’m hungry.

Chicken and Vegetable stir-fry.
Lunch 1

Screenshot 3
It’s coming a long, but I’m feeling the pressure. My task list seems too long. Worst part is I’ve hit a bug! Maybe you can help? My FlashPunk Entity is not calling the Update method! I’ve triple checked and the World Update is being called and calling the supper.Update()!

package SeedsOfDestruction
import com.greensock.easing.Cubic;
import com.greensock.easing.Quad;
import com.greensock.TweenMax;
import flash.display.BitmapData;
import net.flashpunk.Entity;
import net.flashpunk.FP;
import net.flashpunk.graphics.Image;

public class SeedBullet extends Entity
[Embed(source = “/assets/Seed Bullet.png”)] public static const SEED_BULLET:Class;

public static const SPEED:Number = 200;

public var image:Image;

public function SeedBullet(player:Player)
// Make the Pink transparent
var bitmapData:BitmapData = Global.MakeTransparent(SEED_BULLET);
image = new Image(bitmapData);

super(x, y, image);

FP.angleXY(this, player.stem.angle, 40, player.x, player.y);
image.angle = player.stem.angle;
image.smooth = true;
active = false;
layer = 2;

setHitbox(40, 40);
type = “seedbullet”;


override public function update():void

if (collide(“BadPlant”, x, y))

override public function added():void

var time:Number = FP.distance(x, y, world.mouseX, world.mouseY) / SPEED;
TweenMax.to(this, time, { x:world.mouseX, y:world.mouseY, ease:Quad.easeOut, onComplete:explode } );

public function explode():void
world.add(new Explode(this));

Sleep then Breakfast

Posted by (twitter: @xMrPhil)
Saturday, April 21st, 2012 7:51 am

Sleep 1
I wore my Fitbit to bed last night. Here’s is it analysis:
I expected to sleep longer, but I didn’t feel like I was dragging out of bed. I’m worried I’ll need to take a nap later.  We’ll see.

Breakfast 1
Breakfast 1
Standard bacon, eggs, and tomatoes breakfast.

Now, to figure out how to best improve the game:

  • Scoring mechanism
  • Different types of seeds
  • Mobility
  • Change the way your seed bullets work
  • Improve graphics
  • Title Screen
  • Icon
  • Music
  • Sound Effects
  • Pop-up tips

Pro Tip
Use imgur.com (free) to host you food photos and screen-shots. It reduces the load on the Ludum Dare site and it is super easy to use.  Just drag and drop to the “Upload” section or if you register and activate you email address, simply email photos from your smart phone directly. Then uses the “From URL” tab on the Insert Media screen. I’ve also found that if you remove the width and height attribute from html the “Insert Media” screen creates the pictures re-size themselves perfectly.

Posted by (twitter: @xMrPhil)
Friday, April 20th, 2012 11:30 pm

I’m hitting the sack.  Here’s where I stand: Seeds Screenshot 2 Seeds Screenshot 2

Working Title: Seeds

Posted by (twitter: @xMrPhil)
Friday, April 20th, 2012 10:31 pm

Game idea complete and fleshed out. I’m using ChevyRay’s missile command code and making it into a Nature at War game, it might end up with nanobots in it.

Seeds Screenshot 1

Screen Shot 1

Dinner 1

Dinner 1

Snack 1

Snack 1


Aim High!

Posted by (twitter: @xMrPhil)
Friday, April 20th, 2012 5:37 pm
Aim High

Aim High

Desk Shot + Code

Posted by (twitter: @xMrPhil)
Friday, April 20th, 2012 4:51 pm

Here’s the command center, that’s right I code in a storage closet and that’s my cat Jack.  His hobby is to keep me from using the keyboard or mouse.

Mr. Phil Games Earth Headquarters

Mr. Phil Games Earth Headquarters

I also wanted to share this snippet of AS3 code that lets you choose a color and then convert pixels of that color to transparent pixels:

public static function MakeTransparent(source:*, color:uint = 0x00FF00FF) : BitmapData
// Get the bitmap data so we can fix it
var bitmapData:BitmapData
if (source is Class)
bitmapData = FP.getBitmap(source);
else if (source is BitmapData)
bitmapData = source;

// We aren’t use the transparent feature, hence the color
var bitmapDataNew:BitmapData = new BitmapData(bitmapData.width,
bitmapData.height, true, 0x00000000);
var pt:Point = new Point(0, 0);
var rect:Rectangle = new Rectangle(0, 0, bitmapData.width,
var transparent:uint = 0x00000000;
var maskColor:uint = 0x00FFFFFF;
bitmapDataNew.threshold(bitmapData, rect, pt, “==”, color, transparent, maskColor, true);

return bitmapDataNew;


LD23 is so close!!!

Posted by (twitter: @xMrPhil)
Thursday, April 19th, 2012 12:14 pm

I’ve been practicing all month and looking forward to Ludum Dare 23 very much.  This will mark my 7th year!!!  That’s right, my first Ludum Dare was LD6 – Light and Darkness, April 2005!  Interestingly enough, that is the same LD that Phil Hassey’s new and just released game Dynamite Jack was conceived.


SO Excited!!!


I’m using a new technology, as usual: Flash/AS3 with Flash Punk

[cache: storing page]