Fair is Fun: A look at the Gods Unchained API with an eye toward more balanced Battlepass quests.

in Gods On Chain6 months ago (edited)

In my last Gods Unchained post about the Season 2 Battlepass I discussed being a little underwhelmed by the quest designs. So I thought I'd take a look at a few of the existing quests and see how they could be re-jigged to be a little bit more fun and a whole lot more fair, and come up with some new ideas based on the raw match data that is publicly accessible from the GU API.

In my mind, a quest that excludes one or two decks is fine, but a quest that only be accomplished by one or two decks is just going to hurt for 90% of the people out there. The good news is that with a few tweaks I think we can make these accessible for a whole lot more players while still retaining the challenge of adapting your deck or playstyle on a per-quest basis.

image.pngSource: Kling AI

What is a Match?

Here's a pared down example of a match return (for the sake of brevity I've ommitted things like start/end time and match id):

{
  "player_won": 1111111,
  "player_lost": 22222222,
  "game_mode": 7,
  "player_info": [
    {
      "god": "magic",
      "cards": [2938, 2497, 2955, 2952, 2442, 896, 2505, 909, 2432, 1156,
                831, 2825, 2498, 2442, 1042, 1043, 1100, 1111, 1161, 1167,
                1172, 1186, 1206, 1235, 1245, 1294, 1757, 1771, 2458, 2828],
      "health": 30,
      "status": "connected",
      "user_id": 1111111,
      "god_power": 100127
    },
    {
      "god": "light",
      "cards": [2401, 824, 2927, 885, 913, 2410, 2537, 2826, 916, 2805,
                2838, 2911, 1064, 1120, 1121, 1188, 1191, 1195, 1201, 1224,
                1226, 1234, 1254, 1277, 1282, 1291, 1292, 1292, 1295, 1751],
      "health": 8,
      "status": "conceded",
      "user_id": 2222222,
      "god_power": 100117
    }
  ],
  "total_turns": 22,
  "total_rounds": 11
}



So what have we got here?

Information about the match...

  • Winning and Losing player ID
  • Game Mode (7 is Sealed, 13 is Ranked)
  • Total Turns and Rounds

...and information about each player.

  • God and God Power
  • Connected/Disconnected/Conceded Status
  • Health at Game End
  • Cards in Deck

Now that we know what we're working with, we can sit down and determine what we can and can't do. Of course just because you can do something, doesn't mean you have to -- we'll just have to use common sense and lean toward missions that are more accessible, and that can be accomplished with multiple decks.

Health and Turn Count

Right away we can see there's some unused design space available to us, particularly in regards to Turn Count and Health which are as yet virgin territory.

Some obvious low hanging fruit there:

Win a match with 8 or less health remaining

Win three matches with 25 or more health remaining

Win a match before Round 6

Win three matches before Round 7

All of these are doable with multiple decks, and while some of these may be impossible for a specific deck, none can be won only by a specific deck. Fun, fair, and very easily achievable with a minimum of programming effort. And hey, not everything has to be about winning, we could modify that first one:

Complete a match where both gods have 8 or less health remaining.

Even if you lost, at least you gave almost as good as you got! That's gotta be worth something, right?

Gods and God Pairings

We have quests to play with 3 or 6 unique gods, and we have quests for using either one of two specific gods. I actually don't mind the 'one or the other' style ones, at the very least they're divided up such that best Sealed mode god powers are spread across them. The win with 6 unique gods though is just silly. Very few people are going to be capable of that without tanking their ranking.

You know what everyone is capable of?

Win a match against 3 unique gods

Win a match against 6 unique gods

All of a sudden we've turned something that was either impossible or a slog, to something that (at least on paper) looks fun and exciting. Of course, there's an element of chance to meeting all 6 Gods, but when you finally land a match against number 5 or 6 on your list it's suddenly a high stakes affair. And that's a very good thing.

Tribes

This one is an incredibly easy fix. Take

Win two games with 15+ vikings in your deck
Win two games with 15+ dragons in your deck
Win two games with 15+ amazons in your deck
Win two games with 15+ atlanteans in your deck
Win two games with 15+ olympians in your deck

and make one good one!

Win two games with 13+ creatures from a single tribe in your deck

Bang! Now everyone can play. It's still going to be a bit of a challenge, but we've just eliminated a whole slew of 'always skip' quests for each player. Plus for good measure we can easily throw in something like

Win two games with creatures from at least 5 different tribes in your deck

Easy peasy! Winner winner, chimichanga dinner!

What is a Card?

Since we're obviously already scanning through the players deck for these tribes, lets take a quick peek at a card and see what other fun options we have:

     {
      "id": 2465,
      "name": "Jawbone Scuttler",
      "effect": "Afterlife: Deal 2 damage to a random enemy character.",
      "god": "nature",
      "rarity": "common",
      "tribe": {
       "String": "wild",
      },
      "mana": 2,
      "attack": {
       "Int64": 3,
      },
      "health": {
       "Int64": 2,
      },
      "type": "creature",
      "set": "tides",
     },



We have our God, we have our Tribe, Mana/Health/Attack. We have rarity, type and set. We've seen a lot of these used, but IMHO they have skewed way too heavily towards the impossible for too many.

I think they've mostly done okay here, but there's a bit of fun to be had still:

Win x games with no Epic or Legendary cards in your deck

Win x games with no Neutral cards in your deck

Win x games with no 1 or 2 mana cards in your deck

Win a game with at least 10 cards each from two different sets

Most of those look pretty decent, although for me in particular, I would always re-roll the 1/2 Mana one -- but that's okay! Each player is meant to have a few they want to re-roll every time, the point is that there should be more that are worth playing than not.

Honestly, I'll just be happy if they fix the tribes thing. So GU if you're reading this, you know what to do!

If you don't know what to do, the answer is probably: Get in touch with me, and offer me a hefty sum of $GODS to redesign the system and recommend/identify other UI/UX issues before they get pushed to prod!

Sort:  


The rewards earned on this comment will go directly to the people( @coderad ) sharing the post on Reddit as long as they are registered with @poshtoken. Sign up at https://hiveposh.com. Otherwise, rewards go to the author of the blog post.

Really good ideas!

Hey, could you perhaps add some API requests as an example that other people could play with?

sure, the biggest thing is that every single call needs a time range:

https://api.godsunchained.com/v0/match?&end_time=1743775963-1743835163

that will give you every match that ended between those two times for every player in every mode. if you don't put a time range it will just give you a 'too many pages' error.

if you just wanted to look at your own matches you could do something like this:

https://api.godsunchained.com/v0/match?&end_time=1743775581-1744034781&player_won=1111111
https://api.godsunchained.com/v0/match?&end_time=1743775581-1744034781&player_lost=1111111

or just your own sealed wins

https://api.godsunchained.com/v0/match?&end_time=1743775581-1744034781&player_won=1111111&game_mode=7

swap in your own apollo_id for 11111111 obvs, and the timecode is in unix epoch time. i like https://www.epochconverter.com/ for generating times on the rare occasion i need to do it manually.

Great, thanks for this!
!PIZZA

If you don't know what to do, the answer is probably: Get in touch with me, and offer me a hefty sum of $GODS to redesign the system and recommend/identify other UI/UX issues before they get pushed to prod!

I am so glad you added this, this is the best part (^_^)

Congratulations @coderad! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

You received more than 1500 upvotes.
Your next target is to reach 1750 upvotes.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out our last posts:

Our Hive Power Delegations to the March PUM Winners
Feedback from the April Hive Power Up Day
Hive Power Up Month Challenge - March 2025 Winners List

PIZZA!

$PIZZA slices delivered:
agrante tipped coderad
@cryptoniusrex(2/20) tipped @coderad

Moon is coming

Excellent post that really highlight the UI/API issues and thoughts therein in a very easy to digest way for the community to process. Well done. Take my meagre upvote and some !PIZZA