Bitcoin Forum

Alternate cryptocurrencies => Altcoin Discussion => Topic started by: btc2nxt on October 13, 2017, 01:29:30 AM



Title: Monopoly Blockchain Game
Post by: btc2nxt on October 13, 2017, 01:29:30 AM
There are some computer games using crypto-currencies, like Cryptokingdom, Augur and so on.  Huntercoin is a game on blockchain launched in 2014 based on bitcoin source code. Cutting edge of the Huntercoin is human mining. In this introduction, I will introduce Monopoly like game based on Nxt 1.3.5 codebase with smart contract named FSM(Final State Machine),which is new design of AT(Automated Machine).

   Nearly all coins will be distributed by FSM , after players jump to the location of the coins in next block, they will share the coins. There are lands in the game too, so players can buy lands(Asset) to build hotel, restaurants, healthy club and weapon factory, which can be traded in asset market in the game also.

source code: github.com/btc2nxt/FSM


Title: Re: Monopoly Blockchain Game
Post by: btc2nxt on October 13, 2017, 01:30:18 AM
any suggestions are appreciated.


Title: Re: Monopoly Blockchain Game
Post by: btc2nxt on November 07, 2017, 02:33:55 AM
FSM(Finite State Machine) is new design of AT(Automated Machine). Two years past, FSM were still in the code and didn't improve. That is why i want to develop a game or a use case to push FSM to real world or  solve some problem of businesses. When i have been coding , i found many bugs that FSM need to improve.
Last week, i reached the first milestone which succeeded in aridropping coins, distributing dividend to asset holders.
Because i am not good at UI design, all tests are on http and offline. Actually I use Nxt1.3.5 NRS, and sometime the 1.3.5 UI too.

1. set nxt-default.properties file
nxt.apiServerEnforcePOST=false
nxt.isOffline=true

2. pre-distribute the coordinator(x,y)

http://127.0.0.1:9776/nxt?requestType=createATProgram&secretPhrase=1&atVersion=1&name=predistributeFSM&description=test&runType=SYSTEM_AT&machineCode=1e000000003d350103000000003203030113000000010000000000000033160101000000331701020000003500011200000034500412000000130000000413000000331601030000003317010400000035010112000000345004120000001300000004130000003316010500000033170106000000350201120000003450041200000013000000041300000033160107000000331701080000003503011200000034500412000000130000000413000000331601090000003317010a00000035000114000000061200000014000000345004120000001300000028&machineData=0000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000003c000000000000003c000000000000003c00000000000000280000000000000028000000000000000200000000000000&variables=01000000050000000a000000000c00000048000000&feeNQT=200000000000&deadline=1440

variables means: will start run at height 12. After sleep 10 blocks, will run again at height 22.

account id of predistributeFSM  is 1, which is hardcoded in the source.
This FSM  will generate 5 coordinators for Airdrop FSM to delivery coins to the collectors.
http api: getPredistributeCoordinates  can show them.

version reserved
0100 0000
delayBlocks/ sleepBetween/ freezeWhenSameBalance/ startBlockHeight/ varBytes(72)
05000000 0a000000 00 0c000000 48000000

3. Airdrop FSM
http://127.0.0.1:9776/nxt?requestType=createATProgram&secretPhrase=btc2nxtTest1&atVersion=1&name=airdropFSM&description=test&runType=SYSTEM_AT&machineCode=1e000000001f35000300000000070000000003000000070000000003000000374903110000000000000001000000261100000035000100000000020f00000000000000060f0000000400000002100000000000000006100000000500000002140000000300000026140000003448031100000014000000375203120000000f0000001000000005140000001b12000000dc021300000002000000091300000012000000010a0000000000000000000000040a0000003447030f000000100000003302041300000005120000001e12000000e42a2114000000030000000f1a6700000028&machineData=00000000000000000100000000000000005cb2ec220000000500000000000000000000000100000000000000070000000000000000000000&variables=01000000050000000a000000001500000070000000&feeNQT=200000000000&deadline=1440

account of Airdrop FSM is 2, which's balance is zero, so must send many coins to it.

4. Be a collector
http://127.0.0.1:9776/nxt?requestType=gameEnter&secretPhrase=1&statusName=Collector&map=1&x=1&y=1&amountNQT=30000000000&feeNQT=100000000&deadline=1440

5. collect coin
http://127.0.0.1:9776/nxt?requestType=gameMove&secretPhrase=1&actionName=Collect&x=5&y=22&feeNQT=100000000&deadline=1440

6. issue an asset of a land
http://127.0.0.1:9776/nxt?requestType=issueAsset&secretPhrase=btc2nxt2&name=hotel&description=test&quantityQNT=270000000000&deadline=1440&decimals=8&feeNQT=1000000000000&landId=8

landId=5..8 are hotels
landId=9..12 are restaurants

After issue assets, lands of town bind to assets.

7.Be a workder
http://127.0.0.1:9776/nxt?requestType=gameEnter&secretPhrase=btc2nxt2&statusName=Worker&x=1&y=41&feeNQT=100000000&deadline=1440

8.Build a single room
http://127.0.0.1:9776/nxt?requestType=gameBuild&secretPhrase=btc2nxt2&asset=535298268338500849&x=6&y=41&feeNQT=100000000&deadline=1440

the asset id must be the id of land's asset.

The room need 5 Builds to finish.

9. shareRedeemFSM
http://127.0.0.1:9776/nxt?requestType=createATProgram&secretPhrase=btc2nxtTest1&atVersion=1&name=shareRedeemFSM&description=test&runType=SYSTEM_AT&machineCode=1e000000000f020400000001000000354603000000000205000000000000003753030300000004000000050000001b030000003501060000000000000000000000040600000034540304000000050000003351040900000005030000001e03000000e4020400000000000000040400000028&machineData=000000000000000005000000000000000000000000000000&variables=01000000000000000a000000001000000040000000&feeNQT=200000000000&deadline=1440

shareRedeemFSM will auto send shares to workers, depends on workers' works. Because the asset is not create by shareRedeemFSM, we have to transfer asset to it, which has account id 3.

hareRedeemFSM will run at height 16, and continue to run in 10 blocks.

version reserved
0100 0000
delayBlocks/ sleepBetween/ freezeWhenSameBalance/ startBlockHeight/ varBytes 8*8=
00000000 0a000000 00 10000000 40000000

11. Check in
http://127.0.0.1:9776/nxt?requestType=gameConsume&secretPhrase=2&actionName=CheckIn&x=6&y=41&amountNQT=3000000000&asset=535298268338500849&feeNQT=100000000&deadline=1440

A player's CollectPower will restore to 100 after check in, and has to sleep 4 hours. All amountNQT goes to dividendFSM's account, which id is 4.

11. dividendFSM
http://127.0.0.1:9776/nxt?requestType=createATProgram&secretPhrase=btc2nxtTest1&atVersion=1&name=dividendFSM&description=test&runType=SYSTEM_AT&machineCode=1e000000000f02040000000100000035460300000000020500000000000000010600000000000000000000003755030300000004000000050000001e030000000b1ac900000004060000003456030400000005000000020b000000080000001b0b0000005f3757030c0000000b0000000200000009070000000c000000020c00000007000000010d0000000000000000000000040d0000003458030b0000000d0000001b070000001b08080000000c000000330204080000001a9300000005030000001e0300000083020400000000000000040400000028&machineData=000000000000000005000000000000000300000000000000&variables=01000000000000000a000000002000000058000000&feeNQT=200000000000&deadline=1440

dividendFSM will run at height 32 to distribute dividend to the workers by their shares of the asset.

version reserved
0100 0000
delayBlocks/ sleepBetween/ freezeWhenSameBalance/ startBlockHeight/ varBytes 11*8=
00000000 0a000000 00 20000000 58000000


Title: Re: Monopoly Blockchain Game
Post by: Choosewise on November 07, 2017, 02:36:25 AM
Cool stuff as a hobby project, don't see how you'd monetize this though.


Title: Re: Monopoly Blockchain Game
Post by: btc2nxt on November 07, 2017, 01:54:41 PM
Cool stuff as a hobby project, don't see how you'd monetize this though.

When FSM runs fine, many use cases can be implemented on it ;D.


Title: Re: Monopoly Blockchain Game
Post by: grek_al on November 07, 2017, 02:27:45 PM
Momopoly is the game of my childhood. I would try to play  :)


Title: Re: Monopoly Blockchain Game
Post by: ronatrip on November 10, 2017, 09:41:05 PM
Momopoly is the game of my childhood. I would try to play  :)
But not me. I played this game in my childhood. But I usually always lost. I did not like this game  :(


Title: Re: Monopoly Blockchain Game
Post by: borovichok on November 10, 2017, 10:13:30 PM
Momopoly is the game of my childhood. I would try to play  :)
But not me. I played this game in my childhood. But I usually always lost. I did not like this game  :(
I also always lost when I played with my friends. The very process of the game was very interesting and exciting. We even played a monopoly for a few days. I guess I just was not lucky with this game.


Title: Re: Monopoly Blockchain Game
Post by: btc2nxt on November 11, 2017, 02:35:11 PM
TestNet is OK.


Title: Re: Monopoly Blockchain Game
Post by: v2140 on April 21, 2018, 05:47:39 AM
TestNet is OK.
Are you still developing this game?