prototype tour: timewarp

I’m trying out a new thing for posting prototypes, a quick video instead of a long talky blog post. Let’s see how that feels. You can try the game below while watching the video.

This is where the game would be had your browser supported Flash!

Posted in Games, prototype tours |
    ';
  1. That’s interesting! The towers are set to “stick” with their current target as long as it’s in range. One interesting thing that happens when you’re trying to optimize your placements is that since all shooting is resolved simultaneously, you will “loose” shots if you place two towers so that they’re firing in sync at the same enemy. The first tower will shoot and kill the enemy so the second tower will be firing at an enemy that is already dead. There are so many tiny little choices like this, it wouldn’t be a huge deal to “fix” but I kind of like that there are little micro optimizations like that to make.

  2. Timing and “tower AI” must be very important for success. As an illustration, I can get the escapee UP by placing a third tower. That doesn’t make much sense until you start looking at which creeper the tower decides to shoot at. A smart tower would probably always go for the kill. ..Or.. not go for the kill and always strive to “use” its entire firepower. Then you add another tower type and my eyes will go cross.

hats in videogames.

This is a talk I did at No More Sweden, it’s kind of silly but I think it touches on some important issues.

Posted in Talks |

!Muchacho! !Muchacho! !Muchacho!

muchacho

Play the game: http://grapefrukt.com/f/games/muchacho/

A little while ago I attended (and co-arranged) the “most swedish” game jam called No More Sweden. I was sick during the entire previous game jam I attended and spent most of my time asleep, so I really felt like getting my revenge and making a proper game this time around.

I also managed to convince my friends Jonas and Per to attend. Jonas and I went to the Nordic Game Jam way back when and we’ve worked on a bunch of games together before. This was however, Per’s first game jam.

Just a few days before I had seen this amazing video of a mariachi-band serenading a beluga whale and was determined to make a game featuring one of these bands. Somehow I managed to convince my team mates that this would be a good idea and we decided on an idea after something like half an hour of discussion. Coming to a decision that fast is a first for me.

The division of work ended up in the most predictable way. I did code, Jonas did graphics and Per did the rest. We scrambled to get atleast a playable mockup and some concepts done before going home to sleep and Per scrounged the web for inspiration, reference materials and other useful things.

We also hijacked Mattias and forced him to compose some silly music for us.

Once we got the basic gameplay up and running we were confident that this would turn out nice. Then we went home and slept.

We got back around noon on Saturday and kept working well into Sunday. At 6 in the morning we decided that we were pretty much done, either way, as tired as we were no more work was going to be done. Sadly this meant that the time it would take us to go home and then back again would mean almost no sleep before the presentations, so we decided to just stay the night.

Skip ahead to 46 minutes in to see our presentation.

Play the game: http://grapefrukt.com/f/games/muchacho/

Posted in Games |

platformer physics – it’s complicated

Petri and I were invited to do a talk at the Nordic Indie Game Night in Malmö this past week, we were supposed to talk about the super sexy Cobalt. Instead we went kind of overboard on an analysis of the physics in platformers. We got way more material than we could fit in the ten minutes (which we exceeded), so there may be another chance to catch an extended version of this talk at some point.

Update: Since I posted this in a bit of a hurry, I forgot to mention that the NGIN was conjured into existence by the fantastically wonderful Copenhagen Game Collective. Who, aside from making marvelous games are doing incredible things for the game making community in these parts of the world. They really are the best.

Posted in Talks |

introducing the grapefrukt asset exporter

I’m very excited to publish this, it’s a toolkit I’ve made under the last few months to be able to get graphics and animations made in flash exported to other formats so they can be used on other platforms. The code is pure AS3 so you can run it using either Flash authoring, Flash Builder or Flash Develop. However, it exports Flash assets, so it won’t do you much good without flash authoring.

It’s not perfect yet by any stretch, but I hope it’s useful enough for people to pick up and use. The code is licensed under a simplified BSD license, so you can pretty much do whatever you please with it, if you end up using it I value any and all feedback, send me an email and tell me what you think!

The project is at https://github.com/grapefrukt/grapefrukt-export

Posted in News |
    ';
  1. It’s a bit hard to give a solid analysis without seeing the code and/or fla file, but judging from that stack trace I suspect you have the actual export code inside the hud_items_on_sheet symbol? As you can tell it goes to frame 1 there and then calls the animation extractor, which calls the findMultiFrame function which in turn moves the “playhead” of the symbol to frame 1 which then calls the export code again. Over and over again. Try moving the export code out to the main timeline instead.

  2. Hi, thanks for this great tool ! However, when exporting my swf file, it always crashes. Here is the trace: Error: Error #1023: Stack overflow occurred. at com.grapefrukt.exporter.extractors::ChildFinder$/getClassname() at com.grapefrukt.exporter.extractors::ChildFinder$/getName() at com.grapefrukt.exporter.extractors::TextureExtractor$/extract() at hud_items_on_sheet/frame1() at flash.display::MovieClip/gotoAndStop() at com.grapefrukt.exporter.extractors::ChildFinder$/findMultiframe() at com.grapefrukt.exporter.extractors::AnimationExtractor$/extract() at hud_items_on_sheet/frame1() at flash.display::MovieClip/gotoAndStop() at com.grapefrukt.exporter.extractors::ChildFinder$/findMultiframe() at com.grapefrukt.exporter.extractors::AnimationExtractor$/extract() at hud_items_on_sheet/frame1() at flash.display::MovieClip/gotoAndStop() at com.grapefrukt.exporter.extractors::ChildFinder$/findMultiframe() at com.grapefrukt.exporter.extractors::AnimationExtractor$/extract() at hud_items_on_sheet/frame1() at flash.display::MovieClip/gotoAndStop() at com.grapefrukt.exporter.extractors::ChildFinder$/findMultiframe() at com.grapefrukt.exporter.extractors::AnimationExtractor$/extract() at hud_items_on_sheet/frame1() at flash.display::MovieClip/gotoAndStop() at com.grapefrukt.exporter.extractors::ChildFinder$/findMultiframe() at com.grapefrukt.exporter.extractors::AnimationExtractor$/extract() at hud_items_on_sheet/frame1() at flash.display::MovieClip/gotoAndStop() at com.grapefrukt.exporter.extractors::ChildFinder$/findMultiframe() at com.grapefrukt.exporter.extractors::AnimationExtractor$/extract() at hud_items_on_sheet/frame1() at flash.display::MovieClip/gotoAndStop() at com.grapefrukt.exporter.extractors::ChildFinder$/findMultiframe() at com.grapefrukt.exporter.extractors::AnimationExtractor$/extract() at hud_items_on_sheet/frame1() at flash.display::MovieClip/gotoAndStop() at com.grapefrukt.exporter.extractors::ChildFinder$/findMultiframe() at com.grapefrukt.exporter.extractors::AnimationExtractor$/extract() at hud_items_on_sheet/frame1() at flash.display::MovieClip/gotoAndStop() at com.grapefrukt.exporter.extractors::ChildFinder$/findMultiframe() at com.grapefrukt.exporter.extractors::AnimationExtractor$/extract() at hud_items_on_sheet/frame1() at flash.display::MovieClip/gotoAndStop() at com.grapefrukt.exporter.extractors::ChildFinder$/findMultiframe() at com.grapefrukt.exporter.extractors::AnimationExtractor$/extract() at hud_items_on_sheet/frame1() at flash.display::MovieClip/gotoAndStop() at com.grapefrukt.exporter.extractors::ChildFinder$/findMultiframe() at com.grapefrukt.exporter.extractors::AnimationExtractor$/extract() at hud_items_on_sheet/frame1() at flash.display::MovieClip/gotoAndStop() at com.grapefrukt.exporter.extractors::ChildFinder$/findMultiframe() at com.grapefrukt.exporter.extractors::AnimationExtractor$/extract() at hud_items_on_sheet/frame1() Could you help me with that?

  3. Hey, My team and I wrote a complete tutorial on how to use Grapefrukt exporter and achieve skeletal animations in Cocos2d. You can see the tutorial here: http://www.mechmocha.com/cocos2d-skeletal-animation-part-1/

  4. thanks for your great job.

  5. Awesome toolkit! thanks!!! :)

jesus vs. dinosaurs in the america

jesus-vs-dinosaurs-te

It’s with great pride that I can announce that we’ll be showing a special reworked edition of our global game jam game jesus versus dinosaurs at the killscreen vs. scandinavia party in San Francisco next week. sadly, if you don’t have a ticket it’s already too late, but fret not, the game will see a release soon.

This also means I’m in San Francisco for the GDC, I will also be attending the Flash Games Summit. If you’re around and want to meet up, drop me an email!

Posted in News |

jesus vs dinosaurs, presentation

Posted in News |
    ';
  1. Haha. That looked like a fun game. Reminded me about Ramparts, the old castle defende/build game.

Jesus vs. Dinosaurs, teaser video

Posted in News |

glorg is out

glorg-screen-wide

We’ve come a long way together. As of last night glorg is up for all to play on Armor Games. There’s also a review to read by the nice people over at Jay is games.

As I keep mentioning every time I talk about this game, it has music. This music is made by all round awesome dude dannyB. He’s put the soundtrack up on his bandcamp page, as a pay what you want download. Go get it!

As a bonus, this is a small screenshot of how the game looked back in September last year. A long way indeed.

Posted in Games |
    ';
  1. Really cool game!

  2. Love it! Even my 2-year-old enjoys playing it. Some comments: 1: selling a weapon only collects about 200 coins, not 1000+ as shown on screen; 2: healing may be unnecessary… 3: B0 is too easy

  3. I love the game! A very tongue in cheek … “rogue-like” I guess. I found a bug that prevents progress. Permanent dizzyiness / enemy freezes sometimes occurs. This is bad when you face the guy who chucks rocks, because there’s no way to progress any further. Occasionally both glorg and the enemy can attack at the same time, rather than one attack and one defend. When glorg’s attack dizzies, in that case, the enemy freezes — he stops doing anything (forever) and there is no dizzy animation. Anyways, I’m really enjoying the game. I like how the soundtrack seems to be for a game far more complicated than this one, one with you know, lots of menus and stuff.

  4. The game is very funny considered that it’s a one-button game. And it shows that Martin put a lot of work in it. My biggest complaint: why the black outline on the weapons? :D It’s nowhere, not even on the first weapon, and not on the weapons of enemies, just on the characters one from the second and on.

  5. It’s a lot of fun, especially the battles once you get the hang of them! The animations (particularly the bouncing of stat bars when they change) really help add to the atmosphere. Three tiny things I noticed: – it’d be good to be able to choose a button other than mouse click; I was playing it on my macbook and I had to go and dig up a real mouse in order to be able to play it properly (holding the mouse button down and releasing it with good timing, in particular, was annoying on the trackpad) (side note: I also tried to play it on my android phone, it loaded 100% but then didn’t do anything. It’d be a good game to be able to play on the go with my fancy newly-flash-enabled device) – the icon for “just press the button once” looked to me like “don’t touch the button at all” in comparison with the other icons, which had arrows to indicate what you are supposed to be pressing. – the tiny half-second or so you had to wait after letting go of the button for “walk” and hitting it again for “explore” got a little annoying. I always wanted to release the button and press it right back down again, but that didn’t work.

blog updates

hackerz

Today I discovered that my blog had been infected with some spammy-type junk, so things will be a bit dodgy as I move this over to my central wordpress installation. But, fret not, things will be back in order asap.

Update: Spent the better part of the day fixing things up, figured it was time for a new theme too, so that’s what’s been taking most of my time. It’s not quite done yet, but it’ll do for now.

Posted in News |
    ';
  1. Oooh, sweet theme! :D I love it!