You have 48 hours of adventuring time in a country you've *never* been to, and *may never* return. By random chance, There is a 48 hour game jam happening simultaneously. A sacrifice must be made: the game or the experience? Choose wisely.
Trick question! You can do both, poorly! Welcome to my Ludum Dare 43 entry for the theme "Sacrifices must be made". My game - Farm To Table - has you training your workers, breeding them to improve, and possibly grinding them up to make the tastiest burgers in the business!
The gameplay centers around selecting the lil' workers from the queue and assigning them to different tasks: farming, cooking, breeding, and, well, getting crushed into mince meat.
Read on for more »
I may have forgotten to maintain and update the ol' mrspeaker.net. Sorry about that - I'll get right on it!
I've been using Atom as my primary editor for several years now. But recently there's been a tidal wave of support for VS Code. It swept through the tech industry and washed away Atom and Sublime and friends. I figured it was fruitless to fight the trend, so I switched to Emacs.
Now that I reflect on it, it's been a long time coming. From early on I suspected it would end this way. Somehow I intrinsically knew it would eventually happen.
Imagine, if you may, an apple sitting happily on your desk. One day, and in a manner causing much confusion to our apple friend - you wrote some weird WebGL2 thing from scratch. From the apple's perspective, it might look something like this.
However, from a source code's point of view it would look more like this.
It is, with no doubt, the greatest idea I have ever had: bake bread with a bunch of popcorn kernels in it.
This idea... it's just... it's by far better than any other idea on this blog. It's better than my Kentucky Fried Chicken Feen from 2005. It's better than my BASIC revelation from 2015. As far as ideas go, it's just about the best there is. The best I could hope for.
It doesn't work though. The kernels don't want to pop. I'm not sure why, but here's how it went:
Read on for more »
Read on for more »
My last experiment got out of hand and now the cubes have become self aware. See for yourself!
The earlier "lil cube" example worked by creating individual box meshes and adding them to the scene. This is not a very scalable approach if we want a lot of boxes! Creating a single chunk of 16 x 16 x 32 blocks would take about 20ms to create: More than a single frame at 60 fps, and way too long to do anything dynamic.
Then next thing I tried was to merge the boxes into a parent geometry, rather than adding each mesh individually. This did indeed give a performance boost, with each chunk only taking 5 to 10ms to create. Good, but still pretty slow.
Finally, I went all in for building the geometry myself. Using Three.js's
BoxBufferedGeometry as a base, I wrote a function that would create the entire geometry for a single chunk. Each plane is added to a BufferGeometry - excluding any planes that would be obscured by a neigbouring box.
To work with Multi Materials (so you can have a different texture for each side of a cube) I had to split the creation into faces: rendering all the "top" faces first, then all the "front" faces and so on.
The result is a ~1ms render for most chunks on my machine: getting up higher with very complex and hole-y chunks.
Just adding something before the new year. Gotta get those posting stats up.
Lil' cube-t thing!
Made with three.js, quick-sticks. Source of course.
A handy script for your image-enabled (I'm looking at you, iTerm 3) shell.
hr will spit out a random horizontal rule, straight from the depths of a GeoCities page. Good times.