I tinker in many things, I love making things, big or small, some times it ends up being pretty decent and I actually follow through. More often than I like though, the ideas are too grande (or too wild/loose) for me to follow through, and I end up dropping them, not because I can’t do it (I’m a quick study, and I love playing with new technology to achieve what I set out to do), but because of time constraints. One of my proudest projects is trotting along by it self pretty much right now, it’s not a profitable project, but it’s one I am proud to show off (and that counts for a lot in my opinion, one should take pride in ones work). The project I speak of is called RSTT and is aimed at a very specialized part of the MMORPG RuneScape by Jagex Ltd. over in the UK, and I’d like to talk a little about what I did, and how it’s built up.
The history
I started working on RSTT a few years back, it started with a friend struggling with the infamous 3×3 sliding puzzles, which are used in the game to complete certain tasks for random rewards. After some research, and thanks to a handful of resourceful (and helpful) people I know, I got a javascript based puzzle solver, which used the images form the game for the solver. This sparked the idea that many people do these little distraction mini games, but with no dedicated resource to help them complete them (there are fansites with sections for them, but nothing exclusive). Queue my first release of RSTT, launched just a few weeks before RuneFest (the RuneScape convention), I had some users, but not many (maybe 10 per day at most), and showed it to some people while at the convention but not much interest from the people there (there was a surprisingly low amounts of enthusiasm for tools around the game considering the crowd).The second iteration
After returning from RuneFest, with some feedback from Jagex employees to work off, and my own set of ideas to top it all of, I set to work on a new code base, a complete rewrite with the user interaction more in mind than the sheer “power” of my tools. It took a long time, much longer than I had anticipated, but I eventually finished the new code, which was my first foray into a properly structured code that I was pleased with and would happily show users (of course I didn’t, for security sake I didn’t feel comfortable with an open code base). I was now averaging about 40 unique users per day, with around 100 page views total, doesn’t sound that impressive really, but for a pet project intended only for a handful of people at first, it was enough to make me happily working on it. It was around this time I started feeling confident with WordPress (one might even say I’m a bit too confident with it at times), and decided the next iteration would be built on top of this. [caption id="attachment_307" align="alignnone" width="550"] The Puzzle Solver[/caption]Enter WordPress
I’ve built a fair few sites in WordPress for various clients, more than I can count, many with very specific requirements (and some with really awesome plugins I’ve had the pleasure of writing from scratch for their site only), and I thus felt confident enough to build RSTT on WordPress this time. There are clear benefits to using WordPress, I’d not have to worry about the user system my self, all users are subscribers to the site, I can easily translate it using awesome features such as WPML or any other language plugin. There are plugins! The best thing about it all, allowing me to add and remove functionality at a whim depending on needs. I got my buddy down in Australia, Steve, who’s a wizard with Photoshop to whip me up a sexy looking theme, and I set to work, getting some added inspiration by the knowledge that I would be linked to in the most popular toolkit client for RuneScape, SwiftKit. This is where things get interesting, my site features maps of each specific location you can go to (including a map converter, which converts the in-game coordinate system to lat and long addresses for use in Google Maps, which I’ve hooked up with my own custom map of the game world).The features in WordPress
I added everything in an orderly fashion on the WordPress version, a custom theme (from scratch, not a child theme), and all the bells and whistles done properly. I pride my self in making well written, easy to maintain code, and following the WordPress standardization for coding as described in the contributor handbook.User accounts
Allow users to log in and track their progression and accumulated wealth,, this also allows you to share your progression with friends through your profile page This was achieved using the author template in WordPress, but I rewrote the slug used to access author pages, from /author/ to /user/The clues
The data you look up are clues, I used a Custom Post Type (CPT) for these, which allowed me to make categories (taxonomies) to separate the different types of clues. I could have achieved this by just using posts, but I felt this was a much cleaner approach as I have editors helping me flesh out content and making the experience better for the users and this was thus an easier approach than teaching them how to use hierarchy categories.Clue locations
I use Google Maps for the in-game map, this is a feature I was very happy when I managed to wrangle into submission as it allowed me to load the map in chunks, which helps on load times for people on slower connections. These are filled in using a custom meta value for everything in the Clue CPT, where the user fills in the RuneScape specific coordinates which is then translated into something usable by the system later on.Tracking
Normally I would only track a clue when a logged in user clicked a track button, but I discovered very few users actually remembered to click the button (and a lot didn’t even sign up), to remedy this, automated clue tracking was introduced with the WordPress release. This means even users coming in to only view the result of a single clue gets “tracked” (In this privacy infused day and age, no personal identification is collected for this, if they aren’t logged in this is all registered to user ID 0, which doesn’t exist, and is purely for statistical purpose, if they are signed in, it’s stored to their user ID.Plugins and extensions
As mentioned earlier, the main benefit of WordPress is the plugins system made available to me, it saved me a lot of time, and the site utilizes the following plugins;- jQuery Colorbox for opening images in a pretty colorbox to view details
- Usernoise to handle user feedback and suggestions
- W3 Total Cache Handles all my cache needs, minifies code, and also implements my CDN instance
- WordPress SEO The yoast SEO plugin, because I like my google, and I would love to make it even better
Leave a Reply