Core Mechanics of a Trading Game

Got a change to work on and update Island Interloper.  It is also up on google code, which is the new home of the repository (migrated it from assembla).

At this point, I have the core mechanic in place, which is trading.

Interloper, like most simulation games, is all about managing limited resources. You start out with a “raft” that you can pilot solo and allows you to haul 3 tons.  You also start out with 1000 gold(the currency of the realm – I will probably lower this amount to increase the initial stress on the player), 100 units of food (each unit of food will feed one person for a day. A unit of food weighs 4.7lbs – a value I looked up), and you are docked on an island.  You don’t know of any other islands.

At the moment, there are no other commodities besides gold and food.  Fortunately, food is cheap, and you can buy yourself enough to fill up your raft, which then allows you to travel pretty far away without starving.

The first major task is not only to find another island, but to find another island with enough of a price differential in food for you be able to make a profit buying at one and selling at the other.  Hopefully these islands will be close together, but I have occasionally found islands that are 100 days apart, which cuts a bit into the round trip food price.

Unfortunately, one cannot milk such a price difference forever, because each time you buy a commodity at one location, the price goes up (fractionally, but over time noticeably), and whenever you sell, the price where you sell goes down.  Eventually the prices at ports A and B will narrow into non-profitability.  This means that eventually you will want to find a new island to trade at.  In the future, you’ll just want to find a different commodity to trade in, but once those are exhausted, it will be time to move on.

Eventually, you’ll want a bigger ship (not currently implemented). Bigger ships require hiring more crew (also not currently implemented), which brings up the overhead of moving things, which means you’ll need higher margin merchandise.  Eventually there will also be encounters will other NPC ships. It begins to sound an awful lot like the game Space Trader, which makes sense, because it was partially inspired by Space Trader.

So, at some point, I realize I’m going to need a final goal.

I’m also going to need a final delivery platform. While it currently exists as a JSHTML application, I think it may be better suited to a PHPMySQL thing that gets delivered on Facebook.  Then it could be made social and have a persistent world. I work with it in JSHTML because things are very easy to change.  Once aspects get more gelled, I think I can move it to PHP without having to mess with the tables all of the time.

If I go the route of PHP and Facebook, I’ll need to throttle how many turns people take. Likely that’ll have to take the form of Energy/Action/Mana points that allow one day of sailing.  This of course then means that there will need to be experience levels and such, because that’s how all of these games work on facebook.  Sporadic play.

Unfortunately, I’m also a sporadic developer.


HamQuest: Server Side

So I’m now getting to a point with HamQuest where I can start to look at the server side stuff. For the most part, the server side portions are merely those of statistics tracking. For example, the game will have a record of how many lovely hams have been picked up, how many skeletons have been killed, and how many potions quaffed.

But as is usual with this sort of idea, I want to check it out on a smaller scale game with fewer statistics. Something more along the lines of Click The Yellow Rhombus. I’m also not interested in using my old user system, nor in creating a new user system to use with these games, and so I’m probably going to go with Facebook, who will nicely deliver me a userid depending on who is logged in, and I don’t have to worry about that stuff.

In CTYR, there are only a few values to track: Hits, Misses, Score, Number of Games Played. I would track these on a daily basis per player, and keep only the last thirty days of information. I can then show reports depending on the last 24 hours, the last 7 days, and the last 30 days, and have rankings for each category.

But beyond rankings, which are good for a game, but people will lose interest after a short time, there needs to be some sort of incentive system, and the incentives need to be rule bending.

So, if I go with an experience point system, one game of CTYR earns the player 1 XP.  After a certain threshhold, he reaches a new level, and gets a number of cheater points he can use to buy advantages, like 10 free hits in his final score of CTYR, or eliminating 10 misses, or whatever, but some sort of advantage that he can purchase with his cheater points.

The XP based system is all cool and stuff, but there needs to be another way to earn cheat points. Each day must have a high scorer, and whoever gets that high score gets a cheat point.

So, two ways to incentivize: play a lot, and earn new experience levels, or do really well compared to others, and bypass the grind.

Which always leads to the third manner of getting cheat points, which is paying for them. I don’t have any current plans, but that’s how these systems ultimately work, and I’m not forgetting that.

In order to make this work, I will need a Facebook enabled, MochiAds enabled, Server side talking version of CTYR in Flash written in Haxe and interfacing with PHP and MySQL, with this simply being a straw man test for its eventual incorporation in HamQuest.

Does this mean that HamQuest will need to be written in Haxe? Maybe.


Baby Steps Towards Facebook, and an Elusive Bug!

The rudiments of HQ on FB is here:


There is no integration of any kind, I just wanted to start getting it onto facebook. Still a lot of stuff to do on that end, but as time goes along, it’ll be much easier to distribute on FB than elsewhere.

Also, be on the lookout for a very strange and elusive bug. It seems that the down arrow (and only the down arrow) stops working. It makes no sense. If anyone sees what the trigger is, let me know so that I can take care of this issue once and for all.


Item Drop Solution

So I was talking about the item drops, and how I didn’t much like it because the splat of the dead creature hid the image of the item dropped.

Turns out the solution is just to make items render above the splat. Now in the midst of a goblin’s splatty goodness, you may see a ham or copper.

The new version is uploaded, illustrating once again the superiority of a silverlight version for playtesting. I build, I upload a single XAP file, and the player just plays it again, getting a new version(providing he isn’t caching).

Yesterday I learned how to get external variables into the silverlight object. It’s just a particular param tag. This will make facebook integration relatively easy. I’ll just throw the facebook userid into the app, and have any calls to the back end database(coming eventually) use that id as the primary key of the stuff stored.

I also have a ToDo list for HamQuest up.  I put it together yesterday, and crossed off two already.  Most of the items don’t seem all that ambitious this time, which is good. It means the game is nearing completion.


An Insatiable Need To Blither


I don’t think the normal RSS feeds pick up on the “pages” added to a wordpress blog, just the blog posts themselves, so I have to call this one out.

The desire to write has struck me again, and my old “MakeDeez Games” project has been on my mind lately, as well.

As well as a number of things, I guess. You’ll probably see something about facebook development at some point.


Focus is intense, but short lived


As usually, I’ve switched what I’m doing again.

Facebook is primarily filled with pointless diversions, much like television, podcasts, the internet in general, and all of the other various forms of mass media.

So I decided to contribute with Feed The Fish!

I originally started out with an idea to make the simplest, most inane, pointless, fluffy “game” I could.

Text based virtual pet fish was the best I could come up with.

I started it out with simply feeding your fish, and having the fish die or starve depending on the amount and frequency of the feeding.  The fish are theoretically immortal (although due to limitations with PHP, living past the year 9999 will be something of a problem).  As the fish corpses pile up, this is tracked and reported to the player.

After showing it to my wife, she had a couple of ideas to refine and improve the game.

I will mention the ones that I have already put into the game.

First, I had no indicator as to when the fish was last fed.  This has been fixed.  Previously, the only way of knowing the status of your fish was to overfeed it slightly until the description of the fish changed.

Also, one can now name any new fish, although I realize now that I have no way of letting the player name the initial fish, so I’ll need to fix that.

I personally have overfed 8 fish, mostly to test the various code paths.

Javascript is written in  an especially convoluted mix of FBML, HTML, Javascript, php, using Ajax and JSON.  It is also especially un-secure, so for future things I’m starting to look into FBJS.

At this point, I’m attempting to do a couple of things with FTF:

1. get to five users on  facebook, so that I can submit to the directory(currently have 4, only need 1 more)

2. get some cheesy art for the icons and in-game fish status visuals (my wife has volunteered)

I aspire to be a counter-culter game artist, who deliberately writes awful games and gamelike applications in order to point out the futility and stupidness of writing awful game and gamelike applications.

Either that, or I just write awful games.

That’s part of the beauty… no one can really tell the difference!


Hunt The Wumpus, Take 2

The widgetbox widget is still in process of being approved.

Also, I only just today realized that widgetbox cannot make facebook applications at the moment.  Fortunately, my two fb apps though there are still alive and well on fb.

So, I have moved HTW to a place on playdeez.  Likely, I’ll just facebook-ify it myself, since I have spent the 15 requisite minutes learing FBML, which is an awful like HTML with a number of “fb:xxx” tags replacing the otherwise well known tags.