GBJam game, untitled

(Jacob Albano) #1

So I heard about this GBJam thing, and it sounds like I’ve finally found a game jam to get interested in. I haven’t made a jam game in the longest time so I’m jumping in.

The restrictions are on resolution (144x160) and four colors maximum, though no restrictions are made on what those colors must be. I’ll probably do art in grayscale and modify the bitmaps as I load them. Color palette is still under judgement, though I do like the look of @zachwlewis’ solarized suggestion in the Primary Colors EP thread.

The goal at this point is to make a micro-metroidvania, with some enemies, a few secrets, and a boss or two.

We’ll see how it goes. I’ll update the post as I work on it.

Dynamic Palette Switching
(Jacob Albano) #2

First commit. There’s literally nothing going on yet.

(Jacob Albano) #3

Blocking out level segments in Ogmo. Probably won’t have many more different types than there are in this testbed. Nothing on the repository yet; I’m going to bed. It’s far too late.

(Mike Evmm) #4

It’s always interesting to see a step by step development log.

(Jacob Albano) #5

This update brought to you by AutoTileGen, which I spent most of today playing with. It’s a really great tool that allows you to make tilesets with transitions, edges, corners, and more by just supplying four base images. I’ll be making a post with the Flashpunk implementation soon.

I suck at backgrounds.

Also got some very basic jumping and movement controls in.

(Zachary Lewis) #6

Looks like Thomas Was Alone so far.

(Jacob Albano) #7

Thank God for Mike Bithell lending credence to programmer art all over the world.

Also, thanks for moving the topic.

(Jacob Albano) #8

Added initial player sprite and palette swapping. :heart_eyes: Since we can only use four colors in total, I’m doing the art with four specific greyscale values and modifying the bitmapdata when I load it. I can change the final values by tweaking a config file, which looks like this:


Code pushed for the night. I should commit more often.

(Zachary Lewis) #9

@jacobalbano I put together a dynamic palette switching demo with you in mind. It has all of the GameBoy Color palettes built in and it runs really quickly at runtime thanks to BitmapData.threshold().

Maybe you can make use of it.

(Jacob Albano) #10

Added an attack animation.

@zachwlewis Your palette switcher is working beautifully so far!

(Zachary Lewis) #11

Good to hear it! Gotta’ share a gif of toggling pallets with moving entities. I just used a Stamp for my images, so I wasn’t able to get the full affect of the color swapping.

(Mike Evmm) #12

Might I suggest the sword movement is reversed (up-down)? That way it would end at the sword’s resting position. (It just seems more logical to me that there’s a “position jump” at the beginning of the movement, rather than at the end)
Looks good!

(Jacob Albano) #13

That’s a good point about the sword movement. I’ll play around with it.

I’ve been out most of the day but I did get the basic movement finalized. Added walking animation and frames for falling, jumping, and sliding on walls.

(Jacob Albano) #14

Wall jumping!

Progress is still going pretty slowly, but since I’m participating in an attempt to blow off stress, it’s probably a good thing. Movement is totally done at this point, I think. Time to get some enemies in here.

(TaylorAnderson) #15

Have you considered perhaps turning those lines in the background into rain? That was the impression I got when I first saw screenshots

Also: looking good!

(Jacob Albano) #16

That’s a good idea. It’s super ugly at the moment but that’s because I tried to make a good tiling background for like 45 minutes and just said “screw it”. Rain would add some nice atmosphere and movement to the stage.

And thanks!

(Jacob Albano) #17

Working on adding enemies now. Here’s what the code looks like for the very first functionality:

in blob.xml

    <hitbox width = "16" height = "16"/>
    action "actBusy"
        print "hi"
        sleep choose [ 1 1.5 2 ]

The result is…not terribly exciting. I’d show a gif but I’m sure we can all imagine what Flashdevelop’s output window tracing “hi” every 1, 1.5, or 2 seconds looks like.

Still, I’ve got bare-bones data-driven thinking going on. It’s a start.

(Mike Evmm) #18

Pretty nice.
I’ve had plenty of trouble setting up platformers, is the source publicly available?
Also, is that Slang I see?
(and wall jumping is really cool, in itself. Might I suggest some particles when sliding down the wall?)

(Jacob Albano) #19

It is, though I’d warn you that I’m not great at setting them up either. I spent a long time getting the physics to feel right on this project. Check out the bitbucket project.

Yep, that’s Slang! Using it after all this time has made me realize that it needs some more work, so I’ll probably do that after this is over.

And particles are definitely on the agenda. :wink:

(Jacob Albano) #20

Got some blobby enemies that blob around.

Here’s its brain:

set var direction 1
action "actBusy"
    set var wallLeft World:checkWall -20 0
    set var wallRight World:checkWall 20 0
    set direction match [wallLeft wallRight]
        case [false true] -1
        case [true false] 1
        case [false false] direction
        case [true true] 0
    Mover:hop direction
    sleep chooseFrom [0.5 0.7 0.6]