Ladon’s First Pre-Alpha Release!

I did a lot of code cleanup this week in preparation for the first true release of Ladon. It’s a “release” because it’s actually going out to people, but it’s still very far from being an actual game. My very generous friends have volunteered their time to play around with Ladon at this early stage and share their feedback.

The version is and I went through a heavy code cleanup. The on-screen text is now using the 3D text class I wrote recently in the BabylonJS forum, which was a huge performance improvement.

If you, dear reader, would also like to play the early version, you can do so right here and you can leave feedback in the comment section, below.

“Going Pro” as a Game Developer

It’s not the writing part that’s hard. What’s hard is sitting down to write.

Steven Pressfield

That’s a quote I came across a few years ago and it really stuck with me. Mr. Pressfield was talking about actual writing, as in novels, but it applies to any creative pursuit. With a game, the hard part isn’t solving the various algorithms, creating the artwork, or even the game design itself. The hard part is sitting down every day and just doing the work. Yesterday, I did what he calls “going pro.”

Continue reading ““Going Pro” as a Game Developer”

Particle Systems

I added some particle systems. BabylonJS makes this really easy. It’s currently just some sparks when the player’s bullets collide with a rock, but I’ll eventually put particles on just about everything because it’s one of the highest “bang for the buck” visual features.

Version here.


I’ve replaced the pure randomness in Ladon with pseudorandomness. If you’ve played it at all before now, you probably noticed that each time you played (or even just refreshed the page) the rocks were in a different place, the colors changed, and the resources you found were completely different. That’s because I was using plain old Math.random() to generate everything, which gives random numbers based on some internal system clock. Now, I’ve replaced that with a pseudorandom algorithm.

Continue reading “Pseudorandomness”

Building with Hexagons that Don’t Look like Hexagons

It’s no secret that the hexagon is the basic building block of pretty much everything in Ladon. The obvious easy choice would have been squares or cubes, but the world doesn’t need another Minecraft lookalike. Hexagons are a little tougher, as far as the math, but I find them a lot more interesting.

Continue reading “Building with Hexagons that Don’t Look like Hexagons”

A Tick System That Doesn’t Suck

Ticks are always difficult to get right. Everything in a game needs to move or animate at the right speed, and you need to know how many “ticks” have elapsed during each render frame in order to do that correctly. Javascript gives you the function, which returns the number of milliseconds since Jan 1, 1970, for whatever reason. That’s a start.

Continue reading “A Tick System That Doesn’t Suck”

Venturing Into the BabylonJS Community

I’ve been working a lot on Ladon but what I’ve been doing hasn’t gone into the game’s code, yet. I’ve been working on a new text system and discussing it over in the BabylonJS forum. The way I’ve been doing text up to now is just using the BabylonJS GUI controls, which is fine, but not very good for performance. So, I created a way to do efficient text, and I made it 3D. I think it looks clean, and it has almost zero impact on performance, even when updated on every render frame.

I did add a few minor visual updates, performance improvements, and a new graphics option on the menu, though.

Version here.

The Thirty Days of Ladon

Kari and I watched this TED Talk recently. The gist of it is to do something every day for thirty days. Her challenge to me was to work on Ladon for thirty days. So I did! I added something new to Ladon every day. The net result is that Ladon went from this to this. I’m really surprised and happy with the result of a month’s work. I added the pause menu, ship building, new tile types, mining, resource types, loading and saving, and some really significant performance improvements. Thanks, Kari.

Today is my first update after the thirty day challenge plus a week off, and it’s mostly just a code clean-up, but in honor of the month of progress, I’m bumping up the version to