ricardo-nakamura

LD25

A simple audio helper for JawsJS

Since I plan to use JawsJS for the upcoming Ludum Dare compo, and considering the differences in audio format support by different browsers, I rolled a simple helper module to reduce my work… sort of (I’ll have to encode each sound file in both mp3 and ogg formats.) If anyone is interested, I’ve put it in this github repository:

https://github.com/rinaka/rinaka_ld25_basecode

 

Comments

ricardo.nakamura
14. Dec 2012 · 23:56 UTC
Last minute update: added a bitmap font helper to draw bitmap fonts with JawsJS. Available on the GitHub repo.

Overall concept completed + some needed sleep

Oops… fell asleep halfway through my brainstorming session and woke up six hours later to finish it. In the end it’s all good, as now I have a good outline of the game. I wish I had a WIP screenshot but that will take a couple of hours, so here’s a shot of the brainstorming results, for what it’s worth…

brainstorm

It’s not the most original thing but I’m doing the game around Propp’s narrative functions and the role of the villain in it. So let’s see how it turns out…

 

First prototype shot

Here’s my first prototype shot. Doesn’t look like much but it allowed me to set some basics with JawsJS. Just don’t mind the programmer placeholder art… I’m finding now that I should get the basic game done quickly, as there will be a lot of tweaking to do with NPC behavior.

prototype01

So here are my current plans:
1. Program the basic GameState structure, even if it’s just blank states with “press space to proceed” logic.
2. Get some sprites and sounds done, especially for the main characters.
3. Iterate over the game states, with a focus on the two main game systems (“villainy” and “struggle”).

Cast of characters

I’ll have to take a break from LD48 for some hours but before I go, here are the first few sprites for my game (magnified, actual size is 32×32 for each sprite.) I started with a very basic “body template” that I can adapt to various characters.

characters

The evil wizard needs some tweaking on his skin tone (I want it more bluish than gray) and I’d like to have multiple versions of the hero but for now I’ll focus on getting the animations done.

 

Comments

chambers
15. Dec 2012 · 16:07 UTC
Looking awesome!

Diversion

I probably shouldn’t have done that but I spent a couple of hours making a game for the Grinch of the Month Klub at Glorious Trainwrecks. Well, if all else fails I can polish it and submit to the jam…

svs02

In more LD48-related news, I have finished making the conversion from prototype to game code of one of the game stages, along with some graphics.

villainy

Time to cut features

With seven hours to go I still have to complete a “boss battle,” create some sprites and add sound and music. So, the following “desirable” features have been cut:

Selectable (and maybe even a secret) villain characters;

Variable, randomly picked hero;

Particles for fire in the burning houses.

 

On the other hand, it’s good to see the gaming taking shape even if it’s quite simple.

sword

Finished! Sort of…

Two hours to go and I finally have a finished game. No sounds or music yet and I had to cut down on my planned cutscenes… but on the bright side, there doesn’t seem to be any serious bugs, so I can go and play a little with bfxr to at least add a few sound effects.

 

Mission accomplished!

Whew… it took most of the 48 hours but I’ve managed to submit my entry to LD48. It includes sound effects but no music… and some graphics could be improved… and the NPC behavior could be better. Still, it is playable and the main design ideas are there. It’s also very short and easy but that’s beside the point. I suppose that now is the best time to write down what I’ve learned, so here’s a little “postmortem”:

What went right:

1) Planning: 48 hours go by really fast. I had the overall game design written down in a sheet of paper and it was useful for me to keep track of the work I had to do to complete the game, as well as to select what tasks would have priority.

2) JawsJS: I guess it isn’t a surprise that this library worked well, as it was created for a previous edition of LD48. It isn’t as sophisticated (in code architecture and features) as some other Javascript/HTML5 libraries but for an event like this, it fits perfectly. Congratulations to ippa for making and releasing this.

3) Brainstorming: dedicating a few hours for brainstorming about the theme was good to explore different ideas before committing to one of them. Finding a concept I was interested in was important to keep motivation to the last hour of the project.

What went wrong:

1) Preparation: I didn’t have much time to prepare for the event. For instance, as I didn’t test my alternatives for music generation, my game ended without music because I simply didn’t have time during the event to learn any of them.

2) Content: my game concept had a big storytelling component, requiring a good amount of content to be generated. Depending too much on content for such a quick project isn’t a good idea. In the end, I had to cut down on some of it and what I did create didn’t have very good quality (even considering my limitations.)

3) Focus: this was my first participation in LD48 so I just came in with the intent of “making a game.” For future editions I intend to set a more specific goal — learn a given language or tool, experiment with a concept (like procedural generation or user interaction) or improve a given skill (coding, pixel art etc.) I felt that not having such a goal led to some bad decisions. For instance, in the end my game was about narrative and choice. If I had this goal from the beginning I could have used more appropriate tools.

In any case, this weekend was great. Now it’s time to rest a little before taking a look at the games that were submitted.

 

Tags: postmortem

LD26

“I’m in” +1

Second LD48 for me… let’s see if I can get something done. Trying to use enchant.js this time.

At least my first brainstorm session, a.k.a. “purge the obvious ideas” is finished… now I must get some sleep.

 

a twist in the tale

Big changes in my project. This time I’ll be entering in the jam since the final game design was created by my sister. I’m also switching to Game Maker HTML 5 as the development tool. All right, back to work now…

 

LD27

My MSX experiments for Mini-LD 45

I started learning to program on the MSX. Back in the day I mixed BASIC and some assembly code with the aid of the trusty MSX Red Book. So for this Mini-LD I decided to go back to it and try to make something in pure assembly language. I am using z80asm to build the “cartridge” binary and OpenMSX to run it. After so much time, I really needed help to remember things like memory organization, BIOS calls etc. I found very helpful information at the MSX Assembly Pages and the MSX Info Pages.

I have set up a GitHub repository with the source code of my experiments and hopefully, the full game if I get to it:

https://github.com/rinaka/rinaka_minild45

My first “experiment” was the good old “Hello, World!” program (hello.asm). In this case it also loops receiving text input and displaying it on-screen. Nothing fancy, but good enough to test the tools setup and information about the cartridge header.

mld45-hello

The second experiment involved switching to graphics mode, setting up a sprite, and moving it with the cursor keys (interact.asm). Main loop timing is achieved in a crude way: since the video display processor generates an interrupt at 50Hz or 60Hz (depending on the system), I simply use an HALT instruction at the end of the loop step. It is funny to think that I can get away with it since the machine is dedicated to running a single program. It is also a joy not to have to worry about word alignment, large memory spaces etc.

minild45-interact

In the third experiment I tried to use a technique that, if I remember well, was common in MSX games: using part of the character table as a tile set to build the game levels, in 32×24 text mode. Each group of 8 characters can have a different combination of two colors. Storing a room map this way is probably not a good idea as it takes 768 bytes. I am thinking of either doing some simple compression or using less tiles per room…

minild45-tiles

So far, that is all I have… It has been a lot of fun to make, due to the fond memories brought back by this. I will not have much of my weekend available for the jam, but I will try to submit a small, complete game…

 

 

Cell-based movement

Ok, another little “experiment”: cell-based movement. On each keypress the character slides 8 pixels left, right, up or down, thus keeping aligned with the tiles. Also, the character’s position is constrained to the inside of the “room.” Next up: solid walls and some cell-based collision detection (i.e. divide coordinates by 8 and compare…)

minild45grid

 

On the game design front, this is turning into a series of rooms that the player has to traverse avoiding hazards and maybe solving simple puzzles. Vague and yet not very original, I know… ;P

 

No game to show

Oh well, weekend is over and I am not close to finishing my little game for Mini-LD #45. I intend to keep working on it but there will be no submission for the jam…

 

Sharkastik

I’m in for Shark Jam, and following a friend’s suggestion, I’m also making the game under the constraints of GBJam. So here’s the first screenshot of “Sharkastik”, an infinite swimmer. Yeah I know, not the most original idea :)

 

sharkastik

 

Tags: infinite swimmer, retro

Shark game posted

As I am pretty sure I will not have time to work on improving my entry during Sunday, I have decided to post it, as it is relatively complete, if quite bland…

LD31

I’m probably in

Busy weekend due to the Games for Change Latin America Festival but if I get some free time, I’ll try to do something (probably in the jam category.) So that’s a bunch of “probably” and “try” but hey, there’s hope.