I guess I should announce the Godot Card Game Framework here too, huh?

I don’t know why ,but I haven’t gotten around to posting about this on my blog. Anyway, in case you haven’t noticed, in the past 2 months I’ve been heavily working on a little something called the Godot Card Game Framework.

Read the link to see what it is, but if you are interested to know how that happened, here’s a recap:

After dropping out of OCTGN game development after Doomtown:Reloaded got cancelled by AEG in 2016 ((I dropped out mostly due to burnout and dissatisfaction with the limitations of OCTGN if you want to know)) I was itching to start something to call my own. Especially since I felt all the knowledge I amassed with 5 years of coding card games in python was going to waste. Unfortunately the only programming language with which I really feel comfortable is Python, and PyGame…well let’s just say it leaves a lot to be desired.

Around early 2019, I was almost ready to try learning C# to start learning Unity, but by choice of luck, I happened to search for “Unity using Python” and one of the first results was Godot! And it was perfect! Features to compete with Unity, Lightweight, Free Software and best of all, Python-like syntax! It was as it was made with me in-mind!

After going through the documentation and tutorials I jumped in and started developing a hex-card game hybrid, but I was putting too much effort trying to make things work perfectly and not enough work making an actual game. Also my code was shite since I just did not have enough experience with Godot.

I took a break from that and decided to try and contribute to the Wesnoth Godot port which was fairly new at that point as well. I felt working with more experienced developers would give me some guidance and better coding practices. I did provide some pull requests mostly around documentation (since the whole codebase was utterly undocumented) and some refactoring to remove some “spaghetti”, and then went on a hiatus from development due to life stuff. And when I came back roughly 1 year later, I found out all my comments and contributions had been wiped clean as they refactored the whole thing from scratch and didn’t even bother to keep comments around.

Needless to say, I felt disheartened from that and was in no particular mood to contribute further.

At the same time, I had since started more actively lurking in the Godot subreddit and noticed that quite often, people would post about their progress ((Example post)) with a card-based game they were designing and a ton of people would ask for some source code or other guidance, usually to little to no response.

I even was sometimes one of those people asking for advice, and I know how overwhelming it can be to want to create a game but having no idea where to start.

So I just decided that people need to stop reinventing the wheel, and to that end, I would make something to fill that need information on making a card game with Godot. I had the experience on what a fully automated card game needs, so I might as well use it, gawddamnit!

And If I’m going to do it, I’m also going to do it my way: Extremely perfectionistic! So this means tons of documentation and unit tests. Hell, I even sent PRs to make gdscript docs maker work for my purposes, something which has saved move countless hours of wiki editing.

Progress has been fairly fast since. I didn’t expect I would progress from this to this in less than 2 months! I even have some people sending pull requests which is awesome to see!

And that’s where we are now. I’ve just released v1.4 of the Framework and surprisingly even to myself, I show no indication of slowing down. I have instead started making my first actual game using my own framework, which most of the time just sends me back to add improvements to the framework itself to make it capable of doing what I need.

If you like what I’m doing, I will appreciate all words of support, new issues or feature requests and best of all, pull requests! 😄 ((Just make sure you read the contribution guide))

And if you want to chat further, feel free to hit me on Discord.

So I started making a game

Oof, update frequency here has decreased dramatically hasn’t it? Oh well, I blame the new social media taking over how we consume updates. Also, I haven’t felt the urge to keep waxing politically lately as most I can think off in that regard are rants and nihilism.

Nevertheless, I do have something new I’m doing, which is that I started using The Godot Engine to finally create The Game I Always Wanted To Play But Nobody Would Make (TM).

Initially I was looking at using pygame since Python is the only language I feel comfortable enough to use for something as complex as that, but my first foray into documentation and examples was a complete disaster. Most the code samples in the pygame repository I tried, led to dead links and the documentation was difficult to get into.

I then left things simmer for a while until I run into Solar Settlers which is surprisingly similar to the concept I have in my head and that kickstarted my drive to continue development as it showed I could do a very minimalist game and still achieve the gameplay I wanted. I checked with the author who pointed me to Unity, which unfortunately does not support python. Howevever I was lucky enough that one of my searches on using python with Unity brought me to Godot and it was “love at first sight”.

You see, Godot is like Unity, but, very importantly, using an Open Source licence (MIT) and its scripting engine, while not python, uses exactly the same syntax and has lot of the same methods. This should theoretically allow me to get a much better running start than having to also learn C# to work with Unity.

So I’ve started doing this on my free time lately, following the great step-by-step tutorials to get me into how Godot handles things, and past few days I’ve started creating a basic setup for me to test and iterate the game rules, without having to use Pen&Paper.

And the speed by which I’m able to do things now has been amazing! I got me a hex map, and a card-drawing mechanism already! It may look like absolute shite, but it’s there 🙂

Things really do feel overwhelming when starting something like this from scratch. I have almost no idea what the hell I’m doing most of the time and I just keep hacking at it until things eventually work. It would be even worse if I at least didn’t have python knowledge already. Hopefully my motivation will last longer than my patience 😀

Also, if anyone wants to help me implement this hex guide into Godot (because I have no idea how to connect the two), lemme know. I could use all the help I can get!

Stellaris now allows Megacorporations, so I brought in some familiar faces

In case you don’t know, Stellaris is a 4X / Grand Strategy videogame. Yesterday the latest expansion came out, which introduced, among a complete redesign of the game, Megacorporations.

So I couldn’t resist to create the leaders of industry from the Android Universe, as I faced or represented them often enough in Android:Netrunner.

What do you think?

NBN – Led by our lord and saviour

Haas-Bioroid Unfortunately I cannot create a Machine Megacorp Empire 🙁

Jinteki – The Clones have finally taken over.

Weyland Consortium – You’ll trade whether you want to, or not!

Can Overwatch one-trick drama be a good simulation of microaggressions for privileged people?

Yet another Overwatch flamewar is ongoing about the classic question of whether someone “one tricking” a hero ((This is the practice of only choosing that hero, regardless of map or opposing heroes)) in competitive should be a bannable offense or not. As always the “ban them” camp has the loudest or more numerous voices, even though the Overwatch design team has publicly stated that they disagree with this approach. This latest drama round was only started because an ex-Blizzard/Overwatch employee has publicly stated the opposite. Check the thread sorted by “controversial comments” to witness some nerdrage if that’s your thing today.

However as someone who habitually plays primarily “off-meta” characters ((This means characters which the “competitive scene” is not using, and as a result the  majority of OW players take to mean they are weak choices)) who’s spent significant time improving my skills with them, I’ve been often lumped into the “one-trick” corner by raging team-mates. In fact, playing off-meta characters is a more likely indicator that your team-mates will turn against you, rather than one-tricking as a practice, since if you’re tricking an in-meta characters, nobody bats an eyelid; but I digress.

What I want to suggest is that the experience of someone who plays off-meta/one-tricks in OW is going to be like a very very mild experience of microaggressions that marginalized people experience regularly. What tends to happen to people who make such choices in competitive play, is that there is a constant level of hostility and bothering that other players just don’t experience. From the mild, such as someone asking you very politely to switch your choice at the start of the game, to the overly hostile, such as someone flaming at you, or deliberately throwing the game to spite you.

On their own, each of these might not be an issue at all, or just a hilarious occurrence, respectively. Howevever where these situations start to approach the microaggression territory is when one experiences some form of them in almost every game they try to play. If in almost every game you play someone politely or aggressively tries to make you switch characters at some point in the match, then at some point even the most polite phrasing is not going to help the effect they have on your psychology.

While there are other games with hero choices, Overwatch is uniquely positioned to act as a “microaggression simulator” due to its mechanics which support a constant change of each team’s roster. Other games might have “off-meta” characters, but often due to the locked-in nature of each once the game starts, people tend to not rage on this issue that much. However in OW, people will keep annoying the off-meta choices for this exact purpose, with the comments often escalating in vitriol when the game is going bad and the off-meta player refuses to switch.

Now, reminder that I don’t think they are anywhere on the level of microaggressions a marginalized person receives, but they are a really good way for someone who otherwise would have too much privilege to even understand what a microaggression even is, to get a mild sampling themselves. Perhaps is might be something on which an understanding and respect for actual microaggressions might be built?

You might be a Torbjörn main if…

Inspired by this reddit post, I decided to compile my own list 🙂

  • You know that in a pinch, an ult without a turret can help you level it out faster.
  • You know that when doing the above, you stand in front of the turret.
  • You know that the turret needs to be as far away from combat as possible. It has long range and never misses.
  • You know all the good spots on maps for a turret to shoot far without allowing enemy snipers to hit it.
  • You always save 50 scrap for yourself, to help for a getaway from a flanker.
  • You know that against pharahs, using the shotgun at long range is more useful when you have the turret helping.
  • You find it cute when D.Vas or Winstons think they can just jump in and destroy your turret just like that.
  • You know to pull our yer hammer when an enemy Reinhart hides behind his shield during an ult.
  • You know that actually attack on payload maps is really good for Torbjorn. Especially if you’re facing a defensive Lucio.
  • You hate attacking on 2 CP or hybrid maps.
  • You’re ALWAYS the scapegoat.
  • You always get a card. You never get a vote.
  • Gold in Hero Damage. Gold in Objective Kills. Gold in Eliminations. Asked to switch first.
  • You’ve had people apologise to you multiple times.
  • You love pairing with Symmetra on CP defence.
  • You know that heroes with shield get the armor pack first.
  • You cry a little inside when your tanks pick up the armor before your supports.
  • You’ve found yourself shouting at the mic “Pick up the damn armour!”
  • You hate attacking bastions on payload maps.
  • You use baby turrets as extra 150 HP per 6 seconds when necessary.
  • You regularly ask people not to babysit your turret.
  • You know you’re doing a good job when the enemy team switches to full anti-torb heroes.
  • You know that turret placement when you have ult and when you don’t have ult, is different.
  • You always keep riveting a corner a DPS or support fled into, for about 3 seconds.
  • You know you need to reposition your turret after every 2nd push. Even if it wasn’t destroyed. Especially when facing D.Va.
  • You never try to level up a turret during a team fight.
  • You got a golden weapon and you know which is the the only victory pose which displays it.

And here’s some that I liked but didn’t write since they were already posted in the above thread 🙂

  • You know the exact number of swings it takes to setup a level 2 turret.
  • You wonder why you aren’t classified as a sniper.
  • You wonder why you aren’t classified as a healer.
  • You know that “Defense Character” is more of guideline than a rule.
  • You can hit a friendly Genji with an armor pack from 40 meters off.
  • Leveling off your sights means a 45 degree angle, not because your shots fall, but because that’s where the heads are.
  • The enemy team is reduced to ulting your turret because they cant get in otherwise.
  • You get accused of being AFK after out-sniping the enemy widow 3 times.
  • You can make a chicken out of a feather.
  • You have to leave voice chat in competitive because your team mates are screaming at you.
  • Your ping is over 300ms (And you still team kill) ((Speaking from recent experience. This is too true))

Out of ammo

As you may have heard by now, Doomtown:Reloaded is being discontinued. As part of the design team for the past 3 years, it’s been a rough but wonderful ride and I’m really proud of what we’ve achieved in terms of balance and gameplay.

Unfortunately the writing was on the wall at this point as event attendance had slumped, and online activity was barely existent. Even with some of the best tools available for a card game, in the form of DoomtownDB and OCTGN for online gameplay – things that are not given for most card games – it seemed like we were struggling to retain people’s interest. Of course I’m speaking only as an observer since I don’t really have an insight into sales records of any sort, but it felt to me that the past 6 months were more anemic than is healthy.

So while sad, I can’t say I’m horribly surprised by this turn of events. Nevertheless, the upcoming expansions are some of the best we’ve put out until now, and the final Pine Box’s new homes will open a lot more avenues for gameplay as well.

I plan to write a “post-mortem” from my perspective on Doomtown:Reloaded, so keep an eye out if you’re interested.

Quote of the day: “Are we the baddies?”

As the nonsense plods on with more and more geek idols speaking out against it, some of the people still delusively supporting it are starting to have increasing cognitive dissonance ((not sure if this applies perfectly here but whatever)):

I’ve been recommending them to my friends for years. I really expected more from them, but it’s just another hero to add to the list. Movie bob, adam sessler, Jim sterling, Tim Schafer, joss whedon, and now extra credits, basically all of my nerd heroes hate me now.

Yes, it’s quite surprising isn’t it? Could it be time for some heavy introspection maybe? Naaaah…

Dear Totalbiscuit…

Dear Totalbiscuit, we just had a small chat in twitter when I took exception to your claim that Tone Policing is “made up”. This was all in response to your lengthy blogpost on the recent brouhaha in the gaming sphere, first started with the Zoe Quinn “scandal” ands latter inflamed by Anita Sarkeesian daring to post another Tropes VS Women in Gaming video.

Once I provided one of your followers an accessible link to explaining what Tone Policing is from the geek feminism wiki, you decided to directly challenge me to provide “academic evidence” that Tone Arguments are actually a thing. Eventually you declared that you would only engage me further if I discussed your blogpost itself in a length counter-argument, which given your status as an internet celebrity and mine as a virtual nobody, was intimidating to say the least.

So I’m going to use this opportunity and attempt to do exactly that. Even though I’m not the most knowledgeable on the subject and in fact I feel woefully inadequate to fully express the issues as those actually oppressed. Only I’m not going to talk about Tone Arguments. Because you see, while your blog has some issues with gross false equivalence and many aspects of tone policing, the biggest flaws in it lie elsewhere.

They lie in intellectual laziness and the arrogance by which you wield it. So let’s talk about two-player games.

By far the biggest issue I have with your blogpost is how little research you did before you wrote it. In fact that seems to be a chronic problem with your approach to sensitive issues that have been affecting the industry you’re part of. Reading your original foray into these issues, it was obvious you were caught proudly unaware, but rather than do due diligence and explore what is the issue, you had your followers feed you the info they felt you needed to know, and then you wrote about that. As a result, in the midst of one of the most massive and brutal campaigns of harassment against a woman and feminist allies, the best you could find to talk about was corruption in games journalism and an alleged DMCA violation. Talk about having perspective!

And then today, came your secondary opinion piece on this issue, in which you start talking about some nebulous MRAs and SJWs who might or might not be caricatures and they’re really surely just as bad as each other. You promote “non-extremism” without explaining what exactly it is. You’re talking about “your perspective” on what bro-gamers probably think, about what feminists think. You assume and interpret what people on both sides of the debate are thinking and doing. But you don’t actually bother to go and find out by talking to them directly!

Dear Totalbiscuit, ignorance is not a virtue. If you want to discuss a very charged issue with the people  who are on various sides of the subject, you need to understand their actual positions. Do you know why those extremists labeled as “SJW” are even upset, or did you just dismiss them because they are? Are they as bad as MRAs ((Note, I am not implying that everyone on one side is an MRA, merely making a point)) because they use the same tactics (they don’t), or because MRAs are angry as well? Did you ever even bother to find out what an MRA is and what they stand for, or is the acronym’s meaning good enough? Did you investigate to see if any side has an actual merit, or did you just assume the answer lies in the middle?

And since we’re at this, let’s put something into perspective. The fact that one or both sides of this argument are angry, does not invalidate their position, or make them “extremists”. There are reasons why people will absolutely not engage with people from the other side and this doesn’t automatically make them “destructive elements”  as you’ll liken them in your post. Victims have no duty to be nice to their abusers. The marginalized do not owe respect to their oppressors. This is the essence of the Tone Argument by the way, and sorry, but I still couldn’t be bollocksed to go and academically prove to you  that it is not “made up”

But do not misunderstand me. You have every right to be in the middle of this subject. Feel free to partly agree with Anita and partly agree with the criticisms against her. But just because you find yourself in the middle doesn’t make everyone else an extreme. Your point of reference is not the anchor of the discussion. If you are willing to be as open minded as you claim, you need to engage with the primary sides of the argument and actually make up your mind if their reaction is warranted or not. And let me tell you, given your reaction when you caught a fraction of the fraction of the abuse that women in gaming are receiving, it looks to me that you’d be reacting far worse in their shoes.

Your laziness to actually take the time to explore these issues became infuriatingly obvious when we started talking about it on twitter. Clearly you have not actually bothered to read about feminism or understand some of its basic arguments, and yet a quick google search was all that you needed to declare that Tone Policing is not a thing. You expected everyone else to feed you the info (at an academically-sourced level no less) rather than making a rudimentary effort to educate yourself. Not for me or anyone else talking to you, but for your own damn benefit! You know, to be able to make an educated evaluation of the criticism levelled against you and either counter it, or fix the issue.

So this is the biggest flaw in your post. It’s lazily researched and has only the flimsiest of understanding of the dynamics of the situation. Tim VS  JonTron, Zoe VS 4chan, whatever. Everyone must be a little bit right and a little bit wrong, correct? No. It doesn’t work that way. If you want to express an opinion on each of these situations, have the moral fortitude to actually stick your head out and argue your case on the actual issues being debated. Figure out where you stand and tell us! You disagree with Anita’s videos? Why? You agree? Why? This is what the rest of us are doing, and why (women primarily) are taking flak for it. Show us that you actually understand the issues at hand and why people on either side are wrong, or not.

If you want to have the discussion, then have at it. But do not attempt to dismiss or minimize those who don’t have the privilege of a huge following to buffer and protect them from the internet hate machine. The marginalized would like nothing more than to have a polite discussion, but as the reaction to Anita’s very polite videos show, this is not going to happen any time soon. So please do not equate the defence of the abused with the offence of the abuser.

Rest assured, I do not hate you for your opinion. I do not even dislike you. I am disappointed because, as one bullied PC-gamer to another, dear Totalbiscuit, you’re in the wrong in this. Not because you’re moderate, but because you’re not putting the effort required to do intellectual justice to the issues at hand. Not because you don’t know feminist concepts, but because you don’t want to know. Because you prefer to talk about the form rather than the content.

How to make custom markers for card games

In ActionI’ve recently started teaching/playing Doomtown:Reloaded using some proxies I’ve printed out and one of the few things that are kinda annoying in the card pool, is that there’s a significant amount of card effects which one has to track manually because either the originating card was an action that was discarded, or because it’s an effect from a deed or spell which has to remain in its original location, and cannot be used to track the effect.

So for example, one of your dudes moves to Charlie’s Place and grabs +2 bullets, then a few plays later they’re hit by a noon Blood Curse, and after an amount of maneuvering later, you end up in a shootout. Now you have to remember that +2 bullets and that -1 bullet effects, plus any Sun In Yer Eyes and so on,that you may get in the shootout itself before calculating your bullet bonuses. And finally at the end of the turn you also have to remember that -1 influence from Blood Curse as well. Let’s just say that is can easily lead to mistakes…

Now, Doomtown:Reloaded will come with more than influence, control and ghost rock counters. It will also come with a bunch of double-sided generic counters which you can use to track other effects, such as the aforementioned ones (and generally shotoout effects are fairly easy to remember since they last so little), but you’d still have to remember that the green star is a blood curse, and the grey skull is an extra bullet etc. Still leaves room for mistakes.

A few weeks ago, I was at a Android:Netrunner game night, and one player had this cool little plastic tokens that he created to add custom markers, instead of using his own cards, such as parasite tokens on cards instead of his parasite card, or personal workshop tokens to remember which of his cards are still in the workshop, and so on. It was a really nifty idea but I thought that it was a wasted potential in Netrunner because it has very little things one needs to track manually ((This is actually one of my favourite designs. I find that the way they’re dealing with increasing or resident effects to be brilliant! Basically what they do in ANR is that almost any effect which stays at the table is always represented with a card, and any variable changes on top of that is represented with a marker upon the card which explains the effect itself. This way one can always understand the state of the game just by looking at the state of the cards on the table, even if they just tuned in to the game. )) other than the occasional Femme Fatale marker or Uroboros effect which are few and short enough not to cause any issues.

In Doomtown however, where noon-long effects are fairly common ((fortunately we got rid of card memory shenanigans)) these kind of tokens are a great idea. So using the information that it’s simple coin capsules (used by collectors mostly) I researched a bit online started preparing.

For my Coin Capsules, I went with the 20mm ones from Unicorn, which at 12 euro for a 100, means 0.12 cents each. Not bad for simple plastic. Their size is fitting for a 10cent euro coin, which I felt was sufficiently large to show the card art in the marker, without being so large that it obscures the card itself or leaves no space for other counters.

(Here I’m going to explain how I prepared everything from the start. If you just want to see how to simply print your own based on what I made, skip to the “Making your own custom markers” part.)

Once they arrived, I opened the card art and took a screenshot of the area I wanted to make into a marker, I passed that into GIMP, made a perfect circle selection of exactly the area I needed, then cut that into a new image (to remove the rest of the art), resized it to 60 px (which prints out to roughly 21mm) and finally created a white image in gimp at A4-paper size, and pasted the resized marker in there.

I repeated the procedure with 14 other cards ((of which blood curse was one I did two times with two different art sections, to keep track of the two different spell effects)) that I felt created resident effects often enough. This created a double row of markers 7-wide +1 marker on the side which I didn’t need so many of. Finally I copy-pasted that double row 4 more times, to get 4 of each marker in the same page and thus have enough to use on the rare occasions where I get to use multiple of that effect in the same turn (or if my opponent is running some at the same time)

I finally exported from GIMP in .pdf format which would make sure the images print out at exactly the dimensions I put in the paper.

Making your own custom markers

2014 - 1So if you want to make your own markers using the ones I’ve already prepared, first you need to get yourself some coin capsules. You can prolly buy them in any hobby story, or just use the same item I got on Amazon. Afterwards print out my A4 page with the markers and cut them.

Since you can create each marker double-sided, what I did is put two different markers per capsule’s side. I chose cards which are unlikely to be together at the same time in multiple numbers, so as to avoid having a situation where I needed 2 from one side and 3 of the other side.

My pairs were:

  • Blood Curse 1/ Blood Curse 2 (The two different effects of the spell)
  • War Paint / Unprepared (Value difference of 6 means unlikely to be in the same straight flush draw structure)
  • Sun in Yer Eyes / Stakes Just Rose (Same Value)
  • Pinned Down / Make the Smart Choice (Value difference of 5 means less chance to be in the same straight flush draw structure)
  • Bad Company / Hiding in the Shadows (Same Value)
  • Rumors / Charlie’s Place (Influence Reduction tends not to me used in the same decks which care about boosting their bullets)
  • Yan Li’s Tailoring / Morgan Research Institute (Spell/Gadget decks unlikely to run deeds at 3 value)
  • Kevin / Kevin (just double sided solo marker for Kevin’s Ability)

Feel free to make your own pairs if you think something is more appropriate.

When putting the images in the capsule, you’ll notice that one side will not fit exactly, while the other will have space remaining. This is normal since the capsule needs some space to lock itself in place. To put the 21mm marker in the 20mm space, I simply used a 10cent coint to squeeze it in, and while I lost a little bit of circumference it’s not noticeable at all on the final marker. And the extra size on the larger size ensures the image is held into place on the capsule’s face, rather than just falling to the bottom.

This was my end result

Complete Look

I think the result is pretty neat, and in a mock setup I’ve done, the custom markers fit very comfortable among all the other cards and normal markers. Of course one has to have the art memorized to know what each custom marker does, but after a few plays that should be fairly easy. I do think a good improvement might be to include a small icon on each marker’s art that is like “+2 bullet”, or “-1 influence”,  or “turned into draw” etc. Maybe something for the future or someone better than me could arrange it and share the results with everyone (I can provide my GIMP sources on demand)

To cover all of Doomtown:Reloaded’s important resident effects I used only 29 capsules so far, so I’m left with 71 more. More than enough to re-use for other games, or for new Doomtown:Reloaded abilities as expansion come out.