Huntercoin: Welcome to the Blockchain!

0

Posted by Cynic | Posted in Bitcoin, Logic, Philosophy, Software | Posted on 24-02-2014

Tags: , , , ,

Huntercoin-logoHuntercoin is a crypto currency game that is played on the blockchain. This is significant, and particularly that “played on the blockchain” part.

The blockchain is a public ledger of account that can be used for currency transfers, assets, smart contracts, smart property, snippets of code, escrow, distributed companies, distributed property, and yes – even GAMES!

But all of that seems very distant, abstract, and probably even bizarre. What is a “smart contract”? What is a “distributed exchange”? What is…? What can I do practically? What use is this? How can I visualise this?

Forget all that. Let’s just play a game. Huntercoin… It will all become much clearer soon…

Players send orders to the Huntercoin network. They do this through client software, or what you might think of as “the game program”. Their orders are registered in the blockchain then read by all the other players as they download the latest block in the blockchain and process the orders for all the other players.

Since everything is done securely through cryptography, nobody can fake orders or ignore orders or change them. The only thing you can do is see what happened. We’ll look more at this below.

Now, if you’ve played Huntercoin, or if you’ve read in the forums, you’ll have encountered the deadly “Pending” monster that seems to go on forever sometimes. You’ll also see the game speed up or slow down.

I’m a bit fuzzy on “pending” and stuck transactions. You can run “huntercoin-qt.exe -rescan” though, and that should “unstick” the transaction. However, that will take a while for the client to start again. The other options are to “deletetransaction” or “rebroadcast” the transaction.

For the speeding up and slowing down issue, this is quite interesting. To understand what’s happening, you need to know a few basic things about crypto currency mining.

Miners all compete for a block. They solve very difficult mathematical puzzles that can take longer or shorter to solve. The difficulty factor changes to cause the problem to become more or less difficult, and that change regulates the time it takes to “find a block” to “about” 1 block every X minutes, depending on the coin.

Bitcoin blocks come at a rate of about 1 every 10 minutes. Litecoin takes about 2.5 minutes. Huntercoin has 2 algorithms, SHA-256 and scrypt, set to find blocks every 2 minutes, and averaging to 1 block per minute due to there being 2 algorithms.

As blocks are found on the Huntercoin blockchain, a turn is processed. Here’s a table showing some blocks found with the times and algorithms.

Id Date Algo Time since last block
63979 23/02/14 13:00:51 sha256 0:00:07
63978 23/02/14 13:00:44 scrypt 0:00:21
63977 23/02/14 13:00:23 scrypt 0:01:28
63976 23/02/14 12:58:55 sha256 0:00:57
63975 23/02/14 12:57:58 scrypt 0:01:41
63974 23/02/14 12:56:17 scrypt 0:01:05
63973 23/02/14 12:55:12 scrypt 0:00:18
63972 23/02/14 12:54:54 scrypt 0:00:14
63971 23/02/14 12:54:40 scrypt 0:00:51
63970 23/02/14 12:53:49 sha256 0:00:53
63969 23/02/14 12:52:56 sha256 0:00:47
63968 23/02/14 12:52:09 scrypt 0:00:56
63967 23/02/14 12:51:13 sha256 0:00:51
63966 23/02/14 12:50:22 sha256 0:01:54
63965 23/02/14 12:48:28 scrypt Average time: 0:00:53

There you can see that the actual algorithm that finds a block fluctuates. You can also see a 7 second block, a 14 second block, and a 1:54 block. But the average time there is 53 seconds, which is pretty close to 1 minute. A larger sample would push that number closer to 1 minute.

Gamers that are expecting a perfectly linear flow-of-time will be disappointed. Time does not flow in a perfectly linear fashion on the blockchain – it flows in averages.

But this really only adds to the challenge of the game. It adds a dimension that we’ve not really seen before in real-time games – non-linear time. While some gamers will complain about this, they should embrace it as it is not going to change because that’s the nature of the blockchain. It’s simply better to accept it and deal with it. If you can use it to your advantage, that’s what we call “skill”.

In the game, since you’re publishing your orders, they are all out in the open for anyone to read. Here’s an actual example:

{
    "color" : 3,
    "0" : {
        "x" : 94,
        "y" : 453,
        "dir" : 9,
        "stay_in_spawn_area" : 0,
        "loot" : 0.00000000
    },
    "1" : {
        "x" : 248,
        "y" : 435,
        "fromX" : 245,
        "fromY" : 441,
        "wp" : [
            252,
            427,
            248,
            375,
            248,
            373,
            248,
            370,
            246,
            361,
            242,
            357,
            217,
            349,
            206,
            343,
            155,
            292,
            154,
            286,
            142,
            271
        ],
        "dir" : 8,
        "stay_in_spawn_area" : 0,
        "loot" : 0.27500000
    }
}

Under “1” you’ll see the x & y coordinates (248,435). You’ll also see “wp”, which is the set of waypoints for the hunter. Those are where the hunter will go, if nothing happens in the meantime.

So you can see exactly where players are going!

Does that ruin the game?

Absolutely not! At any time that hunter could change course or do something different at any time, e.g. destruct and kill surrounding hunters that are a different colour.

But sending those orders leaves the player free to do other things and not worry too much about sending more orders for that particular hunter. This balances the need to keep your plans secret with the need to not enter every single step.

So, what does this mean for playing so far? Well, probably that you should plan your moves 2 blocks ahead. When you send your orders by clicking the “Go” button, you often end up waiting for a couple blocks. A little bit of planning can remedy this, and your game will go a bit smoother.

That’s a quick look at Huntercoin, the blockchain, and how to play with a better understanding of the blockchain.

Hopefully I’ve given you a better understanding of Huntercoin and how it uses the blockchain to enable a game. And hopefully you can imagine other ways that the blockchain can be used for smart contracts, property, distributed companies, and many, many more as of yet unimagined uses for the blockchain.

If you’re not already onboard the Bitcoin/crypto train, it’s far from too late. This is early. Get on board for the fast-track to the future of transactional systems.

Cheers,

Ryan