About jimmypaulin (twitter: @jimmypaulin)


Ludum Dare 33
Ludum Dare 30
Ludum Dare 28
Ludum Dare 23

jimmypaulin's Trophies

jimmypaulin's Archive

3 tips for mastering MiniGolf Endless MMO

Posted by (twitter: @jimmypaulin)
Thursday, September 10th, 2015 7:31 am


The high score board is filling up for MiniGolf Endless MMO so I thought I’d share 3 tips to help you come in under par!

1. Understand the power meter
When you swipe your finger back (angry-birds style) the line extending from your ball indicates how hard the ball will be hit. The maximum power available depends on where your ball is laying on the ground. At the top end you have the first tee-shot, here the power bar is red-coloured to indicate maximum power – let it fly! On the other hand, if your ball is in the rough or worse, a bunker, you’ll only be able to hit a short shot. Keep on the fairway to keep your score down!

2. Read the greens
First things first, the ball will only drop in the hole once it has landed and is rolling! The second thing to realise is that it must be going below a certain speed to drop in the hole (just like real golf – I speak from bitter experience!). So you can’t just blast your ball across the green at full power and hope for the best, you have to observe the gradients indicated by the long arrows (steep slope) and short arrows (shallow slope) to judge where your ball will come to rest. Then give it a little “tap-tap-eroo” as Chubbs would say 😉

3. Keep an eye on the wind
The wind is shown by the rotating arrow upper left on screen and the mph display. A speed above 5 will really affect all shots, though the longer the shot the bigger the deviation. Balls are only affected while in the air so after the bounce it’ll run on in a straight line from there. Something else to bear in mind is the wind changes randomly between shots, but it’s the same for all players so it’s “fair” in that sense.

I hope you found these tips useful and fun! I’d love to hear your thoughts on the game! Cheers 😀


MiniGolf MMO 5000 holes played

Posted by (twitter: @jimmypaulin)
Tuesday, September 8th, 2015 2:31 pm

This has just blown me away – we’ve had 5000 plays on our game (that is, 5000 holes of golf completed) 😀 I did think it was due to my – ahem – blog post on procedural generation in the game but I think it is rather more likely to be due to a forum thread on TouchArcade 😉

Screenshot 2015-09-08 20.23.08

The comments people have left have also blown me away – I just love LD (this is my 5th entry), thanks all!


Procedural algo for MiniGolf Endless

Posted by (twitter: @jimmypaulin)
Monday, September 7th, 2015 2:54 pm

The unique challenge with MiniGolf Endless MMO was to create an endless series of golf holes with the usual obstacles like trees, rough, bunkers and water and find a balance of difficulty and playability. I’m pretty pleased with the result and I thought the community might enjoy reading about how it was achieved.

The algo follows these basic steps

Seed random number generator based on the hole number
This is required so that everyone plays the same layout – vital when we have online replay sharing and high scores!

Get the ranges for the random parameters based on the hole number
This provides the difficulty curve. After about hole 50 the parameter ranges are wide open. You’ll still see easy holes sometimes but can also now see some really nasty ones 😉

Place start and end points
End point north of start. The maximum distance grows as the hole number increases.

Use random walk to carve a path
The entire map is initialised to pure trees at the start. Starting at the tee we move one tile at a time with probability of moving away from the goal of slightly lower than 50%. I found 40-45% provided a nice gnarly value, but we go as low as 25% for some more direct easy holes. The photo shows this step.


Widen the fairway

We then apply a couple of rounds of widening. We simply take every single fairway point from the current narrow path and replace it with a circle of fairway of random radius. This carves out a nice gouge in the trees. We encroach onto the fairway from the tree-line with rough subsequently.


Add obstacles

We pick random fairway/rough to convert into bunkers and water. After the initial seed locations are selected (the number of which is a function of the hole number randomisation) we widen them using the ‘kernel replace’ method we used to make the fairway before. The result is reasonably natural placement of the obstacles.



However we have a problem! Once water is involved this can render the course unplayable. In principle the entire thing could be flooded! We determine whether the flag can still be reached from the tee using best-first-search. If a path cannot be found we remove water near to the point on the path closest to the destination flag. This ends up pushing a fairway path back through the water hazards ensuring we always have some way to complete the course. It isn’t perfect and in the presence of wind some holes will still be very challenging, but mostly it guarantees a route from beginning to end.


Not strictly part of the procedural generation, but we do use the randomisation to place decorative features like special tiles to break up the environment. Autotiling is a standard algo so I’ll save that for another post!

Hope you enjoyed this read!


MiniGolf MMO – in App Review

Posted by (twitter: @jimmypaulin)
Tuesday, August 25th, 2015 8:42 am

I went straight to the App Store this LD – hoping Apple ok it in time for the judging period!

I’ll update the game page when it becomes available for (free) download!

Play and Rate here

Day one progress

Posted by (twitter: @jimmypaulin)
Saturday, August 22nd, 2015 9:42 pm

You play as the 1980’s golfing legend Billy “The Monster” Samuels as you pick up the clubs for one last hurrah to try and pay off some of your booze and gambling debts…..

– infinite procedural mini golf courses
– online mingleplayer, play along with the last 100 people to challenge each hole
– what else, not sure yet ask me again in 24h time!!

In! Last LD game now full release

Posted by (twitter: @jimmypaulin)
Thursday, August 20th, 2015 2:34 pm

Hey all! A year ago for “Connected Worlds” Trappy Tomb was born (14th, Jam). Now it’s a full release for iPhone and iPad and getting a lot of love!

But, it’s been a year – time for a new game! Bring on LD33!

Going Direct to App Store this weekend – it’s going to be intense. Only problem is sharing the game – raters are gonna have to play the TestFlight beta until Apple approves it hopefully within 3wks!!

Happy jamming one and all!

Trappy Tomb MMO released free for iOS

Posted by (twitter: @jimmypaulin)
Tuesday, June 16th, 2015 7:36 am
Trappy Tomb for iOS

Trappy Tomb for iOS

Hey LD friends! Our LD30 (Theme: Connected Worlds) Jam entry (14th, Jam) is now available as a full release on the App Store!

Trappy Tomb FREE on the App Store

It’s been a long road to get here, and it’s all thanks to you fine people! Any feedback for the full version would be hugely appreciated, we’ve had so much fun making this game :)

Yes it really is an MMO game, you play alongside the ghosts of other players and leave each other messages – here’s the trailer

Made using Cocos2D, with Kamcord social sharing for laughs.

See you in August!

– jimmypaulin

October Challenge Complete

Posted by (twitter: @jimmypaulin)
Friday, October 10th, 2014 6:48 am


My LD30 entry Trappy Tomb smashed it by a whopping 24% :)

After finishing a thrilling 14th in the Jam, the game has had some 5000 plays over on Newgrounds, with over 50,000 ghosts trapped in the tomb!



I’m now working on bringing it to iOS, working with an artist and composer, LD has given me a huge boost!

What is your message to eternity?

Trappy Tomb postmortem

Posted by (twitter: @jimmypaulin)
Tuesday, September 9th, 2014 1:31 pm


Trappy Tomb was conceived as a response to the poor score for ‘innovation’ I received from my previous LD entry ‘Midnight Minigun’. Mulling how I could do something innovative I decided that client-server would be a fun way to interact with the LD community, and since I’d have very limited time I’d also attempt to integrate User Generated Content. I didn’t want to overly burden the player with creating things so I figured that playing with or against the recordings of previous plays would be a fun way to generate content and promote interaction. The death messages idea was influenced by the LD28 entry Rude Bear Resurrection and the mega-replay idea was an homage to Super Meat Boy. My own interest in collective insect behaviours also came into the design though my original ideas of collective problem solving ended up on the cutting room floor.

Trappy Tomb is set in an Indiana Jones / Tomb Raider style environment viewed from a top-down perspective. The player can move and jump. Jumping results in flying kicks which kill the bats that populate the tomb. Pretty much everything in there is lethal – spikes (timed, triggered and fixed), boulders (always triggered), pits, lava pits, bats and arrow launchers. There is also optional loot to collect. The game is split into two parts – a sizeable onboarding level in which you cannot die and your replays are not recorded, and the main Trappy arena.

The onboarding area has an important additional function beyond simply teaching controls – it shows what you get if you win, which is a statue personalised with your message and score for all to see. These show the game is beatable as well as providing motivation.


Without further ado here are two composite images of the main tomb complete with the death location of the first 2000 plays (left) and the breadcrumb trails left by those players (right). Click for larger views.

Click for full size Click for full size

You can clearly see that the vast majority of players die in the first couple of hazards – some static pits. I’ll come back to this below. It’s also perhaps apparent that the climax of the level is a bit lacking- again see below!

You have 2 minutes to complete the level (ample time). If you timeout or die a dialog pops up asking for your “message to eternity” and you can see these being quoted as ghosts die while you play – I can honestly say it has been utterly hilarious seeing what everyone has put and I’m thrilled with this feature. However it was exploited badly at one point by trolls – more below. If you win you enter an inscription for your statue and are returned to the onboarding area where you get a special ending sequence and can see your statue in all it’s glory.

What went right

* The client-server system. I chose FatFractal for the server backend and it worked really well. It doesn’t require much setup at all and there is no server side code needed. You simply log-in a user and push your objects to the server. You can then pull them back with a rich query language. The player position is sampled every 0.2s and frames are interpolated on replay. When a ‘died’ state is encountered the death message is displayed – these are usually hilarious, so thank you for those! I’ve included a few choice quotes below 😉

* Artwork. This LD I decided to leave all the art until day 2 and this decision paid off as I got less bogged down in pixelling than previously and hence have more gameplay in there. The hardest part for me was selecting a colour palette – I needed everything to be readable and to separate sprites from the background and I’m pleased with how this turned out. I borrowed a few colours from other games and built up from there. Tools were Pixen and Zwoptex


* Onboarding and level flow. In my last LD entry I had many people rage-quitting because they died within the first few seconds before they’d even mastered the controls so I was determined to pace the start out and give the player a chance to get into the game. I’m really pleased that I managed to do this in the time and I think it meant people were ready when the real challenges came. I was generally happy with the building series of peaks and troughs of intensity in the level itself though I ran out of time so it ended a little abruptly. The first obstacle was probably a bit too hard as well as it claims about 60% of all attempts 😉

What went wrong

* Controls and physics. Disappointingly I failed to iterate enough on the player controls. I partly put this down to using a new framework (phaser) for the Jam so I had to find out about how the physics system worked as I went along which was not ideal. It turned out that with some really simple tweaks the experience could be much improved but the damage was done and no doubt people’s enjoyment suffered due to the over-large hit-box and slippery movement. Essentially people feel a bit cheated when they don’t think they touched spikes etc but die anyway and I can sympathise with this! The post-compo version (with about 10 characters of code changes) is loads better 😉

* Open to abuse. I really should have seen this coming, I really should, but I figured it was unlikely that the game would make it outside the LD community and so everyone would ‘play nice’ with their comments. Alas it was not to be and on one occasion I was confronted with some extremely offensive language that caused me to take the game offline immediately. It took a few days to work out a solution and thanks go to Gary at FatFractal for his support (t: @gkc). I settled on a system whereby all comments are immediately added to the local game, but will not appear in anyone else’s game until I’ve moderated them via a holding area. This actually has the side benefit that I can read all the comments as they are added :)

* Ran out of time. I had to ruthlessly cut features, for example I really wanted the ghosts to be more than just eye-candy, I wanted to have collective triggers that required ghosts to coordinate in order to open secret doors or get the ‘big prize’ etc. The idea being a community that self-organises to achieve a collective goal much like a colony of ants might… Was a shame to let that one drop! Similarly I underestimated how long it would take to create the traps and layout the environment. The game stands and falls on its level design and although I’m reasonably happy with it, the ending is weak and it kind of fizzles out a bit. I wanted to have a final large room with all sorts going on and some more timing based flame and spike puzzles but there simply wasn’t time. Still – by the time the make it to the end the few who’ve got that far were probably glad there was no more 😉

Final thoughts

This Ludum Dare was easily the most challenging and yet satisfying I’ve so far undertaken. Tapping into the creativity of the community for my content turned out great as I knew it would because YOU ROCK!. The amazing comments I’ve had have lifted me beyond words (especially around the trolling incident) and being featured in a selection of YouTube videos has been a total blast too. Here’s my favourite of those along with the truly final words – courtesy of you, from the selection of 3100 messages…

* jump. Jump. JUST JUMP, YOU FOOL!!!!
* i’m not laaavint
* the lava is not nearly as hot as my rage
* I see dead people
* i love fat eggs
* fat eggs are gross
* DAMN i got nervous… must be close…
* Wonder how many of these are me?
* This particular bat is a win cheat

I could go on all day, but why not just play for yourself and see?!


This guy did and just about kept his cool:

ThisIsKyn plays Trappy Tomb

Posted by (twitter: @jimmypaulin)
Saturday, September 6th, 2014 12:35 am

Total LD highlight for me, YouTuber ThisIsKyn has made a hilarious Lets Play of Trappy Tomb- this had me in stitches, hope you like!

Try it Here

“James Paulin is an evil mastermind of all things that make someone want to throw themselves off a building” – ThisIsKyn

Trappy Tomb 2000 ghost composite

Posted by (twitter: @jimmypaulin)
Wednesday, September 3rd, 2014 1:25 pm

By the power of big data here is a composite video featuring the first 2000 players of Trappy Tomb along with their (i.e., your) hilarious “messages to eternity”

I can’t tell you how much fun it has been watching these replays roll in, thank you all for making this a very special Ludum Dare and for your wonderful comments on my game too!

Trappy Tomb hits 2000 lost souls

Posted by (twitter: @jimmypaulin)
Tuesday, September 2nd, 2014 12:12 pm

Thanks to amazing you the Trappy Tomb has now claimed 2000 souls trying to loot their way to fame and statue-glory…

You play along with the replay of the last few hundred of these and can leave messages for each other when you die.

It’s hilarious reading your messages so please keep them coming!


Trappy Tomb Gameplay

Posted by (twitter: @jimmypaulin)
Saturday, August 30th, 2014 3:58 am

In Trappy Tomb the ghosts of all who’ve perished within the tomb haunt it still, will your immortal soul add to the party or will a statue be built in your honour?

Play here…

Trolls invaded and tried to shut it down but we are fighting on 😉 if you earn a statue it’ll appear once I get moderation working! I’ll read the troll-spam so you don’t have to 😉

The LD community has supported me amazingly through this testing experience! A step on the journey I guess- thanks everyone you are AMAZING


Trappy Tomb gets trolled

Posted by (twitter: @jimmypaulin)
Friday, August 29th, 2014 2:05 pm


In Trappy tomb you can leave dying messages for other players… All great fun until some trolls moved in and ruined the party! Not to be deterred I’ve rolled back the data – Ludum dare shall not be defeated!!!

Working on moderation but for now it’s here, though slightly hobbled sine no new replays are shown (though they are recorded). Want to join the fun?!

Play Trappy Tomb

Trappy Tomb hits 500 ghosts- you guys rock!

Posted by (twitter: @jimmypaulin)
Thursday, August 28th, 2014 1:54 pm


In Trappy Tomb the ghosts of all who’ve journeyed into the tomb are replayed simultaneously as you try your luck against the traps bats and boulders… When you die you can leave a message for everyone else to see and if you win… Well a statue is erected in your honour for all time!

The comments from this wonderful community have been humbling to receive, I can’t tell you how much they mean and how much fun it is watching all the in-game messages people have left – you guys crack me up!

The lava is not nearly as hot as my rage 😀

Amazingly over 500 ghosts are now present, forming a ghostly river of doom- if you’d like to join in please do you immortal soul will be most welcome! And of course, I’ll enjoy trying your game too- exceptional standard this LD 😉


Trappy Tomb (featuring bonus hack attempt)

Posted by (twitter: @jimmypaulin)
Tuesday, August 26th, 2014 12:41 pm


In Trappy Tomb you play along with the ghost of every previous player and when you die you can leave a message which then appears in other people’s game – hilarious messages appearing already, along with what appears to be a MySQL injection attack?!! I’m no expert – does anyone know if that’s for real? Luckily I’m not using MySQL 😉



No-one has completed the game yet- will you be the first to see your statue grace the colonnade of victory?!

Thanks and happy gaming 😉

[cache: storing page]