Ludum Dare 35
The Theme is:
Shapeshift

Judging ends in
Click here to start

PlayRate80Star

Thanks everyone for coming out! For the next 3 weeks, we’ll be Playing and Rating the games you created.
You NEED ratings to get a score at the end. Play and Rate games to help others find your game.
We’ll be announcing Ludum Dare 36’s August date alongside the results.

About scriptorum

Long time software developer and occasional game maker. Out of practice with the latter part, trying to get back into it.

Entries

 
Ludum Dare 34
 
Ludum Dare 33
 
Ludum Dare 31
 
Ludum Dare 28
 
Ludum Dare 27
 
Ludum Dare 26
 
MiniLD #39

scriptorum's Trophies

scriptorum's Archive

Goodbye Compo, Hello Jam!

Posted by
Sunday, April 17th, 2016 7:19 pm

Ya know, I have almost a game here, but it’s just not going to be playable for the 48h compo. So Circle Meets the Square gets 24 more hours of mad, frenetic developing! Wooo! <narcoleptic attack/>  #betweencontracts

sshot

It’s not ideal, I’d rather be judged on compo standards since I’m working with those restrictions, but watchagonnado. Serves me right for not doing the practice weekend. Jam tastes good, right? Here comes Jam! Good luck to everyone!

Posted by
Thursday, April 14th, 2016 4:41 pm

I’m in for the 48-hour compo. It will be glorious.

Game Engine: Unity5 in 2D
Language: C#
Editor: MonoDevelop
Base CodeSpewnity (just some random bits of code)
Version Control: Game Source
Graphics: Photoshop, FilterForge, possible Pixen
Sound: Audacity, Bfxr, Renoise w/VST plugins
The Hulk Promise: I won’t get you angry. I don’t like you when you’re angry.

Happy jamming!

Revolver Post-Mortem

Posted by
Monday, January 4th, 2016 3:55 pm

gameplay

With the final hours ticking down before scores are revealed, I thought I’d fill the time by doing a post-mortem for my LD48 compo entry. Revolver is an action puzzle game about growing plants by rotating the planet toward favorable weather conditions.  You can play it here!

What Went Right

A:\> Let’s build a time machine!

Time management. Unlike most other jams, the first time ever I felt in control of my time. I didn’t get in everything I wanted to, but I delivered the key elements I needed to. I chose an idea with core mechanic that was design-complete. The idea hit both theme targets. By the end of Saturday, the sandbox prototype was playable, which is a target I don’t always hit. I did a really good job of “layering” my needs, ensuring that every element of the game had a placeholder first, before several iterations of refinement. I don’t just mean art, I also mean text, sound, and code. In this way, as time became short, I could say “you know, that placeholder here is good enough” and polish where it is more needed.

Challenge. I tweaked the levels to be tough on the timer, particularly the last 3-4 levels. While this got some users cursing at me, most said it was on the good side of challenging.

B:\> I’m not looking for judgement, just a yes or no — can you assimilate a giraffe?

Unity. I entered previous compos using Flaxen, which is built on HaxePunk using Haxe. It’s great stuff, but I’ve been wanting to get more experience with a game engine that has 3D, a lighting model, and a proper scene graph.  (Hopefully, HaxePunk 3.0 will have these things.) I had a really good time using Unity. I’m not so much of a Microsoftie so was I  surprised to enjoy many of C#’s features. I mean I’m never going to love capitalized function names, and Unity/MonoDevelop makes it excruciating to use third party libraries (see how haxelib does it), but overall it was smooth.

In-editor configuration. As much as possible, I exposed all level data and configuration to the editor. Each level was a prefab that I dragged to the Level Manager array in the order I wanted them. This made it easy to tweak and change the levels and messages. Unity does have a really ugly built-in array management with no drag and drop reordering, but it’s passable, and you can customize the inspector view to some extent with a little more time. The configuration for the item types were also fully exposed.

C:\> Good job doing basically nothing

In-game tutorial. Not only did I fit several levels, I also worked in a couple tutorial levels to explain the controls and concepts. I was very pleased to fit this in.

Unfiltered sarcasm. Because I layered my time, I used placeholders everywhere first, and this included the level message texts. The requirement for a placeholder is BUILD IT FAST, so I did what comes to me naturally. That is, I was a sarcastic and obnoxious ass. As time wound down, other things took up my time, and I never went back to the level text. As it happened, however, my sarcasm turned out to be a popular aspect of the game. So yay me and my immaturity!

What Went Wrong

D:\> Please, sir? Can we have some more, please?

Moar levels. I put in just enough levels to introduce the three types of atmospherics (rain, snow and tornado) and three plants (smirkflower, smeggplant, and flurp trees).  Barely enough time to dip your toes in.

Less samey. I envisioned a more complex dynamic between the atmospherics and plants. Although I exposed a lot of the configuration to the editor, I didn’t tweak them much. In the end, each plant had an atmosphere it grew 4X as fast in, and an atmosphere that stunted it’s growth completely to 0X. These values could have been tweaked to be more interesting, but with as few levels as I had in there, it would be an underused subtlety.

Moar items. I also pictured two other atmospherics (flock of birds, swarm of bees) that could move around the planet – this would have looked cool! It would have also fed into new asexual and sexual plants which spread via seeds and/or pollen, and were endangered by birds.

Moar animations. My biggest regret on the art side was not making time for a better plant-growth effect. It just scales out along the length, which kind of looks like growth, and kind of looks like it’s rising from a deep bow. What I really wanted was a dynamic art that could support a tweakable growth pattern. If I did that, maybe I could have fit in more plants.

Moar UI. The level transitions were very minimalist. The font was hard to read on some levels if there was foul weather near the south pole.

Overall I had a great time this Ludum Dare. My feedback has been largely positive. Regardless of my scores, I’m still very pleased with the result.

Breaking News: Progress Report from Planet Spinny Growy

Posted by
Saturday, December 12th, 2015 8:43 pm

ss

I have a playable game tonight! I can rotate my barren planet around using the left/right arrows (that’s two controls, check it) and the rain increases the growth rate of my plants (you heard the word growth, right?). So okay, maybe that’s a loose definition of playable, but it demonstrates the core concept, which is a bar I don’t usually hit by Saturday night. Sure I don’t have any levels, I only have one kind of plant, and a lame growth animation, and I’m missing numerous key game elements, and there’s no music or sound or menus, and there’s really no goal other than watching the plants grow … but screw you, man! It’s playable! Woo!

I gotta keep the energy level up in here before I fall asleep on this pile of candy wrappers.

Such fancy post

Posted by
Thursday, December 10th, 2015 6:26 pm

I’m in for the compo. For a change of pace and to improve my repertoire I’m doing this in Unity. Hopefully my Haxe friends forgive me.

Game Engine: Unity5 in 2D
Language: C#
Editor: MonoDevelop
Base CodeSpewnity (just some random bits of code)
Version Control: Game Source
Graphics: Photoshop, FilterForge, possible Pixen
Sound: Audacity, Bfxr, Renoise w/VST plugins
Puppies: Who doesn’t love puppies? Nazis, that’s who.

Bad Tivo

No! Bad Tivo!

 

Good luck in the jam, and don’t forget to train your DVR.

 

 

 

Post-mortem: Flappy Monster

Posted by
Friday, August 28th, 2015 1:55 pm

Flappy Monster is a nod to helicopter-in-a-cave style flight games, and turns them sideways. More popularly known as “Flappy Bird” games, the thrust/gravity/navigation mechanic has been around for a while. In my twist, I gave the monster ineffectual wings. Flapping makes him angry (because he can’t fly) so he runs, runs faster, through buildings and forts of humans civilization who desperately lay down sharp pikes to stop him.

WHAT WENT WRONG

Idea waffling

I start each game jam by walking the dog and talking to myself like a weirdo. I run through the possible interpretations of the theme, what I think others might do, and how I might distinguish myself. When I get back, I have a drink (this time it was Remy cognac), sit on the porch, smoke a cigar and brainstorm. Normally by the end of the evening I have several ideas fleshed out and I’ve at least picked one, with the core mechanics designed. But this time, I was flustered, and was waffling between two ideas until 4AM.

The first idea was an homage to The Thing where you were accused of being the monster (but not actually). It was somewhat a logic game, where you knew little facts about the other people that clued you into who was the monster. Anyone left alone with the monster could become infected, and then you had two monsters. You assigned characters to do tasks which revealed more clues about who’s the monster. Characters would have trust levels with each other, making this task harder, and ultimately putting suspicion upon you, perhaps leading you to becoming infected yourself. I loved the idea, but I spent hours researching logic puzzle design and failed to nail down precise core mechanics.

The other idea was a chasing game. People thought you were a monster and chased you, and you responded nonviolently. If they grabbed you, they held you in place until you shrugged them off. If you stayed held long enough (perhaps because several people grabbed you), your health would begin to drop. The twist was when your health reached a lower threshold, you’d explode with rage, killing everyone on the map. So ultimately you are the monster (albeit provoked), and your goal is to survive long enough. I eventually settled on this idea, but I was still analyzing mechanics in the morning, trying to figure out how to make the chase exciting. Ultimately when it got to noon, I acknowledged that this design had too many issues and no time to work on them.

I came up with the Flappy Monster idea as an alternative, as something I thought I could build with the time remaining.

Poor prep

I generally code Haxe using the Sublime 3 text editor. It’s not an IDE. It has support for templates but I don’t use them. It has support for completion, code style, and shortcuts using the Clemos Haxe Bundle but I had trouble getting it working properly and stopped using it a while ago.

Under the hood, Flaxen uses Ash-Haxe as an entity-component system. The benefits of this system are only realized if you actually use systems and components to address states and behaviors in your game. These things require some boilerplate code. Not a lot, but when I’m coding under the gun, the extra minute it takes to set up this boilerplate and locate the file in the appropriate location seems like forever.

So instead I start hacking. The code base gets ugly, cluttered, and hard to extend very quickly, and by the end of the 48 hours I’m fighting kode krud in my desperate attempt to cram in one more feature. Next time I’ll put together some templates and macros to make this process quicker, and keep me leveraging the ECS.

Also, I had little practice with Spriter. While I love the ability to do custom animations in it, it’s a buggy and very quirky app. Between Spriter and TexturePacker, I was trying to discover an efficient art pipeline that wouldn’t drive me nuts. In the end, I barely escaped a Lovecraftian descent into insanity. Seriously Spriter, I have to enter my custom rect every time? You can’t save that shit in the scml file? Jerk.

Ran out of time

This “what went wrong” is always on my post-mortem list. And every time it’s my fault. Because I know I have 48 hours and only 48 hours to make a game, yet I “blow the time budget” at various points. I have to be more ruthless in my time management. Unknowns are a killer and a time sink, so prepare as much as possible, and if the design is not coming together quickly – ditch it!

As one gets to the end of the deadline, things stop dropping off your to-do list in favor of more critical priorities. In my case music and more special effects never happened. And the game would have benefited immensely from another hour of playtesting and tweaking. But that’s alway the case!

Users complained that the pikes were hard to see, the difficulty was brutal, the RNG was unfair, and the monster took too long to slow down. All true, my friends, all true.

WHAT WENT RIGHT

Knowing when to scrap a bad plan

I’m glad I switched ideas.

The chase game was still stuck in design, and I’ve been bitten before jumping into development without thoroughly understood gameplay. The idea I came up with was a twist on Flappy Bird, placing it on its side. Instead of flapping for height, you flapped for running speed. Instead of the “height” of a hurdle to get over, buildings of different sizes required a minimum speed to run through (or you get knocked back and your game ends). And to simulate a “roof” to duck under, I added pikes in the ground that you could only tiptoe through; if you ran too fast, you’d trip and get impaled.

It’s a decent twist. It doesn’t quite provide the same depth of experience as a flying game. For example, when flying you may have to fall half way down the screen, but in Flappy Monster (where the running speed correlates to flying height) there are no pikes that require a max of “half” speed. All pikes require you to go pretty slowly, so as a result pikes right before buildings can be quite punishing.

Completed!

Out of 9 Ludum Dares, I’ve completed 6. That’s a terrible stat that shows I have persistent issues with time management. In some cases I’ve hit the deadline very close to a playable game, which I consider a minimum requirement for submitting. (Some people don’t.) Despite my fumbles, I (eventually) leveraged my ability to recognize when plans needed to change, I identified and shifted priorities, and most importantly, I placed utmost priority and focus on the goal completion. Without that, no game!

Working on a Post-Compo version

When the compo ended, the game had only JUST become truly playable, and I was entering a groove where adding features and juice was eminently satisfying. So why stop there? I branched my code and kept working on a post-compo version, albeit at a more-relaxed pace. I added scrolling grass, shaded the monster, cleaned up and animated the pikes, added a demolition rumble effect, smoothed monster movement, tweaked the RNG to be less cruel, and gave the monster an increasing deceleration for faster and more dramatic slow downs. It’s more playable. And I’m still adding things to it. It gives interested players a change to look at something closer to “what I was going for,” and rewards them with a better experience as appreciation for looking. And I get to put in those missing elements that make me happy. :)

That’s a quote from the most excellent Muppet movie Muppets: Most Wanted, and it has nothing to do with this compo entry announcement. I just can get the songs out of my head.

Editor: Sublime Text
Language: Haxe 3
API/FrameworksFlaxen (HaxePunkAsh-HaxeOpenFL)
GitHub Version Control: Base Code and Game Source
Visuals: Photoshop, FilterForge, possible Pixen
Audio: Audacity, Bfxr, Renoise w/VST plugins
Animal: Bad frog! Bad frog!
Fräulein: Evilen froggen! Evilen froggen!

Thank you, Kermit, no more questions.

Time for plan B

Posted by
Sunday, April 19th, 2015 7:49 pm

As usual, I spend the first few hours of Ludum Dare coming up with several game ideas and evaluating them, choosing the one that has the best balance of interesting and completable. This time I made some major gaffs, picking ideas that were required major design work, replacing a good premise with goofy abstract puzzle mechanic that does the original inspiration no justice, failing to focus properly on a day one prototype, and getting distracted with third-party and not so third-party bugs. As such, although it’s almost time for submission, it’s still not actually playable. So, out of eight LDs, about I’m about to fail my third.

It kind of surprises me, falling into the same old traps, but that’s what it is. I had fun doing some pixel art, learning a bit from Derek’s great Make Games Tutorial.

specialist-red bookresearch-green

 

 

 

I’m mulling over the possibility of continuing to work tomorrow and entering whatever I get working into the Jam, but right now I’m tired. Good luck everyone!

Screen Shot 2015-04-19 at 8.29.44 PM

Jam This!

Posted by
Tuesday, April 7th, 2015 9:42 am

It’s that time again to make a public announcement that I’m ready to embarrass myself enter the compo!

Editor: Sublime Text
Language: Haxe 3
API/FrameworksFlaxen (HaxePunkAsh-Haxe, OpenFL)
GitHub Version Control: Base Code and Game Source
Visuals: Photoshop, FilterForge, possible Pixen
Audio: Audacity, Bfxr, Renoise w/VST plugins
Cheese: Cheese? Why are you bothering me about cheese at a time like this?!

Jam on, fellow ludophiles.

Post Mortem: Fireman vs Fire vs Snowman

Posted by
Wednesday, December 10th, 2014 11:50 pm

Fireman vs Fire vs Snowmaninstructions is an avoid-the-bouncing-obstacles game with a rock/paper/scissors twist.  The game takes place on three TV screens, each only showing the same picture but with the objects all different (e.g., whereas one TV shows a fireman, the second shows a fire, and the third a snowman).  You control which one screen is active. On the inactive screens objects blissfully ignore each other, but on the active one you control one of these objects and if it confronts another object something violent happens: either the object kills you (the object’s predator), the object stuns you (a matching object), or you kill the object (the object’s prey). To know what the interaction will be you need to be aware of which screen you’re on (which determines which object you control) and which objects are predator or prey. Killing something causes two new things to spawn, so it can get hard quick! But there are some tricks to make it easier.

This game was written in Haxe 3 using Flaxen, which combines an entity component system (Ash) with a game library (HaxePunk).

playerTiles

What went wrong

So … some things went wrong.

Ran out of time

My usual #1 item from “what went wrong” is running out of time. I fancy some day might occur where everything I put together works perfectly the first time out. I’d be done in four hours that way. Partially it’s caused from rustiness, partly from not having a clear architecture in mind and trying to use agile development. Iterative coding is a great way to focus and reduce bugs, but continuous refactoring is possibly a luxury in a game jam.  Also to blame is trying to take shortcuts that I eventually have to undo anyway, along the way these shortcuts introduce bugs during development that eat up an enormous amount of time. Also, frankly, I’m old and slow. I used to be young and slow, but I’ve never been a fast developer. I was told by an employer once, “You’re slow, but your work is ten times better than anyone else’s.” That’s what I call an affectionate slap. How do I get faster? Reuse of methodology. I’m always coding in different languages with different toolkits in different industries. If I just focused on one way of doing things since I started coding, by know I’d be the fastest coder on the planet. It’d be in TRS-80 Color Computer extended basic, but I’d be the fastest in it…

Lack of animations and special effects

Are these things important? Honestly having sound effects and a musical queue for the titling and between levels was far more vital, but how much better would this have looked with some more graphics? The fireman could actually hose the fire and leave rising steam. The fire could spread over to the snowman who falls apart before melting. And the snowman could freeze the fireman, blowing a cold wind and turning the fireman into crackling ice that then shatters. How lovely that would have been. Ah well. NEXT.

Not a pixel artist

Some of the pixel art from LDJAM participants is freakin’ amazing. I’m very envious. I’m not one of those people who believes you can’t learn, and I’ve done some pixel art tutorials in the past, but I have not practiced. I’m fairly bad at it. I’m better with non-retro art, where I can just go crazy with boxes and circles and photoshop filters, but in this game the main characters were so small there was no way around it. As such the fireman looks more like a hunter, making his relations obscure. (Hunter shoots fire?? Snowman beats hunter with own rifle??) I should practice it more, as it would help my programmer art all over.

Lack of final gameplay tweaking

Although the game was playable at the end of Saturday, it was hard to visualize what the experience would finally be like. On Sunday, I never really got to a point where I said, “Okay, here’s the completed game. Play it for 30 minutes, see what needs changing.” I had an idea that the game would be improved with wave system, bringing out a certain number of enemies at a certain rate, and giving a pause for the next wave while you feel a sense of achievement. But I had this idea too late, and if I got to play it as much as I did in the past couple days, I would have had tested a lot of changes to the difficulty ramping.

tiles

What went right

You know, I submitted a game to the compo in 48 hours, so by that very notion my game was a great success. :) But there were some things that stood out.

The right idea

As usual, I drum up three ideas for a jam before I start developing. I rejected the one that was easiest to develop because it bored me, and after conferring with my significant other also rejected the most exciting one because it would have been hardest to develop. Yay for mediocre? Nah, instead I look at it as a simple balancing issue. The idea has to be interesting, and realistically achievable in the time frame. And this was both. I can always go back to developing the “exciting but difficult” one on my own, later. In retrospect, the idea I chose was also the one I understood the most, mechanically. Those kinds of ideas are easier to prototype.

Focus on playability

I set my goal as having a playable game by the end of Saturday.  As a consequence, I stopped designing even though I didn’t have a fleshed out thematic layer for my idea. I had a list of 15 possible rock/paper/scissor replacements but didn’t like any of them. So I delayed that decision and focused on the mechanics. This meant I could go straight to coding, and it also meant I wouldn’t spend a lot of time on art, and would spend no time on animations, sounds, or special effects until the game was playable. I put together some crappy R/P/S icons and a dull, lifeless game frame, and got to the core gameplay by my self-imposed deadline.

I also was better with my time management. I kept a prioritized checklist on Sunday of things I needed to do and what could be eliminated. I came down to decisions like “do I need two distinct sound effects for these two variant events, or just one?” and “what’s more important, trying to throw together a short music track in 20 minutes or adding a rumble to the screen whenever you’re stunned?” (I chose the former, and barely snuck the tune in.)

Honing my tools before the comp

I moved this May and we sort of took an extended vacation to settle into the Charleston area. We were hosting visitors every other week for a while there! I stopped developing for all that time, and could sense the rust on me.  I updated all of my Haxe libraries. I forgot how much of my library Flaxen works, so I some time to improve the documentation while reminding myself of this toolkit. I fired up Renoise, which I hadn’t used in a year, to discover it was no longer operable. Redownloaded the latest version, found the license key, and then stared at the screen and blink while I tried to recall my workflow and any of the shortcut keys. I throw together some basic tunes just to stretch my old muscles. I should have spent some time putting together a practice game, but this was the next best thing.

Making the theme my bitch

I did not like the Ludum Dare theme “Game Entirely On One Screen” all that much.  It seemed like a very polarizing theme. I generally vote against themes that imply any sort of design limitation, as that can lead to too many games exploring similar ideas or implementing the same mechanics. Also I look to the theme to inspire, much like a writing prompt. Some folks said you shouldn’t let the theme stop you, but you do get rated on theme. I did not realize that this year you’d be able to exempt yourself from categories, although I’d probably feel dirty for not meeting the theme. To cover my bases, I met the theme in three ways:

  1. My game does not scroll, have separate backgrounds, does not have ancillary pages. My instructions are right on the screen the whole time. There is no main menu. The title, like the instructions and the UI, is made up of wooden signs that sit in the upper-right quadrant. Even the start button and “you died horribly” message are signs that peek out from under the pile and slide out when needed.
  2. The game actually contains three TV screens, but because only one is active, the game is entirely on one screen at a time. Some folks felt the need to point out that 3 > 1, as if that feat of mathematical comparison had slipped my attention. I think the three screens was my way of meeting the theme while simultaneously thumbing my nose at it. And I have a considerable proboscis to thumb.
  3. I added a snowman. Many Ludum Dares have a mascot, or some recurring popular secondary theme (potato, for example, in LD #26), and unofficially snowman was it for LD #31. Some might see this as me expressly NOT meeting the theme, but I see it as just another way in which I’m awesome. (YMMV)

It felt really good to complete a Ludum Dare. I hadn’t done so in a year, since LD #28. I failed to complete my game for #29 and I was unable to participate in #30. Thanks Mike.

Thinkin’ is easy! It only took me three hours!

Posted by
Friday, December 5th, 2014 11:03 pm

Well I did three hours of thinkin’ and I came up with three ideas that fit the theme. How do you explain where that time went? Well, there was a large glass of rye and a cigar, and also I walked the dog, and spent a lot of time talking to myself. I really don’t like to commit to an idea until I have at least three of them, and snowman johnson wilickers this theme is hard! Or very easy, if you cop out. I’m not content to simply interpret the theme as a design restriction, which makes it very hard.

I rejected all perfectly literal interpretations. The first idea is quite figurative, taking a different meaning of the word screen to mean a screen door. But it’s a bland puzzle game and my least favorite idea.

The second is literal but with a caveat, adding the words “At a Time” to the theme. This has opened up into a very doable game design, but I’m won’t be sure how fun it will until I get a working prototype. Also, it’s got a strong rock-paper-scissors element but I haven’t been able to come up with replacements for the three elements that make a lot of cohesive sense.

Finally, the third idea is the most ambitious, taking a meta approach to the theme, where the game is a story about a game. This one is in a kind of a linear, adventure style, and while I believe it would be very well received, I’m concerned that the story I need to develop before I build it and the associated asset requirements might be more than I can accomplish in the time allotted.

In short, I’m going to make myself secret sandwich and then sleep on it. The secret sandwich is a PB&J. I’ve probably said too much.

I’m in for the compo. It’s been a while since I’ve completed one of these things, but let’s give it another go, shall we?

Editor: Sublime Text 2
Language: Haxe 3/OpenFL
Frameworks: Flaxen (HaxePunk and Ash-Haxe)
Base Code: GitHub
Version Control: GitHub
Visuals: Photoshop, FilterForge
Audio: Audacity, Bfxr, Renoise and some plugins

I do enjoy working with an entity component system like Ash, even though the Haxe port hasn’t been updated much this year. I haven’t done much work on Flaxen lately,  so I really should spend a little time this week to take it for a spin and make sure everything works rather than wasting my weekend fixing my tools. Good luck, everyone!

Debacle shutdown commencing

Posted by
Sunday, April 27th, 2014 2:50 pm

I may have gotten cocky.

I failed to complete my first Ludum Dare compo (LD #25), but I learned from that experience. Since then, I focused on a single set of tools (Flaxen), rejected ideas that relied on new skills, and focused my work on leveraging my code base rather than altering it. Since then I submitted games into the next three Compos and a MiniLD.

Maybe those experiences went to my head. This time, I broke all my rules and never got close to a bare prototype, let alone a finished game.

I spend the first hour of the compo just brainstorming. I have a cigar, walk the dog, sit on the deck, maybe have a little drink and just ponder. I turn the theme over in my head, rejecting what I think will be common interpretations, applying the theme literally and figuratively, looking for the things that live beneath the surface or things trying to escape it. In this case I came up with several ideas, here were the top three:

  1. A plant simulator, where you plant seeds that develop roots through the various minerals of the Earth, taking what they need to grow, poking through the surface if they need sunlight or rain. Each plant sufficiently tended to would grow a different seed, which would grow a different type of plant. Figuring out how to grow Plant #10 was the goal. I loved this idea, but it seemed a bit similar to my LD#27 submission Offspring, and designing the plants and growth system might be complicated.
  2. A giant worm that travels through the Earth and is hard to steer (similar in complication but different in mechanics to a Flappy Bird/Whatever). This would be an endless game, as you tried to maintain speed, avoid obstacles, conserve energy and eat! You could leap out of the ground (losing steering) to try and bag a land mammal for your supper. This was a fun concept. I thought the worm might be tricky, and the success of the game would depend entirely on how good the steering felt.
  3. A prospector on the frontier falls into a well. It’s a long way up. This is a climbing simulator. You drag one limb at a time from hold to hold, risking losing your grip or slipping if you put too much strain on one limb. This was a simple game, and there was some opportunity for me to add some comedic lift by having the prospector narrate his climb and use audio to indicate what limb was under the most strain. Since this was the simplest, and this was Melissa’s favorite of the three, I went for this idea.

However the third idea had a serious caveat – I need to implement some rigid body physics, which I have little experience in. I decided to do a little exploratory prototyping to see if I could refit Flaxen to support some basic rag dolling. After a number of false starts and failed attempts, somewhere along the line I realized the day was gone. Despite my plan, I spent the whole day trying different approaches to squeeze physics into this engine. I was reasonably certain at this point that it would require a major refactoring to add this support.

Here was the end of day one. I could have picked one of the other ideas, but to do them in 24 hours was an uninspiring limitation. I decided to instead focus my time on a third party physics engine for Haxe. If I was lucky, I would pick it up in a  few hours and be somewhat back on track with the Prospector. I researched a bit between Nape, Box2D, and PhysAxe. Nape seemed to be the most popular, so I went with that one. I discovered several things: Nape is cool. Nape is complicated. Nape is not doing what I want.

I spent most of today messing around with it. Integrating Nape with Flaxen was very simple, just adding a System that loops through all entities with Nape components and using the data therein to update the associated Position and Rotation components. After some time I was able to get my model which I assembled in Spriter to show up statically in Nape. However I spent the rest of the day struggling with constraints and joints, failing to get them to work as I expected them to. I’ll keep plugging on, learning the Nape way of doing things, because it’s a very cool tool to add to my repertoire. But as for this compo, it’s time to shut down!

Good luck to everyone who submitted a game, and particularly everyone who is racing to complete a game before the deadline. :)

spriter

Ugh

Posted by
Saturday, April 26th, 2014 1:01 pm

As it turns out, creating a rigid body physics system from scratch during a 48-hour game jam is not such a great idea.

My idea stars a prospector on the frontier, who slips and falls into deep chasm. He survives, but has to climb out. To do this, you control the limbs of the climber, dragging them from hold to hold. Ideally the game would calculate how much strain each limb was under, and he could lose grip and fall again. I picked this one because (so I thought) it was the simplest of the ideas I had come up with. Here’s the art I did for it. Ignore his missing limbs, they would just be mirrored in the game.

sshot1

Unfortunately, Flaxen (my base code) doesn’t handle hierarchical transformations, let alone joints and rigid body constraints. I’ve wasted hours today just getting a positional transform to cascade, but this is worthless without also handling rotation. (And scale? Fuhgeddaboudit!) I’m feeling stupid for even trying.

So at this point, I’m going to do a cursory search for some rigid body physics libraries for Haxe, but it seems unlikely I’ll find anything that will integrate quickly with my library Flaxen, let alone the dependent libraries of Ash and HaxePunk. Then I’ve gotta decide if there’s enough time for a plan B, or do I just call up my friends and say never mind, I’m coming with you.

Oh framework

Posted by
Saturday, April 26th, 2014 10:41 am

Man! I waste so much time updating my framework to add new core functionality, when I should be building the game. My base code doesn’t handle nested position/scope very well, but ?!@$*! this isn’t the time to be fixing that! Gotta get back on target…

Ludum Dare 29: Entry announcement/waffling

Posted by
Wednesday, April 23rd, 2014 8:14 am

Ludum Dare always seems to arrive during busy moments in my life. In this case, we’re moving to another state in about two weeks.  Things are busy busy busy.  So, at this point I feel like I’m in, but there’s a chance I’ll have to bail.

Editor: Sublime Text 2
Language: Haxe 3/OpenFL
Frameworks: HaxePunk and Ash-Haxe (ECS)
Base code: Flaxen
Visuals: Photoshop, FilterForge
Audio: Audacity, Bfxr, Renoise and some plugins
Version ControlGitHub

Regardless, have a good LD, everyone!

[cache: storing page]