Bones of the Idle is the result of multiple separate coding projects coming together over the course of six months or so. I made each of them with the intention of learning something new, then in typical fashion abandonded them once I was happy with the fundamentals. What’s been gratifying to see is how each of those projects has fed directly into the game. All that time wasn’t wasted after all!
The largest piece of the puzzle was an event-driven mini game, envisioned as a clone of the World of Warcraft mission table. I used it as an excuse to learn Laravel and play around with Bootstrap, and it still forms the basis of much of the back-end today. It was styled like a typical Bootstrap admin panel, heavy on text and progress bars, and when you complete some herb gathering or tree logging in the game today, that’s a much-sped up version of finishing a mission that originally would have taken hours or even days to complete. Although it had locations with different objectives in each, there was no sense of the player existing anywhere beyond a room-like “container”.
It wasn’t hideously game-breaking, considering the server didn’t (yet) care if you could reach a given tile before allowing you to interact with it; but annoying nonetheless. What was a little more disturbing was an auto-farming function he managed to come up with, that sought out rats, trees and flowers to farm, and automatically clicks on them. The game wasn’t even in proper alpha state, and already I had my first scripted bot to contend with.
Long-term, I’m not too worried about JS injection and botting. I’m going to make sure everything is validated server-side, so bots can’t outperform human players, and aim to make enough actions that require human interaction that botting becomes perhaps an interesting diversion, rather than the best way to experience the game. I might not support it per se, but I was genuinely excited to see the stuff Simon had come up with, and it certainly gave me plenty to do.