About triplefox (twitter: @triplefox)
triplefox's Trophies
triplefox's Archive
Heartbreaker: first version has shipped
http://www.ludamix.com/games/heartbreaker
It’s multiplayer
After a few rounds of playtesting I got it to “still very glitchy but playable,” which is the most I’m going to aim for in the compo timelimit.
I’m going to bed now, when I wake up I’ll try to get some sounds in.
And a screenshot:
Some progress
I just got the player.io API connecting to a dev server. I have some experience with this from other projects – it’s pretty decent for making a multiplayer or otherwise net-connected Flash game, though I had some issues getting it into haXe initially(my solution was to get rid of the type annotations and use Dynamic on the parts that were breaking).
The game design has developed from “Dungeon Master and Runners” to “Ice Queen vs. Fire Mages.” The title will be “Heartbreaker” – one which I’ve been itching to use for a while. The mages have been spurned by the Ice Queen, and now compete to escape her cold, deadly kingdom, using their fire magic to clear the path. Meanwhile, the Queen toys with them, placing ice-themed traps and obstacles such as spiky icicles, Yetis, and slippery ground.
Some arts(spritesheets not shown – for effort reasons):
Concept: Dungeon Escape
I am going to aim for a multiplayer game in this LD, using the player.io AS3 API to handle all the nasty issues of connecting, hosting, etc. It will be very straightforward, based on the “Deathrun” maps you see in some FPS games:
The first player to join is the dungeon master. Subsequent players are “runners.” The runners try to escape the dungeon by reaching the exit, and the first one to succeed becomes the new DM.
The dungeon master tries to defeat the runners by moving around various traps in the level. The DM has limited(recharging) energy to move the traps. I am planning to implement these traps:
- 4-way gun turret
- Hidden land mine
- Sticky patch(slows)
- Bullet reflector
Giving it a try
I don’t know if I’ll see an entry through for either compo or jam this time, but I’ll give it a try.
Going to be using haXe/Flash9, and some bits of my old game code(don’t know what yet, but it’ll all end up published in the end) for the code side of things.
For art I guess I will do my usual Gimp/Pro Motion/Inkscape mix, and sound-wise I will probably stick to 8-bit stuff with sfxr or somesuch.
In the first few hours I’m gonna juggle my thinking about the entry with another release of my main game project, Moto. Got some new graphics and stuff to show
Pincer – nee “Pirate Panic” – DONE
It turns out to have some astoundingly deep gameplay for how few elements are in there. I don’t think I took the level design nearly as far as it could go.

Play here.
Pincer: Looking like a game
I have all the tiles in now, and more sounds(“Expert!”). It was a bit tricky for a number of reasons:
- Still coming to grips with the way Pro Motion works. It’s a realllly powerful tool, but that leads to several kinds of modal situations that are unintuitive(working with alpha, picking up tiles so that they can be placed – for some reason you can’t just click in the palette).
- I also wasted time making tiles in an inefficient way or making tiles I didn’t actually need for the system I ended up using.
- I had to make a “chunked” tile engine based on the basic one, which splits each tile of collision into 4 graphical pieces. This also meant some data entry, fortunately I didn’t have too many pieces.
- For some reason, Firefox started caching the swf and refusing to let go. I finally got it going again by manually re-entering the URL.
- I also had to add a second layer of transparent 20×20 tiles on top of the background. This wasn’t tooo difficult but the swf-caching problem really slowed me down.
Anyway, now I think I’m going to do level design, get a title and win screen together, and call it done. I seem to be on track to use almost all the time available. This is probably the best I’ve ever done with any game jam situation, usually I get demotivated or stop at an early point
Pincer – Sound and Music integrated
Check it out here. Although the sound effects are a bit sparse right now, just “shoot” and “explosion”…I’ll probably do a few more.
Pincer – musix
All of the note data was made in Busker – I just laid out some notes, then applied a chord sequence and a style. Then I did the instruments and mix in Mixcraft. Not totally happy with it, but hearing it again, it feels like I spent way more time on it than I did.
Now it’s on to some sound design in Renoise.
Breakfast blog
I would have taken pictures but I don’t have a good setup for that right now. Breakfast was bacon, turkey sausage patties, and a scrambled egg fried in the fat of the other two. Then a “Fiberful” fruit bar, and then my usual supplements(a multi, additional D, calcium, an Omega-3, and whey protein), followed by some green tea to wash it all down. This is food that makes me work well. Heavy carbs like beans+rice, potatoes or cereal just make me feel hazy, ill and unmotivated.
Pincer – up and at’em
Just got up, showered, shaved, and now I should probably find something to eat.
But today’s the day where I make Pincer look and sound awesome, as well as hammer out all the level design. Wish me luck!
Pincer: Smarty Pirates in Motion
Against my better judgement, I went ahead and implemented Dijkstra’s Algorithm. The time cost was large: 3 hours, most of it spent on a bug that I resolved by not being macho and using the 2D field class I had been using for every other 2D grid(tiles, collision) and really should have used for the nodes from the get-go.
But it works. I need to give the pirates a proper LOS check though. That can come tomorrow.
Pincer – A failed experiment
I figured my other AI could be a pathfinding one. Surely I could just reuse some pathfinding code for haXe? No, of course not. The library I found showed several signs of poor manufacture(particularly, using the extremely slow Enum construct to identify whether nodes are start/end/clear/blocked instead of, say, an integer value) and threw an exception in use.
Now I’m left torn between writing my own pathfinding code(done it several times before) and integrating it into the Roguelike collision system, or to go with dummy run-at-player AI. The latter would be a much safer bet, but I think that having a pathfinder mob, besides being useful library code, would add more dynamism to the game – with the water and bombs, there’s plenty of opportunities for the player to snipe at them or send them into traps, rather than it always being a head-on combat situation.
This is probably one I should sleep on, really. I’m at the end of my day.
Pincer – bang bang boom ow
This game has some basic combat going now.
First you have to cross along the line of fire of the pirates(who, at least in this incarnation, just shoot in cardinal directions) to get to the ammo.
Then you have the option of picking them off like a sharpshooter, weaving in and out of their fire line, or blowing up the bombs, which will conveniently chain their explosions. It’s awesome, albeit a bit hard to read with the colored blocks. I think I will go to bed in another hour or two, add a few additional forms of AI to vary things, and then do the level design and polish.
Pincer – Boom
The newest build has, as I wanted, destruction, explosions, and player death. It restarts when you die.
I just noticed a bug in it though – didn’t make the ash passable. Oops.
Pincer – Explosions
I added bombs. You can “disarm” them by running into them, or shoot them to cause an explosion(an effect which builds on the two-frame bullet firing code). Right now the explosion doesn’t do anything, but I will soon add player death and environment destruction to the mix. Then things will get interesting….
I’d run off another build but I’m getting sleepy at this point(~7pm to ~9am…that’s….5+9=14 hours awake) and would rather conserve some energy.
Pincer – HUD and ammo
Another build, this one came almost an hour and a half after the last one. This one now shows the controls so I don’t have to go and write that here every time
It also has limited ammo – you get one shot from the pickup.
Something cool I used for this is a bit of code I had lying there, not sure that it would come to use: Layout.
This is Layout:
Pincer – Interrupted
This is a “non-report” that I’m doing just because it’s becoming a habit to blog what I’m doing constantly. I took the last half hour or so to fix up some tutorialization issues in Deep Sea Descent pointed out by the kind people at Flash Game License – I just happened to catch the message minutes after it was sent. Nice, simple changes, and I think they made a big difference. So – if nothing else comes up on their end – they’ll have it approved for bids in a few hours, by the time I go to sleep. That would be nice
As far as Pincer goes, I guess I’ll try for limited ammo, a HUD, walls, and explosives by the time I go to bed. Still have more features I want to get to though – pirate AI and player death, gold, maybe some crates to push around….I’m approaching this game as “throw features at the wall and see which ones stick.” I can only do a few more before starting the polishing process though.
Pincer – fast projectiles
New build showing projectiles that move faster than you. This is done by having the main loop call as a function pointer; when projectiles exist it temporarily changes to the code that forces you to watch a frame of the projectiles mid-flight. Somehow, I made this build exactly 30 minutes after the last one. As before, arrows, WASD, space, and /.
Pincer – projectiles
Now I have some shooting action going. The projectiles spawn, move, and despawn correctly. I probably still want to add the “two steps per turn” thing though. It just seems like it would make the puzzle aspects more engaging to have to calculate relative speeds like that.
Build is up. Arrows to move, space to pass a turn, / to skip levels, WASD to shoot.
Pincer – multiple levels
I implemented a win condition(touch the “end dock”), 8 (test) levels, and a level skip key (/). The basic framework of the game is almost done – just needs a title and a win screen. Progress!





