Skip to content

Fullcount Devlog #3: The Bot Campaign

Fullcount Devlog

We’re heading into a busy month for Fullcount, as we finish and test the final features that will be part of the Nova League launch in March. The team is working around the clock on art, styling, and some major quality of life updates that we can’t wait to share. One of the most exciting features we are testing this week is Fullcount’s new single-player campaign mode.

Campaign Mode

Those of you who played the earliest version of Fullcount might be surprised to hear me mention a campaign mode, and especially a single-player campaign. There are two great reasons to be surprised:

  1. The essence of Fullcount is the strategic mind game at the heart of the PvP, batter-versus-pitcher showdown. 
  2. Fullcount is permissionless. (More on this below.) 

While both of those things remain true, there are compelling reasons to offer single-player campaigns. For one thing, not everyone enjoys competitive PvP. For another, the campaign mode offers a clearer skill progression than PvP, and makes it easy for players to measure their progress in the game. Most importantly, though, for the early days of Fullcount, the single-player campaigns ensure that players will always find an opponent online, whenever–and in whatever time zone–they want to play.


How are we going to make sure that there’s always a match-up available? The answer is bots–more specifically, the Fullcount BaseBots. The BaseBots are a series of rival teams that Fullcount players must defeat to rise to the top of the league and unlock the campaign’s boss, an enjoyably hateable, devilishly difficult final adversary. When a BaseBot finishes playing an at bat against a human opponent, it immediately opens a new one that any player can join. In addition, we can deploy multiple copies of each bot, so that multiple human players can play through the campaign simultaneously. In this way, the BaseBots help us to solve the cold start problem common to multiplayer games by proving an ever-available rival, similar to the player vs. computer games on

 A screenshot from the game showing a BaseBot (a woman in a baseball cap and a jacket with a heatmap revealing that she only pitches to three squares on the strikezone grid) plays against a regular Beer League Baller (an image of a young man in a white shirt and cap).

Where will the bot throw next? Her heat map reveals a pattern.

Unlike human rivals, the BaseBots have predictable patterns to their play, though those patterns are not always easy to identify. Players use the bots’ heatmaps to figure out their playstyles and defeat them one by one, starting with the easiest, lowest ranking team and working their way up to dethrone the current champs. 

The BaseBots’ progression was inspired by the team’s childhood memories of Mike Tyson’s Punch-Out!!, the 1980s NES boxing game. In Punch-Out!!, players fight their way up from the Minor Circuit to the Major Circuit and then the World Circuit of professional boxing, winning championship bouts at each level until they qualify to face off against the final boss. The early opponents, like Glass Joe, make weak and simple attacks, but later fighters hit harder, strike faster, and are trickier to dodge. Similarly, in Fullcount’s campaign mode, players first face the lowest ranked teams in the league, fellow underdogs like the Ragged Rock Ringers, whose pitching is predictable, and whose hitters always aim for the same few spots in the strike zone. As they progress, though, the patterns of pitches and swings grow more complex and take longer to work out. Just try hitting a home run off the aptly named Mudville Mayhem, for example! 

But wait, you might be thinking. Aren’t bots the bane of web3 games? The role of bots in blockchain gaming is certainly complex. Our general position is that web3 games should treat bots as first-class citizens–not only are they ubiquitous and unavoidable, but they can also be extremely useful. (But that’s a topic deserving of a post of its own.) In the case of Fullcount, our bots will enrich the gameplay, serve as an introduction to the game’s strategy and features, and make sure opponents are readily available as our  number of human players grows. 

Fullcount’s BaseBots will always be clearly identified as bots. You choose whether or not to play a campaign, and you always know whether you are playing a human or a bot. (Well, one of our bots, anyway–the Fullcount team makes no guarantees about Cylons, Replicants, and other rogue AI. We’re only human, after all. Probably.)

You might recall that these aren’t actually the first bots to show up in Fullcount. In late November we debuted hitting and pitching coach bots, with a similar aim of making sure there was always someone online to play with. The coach bots, however, made their moves at random. They were okay for players just learning the game, and they were handy for us for playtesting, but they lacked the strategic depth the newest bot NPCs bring to Fullcount’s campaigns.

A Permissionless Single-Player Campaign?

Let me return, in closing, to the topic of Fullcount as a permissionless game (that is, a game that all users, including its creators, interact with on equal footing, with no party controlling access to the game contract). It is unusual for a permissionless game to have a single-player campaign mode, as presenting one usually requires the developers to act from a position of privilege in relation to the smart contract, having some surplus of access or control in relation to the players. 

In the case of Fullcount, however, we have managed to bootstrap our own permissionless game without sacrificing its permissionlessness. The BaseBot contract does not impinge on the functioning of the Fullcount contract. Players can play Fullcount with or without interacting with the BaseBots. Furthermore, once the bot contract is deployed, Moonstream has no control over players’ interaction with the bots. We are adding the campaign mode because we are invested in the game’s success, but we are not doing so from a privileged position. In fact, we have deliberately designed Fullcount to be extensible: anyone–not only Moonstream–can build on top of the game’s contract. In this sense, we believe that Fullcount exemplifies the possibilities that decentralized and permissionless gaming offers to all players and content creators. 


That’s all for this week! We’ll have more news in the next devlog, on February 12th. Meanwhile, the BaseBots are warming up and getting ready to face you when the Nova League launches on March 1. I hope you’re warming up, too! There’s a special achievement waiting for the first player to take down the BaseBots series one boss.