Hi HN, I played this game a lot in school over here in Ukraine and was surprised that there is almost no coverage [1] of it in English. So, I built this tiny website where one can read the rules and play the game online. There is also an optional game mode that is impossible IRL on paper (with the "fog of war").
The game is usually known as "virus wars", but I didn't feel like registering a domain name with the word "virus" in it, so Paper Tactics it is:)
We played this game a lot in the Urals during high school, but upon arriving in Moscow for higher education discovered that locals don’t know about it. Good memories. I implemented a version of it in MIDletPascal in my 10th grade.
Another popular modification was “rivers” which would drown any unit placed in the next turn, and also support for 3rd and 4th player, you just have to have enough pens of different colors :)
I would suggest listing players "looking for partners" somewhere so I can join their game instead of being specifically limited to finding someone with the exact same variants as me. I may be fine with, say, any number of neutral units, so I could be matched with anyone looking for 15%, 25% or 35% instead of having to guess which number will yield a match quicker
The bot is not very good, unfortunately. It's mainly useful to help understand the rules, as in your case. If you're interested in playing with an experienced player, ping me at nazar@vinnich.uk :)
> Which is the standard lenght of the turns?
The usual setup is a 10×10 grid with 3 moves per turn. More moves means more interesting manoevres are possible. I like 7 moves on 12×12.
> It's mainly useful to help understand the rules, as in your case.
I agree.
[spoiler alert]
I tried with 2 or 3 moves per turn. My strategy was to advace in diagonal to have a lot of space in tha back, and keep some distance from the oponent. When it advances, I wall the pieces. If it doesn't advance I fill my backshard space. With 2 or 3 it's humanly learnable in 10 minutes. I imagine that 7 moves would be much ore complex, but sadly I have no time now.
Perhaps you can progem the bot to advance more in the first few turns. (Assuming my strategy is good.)
Your strategy is definitely good — capturing territory to fill it later when advancing doesn't make sense is important. 7 moves are more complex, but much less so when playing against the bot.
Your suggestion about making the bot eager to advance makes sense, thanks. Hope you'll play a few times against a human opponent in the future:)
* Make a small pause as if the bot is thinking each move. Probably .1 or .2 seconds is enough and not boring. We made a few games a long time ago, and a small pause makes it easier to understand the rules.
* When the game finished, I still can see my token as if I can draw it. It's very confusing until I notice the congratulations message. Don't show the token whe the game ended.
Monte Carlo tree search is another “easy” way to build a decent AI for a game. I love it because you simply define the rules of the game in a purely functional way, and it does the rest.
I was wondering about the architecture because I want to be able to make little games like this, so I'm super happy to see the source here, thanks for posting it! And looks like you put a lot of thought into the architecture too, going to study it.
I'd say the bot is very weak. My first game I had no real idea what I was doing. Half the game I thought I had to maintain contact with my starting square or lose, until I managed to wall in my opponents starting square and didn't win. Then I tried to make as many walls as I could because I didnt like my pieces being captured and walls seemed more solid. Suddenly it said I won and I was like wait how, turns out I had managed to turn every circle into a wall except the walled in starting square.
Yes, very weak is probably a better description. I haven't learnt the theory behind AI opponents properly yet, so this bot is essentially a weighted random choice.
My guess is that for 1, 2 or 3 moves per turn it's possible to make a bot that looks ahead 2 or 3 rounds using brute force and then use AB pruning to pick the best move.
With 7 moves per turn the search space is too big and it looks difficult.
I tried a few games with neutral pieces, and it' move difficult to beat the bot.
A game like this with a million variations is almost immediately uninteresting. It makes it seem like the rules / strategy aren't fully formed and doesn't feel like something worth learning. The implementation is great though.
Unfortunately the bot is not very good. Just by reading the rules I was able to beat it every time on multiple rulesets.
The matchmaking is also difficult to find a partner since the rules are so customizable, and there's no way to tell what rules potential partners could be searching with. Maybe a list of games that are looking for an opponent would be good.
I just read the first paragraph and then decided I wanted to play and I still beat the bot first try. At least that means the game rules are fairly discoverable :)
I didn't understand the rules until most of the way through the game and I still won against the bot. I'm not clear if its really doing anything better than playing randomly based on that.
Yeah, the bot is good for learning, but after a few games it becomes easy to just go after it directly, kill the Os which connect the walls and win easily.
I think this is very similar to one of the games that I played growing up. I'm from a remote corner of India and everyone there knows how to play (school, family gatherings, etc). I tried teaching my kids but they find it too boring and mundane.
Well this is very addictive, thank you for sharing.
If you're looking for feature requests then the ability to view move history (especially after the game is over) and the ability to share completed games would be nice. I see a game ID but it's not clear to me I can do anything with it.
Good suggestions, thanks! The only purpose of the ID for now is to allow people to verify that they are matched by checking that the IDs are equal on both sides.
Being second is beneficial at the end of the game — the first player will run out of the legal moves quicker, all other things being equal. I'm not sure it completely balances out the first player advantage, though.
The rules of the game are itself like a virus. Looks like everyone here played a slightly different variant. It mutated wildly across space and time.
After I learned two different rule sets from two different sources, I went on and invented my own version. It became an instant hit in our class for many years to come.
Basically:
1. the map is randomized, with some "islands" randomly drawn, separating the map into "land" and "water"; map size is the whole A5 sheet, which is around 30x40 I think
2. player has 10 moves per turn, moving on "water" cells counts as 2 moves
3. the objective is not to kill everything, but only the enemy starting unit ("the mothership")
4. we even added FFA multiplayer later, where each eliminated opponent nets you +2 moves per turn for the rest of the game, to promote aggression. The diplomacy was intense at times, with "vassal states" and coalitions formed against stronger players.
We did play on an A5 as well! We called the variant "the Lord of the Rings", it was two players that played humans and elves versus one who played orcs. Only humans were allowed to move diagonally, elves could place walls over an empty space, and the orc player had more moves per turn and two bases.
When I was in school, for some reason I had an enormous amount of free time in class where I’d be sitting there quietly with just a pencil and paper to kill time. I’d invent strategy games to play against myself, or draw out a go board (it was a pain to erase captured stones!). Better than the alternative of seeing how long I could hold my breath. I wish I had known about this game, it’s perfect for pencil and paper!
Also "unknown in Europe" then explains the game is played in Ukraine... I understand some level of clickbait is needed to catch attention but that straight up lying here. I expected a game from Asia, Africa or South America.
I'm sorry, it's not intentional. When Ukrainians refer to Europe, they almost always mean the EU. We need some mental shift to consistently include ourselves when talking about Europe.
Altough I am from the Netherlands and people here do this too (everything east of Germany is not Europe...), it always bothered me we call Eastern Europe eastern! The eastern third of Europe is Russia! Ukraine and the rest of 'eastern' Europe are really central Europe. AFAIK the Poles do this correctly consistently.
I don't get it. What is the purpose of a "wall" unit? If you just want to fill up a grid, why do you need more than one kind of unit? Is the wall just decorative? It doesn't seem to affect anything at all.
a wall can't be destroyed but can attack like a unit, but it must have reinforcements from another unit behind your lines. So the strategy is to prevent your enemies from being able to make walls by placing your units strategically, and if they do make walls to interrupt their supply lines so they can't attack anymore.
87 comments
[ 0.19 ms ] story [ 33.4 ms ] threadThe game is usually known as "virus wars", but I didn't feel like registering a domain name with the word "virus" in it, so Paper Tactics it is:)
[1] https://www.iggamecenter.com/en/rules/viruswars is the only English source I know, there is also a Wikipedia article in German: https://de.wikipedia.org/wiki/Kampf_der_Viren
We played this game a lot in the Urals during high school, but upon arriving in Moscow for higher education discovered that locals don’t know about it. Good memories. I implemented a version of it in MIDletPascal in my 10th grade.
Another popular modification was “rivers” which would drown any unit placed in the next turn, and also support for 3rd and 4th player, you just have to have enough pens of different colors :)
Anyway was fun to learn thx OP :).
It's strange that you can make a few moves in each turn. With 1 move the strategy is too easy. Which is the standard lenght of the turns?
> Which is the standard lenght of the turns?
The usual setup is a 10×10 grid with 3 moves per turn. More moves means more interesting manoevres are possible. I like 7 moves on 12×12.
I agree.
[spoiler alert]
I tried with 2 or 3 moves per turn. My strategy was to advace in diagonal to have a lot of space in tha back, and keep some distance from the oponent. When it advances, I wall the pieces. If it doesn't advance I fill my backshard space. With 2 or 3 it's humanly learnable in 10 minutes. I imagine that 7 moves would be much ore complex, but sadly I have no time now.
Perhaps you can progem the bot to advance more in the first few turns. (Assuming my strategy is good.)
Your suggestion about making the bot eager to advance makes sense, thanks. Hope you'll play a few times against a human opponent in the future:)
* Make a small pause as if the bot is thinking each move. Probably .1 or .2 seconds is enough and not boring. We made a few games a long time ago, and a small pause makes it easier to understand the rules.
* When the game finished, I still can see my token as if I can draw it. It's very confusing until I notice the congratulations message. Don't show the token whe the game ended.
It seems like there's an evaluation function but there's no state search / recursive minimax tree for the bot.
I think if we added a 10-ply lookahead minimax algo for the bot here it would be pretty good. [1]
I will probably do it myself if I end up having a bit of free time this weekend.
[1] https://en.wikipedia.org/wiki/Minimax#Minimax_algorithm_with...
https://en.m.wikipedia.org/wiki/Monte_Carlo_tree_search
With 7 moves per turn the search space is too big and it looks difficult.
I tried a few games with neutral pieces, and it' move difficult to beat the bot.
Some of the more common ones:
- Played seriously: https://en.wikipedia.org/wiki/Fischer_random_chess
- Played socially: https://en.wikipedia.org/wiki/Bughouse_chess
- Played non-seriously: https://en.wikipedia.org/wiki/Losing_chess
https://www.pagat.com/rummy/buraco.html
Nikoli (the company that is credited to the rise of Sudoku!) has a lot of pen and paper games. Check it out.
https://www.nikoli.co.jp/en/
The matchmaking is also difficult to find a partner since the rules are so customizable, and there's no way to tell what rules potential partners could be searching with. Maybe a list of games that are looking for an opponent would be good.
If you're looking for feature requests then the ability to view move history (especially after the game is over) and the ability to share completed games would be nice. I see a game ID but it's not clear to me I can do anything with it.
Draw a grid of dots on some blank paper. Your X, your friend is O.
Start by drawing a line between two adjacent dots, no diagonals (this is a wall). Take it in turns to draw a line between two adjacent dots.
If you draw a line that closes a square (or two!)(the smallest possible square), claim the closed square/s by writing a X inside the claimed square.
Game ends when nothing more to draw, count up your symbols for the winner.
After I learned two different rule sets from two different sources, I went on and invented my own version. It became an instant hit in our class for many years to come.
Basically:
1. the map is randomized, with some "islands" randomly drawn, separating the map into "land" and "water"; map size is the whole A5 sheet, which is around 30x40 I think
2. player has 10 moves per turn, moving on "water" cells counts as 2 moves
3. the objective is not to kill everything, but only the enemy starting unit ("the mothership")
4. we even added FFA multiplayer later, where each eliminated opponent nets you +2 moves per turn for the rest of the game, to promote aggression. The diplomacy was intense at times, with "vassal states" and coalitions formed against stronger players.
Oh the memories.
I'm sure there's some kind of interactive demo or something, but do the rules themselves need JS?
I'm from Europe and this game is totally known. I had a university project to program one in C. The bot especially was fun to implement.
I see what you did there!
Never played before buts it's interesting.