About miotatsu


Ludum Dare 33
Ludum Dare 31
Ludum Dare 30
Ludum Dare 26

miotatsu's Trophies

miotatsu's Archive

Sirens Post Mortem

Posted by
Monday, August 24th, 2015 10:52 pm

My Entry

This Ludum Dare was definitely the craziest yet for me. Before the competition began, I was hoping the theme would be “You are the Monster,” because I remembered the Serial Killer Roguelike hoax and thought that would be awesome

However, a few hours before the competition began I realized that that was a terrible idea because there was no way that I would be able to make something like that in 48 hours.

I took some time to google monsters before the theme was announced to stay prepared if that theme was picked. Skimming through the Wikipedia page on monsters, sirens caught my eye. Sirens felt like a good pick because there is an obvious game idea there –
you sing to make sailors crash their ships into rocks. As luck would have it, “You are the Monster” was picked as the theme, and I began brainstorming the design of my siren game.

I didn’t need to think too long about the design. One notable design I decided on was to have prerecorded siren songs instead of having the player sing into a microphone. This is because I don’t know how many players would have a microphone, and didn’t know what options are out there for libraries to work with mics. As I was exploring the design space I also realized that I wanted it to be similiar to a tower defense.

With this in mind, I began coding. The entire development was streamed on twitch.tv/miotatsu, but my mic is very quiet and I am soft spoken, so it is practically an audioless stream.

My initial plan for development tools was:

* The D programming language
* SFML2 for the media library
* Vim as my text editor
* Gimp for making graphics
* Audacity for music, vocals, sound effects, etc.
* Bfxr for sound effects

Development in the beginning went well – until I ran into a problem. When I pressed the left mouse button, SFML registered it as a mouse wheel moved event.

I believe it was because I have 2.0.4 but the derelict-sfml2 bindings are for 2.0.3. To deal with this, I ported my codebase to SDL2 which set me back a good 3 hours or so.

I truly felt like a monster writing some of the code.
That is the only comment in the entire 1.2K lines of code btw.

On Day 2 I decided to start recording audio, but this was a bit of a struggle to deal with as obs and pulseaudio kind of interfered. One reboot later and a bit of twiddling settings around and I was able to get my audio recorded.

Smooth sailing from here, right?

I wasn’t able to get any sound working with SDL2_Mixer. None. I don’t know if it has to do with pulse (I needed it for obs, normally I just use ALSA) or what.

Lo and behold, I found myself searching for another library to play audio. I ended up going with fmod, which I have never used before. Luckily it didn’t take me long to learn enough of the API to do what I wanted, and I was able to complete my entry on time.

Despite all the insanity coding this thing, I think it is the best Ludum Dare entry I’ve done to date.

Finally, I had to port the thing to Windows, but I was getting access violation errors.

Commenting out the line that does the fmod update in my game loop fixed the first crash. Why that fixed the crash, and why audio even works without that I have no idea. Then a single one of my sound effects was causing a crash. I moved where the sound effect is called and GUESS WHAT THAT WORKS BECAUSE REASONS.
I don’t even know, man.


Only in a ludum dare

Posted by
Saturday, August 22nd, 2015 11:46 pm


I’m in.

Posted by
Friday, August 21st, 2015 4:25 am

D lang

streaming on twitch

Not your grandma’s chess

Posted by
Friday, April 17th, 2015 11:10 pm

Day 1 Progress Report

Posted by
Saturday, December 6th, 2014 7:14 pm

[Prior to LD31]
I payed attention to the voting results from rounds 1-4 and tried to predict the theme. My prediction was unicode snowman, and if not that, artificial life. Before snowman results, it was looking like artificial life for sure, so I started brainstorming on that. The idea I came up with was a robot that escapes from a scientists lab, the robot runs out into the wintery world and jumps into a snowman to hide. The game then jumps ahead in time to a boss battle between you (robot inside snowman) vs the scientist. After I saw how well snowman scored, I started thinking about taking that idea and making snowman the primary theme. From that I settled on the idea of a fighting game sort of like SSB. Instead of damage making hits push you farther, I decided to make damage reduce friction, and have the battlefield be ice. I wanted to make controls reasonable to be playable on a single keyboard because I don’t have a joypad/controller to test with, so I ended up with the following control scheme:
up: jump
left/right: run forward/back, double tap to dash
down: guard on ground or smash in air
Damage is done via collision rather than having buttons to attack with.
The only character would be snowman, and when he dies little kids would come with balls of snow and rebuild him quickly for the respawn animation.
Keep in mind, this is just my brainstorming before the theme was announced.
In the final voting round, I voted for artificial life, unicode snowman, and everything on one screen, because my idea would work for each of those themes.

[LD31 begins]
To my surprise, everything on one screen won out, but my idea still fit, so I got right to work.
I started out trying pomodoro technique for time management. I began by creating a list of tasks that would need to be done for the game, keeping in mind how many sets of pomodori I had for a day. Next I ranked each item on the list. From my previous attempts at ludum dare, I have learned to go into it expecting to cut features, so prioritizing what to implement when is crucial.

[Physics hell]
Late at night my code base began to grow complex enough to have physics bugs crop up, and I realized how hard writing the physics code for this actually is. I’m not using a physics engine like Box2D or Chipmunk, and I have never made a game like this before.
During this time I realized that hard debugging is best done without the pomodoro technique.
I think it is better to slow it down a gear and avoid letting frequent breaks interrupt your flow, although the pomodoro technique was definitely a huge win in the beginning when it helped me organize & plan, keep track of my progress, and take care of my health with frequent breaks.
The vast majority of my development has been spent fighting with my physics code. In honour of this great battle, I have decided to name my game…

So guys, physics is KINDA HARD


So far I have managed to implement forward and back dashing, jumping, collision damage, deaths, respawning, players face each other, life display + damage display, a bit of quick artwork, and a couple sound effects from bfxr. I’m currently trying to get the bugs ironed out of forward running. I don’t expect to have time to polish much, but my goal for this ludum dare is to try get all the core gameplay features implemented before the deadline :)

Fonts I will be using

Posted by
Friday, December 5th, 2014 5:39 pm

Made an “I’m in” post a while ago, but here is a last minute update. I’ve decided on the fonts I will be using:

  • Ubuntu-R
  • Wargames
  • DejaVu Sans (need that unicode ;O)

To the best of my knowledge, all of these fonts are free to distribute :)

I’m in

Posted by
Friday, December 5th, 2014 3:42 am

I’ll be using:

  • Vim
  • Gimp
  • Bfxr
  • Audacity
  • D, DMD, Dub
  • SFML (DSFML bindings)

I’ll be starting with the following base code: Game loop

“Connected” Released for Windows, and a Timelapse!

Posted by
Sunday, August 24th, 2014 10:40 pm

I need sleep ;.;

Windows build: Download

Day 1 Report

Posted by
Saturday, August 23rd, 2014 6:22 pm

My game is called “Connected,” and it’s interactive fiction!

I started out thinking of ideas for the theme. I spent roughly 2 hours on the idea.
The night wasn’t very productive for me. After I came up with the idea I figured I’d need a system for displaying text, so I drew a font and implemented text rendering. Once I had that working I changed my mind and decided that the game should be simpler.
My final decision was to narrate the story verbally, and display relevent artwork on screen. When a scene is finished, an arrow will appear in the lower right, and clicking the screen advances the scene.
No decision making/multiple paths, just a little story in game form.

After sleeping all morning I started working on the story.
I now have the story finished. It is two chapters, each chapter being seperate, but they are connected!

I also have a couple character sketches.

There isn’t much work for coding this game, so I’m not worried about that, but getting the art done in the remaining time is going to be the real challenge.
At minimum I’ll have rough paper sketches. All of my extra time (if I have any) is definitely going to be going into polishing.

I’m in!

Posted by
Friday, August 22nd, 2014 4:38 pm

I’m in for my 2nd time.
I’ll be using:

I’ll also do a timelapse.

Blind – Development time lapse

Posted by
Sunday, April 28th, 2013 5:39 pm

Blind – Windows build!

Posted by
Sunday, April 28th, 2013 11:23 am

Blind Title Screen

Thanks to my friend Ace, Blind now has a windows build which you can download here: http://www.mionet2.com/downloads/blind.zip

Enjoy! :)

Blind – Day 2 begins with a good start!

Posted by
Sunday, April 28th, 2013 5:33 am

Blind Screenshot

Obligatory screen-shot ^ (lol)

the Game state is implemented and everything seems to work great.

It was a lot of fun implementing the game state, I had a bug because I messed up my coordinate system (accidentally flipped x and y) and so I got a taste of what it will be like for the players as I fumbled around blindly in the map trying to figure out where on earth I was (I thought my player was spawning somewhere he shouldn’t, but couldn’t figure out why or where.)

after sorting that bug out everything is working as expected, it seems to be a lot of fun to play and I think it will be a bit challenging to beat it, I hope I can be the first! (considering I made the map :P)

Another thing I added is hjkl movement in addition to the arrow keys!

The only thing left is to record a sound that I forgot that I would need yesterday and add it to the game. For now I will take a break, but once I’ve got that sound in I will release it!

For those that missed the last post, here is the games README to give you a clue of what this is about:

Blind is a game of exploration that embraces the theme of minimalism through avoiding the use of visuals and music. The player embarks on a quest for treasure in a treacherous maze of turns and traps with nothing but sound to guide them. Use the Enter key to begin the game or go back to the title after losing (or winning!) Use the arrows to move your player (you can also use hjkl.) If you are confused with what is happening, try turning your sound up! For instructions on building the game, see the BUILD file.


Blind – Day 1 Recap

Posted by
Saturday, April 27th, 2013 5:14 pm

Blind Title Screen

I decided to interpret minimalism in a slightly… different way.

Blind has practically no graphics and no music. It conveys the world to the player through sound.

Today I made a good start on this project. I finished a game world that I am pretty happy with and recorded all of the sound effects! I also created all the art (a title screen and game over/win.) As far as coding goes I have all the states implemented except for the actual game state 😛 That will be a project for tomorrow!

This game will be for Linux (released as source in a tarball) but if you can find a compiler with good c++11 support on another platform it should probably run on other OSs too! :)


Blind is a game of exploration that embraces the theme of minimalism through avoiding the use of visuals and music. The player embarks on a quest for treasure in a treacherous maze of turns and traps with nothing but sound to guide them. Use the Enter key to begin the game or go back to the title after losing (or winning!) Use the arrows to move your player. If you are confused with what is happening, try turning your sound up!

[cache: storing page]