Bitcoin Forum
April 20, 2024, 02:41:49 AM *
News: Latest Bitcoin Core release: 26.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 [341] 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 ... 429 »
  Print  
Author Topic: [ANN][HUC] Huntercoin - Worlds First Decentralized Game/World on the Blockchain  (Read 879142 times)
MithrilMan
Hero Member
*****
Offline Offline

Activity: 554
Merit: 502

Developer!


View Profile WWW
October 05, 2015, 06:09:01 PM
Last edit: October 05, 2015, 08:12:17 PM by MithrilMan
 #6801

I'm going to write a post about what's going to be released in the upcoming version of my client (Huntercoin Mithril Edition)
I didn't posted for a while but worked hard a lot behind the scene, I'll summarize some of the new features and I'll post about it in few hours (daughter permitting)
I've bought a decent microphone to record some video session to explain how to play and how to use advanced features but since i'm not a native english, would be nice if the community could help out writing something or doing other video, anyway i'll give more info when the release will be ready

this is the link with some raw images i just captured, but without explaination they are pretty worthless Smiley
http://imgur.com/a/bB8F4

Update: all the images now have a description that's enough to understand which features they rapresents

Huntercoin: Mithril Edition - Alternative client for Huntercoin - (Discontinued)
HUC: HMSCYGYJ5wo9FiniVU4pXWGUu8E8PSmoHE  - BTC: 1DKLf1QKAZ5njucq37pZhMRG67qXDP3vPC
rant to people who pretend things for free
1713580909
Hero Member
*
Offline Offline

Posts: 1713580909

View Profile Personal Message (Offline)

Ignore
1713580909
Reply with quote  #2

1713580909
Report to moderator
1713580909
Hero Member
*
Offline Offline

Posts: 1713580909

View Profile Personal Message (Offline)

Ignore
1713580909
Reply with quote  #2

1713580909
Report to moderator
There are several different types of Bitcoin clients. The most secure are full nodes like Bitcoin Core, which will follow the rules of the network no matter what miners do. Even if every miner decided to create 1000 bitcoins per block, full nodes would stick to the rules and reject those blocks.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1713580909
Hero Member
*
Offline Offline

Posts: 1713580909

View Profile Personal Message (Offline)

Ignore
1713580909
Reply with quote  #2

1713580909
Report to moderator
MithrilMan
Hero Member
*****
Offline Offline

Activity: 554
Merit: 502

Developer!


View Profile WWW
October 05, 2015, 09:43:24 PM
 #6802

Ok, this is going to be a huge post, but since there is no activity lately here, i think it's anyway a good think for the community.
As i said i didn't stopped working on my client, and now I'll explain what will be available soon with the new version of my client.

This post is going to be a little tour using some image i uploaded on imgur here: http://imgur.com/a/bB8F4
That album already contains most of the things I'm going to post here but this post will cover them more deeply.
This post is very informative even about the game mechanics, so this could be interesting to read even if you don't (yet Cheesy) use my client!
Here we go!


First of all let me say that most of the new features implemented are based on my game experience and my "craziness", so if anyone has other things that think could be useful to be added feel free to let me know.

One of the things that bot creators or custom clients had since day 0 was the ability to see, before normal players, where a hunter is going.
This shouldn't shock anyone, it's not about cheating, the reason is technical: given the nature of blockchain transactions and the need to verify the correctness of the moves performed by the clients, the nodes (a node is any client that's receiving/broadcasting transactions over the game network) need to know what a hunter wants to do in order to validate his transaction.
Without going too much into technical (and boring for most of you) aspect of how a the game works, let's just say that any client need to be able to read clearly what a player want to do, in order to say "yes, you can, i accept it because it satisfy the game rules". Without this checks, a client could move his hunters passing through mountains, or teleporting himself, etc... so this is a technical aspect that can't be avoided, or at least not without fuzzy and complicated logics and game mechanics that would be better to not introduce, or the game would be too much awkward to be played.

Anyway this causes a problem because until now, smart bot programmers or modified game clients could take the opportunity to read a preview of the opponents' moves, decoding transactions received from other nodes and not yet included in the last block generated.
One of the main reason i started coding my client was to leverage the difference between the BOT power in order to let human players compete with the same arsenal of custom clients/bot.
So the feature I'm going to show you (that was already available, even if not at this level, in previous versions of my client throught console commands) is a big step in that direction, togheter with the concept of Behaviours I've implemented in the client, and now anyone can KNOW and SEE easily, without using the console like in my previous version, where your enemies will go or if they just triggered the "destroy" action to kill you!

Pending Moves - The Hourglass icon is the key!

pending status

That spinning (when enabled) icon, shows you which pending moves mode you are using. Clicking on it, you can chose your mode.
Enabling the pending moves (orange icon) allow you to monitor your targes hunter pending moves.
Note: because of performance reason, the clients shows only your current Targets pending moves, so if you are interested in following someone's move, you have just to add that hunter in your target window.



Pending Moves: Disabled

If you ever need to hide all pending moves, this is the mode you have to choose.
This could be useful if you have many targets and wants to take a look on the map without all that black lines



Pending Moves: Enabled

The "Enable" option is the basic pending feature that consider that the pending move will be added to the blockchain on the next generated block.
Unlucky often this is not the case and the move will be accepted a block later, this is why there is the Enanched pending mode, see next.



Pending Moves: Enhanced

The "Enhanced" pending moves mode, consider that a just sent transaction takes 2 blocks to be added to the blockchain, so the probable enemy path have to consider, as the starting coordinate, not the current hunter coordinate but the next. So, to have a better idea where and when a hunter is going, this feature should be the preferred choice.
The only reason to pick the basic mode is when you see that your moves take only 1 block to be accepted.
This isn't very common but could happen, so it's up to you to choose the best mode in a specific situation



Automatic Behaviours and Actions - Let me fall asleep!

Behaviour Actions configurations

I've introduced the concept of behaviours actions, but to explain that let me take a step back... what's a Behaviour?
As i said i wanted to reduce at minumum the advantage that bots have over humans, so while it's not possible to exclude bots from the game, why not implementing a framework that allow anyone to create his own bot using my client and then maybe share/sold/rent it on a market? This is the core idea i had and i'm planning to implement, including the market thing. This is a big challenge but I've already done a lot thoward that direction because my framework is pretty stable now, and I've created some behaviour using it (and more will follow) and if the game will be successfull, I'll dive into sharing the SDK with anyone to code and put on market their creations.
Anyway at the moment  what a player can do is to use one of my implemented behaviours, and this image shows an example about how you can expose Behaviour Actions throught a Generic Behaviour (a generic behaviour is a behaviour that's not  bound to a single hunter, but coordinate actions from an higher level, think of it as a god behaviour, he can create hunters, transfer them, expose generic/troop/target actions, etc...
In this image you can see how actually the "Commander" behaviour configuration looks: actually any of the shown options is a Behaviour Action, that could be triggered, depending on the context (your hunter, an enemy hunter, or generically) by a button in the Behaviour Actions window (furter explainations below)



Behaviour Actions window

This is how the Behaviour Actions window looks.
It has 3 tabs (excluding the last "?" tab that just shows a little window description)
- Generic tab is where you can trigger generic actions (not linked to a specific hunter) like the "Show Enemy List" or "Show Bank List" actions.
- Troop Tab contains the list of actions that can be triggered when you have an active hunter in your "My Troop" window. those actions are more powerful than others because they can add to your hunters some automatic behaviours and configure easily other complex Behaviours (see the Collector behaviour)
- Target tab contains a list of actions that can be triggered when you have an active target (Target window). An example is the "Estimate Loot" action


let me show you some behaviours actions examples:


Bank list (available in the Generic tab)

This is a sample result of the "Show Bank list" action, here you can see a sortable grid with informations about current spawned banks, with current remaining life and coordinate.
Clicking on a bank will center the map on that coordinate



Enemy hunters (available in the Generic tab)

This is a sample result of the "Show Enemy List" action, here you can see a sortable grid with info about current enemies on map.
The last column (Recycle) shows if the hunter is going over a bank (probably to recover himself).
Clicking on a hunter will center the map on its position



Estimate Loot (Troop hunter)

This is a sample of the "Estimate Loot" action used in the Troop panel of the Behaviour Actions.
You can see in gray the queued path (not yet commited) of one of my hunters and in the right upper corner you can see the result of the action that says that going there i can collect about 39.6 HUC.
When the hunter has already an active path, this feature can be useful to see the estimated difference between actual and queued/pending path estimated income.
The computation doesn't take into consideration other hunters that are collecting on the same area



Estimate Loot (Target hunter)

This is a sample of the "Estimate Loot" action used in the Target panel of the Behaviour Actions.
This is similar to the "Troop" version but it can't show you queued paths of enemies, but in future i could show the estimated pending path value.
Actually you can see how many coins your target is going to collect going on his actual path (30.25 in the sample image)
The computation doesn't take into consideration other hunters that are collecting on the same area



Collector automatic behaviour !!! (Troop hunter) 1/3 - Intro

This actions can easily configure an improved version of the previous "Simple Collector" behaviours i released on previous versions.
This is an example about how using an action you can bound an automatic behaviour to one of your hunters, without the need of configure the behaviour like before (it's very easy!!)
The Collector Behaviour is useful to collect money while you are afk or you can't keep staring at the monitor constantly.
It's highly configurable and it's compatible with other (planned for the future) behaviours that can try to keep you safe from enemies, or be aggressive, and so on.



Collector automatic behaviour !!! (Troop hunter) 2/3 - When Coins End

In this image you can see the available choices available for the collector configuration "When Coins end" parameter.
This is useful to choose what to do when there are no more coins on the area you are harvesting (area = Target Area coordinate expanded by Sight Range parameter).
 - If you choose "Keep Looting" your hunter will stay on that area until he has collected the amount specified in the "Max Loot" parameter, then will return to the bank
 - If you choose "Remove Behaviour", when coins end the collector behaviour will be removed from the hunter, so the next (eventual) configured behaviour can run, or your hunter will stand still there undefinitely waiting for your inputs.
Advanced tip: you can chain several Collector behaviour togheter because only one of them can run at a time on a specific hunter, so adding multiple cascade collector with the action "Remove Behaviour" is useful to harvest multiple areas
- If you choose "Go To Bank" well... when the coins end your hunter will find the nearest bank (or stand still waiting for a bank to spawn near him).
In any case, to find a bank the Max Bank Distance parameter is used, so you can chose if you want to go only to banks near you, or take a long journey, anyway if a new bank spawn near you when you are already going to a bank, the nearest one is chosen (so it's optimized to go as fast as you can to the nearest bank)



Collector automatic behaviour !!! (Troop hunter) 3/3 - When Arrived at Bank

In this image you can see the available choices available for the collector configuration "When Coins end" parameter.
When the behaviour decide that you need to go to a bank, the alghoritm to find a suitable bank is the same: find an available bank that can be reached at most in "Max Bank Distance" blocks.
But what to do next, depend on the choice you make here:
- ReturnToTargetArea: when you deposit your coins to the bank, then you'll go back to your Collector target area to keep doing the harvester
- Recycle: when you chose to Recycle, then you stand on the bank for 3 blocks in order to be removed from the game and have your hunter cost refunded.
Note that if you chose this option, then the alghoritm to pick up a bank take into account the need of having to wait 3 blocks on the bank, so if you chose e.g. 60 as maximum bank distance, than only banks at 57 blocks (60-3) are taking into account. Of course only bank that have at least that amount as remaining life are considered




closing notes about Behaviour Actions:

Active behaviours

To see the active behaviours running on a hunter you can right click on your hunter in the My Troop window to see a contextual menu that shows at the end a sorted (by priority) list of active Behaviours, each one with its own visualizing style to recap the main parameters you've chosen.
In this example you can easily see that my mmtest hunter has an active Collector behaviour, with a target area set at coordinate 281;94 and is harvesting an area of 5x5 cells around that coordinate, with a maximum loot of 100Huc and that when no coins are available at that area the hunter will go to the bank and whenever he goes to a bank (because of 100 huc reached or because no more coins available) then he will recycle!



Configure Behaviours

Like in the previous versions of the client, you can setup some of your behaviours with preconfigured parameters and pick them from the list of available configurations, clicking the "Configure Behaviours" contextual menu on a hunter in the "My Troop" window.
However I consider this an obsolete way to apply behaviours on hunters (but still useful for some kind of behaviours), anyway this window is still useful because now you can drag and drop your active behaviours chosing their priority (they are sorted in priority order).
Priority is important because it can impact on operations: the wrong order can lead to unpredicted results.
There isn't a generic order valid for any mix of behaviours, it all depends on behaviours that are chained togheter, so refer to specific behaviour documentation to understand the consequences

Ok, now i can't keep writing a book Smiley i didn't have time to write all additions available or explain all implemented behaviours and actions, but I want to record some video sessions that shows how to use this information in practice, playing on testnet and on production blockchain.
While i was writing this huge (pant! pant!) post, i observed two players battling each other, i don't know who they were but here, as a bonus shots Cheesy, the fight images i took, that shows even the pending path and alerts exposed by the client

the fight can be found here: http://imgur.com/a/g5LU5
hunters involved were kontol vs vert3

it ended in no one killed, and both wasted 40 huc each then decided to leave the fight. some shots show the different path shown by the pending moves algorithm, and when the hourglass were green (so Enhanced mode on) it was the right one!

Ok now time to have a bit of rest Smiley

Let me know your thoguts and ideas!

Huntercoin: Mithril Edition - Alternative client for Huntercoin - (Discontinued)
HUC: HMSCYGYJ5wo9FiniVU4pXWGUu8E8PSmoHE  - BTC: 1DKLf1QKAZ5njucq37pZhMRG67qXDP3vPC
rant to people who pretend things for free
wiggi
Sr. Member
****
Offline Offline

Activity: 403
Merit: 251


View Profile
October 06, 2015, 10:09:26 PM
 #6803

continuing from
https://bitcointalk.org/index.php?topic=435170.msg12289266#msg12289266
and
https://bitcointalk.org/index.php?topic=435170.msg12485242#msg12485242


It seems to me that we are talking about different things, you are more about "procedural generated maps" but this doesn't work (or at least is not easy) if someone wants to change themes, etc.. because your descriptors should be agnostic too (not "this is a tree" but more a "this is a tall element that cover a player") etc...
Basically, the tall element that cover a player will become a tree if you use maptiles for it that look like a tree. For example, duplicate these 6 lines
https://github.com/wiggi/huntercoin/blob/betterQt/src/qt/gamemapview.cpp#L486-491
only with a new letter and 6 new map tiles. Voila, an alien looking tall element (that cover a player).


What's the purpose of Calculate_AsciiArtMap? Can't it "patch" the map and generate a final fixed map with all layers patched, that can be shared with any client?
It has reversed gear, from reading the gamemap and figuring out what it means, to rebuilding it (from the asciiart file, the old gamemap is commented out) So it's not a procedural generated map, all the (manually placed by snail iirc) trees are on their old position, with most cases of missing or garbled tiles repaired.


updated for windows:
https://mega.nz/#!2AUGkKKS!rwth5Rmfea5qpHyfkBSDdJ3xcqW-6d3MVchaa_ZPCNc



snailbrain (OP)
Legendary
*
Offline Offline

Activity: 1807
Merit: 1020



View Profile
October 07, 2015, 07:55:04 AM
 #6804

very good work wiggi and mithrilman

bucktotal
Full Member
***
Offline Offline

Activity: 232
Merit: 100


View Profile
October 07, 2015, 10:32:03 PM
 #6805

@domob, thanks ! i downloaded the chain, and was synced within 5 min.

@wiggi, that map looks awesome. a little depth (3D) goes a long way

@mithrilman, you are still a beast Cheesy i really like that you are maintaining a perspective to always make the humans more competitive with the bots. that is very important.

SISAR
Hero Member
*****
Offline Offline

Activity: 651
Merit: 518



View Profile
October 08, 2015, 11:32:50 AM
 #6806

It sounds to me idiotic that the most competent here codewise are working mostly on bots. Like "Here we have a human-minable altcoin but it is the one who has the best bot wins game actualy".
no-ice-please
Hero Member
*****
Offline Offline

Activity: 955
Merit: 500


View Profile
October 09, 2015, 08:53:12 PM
 #6807

It sounds to me idiotic that the most competent here codewise are working mostly on bots. Like "Here we have a human-minable altcoin but it is the one who has the best bot wins game actualy".

It's an interesting thing. Huntercoin is certainly a sort of dividing line between the original currencies that were necessarily generated or mined by only a few, and future currencies that will be entirely generated by users, though probably in some process more useful than an online game.

Bots that can mine "human mineable" currency are counter productive at this point. The fact that bots can compete easily with people is not good. 

Here is a brief extract from the super long post Mithrilman made on the previous page:

...

One of the things that bot creators or custom clients had since day 0 was the ability to see, before normal players, where a hunter is going.
This shouldn't shock anyone, it's not about cheating, the reason is technical...

... Anyway this causes a problem because until now, smart bot programmers or modified game clients could take the opportunity to read a preview of the opponents' moves, decoding transactions received from other nodes and not yet included in the last block generated.
One of the main reason i started coding my client was to leverage the difference between the BOT power in order to let human players compete with the same arsenal of custom clients/bot.
...

Everyone understands that bots make some money for those who create them but they destroy the value of the coin. It seems like devs try to address that issue.
MithrilMan
Hero Member
*****
Offline Offline

Activity: 554
Merit: 502

Developer!


View Profile WWW
October 10, 2015, 01:20:09 AM
Last edit: October 10, 2015, 01:30:53 AM by MithrilMan
 #6808

...

One of the things that bot creators or custom clients had since day 0 was the ability to see, before normal players, where a hunter is going.
This shouldn't shock anyone, it's not about cheating, the reason is technical...

... Anyway this causes a problem because until now, smart bot programmers or modified game clients could take the opportunity to read a preview of the opponents' moves, decoding transactions received from other nodes and not yet included in the last block generated.
One of the main reason i started coding my client was to leverage the difference between the BOT power in order to let human players compete with the same arsenal of custom clients/bot.
...

Everyone understands that bots make some money for those who create them but they destroy the value of the coin. It seems like devs try to address that issue.

I think this extrapolation doesn't give the right weight to current situation.
While i'm developing the game, i play it and what i see is that actually the game is almost played by just one or 2 person, not bot driven but persons who just have a lot of time to dedicate to the game
currently i don't think bot are involved, except me doing some test of the collector behaviour when i've time (and most of the time i lose them because i work during the day and i haven't yet implemented the "stay away from enemies" behaviour (and as i said i'm planning to release to everyone this behaviours in my client)
current game problem is just that it costs too much respect what you can collect, because paying 20huc every time you try to kill someone, means that you have to spend lot of minutes collecting those coins
and if you don't find someone AFK that forgot one of his hunters around the map, usually fights ends up with both attacking at the same time, so both spending 20 huc, without a winner and so, after 2 or 3 attempt (and both loosing 40/60 huc) they decide to leave the fight and keep collecting coins around. I'm speaking by experience, playing every day or whatching how the game evolves, i can even say that there are probably 2 players that are alternating and i can say more or less their playing times because they mostly use even everytime the same players names

actually BOTs aren't a problem at all, but of course they could become a problem if the coin will rise in value, because it would be worthy for bot creators to invest time and hardware to run their creations

But if we increase the tactical aspect of the game (e.g. ammo/armor ideas already proposed months ago by me), it would be much harder to have a bot that can easily face a human, and fights would be funnier than now. blockchain size is another aspect and it's going to be solved, but the main problem that i see now is really the bad ROI that the game have, and more players that plays and compete to collect coins, worse the ROI would be with current game mechanics.

I already posted my observations last months here on this thread, like this:

https://bitcointalk.org/index.php?topic=435170.msg12040287#msg12040287

and this

https://bitcointalk.org/index.php?topic=435170.msg12445593#msg12445593

Huntercoin: Mithril Edition - Alternative client for Huntercoin - (Discontinued)
HUC: HMSCYGYJ5wo9FiniVU4pXWGUu8E8PSmoHE  - BTC: 1DKLf1QKAZ5njucq37pZhMRG67qXDP3vPC
rant to people who pretend things for free
bucktotal
Full Member
***
Offline Offline

Activity: 232
Merit: 100


View Profile
October 10, 2015, 05:18:38 PM
 #6809

what about having the cost of a player(s) be related to the amount of available coins on the map? some dynamic cost for a hunter(s) thats modulated by game state?



MithrilMan
Hero Member
*****
Offline Offline

Activity: 554
Merit: 502

Developer!


View Profile WWW
October 10, 2015, 11:12:34 PM
 #6810

what about having the cost of a player(s) be related to the amount of available coins on the map? some dynamic cost for a hunter(s) thats modulated by game state?


This is something more or less suggested in the past, with older gameplay styles but never investigated deeply. A dynamic fee system could be useful, even if it should be belanced to prevent "rich" players rules the map.
Anyway the main problem in CURRENT release is the cost to trigger destruction (20 huc), because it causes the PVP to be costly respect your possible gain and now you most of the time see someone trying to attack another, and if he defend itself, maybe try a second time and if it ends even again, then going away leaving the fight.

Lowering very much game cost will (hopefully) increase the game population but a more interesting gameplay should be implemented too, and the focus of changes shouldn't be toward the fight versus bots because if the map is crowded and the mechanics are "complex" (again armor/ammo, different attack types and spell timers) bot will have an hard time surviving in such scenario, even if smart

About the costs, I've always been a defender of the "let's have a cheap game that allow anyone to win a even little amount" game model while the game is going more  toward "let few win much" game model. imho it's a pity

I found that the starting model 1HUC cost per hunter was cool because was balanced with the fact that a block generate ~8 huc on the map

Unlucky the higher fees was caused by technical problem (blockchain bloating), so to decrease the size of the blockchain the cost increased much, but I think that actually it killed the game

My hope is that soon we'll be able to have a pruneable blockchain and so the "crowded map" will not be such a big problem and we could happily fill the map with our hunters and fight each others to prevail!!

Huntercoin: Mithril Edition - Alternative client for Huntercoin - (Discontinued)
HUC: HMSCYGYJ5wo9FiniVU4pXWGUu8E8PSmoHE  - BTC: 1DKLf1QKAZ5njucq37pZhMRG67qXDP3vPC
rant to people who pretend things for free
bucktotal
Full Member
***
Offline Offline

Activity: 232
Merit: 100


View Profile
October 11, 2015, 03:32:59 PM
 #6811

it could be interesting to scale the price to play with the demand for playing. i havent really thought this through but what if the price of a hunter (or type of hunter if different characters with different skills cost different amounts) could scale with the number of that hunter-type being created. something like if the mean number of hunters created in last few blocks is between n1:n2 then the cost is x, if more hunters are made per min, then cost to create the hunters goes up too.  
snailbrain (OP)
Legendary
*
Offline Offline

Activity: 1807
Merit: 1020



View Profile
October 12, 2015, 01:18:39 PM
 #6812

it could be interesting to scale the price to play with the demand for playing. i haven't really thought this through but what if the price of a hunter (or type of hunter if different characters with different skills cost different amounts) could scale with the number of that hunter-type being created. something like if the mean number of hunters created in last few blocks is between n1:n2 then the cost is x, if more hunters are made per min, then cost to create the hunters goes up too.  

Hi Buck,

we've played with the idea of variable costs for hunters and i think we are all open to suggestions.
an issue basing on how many is on the map or create in a certain amount of time maybe that someone could create 10k hunters in 1 block and then it's expensive for everyone else?
Although I have not thought fully you could be on to something with different classes costs based on how many on the map (or created in x amount of time). This could be a self balancing technique for overpowered classes? i.e. overpowered classes which are created will automatically become expensive -once it becomes expensive though, the population will reduce, then the price will go down again, maybe oscillate?.. something to think about

one idea was for the cost of hunters to be based how many hunters are on the map when the previous disaster occurred - as disaster can happen randomly it could be harder to manipulate?

hoping domob gets some spare time soon and we can see what happens with pruning and then work on the next mechanics update and look at hunter costs (and remove destruct cost).

wiggi
Sr. Member
****
Offline Offline

Activity: 403
Merit: 251


View Profile
October 12, 2015, 06:31:21 PM
 #6813

what about having the cost of a player(s) be related to the amount of available coins on the map? some dynamic cost for a hunter(s) thats modulated by game state?


Dynamic cost depending on available coins seems fairer, but on the other hand, finding a time slot where you can get the most coins from the map most easily is an aspect of the game, or metagame.

The main problem is, playing a quick game is out of the question because it takes 1-3 hours to reach a good harvest area, and also 1-3 hours to get every hunter to a bank. (which is already an huge improvement compared with the pre-lifesteal and random bank era)
bucktotal
Full Member
***
Offline Offline

Activity: 232
Merit: 100


View Profile
October 13, 2015, 01:40:31 AM
 #6814

Quote
Hi Buck,

we've played with the idea of variable costs for hunters and i think we are all open to suggestions.
an issue basing on how many is on the map or create in a certain amount of time maybe that someone could create 10k hunters in 1 block and then it's expensive for everyone else?
Although I have not thought fully you could be on to something with different classes costs based on how many on the map (or created in x amount of time). This could be a self balancing technique for overpowered classes? i.e. overpowered classes which are created will automatically become expensive -once it becomes expensive though, the population will reduce, then the price will go down again, maybe oscillate?.. something to think about

one idea was for the cost of hunters to be based how many hunters are on the map when the previous disaster occurred - as disaster can happen randomly it could be harder to manipulate?

hoping domob gets some spare time soon and we can see what happens with pruning and then work on the next mechanics update and look at hunter costs (and remove destruct cost).


could use a median filter on the last n blocks, instead of the mean. was also thinking about a longer time scale, where n is like blocksPerDay*0.8. 

i think dynamically auto-regulating the costs to play would be useful for many reasons. and having multiple hunter types with different skills would just be cool in general.




Radi777
Sr. Member
****
Offline Offline

Activity: 400
Merit: 250


View Profile
October 15, 2015, 07:20:50 AM
 #6815

It sounds to me idiotic that the most competent here codewise are working mostly on bots. Like "Here we have a human-minable altcoin but it is the one who has the best bot wins game actualy".
That's true. Back in the day it was bad with bots, it was so hard to play. Initially it was easy to play, but it got real hard and I stopped playing. I made a bitcoin, can't even imagine how much the people with the bots made. I am excited to see how the game has changed since I have played it many months ago, gotta update my wallet, i still have the 1.00.06 wallet lol


           █████████████████     ████████
          █████████████████     ████████
         █████████████████     ████████
        █████████████████     ████████
       ████████              ████████
      ████████              ████████
     ████████     ███████  ████████     ████████
    ████████     █████████████████     ████████
   ████████     █████████████████     ████████
  ████████     █████████████████     ████████
 ████████     █████████████████     ████████
████████     ████████  ███████     ████████
            ████████              ████████
           ████████              ████████
          ████████     █████████████████
         ████████     █████████████████
        ████████     █████████████████
       ████████     █████████████████
▄▄
██
██
██
██
██
██
██
██
██
██     
██
██
▬▬ THE LARGEST & MOST TRUSTED ▬▬
.BITCOIN SPORTSBOOK
   ▄▄
██
██
██
██
██
██
██
██
██
██     
██
██
             ▄▄▄▄▀▀▀▀▄
     ▄▄▄▄▀▀▀▀        ▀▄▄▄▄           
▄▀▀▀▀                 █   ▀▀▀▀▀▀▀▄▄
█                    ▀▄          █
 █   ▀▌     ██▄        █          █         
 ▀▄        ▐████▄       █        █
  █        ███████▄     ▀▄       █
   █      ▐████▄█████████████████████▄
   ▀▄     ███████▀                  ▀██
    █      ▀█████    ▄▄        ▄▄    ██
     █       ▀███   ████      ████   ██
     ▀▄        ██    ▀▀        ▀▀    ██
      █        ██        ▄██▄        ██
       █       ██        ▀██▀        ██
       ▀▄      ██    ▄▄        ▄▄    ██
        █      ██   ████      ████   ██
         █▄▄▄▄▀██    ▀▀        ▀▀    ██
               ██▄                  ▄██
                ▀████████████████████▀



    CASINO    DICE    POKER   
     ▬▬  24 hour Customer Support  ▬▬   
domob
Legendary
*
Offline Offline

Activity: 1135
Merit: 1161


View Profile WWW
October 16, 2015, 07:01:39 AM
 #6816

I've been thinking for some time now that a concept like payment channels could be used to implement a "real-time aspect" in Huntercoin or a related system.  Now I've had some time to think about it and I will describe a rough idea below.  I welcome any comments!

Game Channels for Near Real-Time Interaction among Players

For this post, let us assume that we want to add a simple "fighting arena" to Huntercoin.  Two peers on the network mutually agree to put up a HUC price and then enter a (possibly private) fight for the price based on some rules.  Using an idea similar to payment channels and the Lightning Network, this can be done in such a way that everything is off the blockchain (avoiding bloat as well as allowing for fast interaction not waiting for confirmations) as long as the peers agree.  In case that one of them drops out or disagrees, the other one can claim the price on the blockchain.  This makes everything trustless but still efficient.

Turn-Based Games

We consider a game that is turn based, with the peers taking turns to make a move and modify a shared game state.  This can also be done with more than two players if some order of turns is defined (round-robin or whatever suits the actual game rules).  To initiate the game channel, both peers create a transaction spending coins to some locked output (multisig or based on some new consensus rules in Huntercoin).  This transaction can contain additional details about the planned game negotiated by the players.  It also contains, at least, a public key identifying each player during the game.  The locked coins can only be spent by providing the Huntercoin network with a proof of who won the game.  As soon as this transaction is sufficiently confirmed, the game can start.

If no disagreement happens and no player drops out, the basic idea is that all players build a "private blockchain" similar to how Huntercoin works itself:  Starting from some predefined initial game state (which can be determined by the game rules alone and the initiating transaction on the blockchain), each turn taken by some player constructs a "miniblock" that contains the move signed by this player's private key.  This allows everyone with access to the private blockchain to compute the current game state; in particular, the player whose turn is next can continue to build a new block upon the current blockchain, and each participant of the game can verify that all rules are being followed.  Ideally, at some point the game reaches a state where someone won.  If each player is still fair and does not claim a dispute, all together can construct and sign a transaction unlocking the price and paying to the respective winners.  This is the only thing that needs to be put again on the real Huntercoin blockchain in this case.

However, of course the more interesting situation is what happens if someone disagrees with the game or stops to respond.  It seems not unrealistic that a losing player may choose to do that on purpose; or it could be due to a network failure or some other unintentional issue.  In this case, there needs to be a way for the other(s) to claim the price in a secure fashion.  For this, I propose the following mechanism:

  • When a player stops to respond (after, e. g., some timeout has been reached), the remaining player may escalate the situation and claim a dispute.  This is done by publishing the current private blockchain including all signed moves made so far to the Huntercoin network in a special transaction.
  • If this transaction gets a sufficient number of confirmations and/or has been on the network for a sufficiently long time (compare the locktime of Bitcoin transactions), the player may unilaterally spend the locked price output.
  • Unless the contrahent actually starts to respond again:  When they see the claim on the network, they have the possibility (until the timelock threshold runs out) to post their next move publicly on the network.  This transaction, when confirmed, invalidates the claim; this is not a problem since there now is a next move and the game continues.  If the contrahent stops to respond again in the future, a new claim can be filed.
This procedure ensures that the game continues with at least a certain minimum frequency of moves, even if one of the players may prefer to drop out.  If it does not, then the non-dropped-out player is able to claim the price anyway.

Shared Turns

This situation of a turn-based game can also be extended to "shared turns" as it is the case with Huntercoin currently.  I. e., we do not want the players to take a turn after each other, but instead we want them all to perform some move at the same time but without learning their opponents' moves before they make their own.  This can be achieved by introducing "pseudoturns":  We define some order of the players, and each one publishes a hash commitment of their move in this order as "their" turn.  Afterwards, in a new round of pseudoturns, each player reveals the move.  This reduces the situation of shared turns to a pure turn-based game as discussed above.

Near Real-Time Interaction

Similarly, one can also reduce a "near real-time" interation to a turn-based game:  We allow "do nothing" as a valid turn, so that each player's client may immediately respond to the other's turn by posting a "do nothing" turn unless a "real-time player action" was initiated at this moment.  This allows for a rapid succession of moves, as fast as the network and processing power of the clients allows.  Of course, it is not clear how useful such a situation really is -- after all, by claiming a dispute the moves can be delayed in case of disagreement, so that no enjoyable real-time playing can happen.

Conclusion

Using the ideas introduced above, one can really implement private games between players (fights based on some rules to extend Huntercoin, but the same protocol can also be used to define, for instance, a blockchain-based chess game).  They are trustless but unless a real disagreement happens, they can be played off the blockchain and faster than the block confirmation times (as well as without causing blockchain bloat or requiring transaction fees).

The ideas described are still rough, and I'm pretty sure that one can work on minimising the "blockchain fingerprint".  For instance, one could try to construct a suitable set of proofs (based on, e. g., Merkle trees) that can be used to claim disputes without requiring to post the full (possibly long) sequence of moves so far.  This is, for now, out-of-scope, though.

I believe that this concept may even be used not only to add a "fighting arena" to Huntercoin, but even to scale the game for much larger (or possibly infinite) worlds.  This idea here could be the following:  The game state of each part of the world is only propagated in time if there are players nearby.  These players could then for themselves create a game channel and process their moves privately without causing growth of the Huntercoin blockchain, unless a dispute happens.  Of course, there are still a lot of issues to resolve for such an approach -- not least how to spawn coins there in such a way that everyone (not just the players interested currently in the game part) can verify that the total (and global) rewards are correct.  But this is, as well, a separate issue out-of-scope for now and can be addressed by a follow-up design.

Use your Namecoin identity as OpenID: https://nameid.org/
Donations: 1domobKsPZ5cWk2kXssD8p8ES1qffGUCm | NMC: NCdomobcmcmVdxC5yxMitojQ4tvAtv99pY
BM-GtQnWM3vcdorfqpKXsmfHQ4rVYPG5pKS | GPG 0xA7330737
HunterMinerCrafter
Sr. Member
****
Offline Offline

Activity: 434
Merit: 250


View Profile
October 16, 2015, 04:46:55 PM
 #6817

I've been thinking for some time now that a concept like payment channels could be used to implement a "real-time aspect" in Huntercoin or a related system.  Now I've had some time to think about it and I will describe a rough idea below.  I welcome any comments!

Game Channels for Near Real-Time Interaction among Players

This sounds like an almost ideal use-case for what we are designing over at the tauchain project...  You should stop into #zennet on freenode and prompt a discussion!  Grin
wiggi
Sr. Member
****
Offline Offline

Activity: 403
Merit: 251


View Profile
October 18, 2015, 04:22:09 PM
 #6818


I believe that this concept may even be used not only to add a "fighting arena" to Huntercoin, but even to scale the game for much larger (or possibly infinite) worlds.  This idea here could be the following:  The game state of each part of the world is only propagated in time if there are players nearby.  These players could then for themselves create a game channel and process their moves privately without causing growth of the Huntercoin blockchain, unless a dispute happens.  Of course, there are still a lot of issues to resolve for such an approach -- not least how to spawn coins there in such a way that everyone (not just the players interested currently in the game part) can verify that the total (and global) rewards are correct.  But this is, as well, a separate issue out-of-scope for now and can be addressed by a follow-up design.
If this is standard behavior it would also make fog of war between players on a huge map possible (playing normally and sending your moves to the main blockchain is then the equivalent of continuously broadcasting reconnaissance from your area to everyone)


Huntercoin network (all nodes) need to know the winning condition (and really the complete set of rules) for all playable "private games" or disputes can't be resolved. Also, lose connection, lose private game?

domob
Legendary
*
Offline Offline

Activity: 1135
Merit: 1161


View Profile WWW
October 19, 2015, 06:03:02 AM
 #6819


I believe that this concept may even be used not only to add a "fighting arena" to Huntercoin, but even to scale the game for much larger (or possibly infinite) worlds.  This idea here could be the following:  The game state of each part of the world is only propagated in time if there are players nearby.  These players could then for themselves create a game channel and process their moves privately without causing growth of the Huntercoin blockchain, unless a dispute happens.  Of course, there are still a lot of issues to resolve for such an approach -- not least how to spawn coins there in such a way that everyone (not just the players interested currently in the game part) can verify that the total (and global) rewards are correct.  But this is, as well, a separate issue out-of-scope for now and can be addressed by a follow-up design.
If this is standard behavior it would also make fog of war between players on a huge map possible (playing normally and sending your moves to the main blockchain is then the equivalent of continuously broadcasting reconnaissance from your area to everyone)


Huntercoin network (all nodes) need to know the winning condition (and really the complete set of rules) for all playable "private games" or disputes can't be resolved. Also, lose connection, lose private game?

If everything goes well and no disputes arise in the private games, the public network and blockchain will only contain an opening and a closing transaction of the private game.  There's no need to have the full game nor even the end state of something like that -- just the transaction releasing funds according to the result, signed in agreement by both players.

Yes, losing the connection presumably leads to losing the private game.  However, it is, of course, possible to define the "threshold" for losing according to the actual game you have in mind -- if it is a chess game, each player may have a day or more for the move.  In this case, the system could be designed very well to allow for disconnecting and only connecting once a day to publish the current move.

Use your Namecoin identity as OpenID: https://nameid.org/
Donations: 1domobKsPZ5cWk2kXssD8p8ES1qffGUCm | NMC: NCdomobcmcmVdxC5yxMitojQ4tvAtv99pY
BM-GtQnWM3vcdorfqpKXsmfHQ4rVYPG5pKS | GPG 0xA7330737
MithrilMan
Hero Member
*****
Offline Offline

Activity: 554
Merit: 502

Developer!


View Profile WWW
October 19, 2015, 08:35:20 AM
 #6820

i like the idea of having side games, i could have fun implementing some but I'm not sure about how to handle disputes.
Ok, if all go well and any client agree on the game result it's fine, but what to do if clients don't agree?

To be really trustless, and used as a "general game coin" the huntercoin core should implement a "rule language" where custom game can write their rules in that language, but  it would be probably too much complicated (at least for more than a chess game)


maybe a better idea is to introduce the concept of "account" so that we can know if game partecipants are trusty or not, using a rating system e.g. (example
- every completed game (without problem) gives +2
- every completed game (that generate  disputes) gives -2
- every time a user client help solving a dispute it gets +1
- every time you lose a dispute you get -5
etc...

then accounts with an high rate, can "vote" for games with disputes (automatically of course), so the net can use the rating system as a way to solve disputes by itself

then we can add some fraud protection (e.g. someone behave good for some time, to rise his rating, then start "cheating") so that an account that have active disputes can't vote for another disputes (or some formula like "if you had more than XX disputes in last xx days, etc...)

this way, we can even use the account system in future into huntercoin game itself, so that we can enforce hunter creation limit per account, creating special contests bound to accounts (this way you could know how many kill a player has done, etc...)
To prevent creating multiple account we can then give some bonus (an experience concept, so you can "level" and be more powerfull, etc... so going thoward an RPG game concept

Huntercoin: Mithril Edition - Alternative client for Huntercoin - (Discontinued)
HUC: HMSCYGYJ5wo9FiniVU4pXWGUu8E8PSmoHE  - BTC: 1DKLf1QKAZ5njucq37pZhMRG67qXDP3vPC
rant to people who pretend things for free
Pages: « 1 ... 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 [341] 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 ... 429 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!