SudoHack

by

During this holiday season I started to work on a “new” project. I actually started it quite a few times, but never really worked more than a few hours on it before I lost interest. But this time I don’t just want to try a few things and code a small game, I want to know if I can finish one. Making a game from start to finish. With a menu and all (I never made menu). Also I often fantasized about about taking a year off after I got my Bachlor’s degree (if it comes to that) and be an indie dev – this is how I want to find out if I could actually do it.

SudoHack is going to be a a multiplayer roguelike, inspired by the numerous recent roguelikes, like The Binding of Isaac, Rogue Legacy, FTL: Faster than Light, which I played a lot of. It is set in cyber space and you (and your mates) control little programs that try to infiltrate a system (which explains the name, if you ever used Linux, where the sudo command executes another command as the superuser). The key element is (and of course I’m not sure if it will actually end up that way) getting from room (which are prebuilt, but randomly chosen) to room without losing too many “bits”, which you will pick up as loot from your defeated enemies and also lose by taking damage. They are essentially a ticking timer and HP combined. The goal is to finish the room in time, get to another room and go from there, defeating bosses along the way and hopefully infiltrating the system completely at the end. So far I have a lot of boilerplate code, a mini collision library and shooting with bouncy bullets!

 Also, as you can see, local multiplayer is already implemented (the green guy is controlled using my controller and the red one using my keyboard and mouse). It is planned to also integrate networked multiplayer, but since I have never done this before (in contrast to everything else I have planned for this game) I’m a little afraid of how it will turn out. I’m confident that I can at least hack together something, that probably works only on LAN, but I hope that I can do just a little bit more. Also this time I’m using LÖVE again, which is, as usual, a pleasure. Next up are enemies, which I already designed a few of and really can’t wait to integrate into the game.

One thing I already worked on way too much for a prototype is random weapons, which will be dropped as loot in the game. Every player starting the game will already have a randomly generated weapon (about 14 parameters). And for this feature in particular I started working on a shot sound synthesizer. Most of it’s features can be seen in the description text in the video below. Obviously it also contains a few sounds I generated just pressing the space key a few times.

 
Both SudoHack and the ShotSynth in their current versions are available on GitHub:
https://github.com/pfirsich/ShotSynth
https://github.com/pfirsich/SudoHack

If anyone in the world ever reads this (highly improbable) and doesn’t know how to get this game to run on his computer using the GitHub repository I linked here, but really wants to try, comment this blog post and I’ll upload a binary 🙂

The delightful reunification with modify-assign in Lua and Per Torpedum ad Astram

by

Jonas, who already worked on Spacewalk with me, and another fellow student of mine recently became roommates after Jonas and third said roommate spent a year abroad. Jonas and I decided to visit the Global Game Jam in Cologne in January and felt it was necessary to do some kind of warm up to get comfortable with the technology we plan on using and produce some useful code for loading Tiled (which just keeps getting better and better, geez!) maps and general boilerplate. After a while I again noticed the painful lack of +=, -=, *= and /= operators in Lua. I remembered writing a Python script (which is bad) that compiled “.mond” to Lua only adding said assignment operators in functionality and significant whitespaces instead of those ugly “then”/”do”/”end” blocks. I now know though, that it is possible to add loaders to Lua that will be invoked once a module will be “require”d in a source file. So I wrote a loader that gives me those missing operators (replaces them before passing the source to loadstring)! The loader and an example of this using löve2D can be found here: https://github.com/pfirsich/ModifyAssignInLua
If I or you (if anyone would ever read this) would like to use it, you just have to rename your actual main.lua to realmain.lua (or however you want to name it. But don’t forget to change the name in main.lua!) and include mond.lua and main.lua in your project folder (without löve2D the usage is very similar to this).
As you can see in mond.lua, line 33 ff. I also kept the option to parse completely different source files and do something like I did in the Python version of Mond (replacing the Lua blocks with significant whitespaces (actually the other way round of course)), but I think that this is, though nice and fun, a little of a waste of time, since I should actually be working important things.

The last 5 posts were part of the TAG Jam, which I got to host, since I won TAG Jam 5: http://blog.ratalaika.com/tag/tagjam/ (here you can find my game too of course! Read the readme!) (Update 7th of April 2015: This link seems to be broken. You can download it from my Dropbox instead. Or watch a video of it on Youtube). I think the version that can be downloaded on Ratalaika’s blog is not the most recent one and not the one with all known bugs fixed and all typos corrected, but this game is already almost one year old, so I don’t really know what is what.

Screenshot for completeness’ sake:

This time, as stated in the readme, I worked on the game with a lot less pressure. I didn’t want it to be good. I did it myself and I just wanted to spend a little time programming a game that I think would be cool. I purposely kept the scope of the game as small as I could imagine and this time it was just right for 48 hours. Apparently I still have problems keeping the scope small enough and not trying to do too much. This was easily the most fun game jam yet. Also the game being a game emulating the Starfox gameplay helped a lot, since it is one of my favourite franchises and one I have the fondest memories of. I’m also a little proud of the unique graphics style. By that I don’t just mean the exceptionally sub-par artwork, but the pseudo 3D visuals and the clouds and the graphics feel in general.

TAG Jam #6 – Results

by

Hi guys! I found some time and decided to playtest/write a resumé.

First of all I found it really interesting that there are not that many multiplayer games (just one) and that one also tried to make a game without an objective. I’m really happy that all of you tried to make something different 🙂

Clouds:

This is exactly what I meant! Games like this. I think this one fits what I had in mind best. Many exploration games (like they were made here and playground-games) kind of have an objective in a sense that you want to do something. This one though is a game where you are finished the second you start playing, but you choose to keep on going. Like a scenery or a photograph, but dynamic and interactive. The music (which is really good by the way!) changes are a little abruptly and is disrupting the mood in my opinion, which is super important to avoid in a game like yours. All in all it’s, sadly, just not very much and even if you decide to keep on playing, it loses it’s appeal fairly soon.
Technically: Maybe you could have spent some time investigating how to visualize rain nicely. Even rain drops with different speeds would have been a little more realistic. So it would have if you paid more attention on the tiling of the rain texture. I also don’t like that the rain clouds get repelled and move away with constant speed. Maybe only repulsion would’ve looked nicer – not entirely sure.

You Only Need One:

First of all the title really reminds me of the last Ludum Dare theme (You Only Get One). At first I was a little confused since no one told me how to control the game! This is something that you should pay attention to. After figuring out to use the arrow keys though I must say that I really liked the setting and it really awakened my interest. The pacing of finding out what’s happening in the beginning is really good in my opinion! I like using the word “odd” as an inspiration and am generally delighted by the setting. It’s continually more interesting! I don’t like though that the game actually has an objective. You want to get to the end, because you know there is one. It’s just not explicitly stated. The suspense curve really takes it’s time to bottom out. The last part is not very rewarding considering the growing platforming-difficulty.
Technically: I’m not sure how easy it is to do this in flash, but I would have liked it if the speech bubbles faded out. Also the music loops very strangely and starts again when you just forgot about it. Constantly playing music would have improved the experience, I guess.

Go Figure:

I really like the name! It’s a nice thing to play around, but loses it’s appeal rather quickly. It’s more of a toy than a real “game”. I don’t want to be mean, but just because a game doesn’t have a game, it should still be enjoyable! That was part of the challenge. Something where it’s all about the experience and the mood. At least that’s what I had in mind and because it’s just me, I should probably not criticize your game for it!

Revel:

I really like the mood and the music and the graphics! Atmosphere-wise you did a really, really good job. The location is intriguing and the character as well (4 arms, when I first jumped! Very cool moment). Execution-wise this is probably the best game (it has to be mentioned though that you are a significant amount of people) and fits the Outsider theme very well. I really like that the game doesn’t stop to give you something to explore. What I don’t like is that it eventually does and not in a very elegant fashion. I probably just got stuck, because I didn’t know that to do, but that’s not just my fault. I collected the two artifacts (which I think is a little silly of you to write directly on them :D) and found the little cave below the starting room which you can’t see much in. I’m actually pretty sure I’m stuck, but I don’t know that to do. So I’m not really sure if it’s really without an objective, since having a goal and being able to finish still kind of qualifies as one. Also I think the game would have benefited a lot from parallax effects in the background!

Uphero:

(At least I hope that it’s called that way). The first 4 times I started the game the player apprently spawned in the level geometry, which really confused me and made me restart the game until it did not. After I’ve seen him and played the game I of course realized that I could set him free by deleting the blocks. And when I saw him I was happy to find such a cute little guy. He’s awesome. And the music is too. It’s not less groovy than you said (which is uber). I generally don’t like that you just took an already existing game and tried to clone it. In general this is not a bad thing, and it doesn’t make the game worse, but is a minus point when it comes to winning (which is probably understandable). The sun and the clouds look just a nice as the alien, but I don’t really like that it’s so easy to place blocks. I think that Minecraft and Terraria make building things rewarding, because it’s work. It’s just too easy to do something. Also I struggle with rather low FPS once I move. When moving the FPS really fluctuate quite a bit, which is really disruptive.

PS: Sorry for pointing out the positive stuff at the beginning and the negative stuff at the end. I don’t want to rewrite it, but don’t think that I disliked any single one of your games! All of them were a pleasure to play! I’m really happy that five people took their time on a weekend to participate in a game jam I had the pleasure to host! Thank you all for participating! I hope you had a lot of fun and learned equally as much!

To cut to the chase, the winner is:
Revel!

After playing all your games I didn’t find it easy to decide which is the best, but I think that it’s actually just the one which yielded the most enjoyable experience during the time playing (even though there a some things to criticize, as with all the games), which was your team’s, Charles! Congratulations!

TAG Jam #6 – Time’s up!

by

The jam time has ended! I hope you had a lot of fun during the last 48h+! Please upload your games now and link to them in the comments below. You will then have 12 hours to fix bugs and package everything. The final deadline for uploading your games is Monday 12:00 GMT/Monday 04:00 PST. I try to write up a little review for all the games and determine a winner by the end of the week. I sadly didn’t finish my game (not even remotely) due to a rather busy weekend, but I am super excited about what you came up with 🙂

TAG Jam #6 – The jam time begins!

by

And the second, even more special, moment has finally come too. The jam time begins!

– The Themes –
– The Rules –

The deadline is now in 48 hours, respectively Sunday 24:00 GMT/Monday 00:00 GMT/Sunday 16:00 PST. Then you will have 12 hours submission time. Feel free to add the 12 hours yourself and not make me write down all the different times in all the different time zones again. Your submissions can be linked to under another post I will create when the jam time ends.
Have fun! 🙂