About LiamLime (twitter: @LiamLimeGames)

My personal website can be found at http://www.liamlime.com

Entries

 
Ludum Dare 37
 
Ludum Dare 36
 
Ludum Dare 35
 
Ludum Dare 34
 
Ludum Dare 33
 
Ludum Dare 32
 
Ludum Dare 31
 
Ludum Dare 28
 
Ludum Dare 26

LiamLime's Trophies

Rescue Chicken Genius
Awarded by Trasevol_Dog
on May 6, 2016
The Statistician Award
Awarded by dvdking
on April 25, 2015

LiamLime's Archive

How many people got ratings

Posted by (twitter: @LiamLimeGames)
Tuesday, January 3rd, 2017 8:01 pm

Wait! Don’t do your percentages yet!

Before you do percentages, you need to know how many people you were even competing with. Now it’s easy to just think: Oh, well there were 1489 jam entries and 901 compo entries, so it should be easy, right?

No! Bad boy!

Not everyone competed on all ratings, and more importantly, not everyone got enough votes to get a rating everywhere. You can only compete against the entries with enough ratings. You simply cannot make the assumption that all the entries with insufficient ratings “were worse” than the ones with. Statistics simply don’t work that way.

So here’s the short of it. This is how many entries got a rating in each of the categories. If you want to determine your position, use these numbers and not the global ones. Yes, your scores will be worse, but at least they will be accurate.

JAM ENTRIES

Humor: 643 entries received a score

Theme: 897 entries received a score

Fun: 885 entries received a score

Audio: 552 entries received a score

Mood: 826 entries received a score

Graphics: 848 entries received a score

Overall: 917 entries received a score

Innovation: 848 entries received a score

COMPO ENTRIES

Humor: 424 entries received a score

Theme: 624 entries received a score

Fun: 621 entries received a score

Audio: 446 entries received a score

Mood: 536 entries received a score

Graphics: 598 entries received a score

Overall: 640 entries received a score

Innovation: 596 entries received a score

How did I get these numbers?

By scraping the whole site. You can find a table with every single entry and data about it here:

Ludum Dare 37 Data (Big, big table)

If you would like to do analysis on this data, I also provide it in JSON form, available here: Ludum Dare 37 data (JSON)

Data from previous jams is also available: LD36, LD35, LD34, LD33, LD32, LD31, LD30, etc. Just edit the number in the URL for previous jams, or change it from .html to .json to get the json version.

If you just so happen to run http://ldstats.info/ you’re welcome to use this data and make the site way, way more useful! 😀

😀 LOVE YOU! <3

~Lime

Ludum Dare 37 Rescue Chicken

Posted by (twitter: @LiamLimeGames)
Thursday, December 29th, 2016 2:00 pm

My fellow Ludumites! We may be the lucky ones, who got enough votes for our game to get a rating! But not everyone is quite so lucky – Sure, some may be lazy! Others may be busy! Their reasons matter not! What matters is that…

Every game deserves a rating!

Join me! Let’s welcome back…

 -> Rescue Chicken! <- 

Using this tool, you can see which games are close to receiving the required bare minimum of 17 votes. Let’s help our fellow participants get a rank. Let’s not judge why they have not yet voted for enough games to get a rating themselves, let’s just help them out.

(more…)

Terrain Generation – Part 2

Posted by (twitter: @LiamLimeGames)
Sunday, August 28th, 2016 11:02 am

When we last left off, I had generated a world with rivers, forests, lakes and such:

I promised structures. The first structure I made are roads. These took a decent amount of effort though, so I initially had hardcoded the spawn locations to test whether they properly connect to each-other.

Then I tried various kinds of directions, to see that they work properly:

Once that was tested, I started on towns. Initially, towns had a tower at the centre and houses scattered within its limits:

Then I added some roads within the town. There will be a horizontal road just below the tower and some random vertical roads elsewhere. Roads are generated just after the tower, so there shouldn’t be a case of a house in the middle of the road. I also added temples, which will spawn somewhere close to the tower.

I then added some extra buildings: Barracks (training dummy), archery ranges (bow target) and stable (horseshoe). These also spawn close to the centre:

After this, I made road connections between towns. There’s no smart road network or anything, just straight lines which connect each town to the other.

Next up: Soldiers!

 

 

It gets worse before it gets better! :D

Posted by (twitter: @LiamLimeGames)
Saturday, August 27th, 2016 12:26 pm

Slowly descending deeper and deeper into the reality of Ludum Dare.

When trigonometry matters.

Posted by (twitter: @LiamLimeGames)
Saturday, August 27th, 2016 10:17 am

Terrain generation

Posted by (twitter: @LiamLimeGames)
Saturday, August 27th, 2016 7:32 am

I’m doing random terrain generation as a part of this Ludum Dare. Here’s my generation process so far – as it was developed.

It all started with rivers on blank terrain, which 100% did not work:

Then I made rivers, which did work! Well – for the most part anyway. There were still gaps between river segments.

These gaps were however fixed!

Next came small areas of sand around the rivers:

After this, I turned my attention to forests. I made a simple recursive spreader thing, which generates blobs like this:

And after some tweaking of spread percentages, I made it look decent!

I then used the exact same algorithm to create lakes.

I’m quite happy with this so far. Next up: Structures.

Ludum Dare 36 pre-natum

Posted by (twitter: @LiamLimeGames)
Saturday, August 20th, 2016 6:23 pm

With my constant participation in 1 hour game jam, I really haven’t felt a need to do extensive planning for Ludum Dare like in previous jams.

I however think the time has come to attempt a strategy game or some sort. Either economic, real-time military or turn-based. I’ll see which one I choose. I’ll probably go for simple 2D graphics and a math-heavy gameplay model. I’ll see how well this will work with whatever theme is selected though.

My main goal is to make a simulation-heavy game in the 48h Ludum Dare compo. I’d prefer to go into military strategy with base-building and unit control, but depending on the theme, economic strategy might apply more. The themes I like never win though, so ¯\_(ツ)_/¯.

The tools I use will slightly depend on the selected theme and detailed game design, but they’ll be a subset of the following:

Engine: Unity
Models: Blender
Graphics: Inkscape, Photoshop Elements
Voice and Music: Reaper, XMedia Recode, Audacity
Sound FX: BFXR or USFXR
Source control: SourceTree (Git)
Backend: PHP/ MySQL / JSON / Google Analytics / Unity Analytics
Timelapse: Autoscreen, MakeAvi, Premiere Elements

Have fun, everyone!

Rescue Chicken Post-Mortem

Posted by (twitter: @LiamLimeGames)
Monday, May 16th, 2016 7:28 am

  Rescue Chicken Post-Mortem 

Rescue chicken was a webpage which highlighted the games for Ludum Dare 35, which had an insufficient number of votes to receive a rating by themselves. If you missed it, the page is available here: Rescue Chicken

 The idea

Rescue Chicken wasn’t a completely “new” idea. During previous jams, Sosowki maintained the tool which inspired Rescue Chicken, called Ludum Dare Rescue Rangers. This tool has however stopped appearing in Ludum Dare jams since LD31, which is why I made the replacement.

The purpose of the tool was to spotlight the games with insufficient votes. There was one major difference between Rescue Rangers and Rescue Chicken though. It may seem like a small one, but is bigger than you might think – entry ordering. Both pages ordered entries by the number of votes they received, the difference was that Rescue Rangers used ascending ordering whereas Rescue Chicken uses descending ordering. This means that in Rescue Rangers, the games with the fewest number of votes would appear at the top whereas in Rescue Chicken the games with the most votes, which have not yet reached the threshold, appeared at the top. I felt that it’s a fairly safe assumption to expect the first few games to receive the most attention from voters – data seems to prove this.

LD31 “Votes Received” distribution (Rescue Rangers)

LD35 “Votes Received” distribution (Rescue Chicken)

Notice in the LD31 data how many games have 11 votes and none have fewer than that. This is very likely because Rescue Rangers promoted those games at the top. Also notice in LD35 data how only a single game has 16 votes, only two games have 15, 14 and 13 votes each. This is likely because Rescue Chicken promoted games that were near the 17 votes threshold, meaning more of them passed. There is also a huge clump of games with exactly 17 (137) or 18 (109) votes, which is where games pass the voting threshold and no longer appear in Rescue Chicken.

When making spotlight or promotion systems, you have to make a decision about what you would like to promote – what you would like to maximize for. Rescue Rangers and Rescue Chicken fundamentally maximize for different things: Rescue Rangers maximizes for “Every game should get at least some ratings / comments.”, whereas Rescue Chicken maximizes for “As many games as possible should get numeric ratings.”.

Everyone knows that the best way to get ratings in Ludum Dare is to rate enough other entries and get your ratings through the Ludum Dare website. These are not the participants either of these pages deal with though – These pages deal with participants who invested “No effort” or “Insufficient effort” into rating other entries to get enough ratings by themselves. I want to talk in non-accusatory terms here, as there are many valid reasons why participants might not be able to rate (enough) other entries, but seeing as how the ranking system in Ludum Dare works, these three groups can be clearly identified (no effort, insufficient effort, sufficient effort). Rescue Rangers tries to ensure that all games have at least some ratings, promoting the games with the fewest ratings. These games typically come from users who have not rated any games themselves, meaning Rescue Rangers promotes the “No effort” participants. Rescue Chicken, on the other hand, orders games in the opposite order, meaning the games with the most ratings (which have not yet crossed the threshold) get the most exposure. So if someone rated a handful of games and in return received a few ratings through the Ludum Dare website, they would appear much higher on the Rescue Chicken list than someone who has done no ratings and received none in return from the LD website. Neither Rescue Rangers nor Rescue Chicken is “correct” in its approach, they simply maximize for different things.

 Exposure / promotion

The post which announced Rescue Chicken was featured on the Ludum Dare website for the last week of voting, so it got a lot of exposure. I didn’t notice much off-site exposure for the tool though – either through social media or IRC. There were occasional mentions of it, but it certainly didn’t go ‘viral’. Never the less, the tool was used.

Rescue Chicken tool usage

I think it’s obvious when the tool was featured and when it was removed from the featured list. 2722 sessions total. The part before that is my attempt at promotion on social media and IRC, as well as development and testing, the part after it is just the tiniest long tail ever. The tool is not useful anymore, folks. 😀

 Did it work? Did it help?

Looking at the graph from above (LD35 one), yes, it did. But how much did it help? That one’s trickier. If someone wants to do a more in-depth analysis on various ways of determining whether it helped or not, go ahead, the data’s at the end of this post. For the purposes of my assessment, I chose to look at the percentage of games with at least one numeric rating (other than coolness).

Games with ratings vs. total games across jams

So let’s get the overall picture out of the way first, since it seems to hover at around 80% with some slight fluctuation from jam to jam.

Percentage of games with ratings across jams.

Most of these are actually unassisted, it seems. Rescue Rangers was apparently only active during jams 26 and 31 from those listed. It’s however possible that other jams had it and that the posts that announced Rescue Rangers have since been either deleted or edited. Establishing a baseline from before jam 25 is actually very difficult, since, for example, jam 20 only had 284 participants, 98% of whom got ratings. It’s very difficult to estimate the effect that Rescue Rangers had during LD 25 and 26 due to its explosive growth before then. Still, looking at LD31, it’s obvious that the percentage of games with received rankings is much higher than those around it. You can also see a fairly obvious and sizeable decrease in the percentage of games with rankings between LD 32 and 34. I don’t think the community just became “worse” at rating, but something else did change – opting out of ratings. It has been possible to opt out of particular ratings (even all of them) since LD 32. This is the only real change I’ve seen since then, so it’s what I attribute the decline in percentage of games with rankings to. I would love it if others did more research on this though and see if this is actually true or if there are other factors as well.

Seeing the decline in the percentage of games with rankings between LD31 and LD34, I think the upswing from LD34 and LD35 is a very positive thing and can at least partially be attributed to Rescue Chicken. Even though the numbers aren’t back to the 98% glory days of LD20, returning to the standard 80% seems like a good thing.

I may very well be reading too far into this and cherry-picking its impact on percentages, but looking back at the LD35 graph and comparing it with the LD34 graph (one without Rescue Chicken or Rescue Rangers), it seems to me that the distribution of games in the 5 – 16 vote region would have been fairly constant, whereas with Rescue Chicken, it isn’t. Most of the games that would have ended up with 9 or more votes without Rescue Chicken, have in fact been pushed past the 17 votes threshold, thus receiving a vote.

LD34 “Votes Received” distribution (neither Rescue Chicken nor Rescue Rangers)

 The data and code

The data used to make all this is linked to in this post: How many people got ratings

The code for Rescue Chicken is available on GitHub: Ludum Dare Rescue Chicken (GitHub)

A live version is available on my website: Ludum Dare Rescue Chicken (Live)

For future jams, you can change a parameter in the live version and it will poll the new LD, so you can continue to use that live tool even without my presence. Simply edit the “event” argument to the appropriate Ludum Dare number: For example for LD36, do: http://liamlime.com/content/ldtools/rescuechicken/?event=36

 TL; DR

I don’t blame you. Long story short: Rescue Chicken worked out very well. What it didn’t do is give every game a rating, it has however reversed a steady decline in the percentage of games that get ratings – at least for now. Thanks to everyone who participated, you’re the best! 😀

If you want more Ludum Dare related analysis, follow me on Twitter: @LiamLimeGames

~Lime

How many people got ratings

Posted by (twitter: @LiamLimeGames)
Tuesday, May 10th, 2016 1:35 pm

Wait! Don’t do your percentages yet!

Before you do percentages, you need to know how many people you were even competing with. Now it’s easy to just think: Oh, well there were 1594 jam entries and 1118 compo entries, so it should be easy, right?

No! Bad boy!

Not everyone competed on all ratings, and more importantly, not everyone got enough votes to get a rating everywhere. You can only compete against the entries with enough ratings. You simply cannot make the assumption that all the entries with insufficient ratings “were worse” than the ones with. Statistics simply don’t work that way.

So here’s the short of it. This is how many entries got a rating in each of the categories. If you want to determine your position, use these numbers and not the global ones. Yes, your scores will be worse, but at least they will be accurate.

JAM ENTRIES

Humor: 795 entries received a score

Theme: 1135 entries received a score

Fun: 1157 entries received a score

Audio: 704 entries received a score

Mood: 1019 entries received a score

Graphics: 1179 entries received a score

Overall: 1194 entries received a score

Innovation: 1123 entries received a score

COMPO ENTRIES

Humor: 606 entries received a score

Theme: 934 entries received a score

Fun: 933 entries received a score

Audio: 624 entries received a score

Mood: 796 entries received a score

Graphics: 893 entries received a score

Overall: 955 entries received a score

Innovation: 922 entries received a score

How did I get these numbers?

By scraping the whole site. You can find a table with every single entry and data about it here:

Ludum Dare 35 Data (Big, big table)

If you would like to do analysis on this data, I also provide it in JSON form, available here: Ludum Dare 35 data (JSON)

Data from previous jams is also available: LD34, LD33, LD32, LD31, LD30, etc. Just edit the number in the URL for previous jams, or change it from .html to .json to get the json version.

If you just so happen to run http://ldstats.info/ you’re welcome to use this data and make the site way, way more useful! 😀

😀 LOVE YOU! <3

~Lime

Rescue Chicken

Posted by (twitter: @LiamLimeGames)
Sunday, May 1st, 2016 7:46 pm

My fellow LudumDarians! We may be the lucky ones, who got enough votes for our game to get a rating! But not everyone is quite so lucky – Sure, some may be lazy! Others may be busy! Their reasons matter not! What matters is that…

Every game deserves a rating!

Join me! Let’s make this happen!

To help, I made:

 -> Rescue Chicken <- 

Using this tool, you can see which games are close to receiving the required bare minimum of 17 votes. Let’s help our fellow participants get a rank. Let’s not judge why they have not yet voted for enough games to get a rating themselves, let’s just help them out.

(more…)

Paralax

Posted by (twitter: @LiamLimeGames)
Saturday, April 16th, 2016 8:55 am

Toot toot! Here comes the paralax train!

LD35 Pre-Natum

Posted by (twitter: @LiamLimeGames)
Thursday, April 14th, 2016 9:43 pm

It is traditional for Ludum Dare participants to write a post-mortum after the jam, in which they share their process, their successes and failure and what they learned. I always promise I’ll write a post-mortum, but never do. I do write a pre-competition post though – a pre-natum.

Lets get the main formality out of the way first: I’m in.

With that out of the way, I’m changing my approach to Ludum Dare. This time I’m coming in with an actual plan. My plan is very simple, but often very hard to actually follow: 24 hours of feature development, 24 hours of bugfixing and polish. That’s it. Sounds easy, but can be really hard to actually do. The allure of adding features and pushing back bugfixing can be overwhelming! As to the theme, it will get announced at 3AM on Saturday my time, so I’ll be able to sleep on it and get a plan going for the type of game I’ll be developing. With the changes to the voting system, I can’t really predict which theme will win this time, and with as many choices as there are, it’s impossible to make a plan for each of them.

Even more so than the game development portion, I look forward to playing other participants’ games. That is always a lot of fun. Reading written feedback on my entries is also often insightful. In terms of numeric ratings, I don’t really give much thought to them. I care way more about the written feedback.

What I also hope to do is to re-enable my voting analysis tool soon after voting starts and to do a site scrape soon after the results are available.

Have fun, everyone! 😀

Lastly, just the obligatory list of used software:
Engine: Unity
Models: Blender
Graphics: Inkscape, Photoshop Elements
Voice and Music: Reaper, XMedia Recode, Audacity
Sound FX: BFXR or USFXR
Source control: SourceTree (Git)
Backend: PHP/ MySQL / JSON / Google Analytics
Timelapse: Autoscreen, MakeAvi, Premiere Elements

How many people actually got ratings

Posted by (twitter: @LiamLimeGames)
Sunday, January 10th, 2016 3:48 pm

ALL YOUR PLACEMENT PERCENTAGES ARE WRONG! ;_; YOU DID WORSE 😀

Uh… did I get your attention? Hi! So I did a thing and found out how many people actually got ratings in each of the categories during Ludum Dare 34.

So I know everyone loves to just calculate their percentage with the assumption that everyone got a placement, but it’s not really the case, unfortunately – some people opted out of ratings in some categories, others simply didn’t receive enough votes to get a rating. So prepare to have your calculated percentages fall quite a bit when you consider just people who actually got ratings. The number of people with ratings are as follows:

Number of people who received a rating (Jam):

Humor: 853
Theme: 1101
Fun: 1096
Audio: 721
Mood: 1005
Graphics: 1024
Overall: 1121
Innovation: 1051

Number of people who received a rating (Compo):

Humor: 697
Theme: 966
Fun: 962
Audio: 684
Mood: 860
Graphics: 907
Overall: 973
Innovation: 941

How were these numbers acquired? Literally by scraping the whole site. The full Ludum Dare 34 results can be found in this table. You can click on a column header to sort them.

For previous jams: See LD33LD32LD31LD30LD29LD28LD27LD26, etc. I think I did all of them, just edit the URL accordingly.

Rating distribution (green = Jam; Blue = Compo):

Humor:

Theme:

Fun:

Audio:

Mood:

Graphics:

Overall:

Innovation:

MVP

Posted by (twitter: @LiamLimeGames)
Sunday, August 23rd, 2015 11:11 am

Thinking of abandoning your game? Here’s how to solve your problem.

As this Ludum Dare’s conclusion begins to approach, and everything winds down (haha), let me tell everyone about a combination of three letters: MVP.

MVP does not stand for most valuable player, it stands for minimal viable product. An MVP is the product you have right now, upgraded with the fewest features possible to make it viable.

The point being: Many have come to realize that all the fancy features they wanted to include at the start cannot possibly make it in. Don’t abandon your game just because of this! Now, 11 hours before the deadline is the time to select the subset of features which are absolutely necessary in your game, and do those and only those!

This is absolutely not something akin to admitting defeat or failing to properly honour the glorious idea you had at the start! Abandoning the game entirely is admitting defeat! Refocusing and working on a subset of features is what it comes down to every single time you do a game jam (or develop a commercial game for that matter.) So evaluate what you have, what needs to be done to make your minimal viable product and do that.

Thank me later, now get back to work! 😀

Procedural terrain generation

Posted by (twitter: @LiamLimeGames)
Saturday, August 22nd, 2015 11:17 am

Well I’m doing something I haven’t done before… I’m trying my hand at procedural terrain generation.

Here’s a generated map with purdy floor, woods and two towns

Generating this sort of stuff is not the easiest thing in the world, but it’s progressing rather well, at least so far.

Ludum Dare #33 Pre-natum

Posted by (twitter: @LiamLimeGames)
Wednesday, August 19th, 2015 7:20 pm

After each Ludum Dare, participants are encouraged to write a post mortum. Well this is my pre-natum, because I’m doing it before it starts.

First of all: I’m in.

Now that this formality is out of the way. what’s my plan? I don’t have one, the theme gets announced at 3AM on Saturday my time, so I’ll be able to sleep on it and get a plan going. I hope to be able to go for scale tho. I like to make big games during Ludum Dare.

After LD, I hope to play as many games as possible and get as much feedback as possible for my game. I really appreciate written reviews and sort of don’t care about numeric votes. I have no ambition of being in the top 100 of any category, I just don’t follow best practice advice to do that. 😀

Lastly, just the obligatory list of used software:
Engine: Unity
Models: Blender
Graphics: Inkscape, Gimp
Voice: Windows sound recorder, XMedia Recode, Audacity
Music: LMMS / Music Creator
Sound FX: BFXR
Source control: SourceTree (Git)
Backend: PHP/ MySQL / JSON
Timelapse: Autoscreen, MakeAvi, Premiere Pro CS3

[cache: storing page]