Author Topic: Not Showing your Hand until it's too Late CONCEPT for Combat  (Read 4375 times)

Snailbrain

  • Developer
  • Hero Member
  • *****
  • Posts: 1001
    • View Profile
Read - simple in theory, not sure how simple in implementation.

Keeping very short :

Problem - no matter what we do with combat - automation, spam of chain, connection issues in long drawn out fights and other stuff - it's never going to work 100% when everyone knows what is happening.

Solution : Don't let anyone know what you are doing until it's too late.

When you create your hunter you select from X amount of squares on a Grid X by X in size.
For this example, lets assume you select from 4 squares from a 5x5 Grid, but you can only select from the out layer.
The centre square and inner squares are already yours as a destruct radius by default (user could choose any squares, but for this example we'll say they are fixed).
You may also only select 2 Squares per side.

example -

creating your character (probably got syntax wrong):

name_register player1 {"color":1,"destructpattern":Xf22fDSgfdsf224}

the destruct pattern is encrypted using either some none currency using key or manually entered phrase upon creation (which is stored in your wallet for later).
It can be changed at any time just like you can change your reward address (at the cost of a pending tx).

When you meet someone in combat - only you know your own destruct pattern, and they theirs.
When you finally destruct - your destruct/attack tx is actually the revealing of "phrase"/key/salt(?) so you can prove that's what your pattern was.
You'd then be wise to immediately reset/change that hunters pattern if you won (or miss)

To make this more fun and more tactical you could later add evade as per MM's concept. Then you can do true feints etc, ones which make them use their evade even though you wasn't going to land your destruct- as, without them not knowing what you are doing there is no such possibility of real feints - because everyone can see what you are doing.

Of course - the prase/key would need to be strong to prevent brute force, and also maybe need some other security so that 1 hash doesn't represent 2 destructs - something i'd leave to domobs advanced knowledge ;)

-
The same concept could be applied so that attacks are just rock, paper, scissors - which may be easier to implement.

Thoughts?

Mithril Man

  • Hero Member
  • *****
  • Posts: 589
    • View Profile
    • Mithril Man Web!
Re: Not Showing your Hand until it's too Late CONCEPT for Combat
« Reply #1 on: July 23, 2015, 10:57:07 PM »
frankly i find this awkward and unfriendly, gameplay should be simple.
Spending time selecting cells, changing passphrases and whatever sounds just like a boring and repetitive task, moreover, the more time consuming a task is (selecting cells, selecting phrase changing it everytime, etc...) and the more automatic bots would have an advantage (they can just do that in a fraction of a ms)
Alternative GUI client for Huntercoin http://www.mithrilman.com
HUC donation: HMSCYGYJ5wo9FiniVU4pXWGUu8E8PSmoHE
BTC donation: 1DKLf1QKAZ5njucq37pZhMRG67qXDP3vPC

Snailbrain

  • Developer
  • Hero Member
  • *****
  • Posts: 1001
    • View Profile
Re: Not Showing your Hand until it's too Late CONCEPT for Combat
« Reply #2 on: July 23, 2015, 11:07:05 PM »
with Rock , Paper, Scissor (easier to implement).
This would prevent endless battles..

e.g. Player1 sets scissors Player2 sets paper -- if both hit each other with destruct, one will die.. if only one destructs then one will die..

Rock Paper scissor does not need to be select-able - it can just be randomly set each time you do a destruct locally in your wallet (provides a new hash in the destruct tx)

not thought about this part properly yet..

frankly i find this awkward and unfriendly, gameplay should be simple.
Spending time selecting cells, changing passphrases and whatever sounds just like a boring and repetitive task, moreover, the more time consuming a task is (selecting cells, selecting phrase changing it everytime, etc...) and the more automatic bots would have an advantage (they can just do that in a fraction of a ms)

how many players do you create though? and it would take literally 3 seconds.. of course you may want to change it when attacking someone from a certain direction.

If you mean during combat - if you miss and don't die which would be lucky, a bot can of course change it fast, but he still needs to update the tx and be pending. He also needs to think where he's headed and what the bet pattern will be.

Simple is good, but if the gameplay is "readable" to everyone without major complexity then how can it ever be fun vs automation which can win every time.
Aligning your "invisible pattern" against someones elses "invisible pattern" with maybe a touch of rock/paper/scisssor, and the possibility to evade, i think adds more randomness, more skill/tactics and more fun.

Anyway - just a brainfart atm :)

Snailbrain

  • Developer
  • Hero Member
  • *****
  • Posts: 1001
    • View Profile
Re: Not Showing your Hand until it's too Late CONCEPT for Combat
« Reply #3 on: July 23, 2015, 11:23:20 PM »
regarding changing it during combat (bot could do instantly) - there should be time within the spell timer anyway. Of course this adds another tx after every destruct..

i suppose you could also do what i said above with rock / paper /scissor, and when you do the destruct it just randomly changes your pattern.. can even be randomly created at the start so you do not need to select it at all.. and only you can see it locally.

I think would be good to select your own pattern though as well - maybe "only if you want to", otherwise it's random.
If you coudln't select it, people could just spam destruct to get the pattern they want, so may as well have an option to set it like you can set reward address.

Snailbrain

  • Developer
  • Hero Member
  • *****
  • Posts: 1001
    • View Profile
Re: Not Showing your Hand until it's too Late CONCEPT for Combat
« Reply #4 on: July 23, 2015, 11:28:03 PM »
just realized. wouldn't need random rock paper scissor key technique - can just use some other random method - like block hash or what wiggi talked about..

anyway - interested on thoughts

Mithril Man

  • Hero Member
  • *****
  • Posts: 589
    • View Profile
    • Mithril Man Web!
Re: Not Showing your Hand until it's too Late CONCEPT for Combat
« Reply #5 on: July 23, 2015, 11:41:52 PM »
You said even that fight should be fast, how much fast? if you mean that when you meet someone you should easily kill or being killed in few moves, where is the fun?
And where is the fun when the fight is decided by a number you don't have control on?
at this point let's gamble and not play a game (or at least i wouldn't be interested in this kind of game)
I consider random things only in case hunters have some sort of RPG start like attack power, etc... and you use a random number between a min and a max to see how hard it hits, etc...


regarding your question, in this couple of days i had moved 12 hunters manually (even with the aid of my alert system and Action Behaviours) without problem
Alternative GUI client for Huntercoin http://www.mithrilman.com
HUC donation: HMSCYGYJ5wo9FiniVU4pXWGUu8E8PSmoHE
BTC donation: 1DKLf1QKAZ5njucq37pZhMRG67qXDP3vPC

domob

  • Developer
  • Sr. Member
  • *****
  • Posts: 285
    • View Profile
Re: Not Showing your Hand until it's too Late CONCEPT for Combat
« Reply #6 on: July 24, 2015, 06:18:52 AM »
Something like that is definitely doable, although I agree with MM that it makes things a lot more complicated for non-power users.  There's no need for a user-selected passphrase, everything can be random (just like NAME_NEW).  You could actually store a hash commitment for each of the selected squares, and then only reveal one if you attack.  All of this adds some more data to the chain, though.

Another problem I see is that this does not much to prevent the issue that someone can see the other's destruct in the mempool and quickly respond with a defending one (unless you are lucky and positioned such that your pattern hits the other but theirs does not hit you).  For this, you would need something like the discussed "invisibility" - where you commit the actual destruct in the chain already earlier, and reveal it later to prove that your opponent is actually dead already.  But that creates probably a lot more difficulties, makes the whole fighting system slower and confuses users.
Use your Namecoin-ID as OpenID: https://nameid.org/
Donations: 1domobKsPZ5cWk2kXssD8p8ES1qffGUCm | HBkxA5QmYSATFoPN1wFk8eBkgwPpY97Mfu

Snailbrain

  • Developer
  • Hero Member
  • *****
  • Posts: 1001
    • View Profile
Re: Not Showing your Hand until it's too Late CONCEPT for Combat
« Reply #7 on: July 24, 2015, 02:41:50 PM »
Need to think about how combat would work.

you'd both be trying to position correctly and running away would be difficult because you can be cornered with a larger destruct range...
I think adding an unknown like this + adding regenerating ammo/armour , move then destruct - would be more fun and reduce a stalemate scenario.
This way - you are not plonking on top of someone, and knowing for sure if you are going to win or lose.

Something like that is definitely doable, although I agree with MM that it makes things a lot more complicated for non-power users.  There's no need for a user-selected passphrase, everything can be random (just like NAME_NEW).  You could actually store a hash commitment for each of the selected squares, and then only reveal one if you attack.  All of this adds some more data to the chain, though.
When you create a new character you enter the name and click a colour, pressing 4 squares i think is not really difficult.

That would work (name_new style), and yes understand the additional data in the chain.

Quote
Another problem I see is that this does not much to prevent the issue that someone can see the other's destruct in the mempool and quickly respond with a defending one (unless you are lucky and positioned such that your pattern hits the other but theirs does not hit you).  For this, you would need something like the discussed "invisibility" - where you commit the actual destruct in the chain already earlier, and reveal it later to prove that your opponent is actually dead already.  But that creates probably a lot more difficulties, makes the whole fighting system slower and confuses users.

I think maybe misunderstand a bit.

it doesn't matter if they see what you are doing on that block because it's too late (as per title). Your tx will not go in the chain for 99% of the time, 2 blocks.

the defending one could defend - but if it has a 25 block recast it can only be used once..

Anyway - again, just an idea - and can be modified to some other type of "ability" if this one is flawed in some way.
« Last Edit: July 24, 2015, 03:58:24 PM by Snailbrain »

Snailbrain

  • Developer
  • Hero Member
  • *****
  • Posts: 1001
    • View Profile
Re: Not Showing your Hand until it's too Late CONCEPT for Combat
« Reply #8 on: July 24, 2015, 03:59:03 PM »
edited last post - move then destruct would not work with this.

would have to be how it is now.. destruct processed first

Snailbrain

  • Developer
  • Hero Member
  • *****
  • Posts: 1001
    • View Profile
Re: Not Showing your Hand until it's too Late CONCEPT for Combat
« Reply #9 on: July 24, 2015, 04:40:00 PM »
Domob reminded me about setting traps as discussed some time ago - based on how invisibility would work.

Basically a bomb on the floor which you can detonate.

This has some issues i can think of at the moment..

1. When you place the bomb, there is probably going to be a funny transaction in the chain - which would give it away.

maybe solution : maybe place fake bombs that are not actually bombs

2. Players grouping and placing bombs everywhere on a direct patch

partly a solution - bombs have a timer and must be detonated within X blocks.

3. Never every getting near someone - the person chasing always loses or can never win..

--
just brain storming and not thought thoroughly..


wiggi

  • Global Moderator
  • Full Member
  • *****
  • Posts: 150
    • View Profile
Re: Not Showing your Hand until it's too Late CONCEPT for Combat
« Reply #10 on: July 24, 2015, 09:00:03 PM »

"Choosen squares" would prevent endless battles but the gameplay effect would be like a simple (and boring) dice throw.

The "stealth" technology would be very powerful. Basically you send the name update or part of it encrypted, plus the hash of the unencrypted version. And when you show your hand by sending the password, the correct hash of the resulting unencrypted version is proof there are no tricks like 2 versions that you could choose by sending different passwords?

And each encrypted part can be stored in the game state and not in the wallet, so it's always in Ram, and easier to implement (I think).


It's not really a save RNG (against block hash manipulated by miner) implementation because you have to be online to reveal the secret. (also means no Fog of War)  And the hidden players or objects can't interact with the game while hidden.



1. When you place the bomb, there is probably going to be a funny transaction in the chain - which would give it away.


Why? You just sent an encrypted name update. Unless placing traps is the *only* useful thing one can do with a stealth update, in this case it gives you away ;)


Snailbrain

  • Developer
  • Hero Member
  • *****
  • Posts: 1001
    • View Profile
Re: Not Showing your Hand until it's too Late CONCEPT for Combat
« Reply #11 on: July 25, 2015, 01:00:15 AM »

"Choosen squares" would prevent endless battles but the gameplay effect would be like a simple (and boring) dice throw.

The "stealth" technology would be very powerful. Basically you send the name update or part of it encrypted, plus the hash of the unencrypted version. And when you show your hand by sending the password, the correct hash of the resulting unencrypted version is proof there are no tricks like 2 versions that you could choose by sending different passwords?

And each encrypted part can be stored in the game state and not in the wallet, so it's always in Ram, and easier to implement (I think).


It's not really a save RNG (against block hash manipulated by miner) implementation because you have to be online to reveal the secret. (also means no Fog of War)  And the hidden players or objects can't interact with the game while hidden.



1. When you place the bomb, there is probably going to be a funny transaction in the chain - which would give it away.


Why? You just sent an encrypted name update. Unless placing traps is the *only* useful thing one can do with a stealth update, in this case it gives you away ;)

boring dice throw - i don't think so tbh - i suspect it will be similar to what is is now except more challanging, moving, aligning and trapping. If you get someone up against a wall it may be difficult for him depending on patterns (of which only you know). You could also fake that you are trying to align a certain pattern.

The way to imagine it, is 2 players in 1 v 1 .. both will be trying to avoid a 5x5 area apart from where their own pattern fits. If your hunter is within the area he could potentially die.
so basically, it's the same as it is now with risk and skill/fun aligning your pattern to hit them whilst trying to avoid being in the enemies "possible" destruct radius. Just try to avoid any 5x5 near an enemy unless your pattern lands -- but again, as 5x5 is a larger area (can even be bigger) - it's more complicated imo.

but i'm not convinced with the idea myself anyway atm :D

Quote
Why? You just sent an encrypted name update. Unless placing traps is the *only* useful thing one can do with a stealth update, in this case it gives you away

exactly - there would need to be other stuff.. if setting bombs was the only encrypted update you put in the chain then it would be pointless - hence possible solution - send fake "encrypted updates" (bombs).

--

I'm starting now to think about Invisibility itself - in a "shadow step" way :

e.g. as previously discussed

1. You can go into invis for 15 blocks.
2. You must reveal your "move" before 15 blocks or your player dies and coins dropped on the floor (at the place it went invisible of course). The coins may need to be taxed in someway like normal - although have not thought about this part yet.
3. Upon "decloaking" you destruct.
4. If you use invisibility - you cannot use it again for 60 blocks.

Invisibility could in fact JUST be for yellow colour. So it's easy to differentiate who can do it.
This would be their only sort of attack.

Some thoughts - would you only reveal your last move? so you can be anywhere you want after 15 blocks.. or would you submit an encrypted move while invisible as well as enabling invisibility.

If you submit only your final destination, then if you are going to miss your enemy, you could actually say that you are 15 squares away instead of 1 square a way..
so with invisibility it would be best if you could submit every move while invisible encrypted - so you can prove you was actually heading that direction,,

Invisibility should cost some fee.





wiggi

  • Global Moderator
  • Full Member
  • *****
  • Posts: 150
    • View Profile
Re: Not Showing your Hand until it's too Late CONCEPT for Combat
« Reply #12 on: July 27, 2015, 04:56:26 PM »
4. If you use invisibility - you cannot use it again for 60 blocks.



Some thoughts - would you only reveal your last move? so you can be anywhere you want after 15 blocks.. or would you submit an encrypted move while invisible as well as enabling invisibility.

With 60 blocks cooldown, every encrypted move is followed by an unencrypted move.

If invisible hunters are not also invulnerable the game has to keep a list of attacked tiles during the last 15 blocks. (in the most simple implementation all drawn life from invis hunters would go to the game fund)

If hunters are invulnerable while invisible I think it's difficult to balance. If they can uncloak+destruct in any of the next 15 blocks a group of these hunters would be lethal.

Snailbrain

  • Developer
  • Hero Member
  • *****
  • Posts: 1001
    • View Profile
Re: Not Showing your Hand until it's too Late CONCEPT for Combat
« Reply #13 on: July 27, 2015, 05:28:30 PM »
4. If you use invisibility - you cannot use it again for 60 blocks.



Some thoughts - would you only reveal your last move? so you can be anywhere you want after 15 blocks.. or would you submit an encrypted move while invisible as well as enabling invisibility.

With 60 blocks cooldown, every encrypted move is followed by an unencrypted move.

If invisible hunters are not also invulnerable the game has to keep a list of attacked tiles during the last 15 blocks. (in the most simple implementation all drawn life from invis hunters would go to the game fund)

If hunters are invulnerable while invisible I think it's difficult to balance. If they can uncloak+destruct in any of the next 15 blocks a group of these hunters would be lethal.

agree, a group of invisible assassins is going to be deadly.

tbh, i assumed they would be invulnerable until your wrote this.

It would be fun if when they decloaked the attacker finds out if they killed an invis hunter due to guessing where the hunter is based on trajectory and distance etc, An invis player could have a 1x1 radius to make it more difficult.

Also - they can maybe not move for 10 blocks after uncloaking - just an idea

Snailbrain

  • Developer
  • Hero Member
  • *****
  • Posts: 1001
    • View Profile
Re: Not Showing your Hand until it's too Late CONCEPT for Combat
« Reply #14 on: July 27, 2015, 05:44:57 PM »
4. If you use invisibility - you cannot use it again for 60 blocks.



Some thoughts - would you only reveal your last move? so you can be anywhere you want after 15 blocks.. or would you submit an encrypted move while invisible as well as enabling invisibility.

With 60 blocks cooldown, every encrypted move is followed by an unencrypted move.

If invisible hunters are not also invulnerable the game has to keep a list of attacked tiles during the last 15 blocks. (in the most simple implementation all drawn life from invis hunters would go to the game fund)

If hunters are invulnerable while invisible I think it's difficult to balance. If they can uncloak+destruct in any of the next 15 blocks a group of these hunters would be lethal.

agree, a group of invisible assassins is going to be deadly.

tbh, i assumed they would be invulnerable until your wrote this.

It would be fun if when they decloaked the attacker finds out if they killed an invis hunter due to guessing where the hunter is based on trajectory and distance etc, An invis player could have a 1x1 radius to make it more difficult.

Also - they can maybe not move for 10 blocks after uncloaking - just an idea

if an invis player was killed by a player, he may not submit his move at the end.. but if he doesn't submit his moves then he drops his coins or is frozen for 500 blocks.

is there a need for life from invis hunters to go to the game fund?