Beginner

What is a license?

People use the word license for too many things. A lawyer means the rules you agreed to. A store page means this account can play the game. An old PC box showed a code like AAA-BBB-CCCC. In your Unity code, it might just be a true/false value named isLicensed.

If you mix those up, licensing feels harder than it is. They all mean the same simple thing: you are allowed to use this, under some rules. The game files are not the license. The typed key is not the license either. Those are only how people show they are allowed.

A license is permission, not ownership

Think of a movie ticket. You paid, so you can watch that showing. You did not buy the film. You cannot copy it, sell it as yours, or change the ending.

Games and software work the same way. When a player buys your game on Steam, they buy the right to play it under Steam's rules and yours. When you buy Unity or a plugin, you buy the right to use that tool under its rules. Nobody bought the source code.

That is why "I paid, so I own it" starts arguments. Paying buys access. The people who made the work still own it, unless a contract says otherwise.

The same word does three jobs

"License" is doing three different jobs. If you keep them apart, the rest of this article is easier:

  • The rules: what a player or studio may do, and what they may not do.
  • The store record: who is allowed. Steam, Google Play, or a studio account saying this person or team can use this.
  • The game check: the software asking "are they allowed right now?" before it unlocks a feature.

These three should match. Trouble starts when the check inside the game is treated as the whole license. A true/false value in memory is easy to change. A purchase on a store account is much harder to fake.

What a license means for a game

For a player, the license is usually invisible. They click Buy or Install. Steam, Epic, Google Play, or the App Store then marks the game on their account. The store is saying: this account may use this product.

That is true for paid games and for free-to-play. A free game still has terms. The player may play under those rules. They may not copy the build, strip your name, or sell a patched APK.

Extra purchases are extra permission, not extra copies of the game:

  • A DLC pack lets them use that content.
  • A battle pass lets them use that season's rewards.
  • An in-app purchase lets them use that item, currency, or upgrade.

If the game is online, your server has a say too. The store can say they bought the game, while your backend still decides if they can enter ranked, claim a reward, or use a paid cosmetic. For purchases, check with the store or your server. Do not trust a value saved on the device. That is what receipt validation is for. On Android, the store side is covered in Protect your APK on Google Play.

What a license means for software you buy or apply

You also hold licenses yourself. Unity, Asset Store packages, and editor tools all have them.

Buying and applying a license are two ways to get the same permission:

  • Bought: you paid in a store, on an invoice, or through a subscription. The seller records that you can use it.
  • Applied: you paste a serial, click Add to my assets, or assign a seat to a teammate. You are giving that permission to a person or a computer.

Unity's editor is a clear example. Personal, Pro, and Enterprise are different permissions. The editor checks whether your current account still has that permission. Copying the installer to a new PC does not give you a license. Your Unity account does.

Product keys are tickets, not licenses

The classic key looks like AAA-BBB-CCCC or a longer Steam code. Old boxed games printed it in the manual. Stores still email keys for reviews, bundles, and gifts. It feels like the key is the license, because typing it made the game start.

A key is more like a ticket. You use it once to put the product on an account. After that, the account is what matters. If someone else uses the key first, the game is on their account. If a store bans a stolen key, the game can stop working even though the code still looks the same.

That is why you should not screenshot a key, and why a key in a public GitHub repo is as good as given away. Anyone can take it and redeem it.

Some older games treated the key like a password. If the typed code looked right, the game unlocked. That felt like licensing. It was only a check inside a file the player already had. Modern stores work the other way. The key is for setup. After that, the store looks at the account.

Personal, seat, and enterprise licenses

Not every license is one key for one person. Studios often use a different setup:

  • Personal: one person, usually one account. Fine for a solo developer and a plugin they bought for themselves.
  • Seat: a studio buys five seats and assigns them to five people. Only those people may use the tool.
  • Floating: ten people work at the studio, but only three may use the tool at the same time.
  • Enterprise: there is often no public key at all. People log in with the company account, after an invoice or an admin setup.

If you have ever joined a studio and been told "we don't have a key, just use the team license," this is why. Big teams often do not hand out codes like AAA-BBB-CCCC. They add you to the company account instead.

Time-based licenses

Some licenses run out. Unity subscriptions renew each month or year. A seasonal pass ends. A review copy might last two weeks. When the time is up, access should change. The product might lock everything, or only lock paid features and leave a limited mode.

That timer should live in the same place you already trust: the store, the account, or your server. A date saved on the device is easy to change. Players can also be offline, and phone clocks can be wrong, so a short grace period is fair. A trial that only checks the date on the device is easy to get around.

Trials, demos, and freemium

These three get mixed up because they all mean "try before you pay." They are different products:

  • Demo: a smaller, separate build. One level, no multiplayer, a short story prologue. It can ship without a license check because it is not the full game.
  • Trial: the real product with a limit, such as 14 days, 3 machines, or 20 exports. The trial is a license. It just expires.
  • Freemium: the game always runs. Money unlocks extra content, cosmetics, or convenience. The base game is free. Paid parts are extra permission.

Pick one on purpose. A Steam demo of your first dungeon is a demo. A 14-day editor plugin that unlocks every feature is a trial. If your "demo" is the full game with a hidden switch, it is not a demo. It is the full game, waiting for someone to flip that switch.

Why this matters when you ship

As a game developer, you sit on both sides. You hold licenses for Unity and your tools. You also give licenses to players. On both sides, ask the same question: where does the permission actually live?

If it lives in a typed key, a true/false value, or a date on the device, the game is just saying yes. Anyone who edits the game can change that answer. If it lives in a store account, a seat list, or a server, you can check it. That is the difference between "the player typed a code" and "Steam still says this account may play it."

You do not need a huge licensing system on day one. You do need a clear plan: what the player is allowed to do, where that permission is stored, and what happens when the store is down. If Steam is down or the player is offline, that is not cheating.

When you are ready for the next step, read How attackers bypass simple license checks. It explains why a check that only runs in the game is easy to skip, and how to check permission in more than one place.

Do

  • Let the store, the account, or your server be the real record of who may use the product.
  • Be clear whether you are shipping a demo, a trial, or the full product.
  • Keep your own tool licenses valid, and assigned to the right people.

Don't

  • Do not treat a typed key as forever proof that someone may use the product.
  • Do not time a trial only with the clock on the player's device.
  • Do not treat a true/false value in PlayerPrefs as the license.
FAQ

Frequently asked questions.

Short answers to common questions developers ask after reading this article.