Dungeons and Dragons OGL Situation

Introduction

So, what is going on? And what even is an OGL? Lets start with that second one as everything builds off that. OGL stands for Open Game License, and is a license/agreement Wizards of the Coast had with their community. The OGL laid out what could and could not be used by 3rd party creators in making D&D supplemental material. And ever since 3rd party creators have been making a combination of amazing, weird, terrible, and fun content for D&D. And under the OGL they could even charge for this content.

What Happened?

Recently Wizards of the Coast (most likely at the behest of Hasbro) announced they were going to revamp the OGL. They laid out some broad goals that seemed reasonable if unpopular. With easily the least popular being that they would now expect royalties from 3rd party creators that made more than a certain amount per year. Well… least popular if you discount changing the OGL at all, but we will get to that.

This all caused the community to grumble but generally agree to wait and see what would happen. Until a leak of the contract. Multiple sources are claiming that this leak comes from creators sent both a copy of the “OGL 1.1” (as opposed to the original OGL1.0) and a contract to sign agreeing to the terms. The language in this leaked version lit the community on fire.

I am not a lawyer. I do not pretend to be an expert on legal matters. But my layman’s reading of parts of this OGL 1.1 felt disgusting and greedy. Or at least rife for abuse. Clauses that could mean “You own what you made… until we decide you don’t and we do.” Suggestions that they could change any part of the agreement at any time. Or simply eliminate the entire thing with a simple 30 day notice.

Reactions

At Large

As I said, the D&D community was outraged at the language in OGL1.1. So many video essays explaining the situation. People trying to figure out what to do, wondering if they will still have a livelihood if this came to pass. And Wizards of the Coast largely remaining silent. That is of course… until another leak.

Wizards Employees

Not sure if “leak” is the right term. What happened is that a Wizards employee reached out to a community content creator, under the condition of anonymity, to expose some insider information. So I guess “leak” is appropriate. In this there were 4 main takeaways. First, that Wizards was hoping the community had a short attention span and they could just let all this “blow over” before trying again. Second, the rank and file employee only knew marginally more than the community at large. Third, and I quote “…they see customers as obstacles between them and their money…” And finally, that the only thing they care about is the bottom line, using subscriptions to an online service as a barometer for how well they were doing. So a large movement of people started unsubscribing from that service.

Other Companies

If you thought the reaction to this was limited to the community and small creators you underestimate the scope of these changes. Several well known companies that make 3rd party D&D content have announced that in response to these proposed changes they are moving away from D&D content. One such company (Kobold Press) even announced they would make their own system. This all seems to have culminated in the company Paizo (the creators of Pathfinder) announcing their own take on an OGL style license.

This announcement had several components, but the first one I will be focusing on is the new license. This new license will be called the Open RPG Creative License or ORC for short. This license has several big points. First is that it is intended to be irrevocable, no one can change or resend it ever. They seek to accomplish this through a combination of legal language and transferring ownership of the license to a non-profit. Next up is that this is a generic license that any company can apply to their game, so any company can opt in to using this license. And finally, they weren’t alone in this effort, they had several big names in the community on board for this plan.

But what about OGL1.0a?

That term “irrevocable” was not used by accident. The thing is, it was a term that, once upon a time, Wizards of the Coast had used in reference to the first version of the OGL. That’s right, Wizards (read Hasbro) was trying to alter an agreement designed, agreed, and understood to be unchangeable. And the people pointing this out have more standing than just “guy on the internet”. The leaders of Paizo are pointing this out. And they should know, they were higher ups at Wizards when the OGL was made. So a very real question has arisen: Can Wizards legally do any of this? And several companies are willing to fight them in court over it.

Finally Wizards Speaks

About an hour before I sat down to write this, Wizards finally released an official statement. In it they paint themselves as “misunderstood” and “not trying to step on the little guy” but to “fight back against giant corporations” (completely missing that they are a giant corporation). And, if I assume they are speaking in good faith, they make a couple good points… If one assumes they are arguing in good faith. You see, there was one more leak I haven’t talked about. Partially because it is so recent, but mostly because of it’s contents. Because if this leak is true, and was actually intended to be released to the public… Oh boy. It would be some of the most “cartoonish evil corporation” nonsense in what lies they expected the public to swallow. I won’t get any further into it here, but just for context, most of the community is taking anything Wizards says with a handful of salt at minimum.

.

The House Speaker Vote 2023

Where do I even begin? Laying some ground work for people that are somehow unaware I guess. So, brass tacks: When a new House of Representatives is voted into office those delegates vote amongst themselves on who should run proceedings. Ordinarily this is pretty straightforward in the American 2 party system. The party with the majority picks who should lead them and they get the position, simple. But this year, for the first time in 100 years, it wasn’t simple.

The vote requires a majority of all present, not just a “simple majority”. What’s the difference? A simple majority is just “who got the most votes?” whereas what is needed in this vote is more than 50% of the possible votes. And no one has gotten that… for going on 12 votes at time of writing. With the current system these votes will continue until someone gets the required number of votes. And nothing else can be done until that is accomplished.

So why are we here? What happened that brought the Republican Party to grid lock? Two things. First, their majority is slim, only a handful of people. Second, the most extreme Right Wing members have realized that this gives them power. They refuse to allow anything to happen until they get “what they want”. So what is it they want?

If I had to sum it up I would say they want two things. First, unearned power. They, some of the most junior members of the House, want power handed to them on a silver platter. Power over the speaker, power over comities, power over their party. If it is a type of power they think they can get, they are demanding it like spoiled children screaming on the floor. Second, they want immunity from consequences. They want to be as vile as they want and for no one to be able to hold them accountable. So they demand the neutering of the agencies that would hold them accountable.

And the crazy part? The truly bat shit insane bit? The Republicans are giving in to these demands, slowly but surely. AND IT STILL ISN’T APPEASING THEIR TASTE FOR BLOOD! They still want more. And they are willing to hold the House of Representatives hostage until they get it. So, what should be done?

Well… in a rational society, with rational politicians, the Republicans would see if they could get the few votes they need from somewhere else. Say, the Democrats? Show an ability to reach across the aisle. Show some actual leadership ability. And probably not give up as much as the extremists are demanding. Or perhaps the Democrats try and break a few Republicans off to get a candidate enough votes themselves. Completely undercutting the Republican “leadership”.

But we do not live in a rational society, with rational politicians. And the Republicans have proven they are completely willing to damage the republic for a political stunt. So I expect this to go on for weeks… when do we start playing the Benny Hills theme and sending professional clowns to the House? As opposed to the unprofessional ones that were voted into office.

Returning to Old Problems

As I started working on my game there were one or two things that I came across that I didn’t fully understand. Okay, there were a lot of those. But one or two I got to a “good enough” state and moved on. Well, that came to bite me in the ass recently. Specifically with the Canvas Scaler. Most of my game’s visual elements are UI objects, as such they scale to the camera to always be in a specified relative space on the screen. But how they scale is determined by a multitude of factors, starting with the Canvas Scaler.

I won’t get into the minutia of the Canvas Scaler here. But put simply you can choose to set a maximum size, minimum size, or a scaling style for the UI elements. Took me a while to decide what was best for my project, and I am liable to change it again. Before my recent dive into the Canvas Scaler, some objects would scale strangely and end up off screen. And then I figured out why… and it was dumb.

A common way to organize Unity project game assets is to group them under “empty game objects”. These objects are 1 dimensional points in space with no physics, but are useful for grouping objects to make the scene more manageable. They can also be used to apply a single transform (movement, scaling, rotation) to an entire group. I was using these empty game objects for both purposes. Making my scenes easier to manage and to move objects as a group. Unfortunately, UI elements and normal game objects don’t play nice together. And by grouping UI elements under an empty game object I disconnected their scaling from the Canvas Scaler. I needed a new solution.

Thankfully the solution was staring me in the face. I had already been moving UI elements independent of an empty game object, so I just needed to find a UI element that could stand in for one. And I did. It has a few kinks to work out (mostly from adopting it so late), but it shows promise.

Attending a Playtest Event

There is a local event for developers to bring their games and get people to play test them. I have attended this event several times before, not as a developer but just to try and be part of the community. Just one problem, I am very introverted and not good at integrating into new groups.

As such when I went to these events I would do my best to try and play the games, socialize, and generally be present in the event. But I would often either stick to one place where I felt “safe” or just leave. I just felt awkward and out of place. After a few attempts I largely stopped attending these events. I wasn’t getting much out of them, and I don’t think the people who brought their games were getting much from me either.

Then COVID happened and the events understandably stopped. But just recently the events started back up again. And now I had something to show, something I needed playtested. So I resolved to attend, full of dread for my introverted self, 3 hours in a room full of strangers wanting to talk to me…

And then I was at the event. People were playing my game (and enjoying it more than I expected, even as they failed). I was taking some notes on things to change. And then I looked at the time. Two of the three hours had already passed… and I was having fun. A simple change in perspective/goal/role had turned something I dreaded into an enjoyable and useful experience.

This doesn’t mean I am suddenly an extrovert. Or that there is anything wrong about being an introvert. But it does mean I have discovered another part of my comfort zone. I may actually be looking forward to the next of these events.

Frustration with Conflicting Conversation Styles

I am an introvert. Most of the time this means I am content to keep my own company. But it does not mean I am “allergic” to large gatherings or the such. Just that I can find them draining, if still fun. Why do I bring this up? In conversations I have two “modes”. The first the conversation centers on something I am passionate about and I can talk near endlessly. In my more common mode I will quietly listen and try to speak up when I have something to say. Key word: try.

At a family gathering over the Thanksgiving holiday, I got into a conversation with a relative. They were asking me about a topic relating to my game. And they would ask me a question, before going into details about the question with their own assumptions. I would try to answer the underlying question they at first asked… but whenever I did they would just talk over me as if I hadn’t said anything. Eventually, it felt like they were trying to tell me what they assumed the answer was and/or why my answer was stupid rather than have a conversation. Around the 4th time it happened I just got up and left the room. “Because apparently I’m not allowed to be part of the conversation.”

To be fair to my relative, other people had joined the conversation and I had been quiet for a while. But to be frank, I don’t care about being fair to them after the 4th time in less than an hour. In my opinion the problem seemed to arise from a severe difference in conversation style. Because I am content to listen to a conversation until I have something relevant to contribute he seemed to think I had nothing to say. So when I did have something to say, he just ran over me.

People say not to get angry. But what they usually mean is “don’t lash out”. Because after I got angry, and let everyone know I was upset (and why), I got an apology and he stopped talking over me. So it is okay to be quiet, just don’t be a door mat that everyone walks over.

Physical vs Digital Prototyping

Sometimes in design you can’t just jump in and see what works. And for me, that is a bit hard. When people are standing around deciding the “best” way to do something, arguing the merits without seeing the result, I will often just go and do the thing. That way we have something tangible to compare, change, and discuss rather than abstracts. So finding something where that approach is… counterproductive, is a bit like hitting my head on a low beam: startling, annoying, and gets my attention.

So if I can’t just jump in and mess with things, what do I need to do instead? Simply put: I need to make a “prototype”. By which I mean, I need to make a rough draft of what I want the final product to look like. And that leads to three possible ways of doing it.

First is the option I use most often, make a mock up in program. For my game projects that would mean either making a new scene or rearranging an existing scene in Unity. The big advantage is that this is like putting paint on canvas, if it works no further work is needed. The two big downsides are that it can take a lot of time and suffers a lot from “good enough” syndrome, where you have it in place so it is “good enough”.

Next up is to make a mock up outside of the development software. My first instinct would be to make a Power Point “presentation”. This would mostly be an artistic representation of the final product, sometimes with screenshots of the game itself. Upsides are that it is fairly easy to edit a “completed” idea and doing repetitive images is as simple as copy/paste. Downsides are that, again, it can take a while to get things in the positions you want them. And once you have invested that much effort you might say “good enough”.

Finally is the solution I was resistant to trying, but now embrace: paper prototyping. Simply put it is drawing out the ideas on paper. Even if it is just prototyping a part of the UI design, it is so much faster and cheaper to test things in paper. That is the primary advantage of paper prototyping: the speed of being able to try things. So long as you can put aside the idea of needing the prototype to “look good” and simply accept it as “functional” it works wonders. But on the downside, if you need to wow someone with the looks… this isn’t going to do it. But that isn’t the point anyway. The point of paper prototyping is to get lots of ideas out rapidly. Then you can see what works and what doesn’t.

To loop everything back to the start, and my method of “just try it and see if it works”. I think I have come around on the idea of paper prototyping actually fitting that idea. It isn’t just debating ideas, but seeing how they could work. And doing it much faster than most other methods.

Results of Feedback

So I got some feedback from my playtest build. Several bits of feedback where simple bug fixes or graphical mistakes that were easily fixed. But there was one big bit of feedback I didn’t expect: people didn’t know what to do with the game.

Now I had kind of seen this coming. Several times I started making a tutorial level, only to abandon it as the design left the tutorial behind. I figured if I needed it I would get back to it when I was sure of the rest of the design. Well… turns out I need something.

So a simple plan formed: basically make a slideshow explaining the mechanics of the game. Each game mode would have its own collection of images to describe how that mode functioned, and the player could advance through them at their own pace whenever they want. No forced tutorial or “Now you do the thing” hand holding. Know what your doing? Get straight to the puzzles. Want to figure it out yourself? Go for it. Need a hand figuring out the new mechanics? I got you covered. Completely lost? Simple explanation just a click/tap away.

When I was first making my tutorials I was doing “all the things”. Slowly introducing concepts and elements so as to not overwhelm. Showing patterns in the puzzle without going “Here: see this!” But in all that I forgot one of the first design principles I was ever taught: K.I.S.S. Keep It Simple Stupid. And that is what the new design is: simple and too the point.

Setting up for More Playtests

Last time I talked about feedback from playtests. But that is actually putting the cart before the horse a bit. Because obviously before getting feedback you have to have a playtest. And before you have a playtest you need a test build. And… well let’s pop the stack and start at the beginning.

First step in getting my game ready for playtesting was to remove the development objects. In short I have an object that keeps track of a bunch of data between scenes. This object gets created when you start the game, never unloading. But when testing my game during development I don’t want to navigate all the way through my game just to test a minor fix. So during development I just put that data holder object in all the scenes. There are a few times I have to remove it in order to test some things, but they are few and far between.

The next step was shoring up the “in progress” items. This time it was the settings tab in the main menu. I ended up removing a part of settings that I had thought might be a good idea, but latter developments had rendered unneeded/clunky/over complicated. This left me with a slap dash UI design, but everything is functional so good enough for testing.

After a few more last minute fixes/finishes It was time to make a build. This part was easily the most straight forward. Just click the button labeled “Build Game”, give it a name, and wait for it to finish. Installing it on the target platform was a little more involved, but only marginally so.

The biggest hiccup I encountered was attempting to install the game on one of the target devices. It was an older phone no longer in active use (no sim card) and just getting it set up was a bit of an ordeal. But then the real problem showed up. It just refused to install the game. So, bad news: the main device I was going to let people test the game on won’t work. Good news: I could install it on my main phone, and might be able to find another device to use.

Feedback Feedback Feedback

There is something I have always “known” but only recently began to truly appreciate. That is: when making a game get feedback from an outside source whenever practical. The reason for this is simple: as the creator, you aren’t going to see things as clearly as someone outside of the project. And I had always “known” that, but only in my last project have I really lived it.

I have frequently been trying to get playtest feedback from people. But it was always in limited amounts. And the feedback I got didn’t have much in the way of substantive changes to make to the overall experience. But just recently I got my game in front of a slightly larger group than normal and got some feedback that made lots of sense. Things that I hadn’t been thinking about, but when I gave them 3 seconds of thought made perfect sense.

The feedback you get from people outside your project helps give you a new perspective. In my case I am applying the feedback I got pretty directly. But in many cases feedback can serve to force you to ask a critical question: Why did they have that response? By reflecting upon that question you can find issues that you have been blinded to by your familiarity with the project. These problems might not even have any direct relation to the thing the feedback was about. But changes elsewhere could have cascading effects that eventually change what was complained about.

Overall, feedback isn’t about “You need to change thing X because Y” but about seeing things from a new perspective. That way you can pull back and take in the whole thing, rather than getting lost in the weeds.

Have ads… Now where to put them

So I have ads working in my game. But where do I put them? You might think this a simple thing. Until you yourself actually start designing something that needs ads and have to find the space and time for them. So lets go through the three types of ads and discuss where I might put them.

Firstly we have the most simple of the ad types: Banner Ads. They are very simple, a bar at the bottom of the screen displaying an ad. Somewhat like a billboard on the side of the road, but in a game. The simplicity of this ad spills over into the simplicity of where I will use it. Banner ads will appear in the game modes, but not on the main menu. Putting them on the main menu feels tacky somehow, but just passively having them sit at the bottom of the screen during play feels fine. Next up is an ad type that took some thought.

The next type of ads are called interstitial ads. These ads are full screen video style ads that can be skipped, usually after X seconds, much like ads you see at the start of YouTube videos. These are a bit harder to figure out as they need a real trigger to play, and I don’t really want them getting in the way of the play. What I settled on is having them play when you go from a game mode back to the main menu. That way they don’t interrupt play (as the player was interrupting play to change things up anyway), don’t pop up an annoying amount of the time, and can still be skipped. And now for the annoying one.

The final ad type is rewarded ads. These ads are very much like interstitial ads with two big differences. Firstly, these ads can’t be skipped, they play to completion every time. Second is that, as the name suggests, after the ad plays the player is supposed to be rewarded with something. But the big question for me was always: what could I possibly reward them with?

For a while I just thought I wouldn’t use them. Not like they are required right? But then I figured out something I could “reward” the player with: the hint system. I haven’t figured out the specifics yet, but a way it may work is that you start a session and want to unlock hints. So you watch the ad and get hints unlocked. The real questions are: Does this unlock ads for all modes this session? Does it unlock X hints? Hints for X levels? I still need to figure this all out… and then program it.