LD27 August 23–26, 2013

Working on some concepts for a visual novel called Pandamonium

maybeZarvaPandaPandaguy

Pandagirl

Pandatrap

5

This entry was posted on Thursday, September 19th, 2013 at 6:42 pm and is filed under LD #27. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Breaking Down Fun Pedantically

Fellow LD’er VDZ  has been helping me understand why my games aren’t more fun. One thing he said was that my latest entry, Pro Crastinator didn’t present enough clear challenge, reward, or risk.

If I’m going to make games, they should really be fun! So, I’m trying to better understand what VDZ is trying to teach me.

To that end, I did some “Homework.” I took it upon myself to look at some of the top-ranking LD games in the fun category, and try to figure out what makes them so fun. I tried to pay particularly close attention to the concepts of challenge, reward and risk. I thought it would be useful to share here, so that you guys can “Grade me.” :)

Trevor Thompson

Ludum Dare 09/19/13

6th period

Understanding Fun

Antidote:


There’s a very simple game mechanic:
you shoot, you pick up gems.

  • On top of that, there’s a risk: die if you don’t make it to the potion in time (and lose your progress)
  •     On top of that, there’s another risk: you lose the opportunity for gems if you get the antidote too fast

Challenges include getting further in the dungeon and getting as much $ as possible (or higher than last play / higher than your peers). [It could be improved by clearly showing the amount of cash picked up upon death, like Coin Rush does]

Rewards come in the forms of seeing new dungeons, seeing and hearing effects of the gun, destruction or shuddering of enemies / objects on shooting, seeing shiny gems pop out, hearing sounds of gems hitting the floor, hearing sounds of picking up gems, seeing indicators that your money is increasing

Every ten seconds a window washer falls to his death:


Movement is difficult but fair; player has just enough control to not feel frustrated, but not so much that the job is easy or boring. Player has to decide what area of the screen they should be in and also manage their velocity in order to do so (subtle decisions need to be made regarding bouncing off the edges vs changing direction).

Challenge is to get the building clean(er than last time)

Risks come in the form of leaving a washer unattended for too long, leaving birds alone for too long, and not catching falling washers. The player is allowed to manage those risks themselves. The scream sound and splat effect reinforces with the player that the risk is “real.”

Rewards come in the form of audio and graphical indicators when a washer is saved or when a bird is kicked. It is perhaps worth noting that it’s not as “rewarding” to the eyes and ears to focus solely on repairing the ropes.

Proletarian Ninja X:


(Frankly, I think this one is more frustrating than fun)

Challenge is to move through the levels. Hitting multiple enemies with the shuriken is a challenge the player can set for themselves.

Rewards come from killing enemies in the form of a screen flash, sound effect, and spawned blood and guts.

Risks come from being seen, having corpses be seen and the ticking clock. Player is allowed to manage risks, to some extent, by choosing when and in what order enemies can be killed. The shuriken mechanic adds another layer of choice for the player.

PUNISHMENT(!) comes in the forms of a bright, fast screen flash and a grating noise.

Clockwork Cat:


Good ole’ platformin mechanic. Tight controls.

Challenge is to make it to the next section before time runs out.

Rewards include seeing more of the level and completing the story, hearing the noise and seeing the hands move when you are reversing time.

Risks include running out of time and falling to your death. The player feels like they have a certain amount of agency over their risks, because they can often run back and rewind time as often as they like, until they feel ready to move to the next section.

Coin Rush:


Again, a good ole’ platformer.

Challenge comes from wanting to get the highest score, or a higher score.

Rewards come in the form of the enemies bouncing off the screen, coins popping out, sound of coins hitting floor, sound of picking up coins, counter increasing when enemies pick up coins, watching your score increase and getting bigger coins when the enemies have multipliers in effect. The player is able to manage their reward, to some extent, by how many coins they let the enemies pick up.

Risks come from touching enemies and having enemies run away with your hard earned loot. Again, the latter is left up to the player to manage, to some extent.

Conclusions:

I think it is quite clear that some patterns are emerging with regards to risk, challenges and rewards.

One thing I didn’t mention is that all of these games, if I recall correctly, have great music. However, I don’t know much about what makes great music or what makes great music for a fun game.

Comments

20. Sep 2013 · 11:22 UTC
Thanks for taking time to write this up. I’ve been doing a lot of post-compo analysis of my own game, but haven’t really spent time looking at what caused the stronger entries to succeed. It should be obvious (but somehow wasn’t for me) that it’s a good idea to look at the strengths of others instead of focusing so much on my entry and its shortcomings. The challenge/reward payoff was completely absent from my entry, and this post very effectively demonstrates why this is an issue.

Even more statistics?

Well, I’m crashing vrld‘s party with other things I was curious about :D

In particular the difference between Compo entries and Jam entries.

Unsurprisingly,  jam entries get higher ratings in graphics:

Graphics

 

 

Similarly their audio is also rated higher:

Audio

 

 

My theory is that these two give the Jam a boost when it comes to mood:

Mood

 

But are jam games better? The overall doesn’t show a major difference:

Overall

And neither does fun:

Fun

Same for innovation:

Innovation

They certainly are funnier (disregarding a certain outlier…) which I wasn’t really expecting:

Humor2

But the coolest thing is that there’s one category where the compo gains the upper hand (not by alot, but you can’t deny it’s there):

Theme

 

All in all, nothing too crazy here, but I wonder why the compo entries get higher theme ratings.

 

Some Statistical Analysis on the Compo Results

… or: A Guide on How To Score High Next Time.*

Recently, ashdnazg posted a handy CSV containing all Compo and Jam entries that received a rating. Being somewhat of a data-nerd, I decided to take a deeper look at the results. In particular, I was interested in one question:

“Do ratings in one category influence the ratings in another category, and if yes, how much?”

One way to answer this question is plotting the ratings in category A against the ratings in category B using a scatter plot. If A depends on B (or vice versa), we will roughly see a ‘line’. The line will become more ‘blurred’  the less dependent the categories are.

You can also put a number on the dependencen using MATHS. More specifically: Pearson’s correlation coefficient. The correlation coefficient measures the correlation (dependence) between two variables. As result, it will give you a value between -1 and 1, where -1 and 1 translate to “highly correlated” and 0 means “no correlation”.

Before jumping to conclusions, it’s time for a disclaimer: 

“Correlation does not imply causality” – i.e. high correlation of ‘Theme’ and ‘Mood’ can mean that a high rating in ‘Theme’ will lead to a high rating in ‘Mood’ or the reverse. Or it can mean there is no causality at all.

 

Anyway, here are the results of my analysis (correlation coefficient is shown in the lower right of the plots):

“Overall” Rating

As suspected, the overall rating is highly correlated with fun:compo-Overall-Fun

Surprisingly, it is less correlated with good graphics or innovation:
compo-Overall-Graphics
compo-Overall-Innovation

Here are the remaining plots. As you can see, the overall rating is almost independent on the humor rating, but surprisingly very correlated with the mood.

compo-Overall-Humor
compo-Overall-Mood Audio and Theme have a moderate correlation with the overall rating.
compo-Overall-Audiocompo-Overall-Theme
Conclusions:

There are two things we can take from this:

1. If you want a high overall rating, make you game (a) fun and (b) pretty. If you have time, try to evoke some intense feelings (mood).

But perhaps more important:

2. The Fun and Overall rating could be turned into one combined rating (“overall”).

 

Bonus:

This post is too short to show or even analyse all the correlations of each category with each other category. However, I created a zip containing all the graphs (including jam results) so you can draw your own conlusions. You can download the file here.

 

* Not really though. See the disclaimer.

Comments

20. Sep 2013 · 08:33 UTC
Nice work! These all make sense as far as I can see. Gameplay is the number one thing that should be valued in a game, good to see that others seem to feel that way. And as you mentioned, mood correlates to emotion, and nothing is better at evoking positive feedback from humans than emotion.
20. Sep 2013 · 08:37 UTC
That is a very nice set of graphics you made there! Maybe you could try making correlations between other pairs of variables?
20. Sep 2013 · 08:47 UTC
@caranha

Well yeah, a lot of times I found that I didn’t know how to rate mood because the game didn’t give me any feelings whatsoever (which is perfectly fine). In those cases I just left the rating out (I did the same for humour on almost all games).
20. Sep 2013 · 09:01 UTC
It’s nice to see statistics are consistent!
20. Sep 2013 · 11:40 UTC
I think it’s a problem that people are not taking production values enough into consideration when voting for the Overall category. It makes me sad when I see games that obviously took a lot of work and skills to make beaten by simplistic games.

I am not a cheater

So this was my first main Ludum Dare and I had a lot of fun. But I have now seen two posts accusing people of cheating the system. One guy was being accused of cheating because they commented ‘Good Job’ on every game they rated. ( http://www.ludumdare.com/compo/2013/09/01/l-for-loser/ ) In the second one, people who don’t leave comments are being accused of being cheaters. ( http://www.ludumdare.com/compo/2013/09/18/dirty-cheats/ ) I understand there are probably more than a few real cheaters out there. They will always exist. But I do not appreciate that people who don’t leave comments (and somebody that always left a comment) suddenly being lumped in, as if not leaving feedback or leaving too much feedback just meant you were rating randomly.

I rated 191 games. I might have left about 10 comments on various games, almost none of which was more than a Good Job. I played every single one of those games and left an honest rating as I am sure a whole lot of people did. Just because I didn’t have much or anything new to say has no relation to my rating habits. Maybe some games I should have played a little longer. Maybe next Dare I will try and leave more feedback since it is obviously strongly encouraged. But leaving a comment with your rating was not required and insinuating those of us with little to say are cheaters is unfair to say the least.

I am not against requiring feedback next time around as suggested in the second post but I can only guess that game pages will just be filled with a whole lot of “Good Job”‘s and “I don’t know what to say but I need to fill 100 characters. And Good Job”.

I don’t know how to actually catch cheaters but I feel like actively looking for them is only detrimental to my enjoyment of the entire process and being indirectly accused of cheating myself is even more so. I don’t know how the people running the show look for them but I assume they are doing their job. In the meantime, I am going to happily continue on with my life assuming everybody here wants the same thing I do, to make a game in 48/72 hours, and that any cheaters that are out there will get what they deserve.

11

This entry was posted on Friday, September 20th, 2013 at 8:29 am and is filed under LD #27. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Public service announcement: Full Game Developer Magazine archive available online

Game Developer

Available for free on the GDC Vault. This is an incredible (and sadly missed) magazine. I recommend any aspiring, hobbyist, or independent game developer peruse through this archive. Many insightful articles for all fields related to game development.

I previously wrote about how you should subscribe to this magazine. Alas, the magazine is now gone, but you can read everything in PDF form.

Comments

21. Sep 2013 · 03:31 UTC
Wow I miss this magazine. Thanks for telling us about this!

2nd LD = Bronze in Audio! Thanks!

ratings

Just wanted to say thanks to everyone who took the time to play and rate my game!

My previous entry (LD26) was a decent game but was rated very poorly in audio because I ran out of time and didn’t get around to adding any at all. I actually managed to score a 1.31 in Audio that time. I guess there were actually some reviewers out there who felt that silence was worth more than a 1. heh.

Anyway, I knew I wanted to make sure that I didn’t have a repeat of my audio performance this time for LD27. I wanted to make something where the audio was central to the experience of the game. So, I got all crazy and ended up deciding to make a music game with some original music that I’d record over the weekend.

I knew I’d do better in Audio this time around… but I still didn’t have a full complement of sounds – no UI sounds or anything – just 30 seconds of original music. I definitely didn’t expect to get 3rd place in Audio across all Jam entries, and I’m not entirely sure that I deserve it, but I appreciate it all the same!

Anyway, this has been a great 2nd Ludum Dare for me. I’m very happy with how everything turned out and am looking forward to the next one!

Tags: audio, music, rankings, ratings, thanks

Entering Mini-LD 45

I really like the idea of this Mini-LD so I couldn’t resist doing something. As part of the purpose of this challenge is to learn something, doing a C/C++ game wouldn’t really cut it for me, so to meet the learning requirements I figure it would be best to develop a game for a platform I have never worked with before. I decided to go with the NES as I really loved 6502 assembly language and I figured it would be similar to programming my Commodore 64.  I have spent the last few evenings learning how the NES works and creating some skeleton code for creating a game this weekend. While I think I have the weekend free, this is not guaranteed.

Tools: JEdit, NESAsm, yy-char (tile graphics editor), possibly tiled

Skeleton: http://blazinggames.com/gamejams/minild45/miniLD45.php

Good luck to everyone who plans on entering this one.

MiniLD 45 – Day 1 – Monster’s Maze

So against my better judgement, I decided to participate in this month’s Mini Ludum Dare!  I will be building a game in C++ using the SFML framework, and creating my game assets in Paint.NET.  Unfortunately, I don’t think I’ll be able to get a whole lot done, since I also have homework to attend to, so I am scoping very low for this project.

My game will be a one-screen, top-down monster shooter set in a labyrinth; nothing fancy on the experience side.  However, I am using this as an opportunity to teach myself new things, in the spirit of the compo.  Specifically, I implemented a new AI pathfinding method I’ve never tried before, use cellular automata to generate my levels in a way I’ve never done before, and am going to try to practice my pixel art a little more.

The following screenshot is a debugging view of the pathfinding technique I mentioned.  It is essentially my own implementation of the technique described in this article, where it is called “diffusion-based pathfinding”.  The brighter the tiles, the nearer they are to my player character, as you can surely see; the data is updated constantly, in real-time.  Monsters will use this diffusion- or scent-based grid to navigate towards the player at all times.

Scent-Based Pathfinding

Hope everyone’s having fun, and getting their proper rest!  I’ll be cross-posting to my personal blog as well.

Tags: MiniLD #45

Turbo

glitchy

It’s meant to be my main character’s adorable sprite image… almost. All these C compilers written after the 1980s have left me spoiled — It’s probably not a good idea to write hundreds of lines of code at a time without testing when you’re using TurboC (1988).

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…

 

 

640kb ought to be enough for anybody

abnormal

I think I found an error in one of the compiler-made error message I got.

 

toolarge

Never gotten this one before — I guess we’re not going to have super massive levels. Writing any streaming-from-disk-levels-cleverness using 16bit DOS probably isn’t the best idea given the time constraint.

 

walkcycle

Not 100% happy with the walk cycle, animating a 1bit sprite is surprisingly hard to get right.

Hadean Rampage post-mortem

Firstly, a big apology that this has taken so long. Life seemed to have gotten in the way after the two days at Ludem Dare. Secondly this is a short summary of my game the full length one can be found on my youtube channel later today.(Watch this space).

What went right:

  • Using unity, going with something you know really, really is the best thing you can do to help your chances of “winning”.
  • My level design workflow; this would be a post on itself but by the end of the compo I could make a level in 5 min flat.
  • Trading Extensibility for Simplicity, in the beginning I had one hell of a OOP class diagram with singletons and factory’s to make my mobs and store my data. However in the end they were made into static variables and Instance() commands.
  • Um… …I finished? No really this was my first project that I can put my “This is a game” sticker on. :)
  • Even worse… …I started. You know that guy? The guy who thinks they suck real bad and so don’t ever do anything. That was me

What went wrong:

  • The difficulty. This I think was a major downer to most people. The fact that they didn’t get past level one, it might have caused them to rate fun lower than they might have as well.
  • Innovation. this speaks for itself. 986th isn’t that bad…. Right?
  • How I got 2.07 for humor when my game had no DIALOGUE.
  • Secrets, most people didn’t seem to get that all you needed to do to find a secret was shoot at a wall. If( !Wall.HasBulletHole ){ SecretWallFound(); }
  • My overall 435th rating, A bit disappointing. I was aiming for at least 399th.
  •  I forgot to add blood particles.

Another thing that I forgot is the link

Doing something for the Low-Level Mini LD

Hi! Just saying that I think I’m making something for the mini LD running over this weekend. I had a reasonably awesome idea: make a game for the gameboy advance. I’ve been working on another project recently (Portal for the gba), so I have a bit of experience :)

I’m using an ancient version (circa 2005) of the Dragon BASIC compiler for the gba. It’s pretty neat, and of course, the language compiles to actual machine code to run on the gameboy (duh!).

I have to use bitmaps for all of my graphics, so paint.NET will be the way to go. I also need to do some amazing magic on most of my images, so that they are actually 16 color, and properly 4bpp.

If I do ever actually finish something worth playing, it’ll be in the form of a gba rom. This means it’ll need either an emulator (Visualboy Advance is great) or an actual GBA and a flash cartridge to run.

Hope to see some interesting entries in the low-level jam 😀

Some (basic) progress in the Mini LD

So, here’s what I’m working on, after several hours of trying to get tiled backgrounds working. I still cannot scroll the tilemap though, I’m working on it.

Capture

I think that I’m making some kind of sandbox/exploration game, I don’t really have any full idea on what I’m gonna turn this into though! A top-down minecraft-esque game could be nice to experiment with on the gameboy.

 

Comments

21. Sep 2013 · 12:12 UTC
> A top-down minecraft-esque game could be nice to experiment with on the gameboy.

Glitchy

tilemap

Sprite loading all over again, trying to get tilemaps to work. Hard to imagine how we had computer software in the 1980s — then again, this is far more fun than a segfault.

A Kitty

It took me way too long to get this much working:

kittytown

I am sooo out of practice with C++. Lua, Python, and C# have spoiled me!!

I’m not exactly new to C++, but the last game I made in the language was years ago. For this miniLD (my first foray into any LD) I thought it might be nice to revisit C++ and also try out SDL2 which just came out :)

Comments

Diogo Muller
22. Sep 2013 · 10:32 UTC
Nice! I studied a bit of SDL2 this week, but couldn’t get anything working as I wanted. Great to see it’s working for you! :)

Low-Level Jam

A little late, but I’m in for the Low-Level Jam! Going to be using C and Libtcod to make a roguelike of some sort! Good luck everyone, have fun :P.

Libtcod – http://doryen.eptalys.net/libtcod/

I’m having more fun playing GTA V than coding in C++

There. I said it. Enjoy your jam.

For the record I got a good little turn-based city-sim/roguelike going (who knows which game UI I just ripped off?), it’s just not going to happen this weekend.

grand

theft

 honor

 

 

Hello, world?

This is my first foray into developing with C++ and Allegro (as well as Visual Studio,) and I’m quite happy with the process so far, except that it took me so long to figure this “bug” out:

floor = ceil =+ floor;

At first I was pretty shocked that this had happened and not been caught, but after staring at it for a minute it made sense; this was interpreted as “set floor and ceil equal to the positive of floor” which was not what I had intended. I guess this should teach me to be a little bit more careful when I’m trying to press the plus key quickly!