About seagaia (twitter: @seagaia2)
Well, this weekend I’m actually in a bit of a crunch period for my current game, Anodyne . I do love Ludum Dare though so if you’re thinking about doing it, so do it!
Join the community! Make friends! Make games!
Crosspost with my wordpress – seagaia.wordpress.com
This past weekend I made a game, “Naos”, for Ludum Dare 23, around the theme “Tiny World”. If you haven’t played Naos yet, you should do so now, the blog post will make more sense.
Aesthetics were very important for me in this jam game. So I tried to pick carefully what kind of music I wanted to write. The game wasn’t supposed to represent a wholly realistic thing, so the music sort of reflects that in a haunting/minimal way (the organ-like house loop, the chime-like thing in the forest). The more action-like piece at the cliff helps to show that there is some action going on there (i ended up redoing this one the most…). As for the intro/ending thing…I couldn’t really think of a fitting melody, so I added some fancy-ass white noise that I thought fit.
I like the chimes piece the most, and would like to expand upon that. I feel like part of it was definitely influenced by listening to the Fez OST ( http://disasterpeace.com/ )way too much over the weekend – especially with the bitcrushing it uses, which I felt I may have overused in a place or two. Two pieces in particular I found salient were Spirit and Nature.
Graphics style…WHY? MY EYES!
Admittedly the game’s blur was a bit much. I did think it suited the quiet/haunting/ethereal-esque nature of the game, though. I wanted to try the scribbly style. Spending more time would have of course improved…well, everything. In a normal setting they wouldn’t be that rushed, I’d use a tablet, etc. Right now, it looks just good enough to not seem completely sloppy. (But is, still, of course, sloppy )
I was playing a lot with BitmapData objects in AS3 (surprisingly for the first time…why? I don’t know…but now I’ve got a level of comfort). They more or less represent what will be drawn to screen. And you can do interesting things like pull out certain color channels, transform them, and superimpose them on the original graphic. Or, you can blur things at different levels. The way I did blurring wasn’t ideal, I surely could come up with a more plug-and-play way of doing it, rather than the somewhat terrible way I have now (at least it’s organized terribly), which was to copy the sprite’s data, and keep some external data that determines how much to blur it – essentially, I have a copy of the data – I copy it to the displayed sprite, blur it, draw that to the screen, etc. The same idea goes for the color offsets. I played around until it looked okay.
I also played with a new logo for Seagaia today. It shows up on the intro screen. I like it. It’s a bit of a rip-off from. It was fun to make, at least the top part. There’s this nice thing in GIMP where you can copy and paste every other row, and then you make it a bit transparent, modify it a bit and superimpose it to get this neat shadow-y effect.
oh so how was the coding
Straightforward for the most part. Every room was a different state, with its own events and so forth.
Became an ugly mess near the end with the event coding since I haven’t figured out a nice way to do events with flixel yet…want to definitely figure that out. I’ve been asking around a bit, but not much in the way of detailed cutscenes. x_x
Since I already talked about the graphics coding, the only really interesting aspect was the events. How do they work? Well, for one, it helps to draw a tree of your dependencies with state variables. For example, “E_CLIFF_2″ represents the 2nd cliff cutscene, “DRAWING_1_DONE” represents finishing the second drawing. And so every iteration of the game loop, depending on what screen we’re in, we check to see if we need to start an event. Essentially, events just freeze character controls, and wait for some condition (my player’s x being at some point, pressing x to advance text) to occur. Each event has an “event_pos” variable that is incremented when that condition is true, bringing the event to the next part (text, movement, whatever).
While this method works for a game jam, it doesn’t really scale well (see the other game I’m making) when it comes to moving many sprites that you don’t want to have to hard code into the game…and it’s a bit hard on the coder with the repetitive switch statements (see.https://github.com/SeanHogan/seagaiald23/blob/master/src/CliffState.as JEEZUS.)
An interesting bug resulting from this was that I didn’t nest one of the “if you press x increment the event counter” things deep enough, so if a player pressed X before they should have on the forest screen, you would be frozen when you actually pressed X over the right thing. Thanks to my friend Runnan for showing me that issue…gah!
One way this could have been done better is to have only checked for events once upon entering a screen, or have had some single “an event happened” variable to be checked, rather than all of these conditions on every iteration of the game loop. While this is okay because performance didn’t really become an issue here, it would be something to think about in some sort of later implementation.
so what the hell was this about?
it’s a secret! well, a few people have messaged me on NG about it, surprisingly. My interpretation of it is more or less solidified, but it’s interesting to see other people’s takes on it as well. In lieu of not looking all pretentious, i won’t write about it here. but if you’d like to know, shoot me a message.
that’s all for now.
if you found this interesting, you should follow me on twitter . http://www.twitter.com/seagaia2
also earth day!
post on “Naos” to come!
-oh god, events
-don’t mess with flxsprite’s pixels field!
and much much more
I felt somewhat ambient tracks would be fitting for my game this time around. I’ve been listening to the Fez soundtrack way too much, and that’s been a large influence (thanks disasterpeace!) so that i decided to attempt using the whole bitcrushing and downsampling style. These are some rough cuts of the loops that play. I use some random bitcrusher vst I found, and then this sega genesis soundfont for the vibes/other synths.
the song that plays in the cliff area
the song that plays in the forest area
Why Naos? Well, I like the sound of the name. It’s a star name or something, so you can probably find some deep etymological meaning if you’d like.
Anyways, the game. You basically walk around, enjoy the sights, and make little pictures along the way.
Okay, elevator pitch description aside:
The game is part story. A guy gets fired, friends gives him advice to go spend time somewhere else. So, he goes to the woods for a few days. There’s not much to do there, so he’ll have to figure something else out. He’s a pretty boring guy, too. Luckily, there’s a woman in the woods for some reason, and she shows him that he can paint – and that’s where you come in! Using some sort of interaction you get to “paint” on a canvas or whatever. I don’t know. I’m hoping people can find some satisfaction with getting to make something while playing a game.
This game doesn’t make much sense to me either, but it’s been a lot of fun to make because I’ve been messing around a lot with combinations of blurs and color transforms, and playing with this “scribble” art style as well. I’ve been wanting to figure out a way to make user interaction produce something semi-interesting.
How does it relate to “Tiny World”? Well, I don’t really want to explain, but a way you could start off on doing so is by interpreting “Tiny World” as the worlds we usually inhabit being, well, quite tiny! But the tiny-ness isn’t necessarily a bad thing, no matter where your tiny world may be. To be honest, trying to say that’s what my game is about would be quite pretentious. I mostly just want the game to be a pleasant experience.
so, my game. it’s a bit of a narrative, it’s also a bit of an interactive little drawing game. i’m having a lot of fun so far messing around with basic bitmap manipulation things that will let the player draw things! who knows what will happen.
the scribbly style is kind of fun…it’s partially lazy, but I think it could look decent with enough work
anyhow, here’s an image from ~5.5 hours in. i’ve sort of gone through thinking of music to write, and a few basic crappy animations. the idea is you will at a few times draw stuff on canvases, and these pictures will be saved. and a bit of a narrative, too
So, there’s a thing I always want to get across to people, and that’s the ability everyone has to create and pull themselves out of the boredom they always claim to have.
I’m going to try to get that message out (as non pretentious as possible) through my LD23 game. How does the theme play in? Well, the protagonist will be living in a “tiny world” – an isolated little town , brought there for some yet-to-be-determined events, boredom strikes, but he runs into an old friend (HOHOHO “small world!” okay that’s terrible, but yeah). In any case, you get to go through a few scenarios where user input draws certain pictures. So fun bitmap manipulation and the like, right? Right. You can live in a tiny world, physically, but that doesn’t matter. You can still find inspiration for things everywhere – yes, that’s the moral! you should make something, basically, i don’t know. hm.
That’s my reason for making it, but I obviously don’t intend to get that across bluntly. In any case, I kind of want the game to just be an enjoyable to play game, and unique to each player’s playthrough (unique in that the drawings you generate will be based on your input). beautiful things (well, the drawings may not be so beautiful) will come out of it.
I’m envisioning a very “warm” sound track…perhaps using that genesis soundfont I found yesterday??
as for the art style, i’m going to try something kind of possibly disastrous – a “sketch-like” aesthetic, drawing everything with the pencil tool in gimp. it might look crappy but i’ll try my best not to. you know, where every normal frame actually has 3 or 4 frames so the player looks like it’s sort of dynamic when standing?
so i made a game for sopa jam.
youre a person and you help disco pirates fight off pro-sopa jetpack policeman, with the power of rainbows.
i couldnt figure out the kongregate api/flixel stuff, but I think I will do that when I finish a bigger game. heh.
Time lapse here!
Ah, finished! Well, as much as I can. The graphics are…extremely lacking, there are no cutscene animations, but I figured those were things I could let go, so it’s okay.
Explanation of story
Anyways, the story of the game. It’s kind of ridiculous – Duke is this guy, a super Davement fan – so he goes back to 1990 to snag their demos, but gets stuck. He also has an anxiety disorder so needs to stay on meds at all times (12 second intervals, actually). The whole anxiety thing came from a dream. Personally, I’d be anxious/distraught at first if I was stuck in 1990…I’ve asked other friends how they’d feel, answers range from “I’d be okay.” to “Whatever.”
So I guess that’s the premise of “alone”. Sort of forced, admittedly, but hey. Made for an element of being rushed, and it was something I could manage to do in 48 hours, so I’m fine.
Anyways, he decides to go beat up the members of Davement by breaking into their houses at night while they’re sleeping, and force them to join *his* band. And during the day, Duke runs around his house (which always changes…), collecting notes, which, uh, for some reason, makes Davement’s future hit singles!
The basis of the game ended up being racing against the clock, eh, overdone, but doable for now. I didn’t really have time to code other special types of tiles (in fact I had to code the coordinates of the collectibles by hand…oops, going to learn how to avoid doing that…).
The “anxiety meter” fills, as it fills more, a out-of-tune..tune…starts to play, the screen darkens, until you fail (in which an undone “you lose!” screen pops up, and you turn into a black rectangle), or you get an anxiety medication – which fixes everything!…for 12 seconds.
Right, so there’s that – on the note-collecting stages, since my resources were limited…I tried to make an element (at least on the last two stages) of trade-offs in time/difficulty – players can go for all the notes, but it takes longer time, so losing has a greater penalty in that respect – and of course there is less room for error (although admittedly the game isn’t very hard.)
And the cutscenes, well, they devolve, I could not particularly get in the mood to make them very witty or whatever. The ending doesn’t even have music! It’s a screen! That’s it…I added some variance on the ending dialogue based on how you did, from the “Ditchpork” review society…but that’s not even very funny. But, ah, that’s okay.
…more or less, the spriting was a disaster, as the tiling. Never realized how long it takes to tile a good map, once you get the tileset drawn! Definitely something that should be simpler and still look okay next time…
There is no animation in the musical notes, and they look like crap. The pills “rotate” albeit at 6 FPS, and look terrible. The animation of the character is embarrassing, but, ah, that’s okay.
I’m satisfied with the background, though! Those are fun to draw.
I ended up not writing as much music as I though for this. Just this cutscene bossa nova thing (which is basically the most cliched chord progression, with a tacked on melody), and this…chill triangle-wave stage theme. I wanted of course, an ending theme, different stage themes, but I am too tired! Ah. So i guess I’m okay with the music. Making the note sounds was fun (did it in pxtone, cut up into 5 mp3s). As is the “ambiance” for when you grow close to losing!
Well, time management, for one. And drawing. have to practice more at that.
As far as programming…everything ended up sort of straightforward. As much as I dislike coding in windows, the Flashdevelop IDE really is quite useful and much faster than what I was using this time (vim on ubuntu). I also had a crappy debugger for linux (just trace statements, oops), which became a pain in the ass every now and then where I’d leave a string set to null or something.
I guess the tough thing with programming is, of course, organization…i.e., setting up the attributes of certain objects, etc. Flixel is nice, but everything really *does* seem to end up global. Ah. I suppose I “copped out” with the programming aspect, in terms of challenging things to code! But I wanted to play it relatively safe for my first time, so, yes.
All in all, I’m glad to have done this, and have some sort of finished product!
First, a screenshot…(click on it, it’s scaled down in the blog post.)
So, the game is going swimmingly, I think. I’m planning for 5 stages (each with two phases), I have two of those done so far, as well as most of the mechanics. Once I iron out the mechanics of the ending (gameplay influences the ending), I’m going to finish the level design (so there’s a game), then probably move on to making the tileset look less like crap.
It’s interesting to think about how to make the game design progressively more difficult. At the moment, the character really only jumps. I feel like the timer (anxiety-relieving pills) add a sense of urgency, which is a nice effect, well, maybe. I think added difficulty can come from different types of platforms (Shouldn’t be that hard to implement?), some small other interacting objects that affect the anxiety meter, etc…
I’m going to try to stretch out the difficulty as much as possible without implementing those things, first…I want to get at least a rough thing finished soon. Plus, I need to figure out how to make this work on windows. It works fine in chromium on ubuntu. Not sure why not windows – I thought the compilation process was cross-platform, but maybe not. I think I’m going to look into that now, actually…
Anyways, the plot of the game. Still more or less just absurd, but that’s okay – it’s more fun that way. I’m not really in the mood to, well, make a moody game of any sort.
Pretty excited to do the music for this. Since this game is slightly related to pavement, I might do some short mockup of one of their songs. I’m assuming I won’t be sued or anything, but hey. I’ve had some ideas for ways to incorporate music into the game other than the usual, but I’m leaving that for if time allows.
the game’s calle d”Enslaving Davement”. more on that. github has readme and my notes which explain things, but I think i’m going to type an explanation after this is all over, so straight to how it’s going…
the skeleton of the game is implemented, more or less. there are sort of 4 states to the game:
Day, Night, Ending, Cutscenes.
The states, of course, are visited multiple times (except the tentative ending). In the day, you collect musical notes…for a certain purpose…while also trying to keep your impending feeling of doom and anxiety from growing….
Then, at night, you visit members of the band Davement’s house. You must try to keep your anxiety low, make your way to the person, and…
If time allows there will be cutscenes (read: plain text and pictures, nothing fancy) between stages or at least the intro/ending. I’m hoping the ending will take into account performance on each of the stages, and produce snarky commentary based on how you did.
framework: More or less there- transitioning, making sure crap carries over, handling deaths. nothing pretty, just the logic.
level design: HA.
graphics: crappy placeholders.
The next few hours I plan to try and polish up the flow of the gameplay’s skeleton – after the most worrisome part (the programming) for me is done, I can focus on the (relatively) easier creative aspects, which will fill things in.
Excited to try this out. I’ve only recently been in the process of making a platformer using Flixel in terms of game design.
This should be a fun creative excursion!
-Vim for coding, MXMLC for compiling from AS3 -> SWF, and Flixel as the main library.
-GIMP for tiling/spriting
-BFXR for possible sounds. PxTone, my favorite quick tracker, for music!