Thieves Tavern Beta

Post by: on October 23rd, 2008 | Filed Under Programming, Three Planets Software

Its been a few months since I announced I was going to try to write a PHP based Mafia game and in that time I've learned a decent amount.

First off, if you want a project done, you can't be getting distracted. Since I've started Thieves Tavern I've also fallen in love with motorcycles and started gun smithing. Both of those have stolen major programming time away from this project. Its only through the weather being downright cold lately, and parts for the gun being on back order that I've had the time to get gung ho on this project again.

Secondly, when dealing with databases, its really easy to tailor the database so that the game works. In fact, that's the whole point of editing the database: To test this bit, or that bit... but not the overall product. Earlier this week I'd reached a point where I thought I could push my code live, and invite some friends to beta test it. I figured, at the time that clearing out my database would make stuff work better, get rid of all the random edge cases I'd built up along the way. Well, after clearing out the database, nothing worked. I couldn't start games, I couldn't chat, nada. This is when I learned that it doesn't get easier after removing test data, only harder. It took another two days of testing, clearing, testing some more, as well as cleaning up my code, before I got it back to the 'working' beta state. Thankfully, now I know its working as intended (minus the obvious beta bugs, of course).

So now its off to beta test Thieves Tavern. I'm kind of excited to be playing this, I had loads of fun while playing myself in local tests, and I can imagine it being even better taking out friends online. If you'd like to help test, get ahold of me (in real life, I'll ask for signups for a public beta later on) and I'll send you an invite.

(And in the 10 minutes it took to write this I already have a laundry list of fixes/stuff I just plumb forgot)

Comments (No responses yet)

Head First…. Mechanics and Gun smithing?

Post by: on September 10th, 2008 | Filed Under Gun smithing, Interests, Motorcycles, Programming, Three Planets Software

Its been a long time since I've written anything, I've kept busy at work and at play. On the work side I'm going to look into what it will take for me to actually run Three Planets as a real company, mainly for tax purposes and my own sanity. On the play side, there's been a LOT more developments.

I just picked up a motorcycle about two months back since one thing I love to do while stuck on some code is drive. Naturally I figured that riding would be an even better escape. It turns out it is, but I'm concentrating too much on the riding to be able to head-code. The upside is, this is probably the most fun activity I've ever found. So, meet Kari:

I realized on Sunday that I've put 1000 miles on her in the month and the week since I got my license, not too shabby considering I probably spent on the low side of $100 of gas for that entire time! Since she's an older bike, I'm doing as much of the maintenance as I can, so that I'll only need a mechanic for major operations. More on that later.

I also (very, very recently) decided to get into Gun smithing. To that end, I'm going to be making an AR-15 over the next month(s), and keeping track of my progress here.

So, what do the two new activities have in common? Both of them stem at least partially from an interest to be reliant upon only myself for work. This comes from the programming I do, where I have chided others for not thinking outside of the box, and really doing anything they want with the code. It finally dawned on me that that goes in all walks of life, and you can even approach it in the same way.

Lets take the Gun smithing, for example. I'm approaching this from a design perspective first. I laid out what I want to use the gun for, then set my constraints (money), and planned out the parts. This is exactly the same method I take for programming: First I'll plan out how I want it to look/act, figure out what corners I have to cut to keep it within my memory/CPU/bandwidth bounds, then start with the functions.

In this case I decided I want something for (eventually) match target shooting, for medium ranges (100-600 yards). My constraints were that I wanted to build it all myself, short of fabricating the parts, and that i didn't want to spend more than $700 on the total cost. So far I've decided on the following:

  • DPMS Lower Receiver, stripped (already purchased)
  • DPMS Lower Receiver parts (already purchased)
  • Advanced Technology 6-position collapsible stock
  • Ergonomic pistol grip
  • 20" chrome lined barrel (not sure of manufacturer yet)
  • Flat top upper receiver with rails
  • Generic bolt/bolt carrier, stripped

It should be a really fun project, I look forward to learning a new machine and how it all works. This will also mean that from now on my firearms will be like my computers, completely unique, and I'll have an intimate working knowledge of each and every part.

So why now? Why am I trying to learn all this new stuff once I get out of college, and not while I was in it? The answer here stems from some conversations I've had about why I enjoy firearms, and thoughts I've had after them. The short answer is: "I'd rather learn how to shoot now, when I don't need to, than later when I need to, but don't know how." I don't think carrying rifles in public is necessary, though I am a vocal defender of the 2nd amendment, however I do think it is very short-sighted to assume you'll never need to use a firearm, and therefor write them off. Didn't you learn how to change a tire, even though you may never need to, perform CPR in gym class, or how to balance an equation in science (or for the scientist, write in plain English, or not blow up the world)? Sure, all of those will be needed a whole lot more than shooting, but other than CPR shooting might be the most important to know if any of those situations came up.

Now, I considered myself set once I learned safety, and how to aim properly. But lately I've been thinking that its really short-sighted of me to assume the rifle will work perfectly all the time. More importantly, I don't know when its not working at 100%, because I don't understand it all. Just like the sorority girls whose computers I'd clean up at the end of the school year, I might not realize all the junk that is building up inside my gun. So, I've decided that I need to know at least basic gun smithing, just in case. Knowing this will keep me, and those around me when I shoot, a whole lot safer in the long run, plus save me money!

The motorcycle is the same story. I have no idea what's going on, and if you read up on an inline-4 engine, there's really no excuse for that. So again, I'm teaching myself basic mechanics in order to keep my machines running as smoothly and safely as possible.

And if you think about it, these skills of checking the usual fail points, oiling the squeaky parts, and throwing your own custom parts in, are the same across many fields, not just mechanics, gun smithing, and programming. So get out there, and get yourself head first into a new field today!

Comments (One response so far)

Thieves Tavern – Where all the cool kids play

Post by: on June 28th, 2008 | Filed Under Games, Interests, Programming, Three Planets Software

For about two weeks now I've been working on a PHP version of the game Mafia. If you don't know it, mayhaps you know the name Werewolf, or Assassin (not Assassin's Creed, like I had some people guess.... there's no way I could port that to PHP). If you're still in the dark, check the Wikipedia page, or MafiaScum, one of the best forums for it. Harkins and I wrote it into Simud a year or two back, and I've wanted to see an automated version on the Internet for a while now (read: Not needing forum software, or a human moderator). The closest I could find is an email list, which of course I can't find now that I want a link, and frankly doesn't fit my description of 'browser based'.

So what I'm creating is a PHP/AJAX based version of the game, where players can create games of (so far) between 5 and 8 players. Upon creating the game, a random set of roles (random in terms of which roleset, NOT in terms of a hodge podge of random roles that could be very unfair) is doled out, and it goes immediately into the night phase. Each phase will last 24 hours, if everyone does their actions sooner, it'll end, but if you don't ready yourself before the time is up you'll forfeit your action. Game ends based on the roleset... typically once there's only town, or bad guys left, but in terms of Silent Killers it gets more interesting, but will be checked for after every kill, and after every lynching. Chat will allow for anyone to read it, and once the game is over all messages become public.

Unfortunately work has slowed down a bit since buying my motorcycle a week ago, but I'm still hoping to have a closed beta up in a short(ish) amount of time. I actually could put one up already, but am hoping to have a much higher degree of a product before the beta than I usually do.

The site will go live at Thieves Tavern, a site I got a long time ago for a gaming clan that is appropriately named, I think. Once it goes up, I'll put out a call for about 10-16 closed beta players, and then probably a week later another open invitation for open beta players. once it seems both stable, and a good recreation of the game, based on the opinion of all players, it'll become a public game.

You can follow the development either through Twitter, or in the #thievestavern room on irc.freenode.net, thanks to GitHub.

Comments (One response so far)

Dungeon Runners Character Sheet Library

Post by: on March 15th, 2008 | Filed Under DRCSL, Dungeon Runners, Programming, Three Planets Software, Uncategorized

I took the past week off work for a final Spring Break, since I graduated early. When the friends visiting me left a day early I decided to use Friday to catch up on my programming. My goal was to finally create a library for people wishing to create character sheets for Dungeon Runners (that popular MMO I've been playing about once a month). The result is DRCSL, the Dungeon Runners Character Sheet Library, which gives web site owners an easy way to create character sheets or just pull random character data quickly. I used the DRCSL this morning to create a quick MediaWiki extension that spits out a pre-formatted character sheet. Lets discuss:

DRCSL
DRCSL is a php library written using PHP 5 and PHP objects. At its core it is currently just one file, Character.php, that upon its creation fetches the character XML from NCSoft's servers, and stores all the data. Once the data is stored, the Character can spit out its information with just a few commands. What's required to use this library is a web server with PHP 5 on it, along with wget to fetch the XML. A default Linux PHP install works just fine, though if your host blocks exec() callouts you're out of luck. I'm on my first release, so the paths are hard coded for Linux delimiters which will be fixed in the future (of course, the Windows host will still need wget installed).

An example:


<?php
//Include this file to have it include everything ya need.
include "drcsl.php";
//Create a new Character
$billy = new Character("Segfault");
//Store the character's name
$name = $billy->get_char_info("Name");
//Store the character's title
$title = $billy->get_char_info("Title");
//Display some info
echo "$name is a $title\\n";
?>

This would print something to the effect of:
"Segfault is a Coordinated Practiced Poison Ranger"

MediaWiki Extension
The MWE became real easy after I created the DRCSL. Rather than include a ton of the code from my Character Viewer into the Extension, now all I had to do was include drcsl.php and come up with a default view. It looks something like this, by the way. In all it took about an hour from the time I woke up this morning and decided to finally create one to having a test version out for TheTownstons to test.

To use the MWE one just creates a page and includes the drcsl function.

{{ #drcsl: Segfault }}

Further Reading
More details on both of these projects can be found at the DRCSL website. I was going to write more but there's something bugging in my Code Highlighter plugin (hence why the code looks like non-highlighted junk) and I'm fighting the urge to go fix it.

Comments (No responses yet)

Dungeon Runners

Post by: on December 22nd, 2007 | Filed Under Games, Programming, Three Planets Software

I've taken to playin Dungeon Runners as of late, trying to scratch that itch that leaving WoW created. Actually, I'm quite happy to be done with WoW, and Dungeon Runners is casual enough that I can play and not get pressured into sticking on for long hours for "Just one more Ony raid". In addition, Dungeon Runners is free, so long as you put up with ads you barely even notice!

As always I get distracted from playing games by writing stuff for them and DR is no different. They just released a service where you can nab an XML version of a player's data and though it has some bugs its quite a yummy service. I spent the day hacking up a viewer for it, and this is what I came up with:

http://threeplanetssoftware.com/software/dr/

Its fairly empty right now, but the character stuff works as well as NCSoft will allow. In fact better, as I've solved an issue the other developers of these viewers hasn't, the fact that some icons have the wrong name. So, anywho if you want to see it work, you could check my stats: the character's name is Segfault.

Oh and just to satisfy the geeks out there: This is built in PHP, using simplexml to chew though the data. Pretty URLs are (obviously) done with mod_rewrite and javascript on the form. Tooltips are made using the Walter Zorn tooltip library.

Comments (No responses yet)

Positive Feedback!

Post by: on April 17th, 2007 | Filed Under Programming, Three Planets Software

Well, today's been Hell on me, though of course no where near how horrible its been on a lot of my friends. But I got back to my email around 1am, and found this tidbit regarding the web design job I left two weeks ago:

Hey [Snarky],

Just wanted to tell you that I've had a guy who is tutoring me in php remark on the quality of your code. Good Job! Thanks again.

Sincerely,
[Boss]

So, yea... sadly, that's the high point of my day. But it makes me feel good because I'm really hard on myself and the quality of my code, and to have an outside source say its looking good brightens the few hours left until I pass out of my day.

Comments (No responses yet)

First Contract… DONE!

Post by: on April 9th, 2007 | Filed Under Programming, Three Planets Software

As of last Thursday I'm officially done with the first contract as Three Planets Software. I've actually been done with the contract for a few weeks now, but they kept me on retainer for a few reasons. I had to end it due to my school load picking up, but the whole process was a great learning experience. Best of all, it paid for my car repairs, and I made contacts with two people who would hire me again in the future. In the end I handled it professionally, and everyone was happy with the code I put out. Now that's a happy ending.

And now back to my never-ceasing work for the next month.

Comments (No responses yet)

Spring Break!

Post by: on March 19th, 2007 | Filed Under Programming, Three Planets Software

It's been a wee bit (a good week and a half) since I last posted, due to a variety of factors. The most telling, of course, was that this past week was spring break and I was in the sunny Bahamas. It was a great time, lots of alcohol comsumed (I'm 21 now), tons of pretty girls... it rocked. In actuality I spent Spring break at school, programming, yea what a glamorous life. I picked up a contract for a website about three weeks ago and this past week was the culmination of that, with my site being pushed live for a Beta test last night. Once it gets a bit cleaner (currently I don't support IE) I'll post a link to it so I can get some good testers. So, to summarize, Snarky's still alive (barely), Three Planets Software has its first contract under its belt, and there's a great new social network coming!

Comments (No responses yet)

Quick Users

Post by: on February 17th, 2007 | Filed Under Perl, Productivity, Programming, Three Planets Software

I don't think I've said it publically yet, so a little heads up, I've gotten my first contract as "Three Planets Software". Rather (I hope) easy site in PHP/MySQL and some other goodness, but you'll hear more about that later when I put out a call for Beta testers. So I coded up all the login and registration pages two days ago, and now am working on some other fun stuff. Some fun stuff that required more than one user to test. Ideally, more than 10. I did *not* want to sit in phpmyadmin creating 20 dummy users that would only be used in testing, so I turned to perl.
Read More »

Comments (No responses yet)

Time management

Post by: on February 12th, 2007 | Filed Under Productivity, Programming, Three Planets Software

Lately I've been really frustrated with myself over the issue of time management. I've never been very organized, and a habitual procrastinator. But this semester I've had an awesome schedule, only class two days a week, so that I could work the other three. Well, it turns out I played much more games than working, and time not spent on games was wasted Internet browsing. To quote Trace Adkins in "I Want to Feel Something": "Damn it all to hell I'm done, 'Cause I don't like what I've become..." Now, he said those words in regard to relationship issues, but that song (a favorite of mine for a while) kinda spurred me to realize I'm fed up with wasting so much time when there are people my age that spent free time coding and are millionaires now. Not that I just want money, but something to feel proud about. 8 straight hours of WoW, or Quake 4 (if you haven't played Q4... go get it, now) yields absolutely nothing, whereas 8 hours of coding would give me a site for Three Planets Software, which still needs one. So here are my resolutions:
Read More »

Comments (No responses yet)