About nine baobabs

Entries

nine baobabs's Trophies

nine baobabs's Archive

immediate afterthoughts

Posted by
Monday, December 8th, 2014 7:16 pm

I’ve been following along with the handmade hero stream and learning a lot. It’s been 2 or 3 weeks since the start though and we’ve covered a lot of new stuff for me, so I wanted to go back and do a kind of accelerated review.[1] Ludum dare just sort of happened to coincide, so I used it as a kind of excuse to spend the weekend programming (although I’d been eyeing LD31 in particular since doing 7dfps last month).

[1] And since recall is so much better for solidifying memory than reminders, trying to do everything from scratch was important (using the api docs though, of course — I’m only mortal ^-^). Plus I really wanted to get that old-school feel of just pushing bits to the screen and directly manipulating pixels.

So with this sort of challenge to myself I just kind of dove in without much research or forethought. Then sometime around sunday morning I realized I was basically following all the rules for the compo (“huh? there’s rules? what do you mean jam vs compo?”) and things were going pretty well so I decided to try and get something all tied together by the deadline. It was tough to quit though, I kept on finding myself adding features, right up to the deadline (leaving the actual balancing of the game pretty much undone). Game prototyping is always this balance between fixing things and adding things.

In terms of the initial goal, though, the whole weekend was a big success. I’m really starting to feel more comfortable with the windows api, so much that I’m starting to see all these potential things to make: neat tools and things to make life easier and just generally be more awesome. It’s sort of like I’m starting to see this other level of potential. Sort of a level above power-user.. like.. superpower-user. The OS has always been like the reality on which we build our little worlds. But I’ve always been afraid of getting close to it, thinking it too complicated and dangerous. But it’s all kind of easier than I imagined, and when you do get down and talk to it directly, you find everything you had taken for granted about the way things are, and the rules that govern the fabric of this reality: it’s all more malleable than you thought. Like, you actually have power over this world if you want it.

But I’m starting to digress, weren’t I going to talk about the game? Ok…


What I like about how the game turned out…

It works? It’s sort of a whole game?

It’s not too hideous? (Although people claim [I won’t confirm] I’m a little colorblind so picking subtle shades of white was kind of a challenge.. err, I mean, it would be a challenge in that hypothetical world… But, in my case, never fear, it was just the normal kind of challenge: that usual one of overcoming your own ineptitude).

I like the feel of knocking the blocks out of the snowmen, and that little head with a hat moving around is strangely satisfying to me. I like how using non-targeted attacks can get you nowhere, and even undo damage you’ve done. (The collision detection still feels a bit wonky, though.)

What I don’t like about it…

The difficulty ramp is kind of a mess, I tried to clean it up a bit at the end but didn’t really give it the time it needs.

It’s not actually all that interesting of a game. (I could go on about this one but I’ll leave it for now, maybe pick up the thread in a proper post-mortem at some point. [Oh wait, that’s sort of what this turned into.. well I’ll leave it for later, all the same.])

I don’t like how the snowmen all bunch up. I tried to mitigate this a little by making each snowman not target the player exactly but a random point near the player instead. This helped, but they still group up too much. (This had the unexpected added benefit of being slightly harder to hit than if they just came straight at you). I should look into some kind of basic flocking behavior.

Not in love with how the collision detection works on the snowballs/snowmen. I tried a basic bounding box collision, but it would always hit whatever part of the snowman was closer to you (hard to target one area). I tried using just the center of the snowball, but they would fly right over the snowmen’s hats. I ended up with something in the middle, though it still doesn’t feel perfect. (Basically what I think needs to happen is give each snowball instructions like this: “if you just nick the corner of something, see if there is a better target beyond what you hit.. if there is, brush off the corner and hit the better target. if not, register a hit on the corner.”)

I really wanted to animate things (the player throwing and the snowmen jumping) but it sort of turned ok without it. If I kept working on things, I’d probably add this, though.


What went well.

Using C (well, I guess technically C++) went well, I really enjoyed using it. Still do not get how strings are supposed to work, though.

Like mentioned earlier, the windows platforms stuff went well, mostly from having it all sort of so fresh in my mind from handmade hero.

It wasn’t really necessary for a jam game (I feel like good coding practices rarely survive the weekend, if they aren’t the first thing to go), but keeping a clear separation between platform and game code went well for me here. Things started to get a little messy by the end and the whole thing needs that traumatic post-ludum-dare cleanup and restructure, but overall the foundation didn’t crack too much.

Just drawing basic flat squares didn’t look so bad as I imagined, maybe as a kind of accidental byproduct of flat design being sort of in vogue (or is it so 2012?).[2] Also having more colors and pixels to work with gives us an edge over drawing squares in the days of yore. Also, a consequence of having basically just one way to draw something (“DrawASquareHurrHurr()”) and no actual, like, art or sprite images, means you get a sort of internally consistent aesthetic for free.

[2] (Or soo mid twentieth century?).

What could go better.

48 hour jams are not really the place not great for trying to learn completely new things. (They are great for trying new things, though.) Two-day jams (and less) seem to work best when you’re comfortable with your tools and workflow. I was reminded of this when trying to add an icon to my exe, which I had no idea how to do. I spent maybe 2 or 3 hours on this which, of the total time spent on the game, is easily over 10% of the weekend. A big chunk of time for having nothing to show for it! ­čśë There will always be unexpected time-sinks and dead-ends, but some of these you can avoid if you’re careful (sometimes it doesn’t really matter, I mean: it’s just a weekend, what have you lost if it all crashes and burns?). Summary: experimentation and LD go well together, research and LD less so.

The game balancing / design / play experience itself needs some love. It’s easy to say ‘oh if only I wasn’t so focused on learning these new programming things, I could focus more on the game’ (and I think that’s true to some extent, I mean you only have so much time), but it’s also basically an excuse. I don’t think focusing on code and design are mutually exclusive, at least I want to believe they aren’t at this point in my life.


Since Unity is my usual weapon of choice, some quick comparison:

Unity vs C from scratch

The biggest difference that jumps out at me is actually the deployment. Unity just deploys so many places, it’s very nice for jam games. The web especially is nice, it makes it very easy to play your game.

In terms of actually making the game, though. I didn’t feel like I really missed having a full engine. (3D would be a different story, I’m sure.) Yes, I had to keep things simple so I could program everything, but I also wasn’t looking up random library functions all the time.

Overall, jury is still out. I’m basically still a dilettante at both.

sunday morning update

Posted by
Sunday, December 7th, 2014 6:14 am

8am, sunday

Just the barest skeleton of a game is there. Ended up spending longer yesterday than I intended, just got carried away in the fun. Got off track ratholing a few things but nothing serious. Gunna try to wrap things up here pretty quickly and get on with the day.

officially cut: sprites (squares ftw!), sound, animation (RIP, animation brings so much to a game).

saturday morning update

Posted by
Saturday, December 6th, 2014 8:40 am

10:30am, saturday

Successfully drew a pixel to the screen. (A whole window full, even.)

Should be able to move shapes around by noon.

Targeting a finished game by 6. Tomorrow tighten up the experience: score or levels, an icon, sound if there’s time (poor sound, always getting the short end).

 

Tried the platform stuff from memory, didn’t even get a window open before having to look at a working reference project, haha!

time to do the thing in the what now

Posted by
Friday, December 5th, 2014 7:22 pm

plan:

-wait for theme

-read theme

-go to sleep

-wake up

-run

-go to store

-make game

 

game idea:

-simple

-very simple

snowmen snowpeople?

-practice win platform code from scratch?

-circles maybe

-probably squares

-colors, colors, colors

-maybe no sound?

-wing it

-story of life, my friends

[cache: storing page]