About reheated

I am an Australian researcher in engineering and mathematics, and a hobbyist game developer. Homepage: reheated.org

Beware! I've been using Ludum Dare to train my game dev skills. Discrepancy is where things started to click. Games before that don't meet the standard set by those since.

Entries

 
Ludum Dare 37
 
Ludum Dare 36
 
Ludum Dare 35
 
Ludum Dare 34
 
Ludum Dare 33
 
Ludum Dare 32
 
Ludum Dare 31
 
Ludum Dare 30
 
Ludum Dare 29
 
Ludum Dare 27
 
Ludum Dare 26
 
Ludum Dare 24

reheated's Trophies

The 10th Entry Award
Awarded by Wan
on April 22, 2016
Youtubed!
Awarded by BackslashYoutube
on January 10, 2016

reheated's Archive

The 16th Bit – Postmortem

Posted by
Monday, December 19th, 2016 1:44 am

My entry is The 16th Bit. You’ve been mysteriously invited to a LAN party, and upon arrival you find out that the host has gone missing! There is a computer in the room that serves up two types of puzzles. Firstly you get cryptic clues, which you solve by picking the right computer game from around the room.
The 16th Bit

The second is a tile-based puzzle where you have to fill all the tiles with blood or water according to some constraints.The 16th Bit

I am a fan of cryptic crosswords and enjoyed The 11th Hour as a kid. The theme “One Room” seemed perfect for making something along those lines so I took a shot.

The game is fully voiced (I got my wife to voice the character who gives you hints – I did the others). One interesting problem I had to solve was how to have clickable objects placed around the room, without hard-coding the clickable regions. Probably some game engines provide a feature to do this but I had to implement it myself. Turned out not too hard: I used Krita to draw the graphics then opened the images in GIMP to create image maps for them. Then I wrote code to open up the image map files and extract all the polygons from them.

My big mistake: not playing to my strengths.

Originally my plan was only to make a cryptic clue-based game. It quickly became apparent that I wouldn’t be able to write a lot of satisfactory clues quickly enough. Furthermore, my plan to draw cheesy versions of the game art for each game would restrict how many games I could include (both as solutions to the puzzles and as red herrings). With not too many games to pick from, the gameplay was not going to last very long. I realised I had to supplement this gameplay with something a bit longer lasting. So the game alternates between cryptic clues and a new kind of tile-based puzzle. Fortunately I came up with some interesting rules and six nice puzzles using the rules.

The result, though, was that I basically had to make two games in one. The tile-based puzzle has simple rules and was easy to code up. But making a room that you can navigate and pick games out of, and drawing the room and the games, took a lot of work. Even though the art is very simple, it is not my strength, so it took a long time to make each graphic. It also took a lot of (thankfully not difficult) code to handle navigating the room and reacting to the player’s actions. So I was really pressed for time. I only slept about 3 hours out of the entire 48, and only had a couple of decent breaks. There was little time for polish and gameplay balancing, and I think the blood and water puzzles get too hard too quickly. If there was more time to polish and perhaps test the gameplay on people, I would have thought to make the puzzles a little easier and add more visual feedback/hints. Due to my tiredness I frequently had to deal with audio-related bugs. (And I forgot some other details, like an indicator of how far through the game you are.)

All of this spells out a lesson that I thought I had already learned. Between LD events, focus on weaknesses (for me: art, writing). During LD events focus on strengths (for me: puzzle design, programming). I’m happy that I stretched my limits a bit, but it’s better if most of the stretching is done before the event so that I’m comfortable and fluent with whatever skills I’m using during the 48 hours.

A second lesson is maybe not to try to make two games in one. The blood and water puzzle turned out interesting and if I’d spent the whole time focused on that (and got more sleep) I could have made a much more polished and balanced experience.

Well, that’s all I can think of to say right now! I think there are some things to enjoy about this game even if it is a bit under-polished. If you try the game out then I’d really appreciate your feedback because I’m always trying to improve and I’m sure there are things I’m just not aware of (or things I am aware of but don’t know how much they matter to the player).

The Mystery of the Maniac AI – Postmortem

Posted by
Friday, September 2nd, 2016 7:55 am

Here is The Mystery of the Maniac AI. Most of my past games have been logic puzzles and this game has logic puzzles in it too but it’s a bit different.

mystery

Am I a slave to ratings?

I admit that I get hung up on the scores a bit. In creating my previous game, for LD35, a fear of getting bad ratings may have prevented me from pushing the envelope. That’s not to say I think my entry was shallow or uncreative, just that it worked within boundaries that I’d created for myself over the course of the previous few entries. So, for me, the absence of ratings in this event was just what I needed to provoke me to step outside my comfort zone a bit. I did so in two ways.

Gameplay experiment: mixing puzzles with interactive fiction

In the past I have made games where the ending depends on how you solve a particular level. This time, I wondered if I could make a story where you make decisions all the way through by choosing the way you solve levels. I also mixed in a few plain levels for pure puzzle solving, and the story itself has some puzzling aspects.

In doing this, I had to write the story first, or I wouldn’t know how many branches I’d need in the puzzles. And it seems I’d forgotten how hard it was to make levels with multiple interesting solutions. I think I spent something like the first 10 hours designing the story outline and puzzles on paper before even sitting down at the computer to type.

Making a game like this involved much more writing than I’m used to. In past entries I’ve put little snippets of story in between the levels, and the results have been good but even then a bit awkward because I’m just not a very experienced writer. So, deciding to make a game with a more significant writing element was maybe a bit crazy. I was pretty self-conscious as I wrote, wondering: am I using this word the right way, is that a cliché, etc.?

Programming experiment: using HTML and SVG in nontrivial ways

My games are mostly HTML5 games, which, for me, means filling the page with a canvas and then drawing to that every frame. There’s negligible actual HTML. But this time, I didn’t use a canvas. The page has a bunch of divs and an empty SVG object. The game’s javascript code programmatically fills the divs with the text of the story and other info, and fills the SVG with the gameplay graphics. Compared to a canvas, this made some things a lot easier – in particular, formatted text in the story. I just had to put HTML tags for italics in the story file, and I would get italics on the screen. To the best of my knowledge, that would be a lot more work with a canvas. Another useful thing is the ability to draw stuff on an SVG and then resizing it to automatically fit all its content. That would be very difficult on a canvas.

I didn’t have much experience working programmatically with SVG objects. So it was slower to get the graphics going and I spent a lot of time on Stack Overflow. The graphics ended up a bit simpler than they would have if I had more time and expertise. I also have some vague idea in my head that SVG graphics is generally a bit slower to render than canvas graphics.

I made the decision to go for a very subdued look. It would look just like a plain web page with minimal formatting. Then, at certain events, I would have little effects that you don’t normally see in a plain web page. The background colour can change, and at a couple of points there is screen shake, which I created by randomly changing the body margins every frame.

Resulting flaws

Well, it was a more experimental game, and harder to make, than my previous couple of games. That means I had less time and energy to carefully polish it, which means more flaws. (Maybe some of the following won’t make sense unless you play the game.)

  • As mentioned above, the writing’s rough around the edges.
  • It would have been good to have more substantial branches in the storyline, i.e., points where the story can go two significantly different ways that only come back together much later or not at all.
  • The branching puzzles are not perfect. Some of them don’t quite get the degree of satisfyingness that I aim for in a puzzle.
  • In retrospect I don’t think the subdued look is so great – it just doesn’t demand the player’s attention very well.
  • I missed some of those minor details that you don’t notice if they’re there, but you notice if they’re not. Particularly, a button to clear the puzzle, and something indicating how far through the game you are.
  • Sound effects are minimal, and the music, I think, is OK but maybe doesn’t suit the mood of the story so great.

Conclusions

Well, OK, there are a lot of flaws. I’m still very happy with my experiment – I tried something a little bit new and it turned out interesting and hopefully slightly memorable for some players. I can easily see myself using the HTML and SVG stuff again in future.

Would I do this kind of gameplay again? For an LD compo entry, I’m not sure – it was exhausting, it didn’t make the best use of my strengths, and it left too little time for polish. But maybe I could do it if I had more time, or other people to share the workload with.

I Have Brig Plans – Postmortem

Posted by
Friday, April 22nd, 2016 8:28 am

Here is I Have Brig Plans. It’s my 10th entry! What do I get?

brig

I mostly make logic puzzles, and this is one of them. You have to design cells for prisoners. Each prisoner has a number on it telling you how many tiles they need for their cell. Each person’s cell needs to be a connected group. In addition, there are three types of prisoners, all having special rules inspired by two Nikoli puzzle types, Shikaku and Nurikabe:

  • Humans require rectangular cells
  • Cockroaches require cells with no 2×2 blocks
  • Energy beasts’ cells must not touch each other.

As such the game plays out a little bit like Shikaku or Nurikabe, but also has its own unique flavour coming from the interactions between the rules. Later in the game, a shapeshifter is introduced whose type you have to figure out yourself.

My wife and baby daughter were overseas visiting relatives at the time, so I had the house to myself. That means less distractions, at least in principle. By the end of the weekend it was a pretty lonely experience, though. (I Skyped with them a couple of times which helped.) I had too much coffee on both days, which led to a more stressful weekend than necessary.

Since the rules were relaxed a year or two ago, every time I start a game, I grab my previous entry and empty out the stuff that’s not reusable. It’s worked well for me. The code I reuse is mostly file loading and audio stuff. (And a few miscellaneous things, like a function for finding “islands” in a grid of data; it’s served me well for 4 games in a row, with minor tweaks here and there to handle different data formats.) This time I added a simple “packager” consisting of a bit of python to dump all the resources in a single file, and a bit of client-end javascript to pull all the resources out. It saves having to request each sound/image file individually.

What went well

Puzzles: A big advantage of making a logic puzzle game (compared to, say, an action game) is that you can get an idea of whether it’s fun without coding it up. Just make some puzzles on paper, then forget the solutions (cinch) and try to solve them. I spent the first 5 hours making the puzzles before even starting to code! I think they are fun and satisfying if slightly on the easy side. (Though the final level of the final act is a decent difficulty.)

Music and SFX: Maybe it should have been obvious, but I only realised some time between the last two LDs, that even if a game has music and speech, it really ought to have sound effects too. It adds a lot to the game to have sounds that play in response to inputs; I think it makes the player feel more strongly that they are affecting something.

I decided to tune the sound effects to notes. To avoid too dissonant a sound, I placed some restrictions on the chords in the music. Maybe the music isn’t very challenging, but I think it sounds relaxing and goes with the rest of the game.

What went OK

The look: Well, I’m not much of an artist but I’ve started to learn how to draw… the player’s attention away from that. I drew the icons in Krita and used an edge detection filter to get a carved look. The rest of it was about fiddling with colours and border widths and things in the javascript.

What went badly

Story: Originally I wrote a funny story, but then I read it and realised it wasn’t funny at all. Also a funny story wouldn’t really go with the rest of the presentation. So I took out all the crummy attempts at jokes, and went for quirky instead of funny. It adds a bit of flavour to the puzzles, maybe. But I don’t think the story ended up very exciting or memorable.

Spending too much time on details: I spent a lot of time on tiny details like having a sound switch, and fiddling with the controls to make them as convenient as possible. Normally I advocate putting a high priority on polishing, on focusing on those minor details. But this time I might have overdone it, using up time that could have been better spent giving my game a bit more character, or making more levels.

Initial Conditions – Postmortem

Posted by
Friday, January 1st, 2016 4:51 am

Milky Helps People is my Ludum Dare 33 entry. It is the story of Milky, a sentient milk carton who loves being helpful, and realises that the bigger he is, the more people he can help. So, he grows bigger and bigger until he becomes… monstrous!

milky5

Wait, what? It’s LD 34?

I considered just resubmitting Milky for LD 34 – it honestly works much better for the growing theme than for LD 33’s theme, “You are the monster” – but ignoring whether it’s against the rules, it wouldn’t be as much fun as making a new game. Also, I wanted to try making a game with a more sombre style. So here’s my effort, Initial Conditions.

initial

Humanity is extinct, but the opportunity exists to start it up again. You have to set the initial conditions by placing a small number of towns that will grow into a civilisation. As with my last few entries, Initial Conditions is a logic puzzle game with original rules. In this game, each level consists of a grid with some rivers on it, and you have to place the displayed number of towns along each river, according to some rules: each town is a connected group of tiles with at least one tile on a river, no town can have tiles on more than one river, and all the towns have the same number of tiles, determined by the level. In the level shown above, all towns are 2 tiles in size.

This is my ninth time participating, but my first as a father. My wife was very kind to put up with me entering, and I intentionally limited the scope a little bit, artistically. I still had to race a bit to get it done.

What went well

Puzzle rules and design: I came up with some good rules that allow for an interesting range of puzzle designs. The puzzles get a bit harder than in Milky, but the rules are easier to understand than my LD 32 entry, Wellbeing. Wellbeing had some good puzzles but a lot of complaints about the learning curve. Initial Conditions didn’t get so many complaints in this area, so I think I’ve improved a bit. The story has 10 levels, and once you finish that, there are 4 quite hard bonus levels.

Stylistic consistency: The biggest problem with Milky was that the graphical style kept jumping about. I made a special effort to not let that happen this time, and I think the graphics and the sound come together pretty well for a coherent presentation.

What went badly

The story: I normally write a silly story, and this time I wanted to try writing something sad. But at the end of the day, the result was kind of awkward.

Wasting time on some ideas I had to give in on: I wanted to round the corners of the town borders. I spent about an hour and a half coding it up before I realised that it could take several hours more to complete it – time that could be much more effectively spent on something else. Some things are harder to code than they look. I also spent about half an hour trying to write a second music track that I abandoned because it didn’t sound good. And I tried to make a single extra-hard level with town size 5 (all the existing levels have town size 1-4) and spent over half an hour on it before getting too confused and giving up on it.

All of these things wasted time but I’m very glad I had the sense to drop them before they became the problems that defined my weekend. Maybe those of us in the compo, and solo jammers, have one thing over the teams: we can be a lot more fluid with our planning and time management than if we have teammates to synchronise with. It’s nice to be able to change direction without having to convince other stakeholders :).

Milky Helps People – Postmortem

Posted by
Tuesday, September 1st, 2015 8:06 am

Milky Helps people is a logic puzzle game. (Timelapse here.)

milky6

You have to place devices in the grid, according to some rules:

  • You need to place exactly one device in every group of tiles
  • When two devices line up, they automatically connect to each other. Each device must be connected to exactly one other device in the same row, and exactly one other device in the same column.

The solution to the above puzzle is as follows:

milky7

But the puzzles quickly get more complex.

milky8

In later levels, the game adds barriers that prevent connections from going through, making the puzzles more complex.

The puzzles are motivated by a story told in the form of a picture book with audio narration. The story is that Milky always likes being helpful, but sometimes he finds that he could be more helpful if he was just a little bit bigger. So he has to operate the professor’s devices to collect some mangosteen juice, a powerful substance that will make him bigger. But every time he gets big enough to solve one problem, a new problem arises that requires him to be even bigger.

milky9 milky2

What went well: puzzle rules

I usually make a puzzle game. My Ludum Dare 32 entry, Wellbeing (game, postmortem), had rules that enabled me to design some satisfying puzzles (I think the most satisfying puzzles are “smooth” – you can chip away at them piece by piece). I was pleased with Wellbeing’s puzzles… except the rules were kind of complex and confusing. Some players were put off in the first three levels while the rules were being explained. So, for LD33 I worked hard to come up with puzzle rules with a balance between simple enough to be easily understood and complex enough to allow me to design satisfying puzzles. Even when I had rules I thought were completely clear, when I showed it to my friend Brian Corr (who has entered LD in the past but didn’t have the time this time) he pointed out and helped to clear up some ambiguities. I haven’t had complaints about confusing rules this time so the plan seems to have succeeded!

Wellbeing had a storyline that branches depending on how you solve one of the puzzles. That went down well with players, so I decided to take it a step further: this game has two endings; once you’ve decided which ending you want, the solution of the final puzzle is determined uniquely. Well, I’m pleased with myself, even if you don’t like it.

What went badly: stylistic incongruity

Some players enjoyed both the story and the gameplay but felt that they seemed unrelated. I think that a big factor in this is the visual style. The puzzles are displayed in a clean, abstract way, and the story is told with some sketchy picture book drawings. If the puzzles were displayed in the same sketchy style, with a few mangosteen fruits here and there, players would have swallowed the connection more easily. But making sketchily-drawn tiles line up properly would have taken a lot of work, so there’s a trade-off to be made here.

Notes on how long tasks took

Going over my timelapse, I made some notes on how long certain tasks took. Naturally YMMV but perhaps these numbers give an idea of how much content it’s possible to create in a given time frame.

  • Recording and editing the 5 minutes of narrative took about 1h20m, while drawing the corresponding art took nearly 5h. (Not counting the in-puzzle art)
  • The 5 minutes of music took about 2h to make, all up.
  • I didn’t write a line of code for the first 4h30m…. I was thinking up puzzle rules and puzzles, and planning everything out on paper. Is that weird?
  • I planned the game out giving myself 10h of contingency time, i.e. planned to be done by 1am Melbourne time, and actually finished at 7am. So… good decision.

Ludum Dare 33 Logic Puzzle Club

Posted by
Saturday, August 29th, 2015 8:40 am

Puzzle terminology is unclear. One of my favorite game genres is what I used to call “puzzles” until I heard some games of chance referred to as puzzles. So these days I say “logic puzzles”. I can’t give you an exact definition but if you find yourself frequently thinking “but if I put that here, then this has to go there, but then that can’t go there, but… oh, er, hmmm…” while playing a game then there is a good chance that it is a logic puzzle. A few other characteristic features are:

  • no hidden information – everything you need to solve the level is there on the screen in front of you
  • always solvable and with completely deterministic gameplay (no chance element)
  • no or very low requirement to think quickly or perform tricky actions
  • solving them should require some level of ingenuity – so a standard maze doesn’t count, nor a puzzle where most of the difficulty is working out the mechanics
  • physics puzzles and puzzle platformers generally don’t count, but it depends on the “but if I put that here…” factor

Logic puzzles can have a cult following but they aren’t so common so I thought I would share a list of such games that I have found this Ludum Dare so other like-minded players can find them easily. I’m listing these games in no particular order, although I’m excluding obviously incomplete games.

I’m super sure that the list is not exhaustive so please let me know of any others you find! (Suggestions for better terminology are also welcome!)

Logic puzzles (according to my meaning of the phrase):
BaseCase – Delicious Ships!
khahem – Detached
Draknek – Slime Saga
thegdr – Splat
madlee – Unfinished Piece
panda – You! Are the monster
lessmilk – Gravity Snake
sprawl – Entropy
VelvelaJade – Zevy’s Puzzlers
Fanaen – Mindvasion
reheated – Milky Helps People (that’s mine)

The following games combine logic puzzles with a component of observing enemy movement. They really are logic puzzles but not all the information is on-screen at once.
ehtd – Eat Sheep
person124 – A Monster Is You!
Jacic – Team S.T.E.A.L.T.H
lubos – Dungeons Deep

Other games with a major logic puzzle element:
daveh – Lure.Lair.Lunch
bowlercaptain – The Terror of the Night of Day
TMW – Quarantine Zone # 1
avultima – Collateral Choice
Open Rift – Shadow Wolf
966623 – RGBlob
MSiddeek – Monster and Hero

Milky Helps People – Timelapse

Posted by
Thursday, August 27th, 2015 6:18 pm

Milky Helps People is my logic puzzle game. Milky often finds himself in situations where he could help if only he was a little bit bigger. Help Milky operate the Professor’s invention to make him bigger. Features 8 puzzles and two different endings depending on how you solve the final puzzle.

milky4 milky5

I’ll try to write a postmortem later but for now here’s a timelapse of its creation.

Wellbeing Postmortem + Timelapse

Posted by
Monday, April 27th, 2015 10:23 am

This is my 7th Ludum Dare compo entry but my first postmortem and timelapse.

title

wellbeing2

In Wellbeing, you are an agent in the Global Wellbeing Ops, tasked with using your treatment emitters to cure sufferers of The Rot. It’s a logic puzzler that aims to appeal to people who like Nikoli-style puzzles (think: Slitherlink, Nurikabe). The game features fully voiced dialogue, and a branching storyline.

Almost everyone who has played the game has either thoroughly enjoyed it or been thoroughly confused by it. I think that people who like logic puzzles are often prepared to push through that initial stage of rule confusion in the expectation of some fun puzzles, so the game has a niche but solid target audience.

Read on for how I spent my time, what went well, what didn’t, and a timelapse.

(more…)

[cache: storing page]