Archive for the ‘Snake Game’ Category.

Weekly progress post #15: Lots of new rooms!


Today’s stream was extremely productive in terms of ESA 2! I implemented the basics for 3 new rooms and finished one I started last time, along with fixing tons of little quirks and bugs (and encountering new ones on the way!) There are a couple design issues I’ll need to decide on really soon and a new boss right around the corner; in general the game’s progress seems to be really nice! I also did a little run of the game as it is right now and it took me half an hour to get through it all, although I did spend some time just chatting. I’m not sure if that time is reassuring or worrying. Time will tell.

No work on Snake Game tonight because there’s a problem I can’t do much about that’s causing crashes and I really want that one squished before I continue.

Weekly progress post #14: Slow but steady


Early day tomorrow so I had to keep it short. Nevertheless, in ESA 2 we’ve now reached the hookshot powerup once again! Some implementation problems arose, though, and I’ll have to look into those before the next stream. Similarly, in Snake Game progress was slow because of a LUA-related thing that I need to look into which is way too boring to stream. Oh well!!

Weekly progress post #13: They work!!


Fixing the moving platforms turned out to be surprisingly trivial! I’m glad. I implemented the basic structure of this weird vertical, moving room and the one after that. I feel that the new rooms have been slightly too bare-bones but at the same time I’m trying to be extremely careful not to fill them with too many hazards.

Progress was also nice with the snake game; the new snake needs some more design thought put into it but I have a very good feeling about it!

Weekly Update #12: MOVING PLATFORMS!!


Pictured here is mild frustration. I thought I had fixed the moving platforms, but as it turns out I only fixed them when they’re moving vertically! I’ll have to do some extra fixing for horizontal movement and during today’s stream I basically just gave up and decided to tackle that later.

On the other hand, I got surprisingly far with a first test of a new snake in the Snake Game, so that was great! No gifs because I’m weird like that. All in all I’d say that the stream was fairly successful despite my tiredness. Hopefully I’ll be able to fix those platforms by next stream.

Weekly progress post #9: Post-NGJ pondering

So yeah, Nordic Game Jam was last weekend and because of it I forgot to add a weekly update last week! I was initially slightly afraid that I’d be too busy with things to really enjoy the event, but in the end everything turned out great! It was a lot of fun to hang out with those indie dev friends that I only meet at these kinds of events, and the atmosphere was very relaxed. I even got to have a sauna twice!


The theme of the jam was “Leak”. I almost completely disregarded the theme, and made a tiny game called Sausagebear and Mr. Duck. I had a very strong inspiration of a game with ducks that can be herded and followed that; in the end I didn’t have time to polish things quite as much as I’d have liked, but that’s understandable seeing that I started working on this some 12 hours before the deadline.
GET THE GAME HERE!

My favourite games this year were
1. Jukio’s Stress-reliever.exe. We had a lot of fun during the jam and this was one of the results. Jukio does great stuff. LINK HERE!

2. Doki Doki Densha Sekai. A very dreamlike experience, resembles Yume Nikki although with more meditation and less creepy. At first I wasn’t impressed but the metro mechanic made this really really inspiring! LINK HERE!


Tonight I worked a bit on the new area in ESA 2, as well as implemented some tiny fixes to Snake Game. With the latter I ran pretty quickly to some aesthetical issues that will need to be solved so I didn’t work on it on-stream that much. I’m starting to appreciate the artstyle of ESA 2 more, and these new enemies (+ one not visible in the gif) have a very nice sense of weight to them.

I kind of want to stream again on the weekend, we’ll see if that happens, though.

Weekly progress post #2: More weird critters

A bit more productive of a stream! I a new enemy and these weird cocoon things for spawning certain other enemies; a new room was also added although it’s very bare-bones right now. I’m still toying around with the player’s physics, and it definitely feels like they will need more work before they’ll feel really properly nice. Getting closer to a new boss and the first real powerup of the game; it’ll be interesting to see how long it’ll take me to get those implemented, seeing how little time I’ve had for my game projects.

I also worked a bit on the snake game, fixing some bugs and adding a feature that’ll allow making better cutscenes; the game’s still a bit hard to work on on-stream because the engine is pretty complicated.

Also did some early touches to a little side-project; hopefully that’ll become properly streamable soon!

Recursive programming, uh oh

So over the past week I’ve been implementing a simplistic scripting language inside Multimedia Fusion 2 to make it easier to create a versatile in-game editor for a game project. Programs like Game Maker of course already do something like this, but it felt kind of funny to realize that I was augmenting the usability of MMF2 by adding a custom-made scripting language on top of it. Designing something like this has also been an interesting lesson in programming.

Anyway, some examples of the syntax:

1.
if,node,0,3,<,0/else/goto,2
add,node,1,3,1/loop
sub,node,1,3,1/loop

When this runs, an object called "node" with the ID "1" will add 1 to it's variable at index "3" (which is its X position) if "node" with the ID "0" has its variable at index "3" below zero. Else, the "node" with ID "1" subtracts one from said variable. Or in motion:

The teal diamond is the node with ID 0, and it moves above and below the 0 X coordinate, causing the other node to move.

2.
aimrelative,node,1,4,node,0,4,0.05/loop

When this runs, the "node" with ID "1" sets its variable at index "4" (i.e. Y position) so that it approaches the value of node 0's variable 4. The 0.05 defines the speed at which the value changes, being in this case 5% of the gap between those variables. Or in motion:

Again the teal diamond is the node with ID 0.

3.
if,damage,>,1
set,surface,1,19,3/set,surface,2,19,3
set,mask,15,18,3/set,mask,16,18,3/end

This is what I actually use in-game right now. Basically it checks if an enemy is damaged enough (the 'damage' variable counts upwards because SHUTUP SHUTUP SHUTUP), its graphical masks change slightly, after which the code block stops running.

As you can see, the language is very crude and dependent of hand-crafted commands. However, I use it mostly for relatively simple checks and to spice up enemy movement, so I'm sure it'll be more than enough for this job. The fact that it supports if-else functions, and that separate code "blocks" can also affect other blocks via "start" and "pause" commands also adds a lot of versatility.