Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

James / Java Cake Games

A member registered Sep 01, 2020 · View creator page →

Creator of

Recent community posts

I have forwarded your criticism to it. This caused it to produce some more one-sentence answers, but they're still quite cumbersome. My favourite new one:

What did the libGDX game developer get for Christmas?
A heap of memory so he could finally allocate some space for his holiday cheer.

Why did the libGDX programmer have to use a different API to draw a Christmas tree?
Because the usual API only supported rendering rectangles, and the programmer couldn't figure out how to twist it into a tree shape!

What did the libGDX programmer give their significant other for Christmas?
A pixel art heart, drawn with the ShapeRenderer and scaled up to fill the screen! It may not have been the most impressive gift, but it came from the programmer's heart.

Why was the libGDX game so jittery during the Christmas parade?
Because the programmer was using a fixed timestep with a low frame rate, and the game couldn't keep up with all the excitement of the parade! The programmer promised to optimize the game's performance for next year's parade.

Why did the libGDX programmer put a tiny Christmas tree in their game?
Because they wanted to show off their sprite batching skills! The programmer carefully arranged the tree's triangles and quads to maximize the number of sprites drawn in a single batch. It may have been a small tree, but it was a big accomplishment for the programmer.

Why was the libGDX game so quiet on Christmas Eve?
Because the programmer forgot to add any sound effects! The game's levels were filled with silence, except for the occasional rustling of leaves or footsteps on snow. The programmer vowed to make up for their mistake by adding some festive music and sound effects for next year.

Why did the libGDX programmer have a hard time wrapping their Christmas presents?
Because they were so used to working with rectangular bounding boxes that they couldn't figure out how to wrap a non-axis-aligned box! The programmer tried their best to work around the problem, but in the end, they just had to settle for some oddly shaped presents.

Why did the libGDX programmer have to cancel their Christmas party?
Because their game was running so slowly that it couldn't handle the extra load of hosting a party! The programmer had spent so much time optimizing their game's performance that they forgot to leave room for fun. They promised to make it up to their friends by hosting a party in the game once they had fixed the performance issues.

Why did the libGDX programmer's Christmas dinner taste so weird?
Because they accidentally used the sprite font to write the recipe instead of the regular font! The instructions were all jumbled and hard to read, and the programmer ended up using the wrong ingredients in their dishes. It may have been a strange meal, but at least it was unique!

Why was the libGDX game so popular at the Christmas office party?
Because the programmer had added a special holiday mode that turned the game into a festive and fun experience! The game's levels were filled with snow, mistletoe, and gifts, and the enemies were replaced with jolly Santas and snowmen. The party-goers had a great time playing the game and spreading holiday cheer.

Why did the libGDX programmer's Christmas lights flicker?
Because they were using a fullscreen post-processing effect to simulate the twinkling of Christmas lights, and their game's performance couldn't keep up! The programmer had to turn off the effect to prevent the game from stuttering and lagging. They vowed to optimize the game's performance so they could enjoy the festive lights next year.

Why did the libGDX programmer's Christmas tree look so strange?
Because they used 3D models and lighting effects to create a realistic-looking tree, but the game's performance couldn't keep up with all the fancy graphics! The tree flickered and jittered on the screen, and it looked more like a ghost than a tree. The programmer promised to work on optimizing the game's performance so they could enjoy a beautiful tree next year.

Why did the libGDX programmer's Christmas party end early?
Because they ran out of virtual eggnog! The programmer had added a special holiday drink to their game, but they didn't anticipate how popular it would be. The guests drank so much eggnog that the game's inventory ran out, and the party had to end early. The programmer promised to stock up on more virtual eggnog for next year's party.

Why did the libGDX programmer's Christmas tree look so empty?
Because they were using a skeletal animation system to animate the tree's branches, but they forgot to add any decorations! The tree looked bare and lifeless on the screen, and it didn't have the usual Christmas cheer. The programmer promised to add some festive decorations for next year's tree.

How did the libGDX developer decorate his Christmas tree?
With sprite ornaments and pixel lights!

What did the libGDX developer get for Christmas?
A new game engine, of course!

Why was the libGDX developer's Christmas present so small?
Because it was a mobile game!

What did the libGDX developer get for Christmas from Santa?
A rendering API!

What did the libGDX developer get for Christmas from the Grinch?
A crash report!

What did the libGDX developer's friends get him for Christmas?
A new joystick for his desktop game!

What did the libGDX developer get from his secret Santa?
A physics engine!

Why did the libGDX developer have a great Christmas?
Because he had a game-changing holiday!

Why did the libGDX developer have a white Christmas?
Because he used a snow shader in his game!

What did the libGDX developer get from his grandmother for Christmas?
A new pair of headphones to listen to game audio!

Why was the libGDX developer's Christmas present so expensive?
Because it was a virtual reality headset!

What did the libGDX developer's dog get him for Christmas?
A new chew toy in the shape of a game controller!

Why was the libGDX developer's Christmas tree so square?
Because it was a sprite tree!

What did the libGDX developer get from his parents for Christmas?
A new laptop to develop games on!

Why was the libGDX developer's Christmas party so much fun?
Because it was a game jam!

All of these were generated using ChatGPT. The prompt was "Please write a Christmas-themed libGDX joke."

The website field uses rel="nofollow me", if that's good enough. But of course we only get one of those.

A competitor to the Trials series!

Android APKs must be signed to be installable by normal people. Fortunately, doing so is fairly easy and free.

(7 edits)

The Java-lin throw!

Yeah, it only accepts letters and numbers. I should probably widen it a bit.

Or sound, whatever it was. Currently I can't reproduce any issue with sound/music not defaulting to on (note: it remembers between page refreshes what they were last set to) but I did notice a now-fixed logic error with game over. Each bugfix breaks something new - the joys of programming!

Yeah, it could probably do with providing a hint if the player fails to work out what to do within a few seconds. I think that would be a fair compromise - no-one reads instructions until they need them anyway.

I don't know what's up with the spinning. I wanted to have the ducks on the left facing to the right and the ducks on the right facing to the left, but that leaves the question of what to do with the middle duck. So I figured it could just spin around, as if it also doesn't know which way to face. But I couldn't work out how to change the decal's Z axis (rotating with the cities like the sprites do) without resetting its Y (the 3D spinning) so that's why I settled on letting it freak out whenever Z rotation is due. Somehow, multiplying its Y by 360 avoided it getting reset to 0, but obviously that's not a particularly useful thing to do. Feels like a bug with libGDX, being unable to set more than a single axis, but perhaps I'll have to do more digging for decal examples before moaning where mgsx will see in case I'm doing it wrong.

The leaderboard is recycled from my Unipop game. Was hoping to create a new backend instead of building upon the existing cobbled-together codebase, but time didn't really allow for that. I saw Anthony's Venus Wars also has a leaderboard. The fact it displays the top 5 scores in-game is neat. I wonder if his has any cheat protection? There's only so much you can do on the client side - even if it was uncrackable, someone could just use an autoclicker (in the case of my game) or something. I've only taken a quick look at the games - haven't properly played them all. My jousting skills are weak.

Glad you enjoyed it. There's probably some other game out there that's similar to this one, even if the closest I can think of would be those ones where people are ordering food or whatever and you have to fulfil their orders before they get impatient and leave. My other idea for this jam was based on Nintendo's Manhole but with three or more holes on a single level instead of two holes on two levels each, plus the addition of characters you want to fall down the holes. Didn't get far enough with it to consider how to make it - it couldn't be completely random, as you'd end up in the impossible situation of having to plug two holes at the same time.

I'm in a better mood today now that a bit more time has passed since the jam. I swear they consult a fortune-teller to schedule these things at times that conflict with personal life.

(1 edit)

Yeah, something's broken with the music state.

2nd July edit, because leaving a third reply would be ridiculous:
Names that included S or M had issues because typing them toggled sound and music respectively. At last, it is fixed - now these can only be toggled once the game has actually begun.

Nah, Japan only.

Oh nowo! You'll have to create a twin to cover for you.

Hi, how's the development going?  :3

If I ordered a city through Amazon Prime instead it would've arrived by now.

I have 31 score and 31 money. Perfectly balanced, as all things should be.

Hello, I tried this and now my keyboard is almost as sticky as TEt's.

Yes, I didn't have time to grow my own tomatoes for the jam.

(1 edit)

Hey guys, is this where we start discord? I've been making my libGDX Jam 21 game but am facing an issue. I've written all my code for it, being sure to follow the tips in the video, but I have an error on line 1. How do I fix it?? Thanks in advance. Love, me. P.S. Sorry about the tomato juice.

Wales, Ireland and Scotland don't have the London Underground. Go back to the Chunnel you came from.

(3 edits)

Isn't that just marmalade? Banned. Game marmalades are already a thing, just not as successful -

But bad marmalade. The marmalade I know looks slightly different in texture. This isn't my marmalade - it's just a stock photo.

Good marmalade

Yesterday I was eating marmalade on toast and I think the panda or someone sent a message, so then I had marmalade on the smartphone and I think it was a few hours until I wiped it off.

(1 edit)

Sorry, but mayonnaise is not a jam. Or an instrument, for that matter.

It's Spring-time!

Several pieces, some might claim. But that's quite alright.

Please see the project page before downloading.

TL;DR: Save any important documents before running.


10-second speedrun!

Yeah, it's pretty hard to read. WCAG 2.0 AA requires a contrast ratio of 4.5:1 for text. Here we have 2.66:1.

How do you debug? Personally, I'm a big fan of System.out.println("yee");

I think it's too long, more than anything. But it's what I found - many of the free ghost sounds out there are scary screeches. Probably should've at least attempted to record my own.

Since I made my initial reply, there's been a new video created on installing Java 8 on Windows 2000. This doesn't require much messing around with system files. You may be interested.




Ah, that makes sense. Thanks!

I've been unable to find any information on what this box does. The Google machine suggests no-one has ever talked about it before. Toggling it appears to make no difference to the page, so I'm at a loss for what it does and if it's best to leave it unchecked or to check it.

Have you tried installing the Extended Kernel? Performance won't be great, but Mypal should run under this, which I support. For best results, ensure your graphics drivers are up-to-date. Bad Ballsy Benchmark may not work on older graphics cards that don't support OpenGL stuff.

As far as the downloadable version is concerned, I don't support it on Windows 2000. By the sounds of this thread, you may be able to get Java 8 Update 121 running on 2000, which BBB should run under, but no promises.

I'm interested in seeing what other people think of the timer length. It's mainly one minute to fit with the "one" theme (one button, 1-bit). If others agree it's too long, I can easily reduce it.

Not too keen on the screen shake idea but maybe it could invert the colours for a few frames as indication of pressing the wrong button and/or time being up. I should experiment!

Thanks for checking it out :)

Go for it. You won't be the only one dithering.

0 hours left 0.o

DragunQween suggested this in the Jam Review video. A popular request, it is! What I do, if I make a habit of participating in libGDX jams, is figure out how to pack my jam submissions into a single Android app. It would be easier to maintain this way and nothing I'd make for a jam would have enough effort put in to deserve its own app listing anyway.

Turning Counting Thonks into an app might pose some challenges. It would probably need to tie into system alarm stuff somehow, as it would be no good if the thonks were unable to thonk because the screen was turned off. That's something to investigate another year.

Sir, it would take you ~58.87 days to get there. I think your score is cheated.