Where the Game Files Live Decides Your Load Time. Settle Hosting Before You License HTML5 Games.
Before you license HTML5 games, settle where the builds are hosted: a hosted iframe and a self-hosted copy load at very different speeds in your market.
Hosting gets waved through in almost every catalogue negotiation. The licensor offers an embed URL, it works in the demo call, everyone moves on to price. Six months later the portal is live in a market three thousand kilometres from wherever those files are served, the first-load numbers are ugly, and the operator discovers that the one lever that would fix it โ putting the assets on their own CDN โ is not in the grant. Nobody refused it. Nobody asked.
This is a short conversation to have up front and an expensive one to have late, because the answer changes what you receive, not just what you pay.
๐ The Number Your Office Wi-Fi Hides
Test a game on a wired desk connection and you measure your building, not your audience. The gap is bigger than most plans assume, and there is public data on it.
Cloudflare's Radar 2025 Year in Review reports latency two ways: idle, meaning an unloaded connection, and loaded, meaning the same connection while it is actually moving data. For 2025, Iceland recorded the lowest average idle latency at 13 ms and Moldova the second lowest at 15 ms, with Portugal, Spain and Hungary also under 20 ms. Then look at the loaded figures. Moldova topped that ranking too โ at 73 ms. Hungary, Spain, Belgium, Portugal, Slovakia and Slovenia came in below 100 ms.
Read those two sets together. The best-performing country on Cloudflare's loaded-latency list still averaged roughly five times its idle latency once traffic was flowing. That is the condition a game loader runs under, by definition: it is the thing saturating the link. Your ping test measures the good case and your loader never gets it.
The same report notes that more than half of request traffic came from mobile devices in 117 countries and regions. For most operators licensing a casual catalogue, the median player is on a phone, on a loaded connection, at a distance from wherever the files sit.
๐ Two Field Numbers Worth More Than a Speed Test
The HTTP Archive's 2025 Web Almanac performance chapter, working from July 2025 field data, found that 62% of mobile pages achieve a good Largest Contentful Paint โ under 2.5 seconds โ against 74% on desktop. On Time to First Byte, 44% of mobile sites landed in the good band, under 0.8 seconds; the rest needed improvement or performed poorly.
TTFB is the number to hold onto here, because it is almost entirely a hosting property. It is DNS, connection setup, TLS, and how far the request has to travel before a server starts answering. Nothing inside the game build changes it. If you take a hosted embed, that 0.8-second budget is being spent by somebody else's infrastructure on your behalf, and you find out how well only after launch.
You will also meet a familiar statistic in somebody's deck: that 53% of mobile visits are abandoned if a page takes longer than three seconds. That comes from Google's DoubleClick study "The Need for Mobile Speed", published in September 2016 from a March 2016 Google Analytics sample. It is a decade old, drawn from a 3G-era web, and it gets quoted as if it were measured on your traffic last quarter. The direction is not in dispute โ slower loads lose players. The specific number should not be load-bearing in a business case. Measure your own drop-off between page view and first frame and use that instead.
๐งฉ What Actually Loads When a Player Opens a Licensed Game
A licensed HTML5 title is not one file. It is a shell page, an iframe document, engine JavaScript, often a WebAssembly binary, texture atlases, an audio bundle, a font, and whatever SDK the licensor wires in. Each of those is a request, and on a high-latency link, requests cost more than bytes.
For a published benchmark of what a distribution platform considers acceptable, CrazyGames' technical requirements are unusually specific. Total file size is capped at 250 MB. Initial download must be 50 MB or less. To be eligible for their mobile homepage, initial download cannot exceed 20 MB. File count is limited to 1,500, explicitly because high counts slow loading. Where files are loaded externally, their QA evaluates time to reach gameplay, capped at 20 seconds.
Those are one platform's rules, not an industry standard, but they are a useful yardstick when a licensor sends you a catalogue and no numbers. The 20 MB mobile figure in particular is worth borrowing as an internal filter. And note what the 20-second external-loading clause implies: platforms already treat "hosted somewhere else" as a distinct performance risk worth writing a rule about.
The linked documentation also points at Nielsen's old interaction thresholds โ under 100 ms feels instant, one second holds flow, ten seconds is where attention wanders and you must show progress. If your loader crosses ten seconds in-market, the fix is not a better spinner.
๐ Absolute Paths Are a Hosting Decision Somebody Already Made
Here is the detail that quietly settles the whole question, and it takes five minutes to check.
CrazyGames requires that builds use relative paths only; the documentation states plainly that absolute paths will fail. The reason generalises well beyond that platform. A build whose index.html references /assets/atlas.png or, worse, a hard-coded https://cdn.somelicensor.com/โฆ can only ever run from the place those URLs point to. Copy it to your own bucket and it half-loads: the shell appears, the atlas 404s, the game hangs on 90%.
So even where a contract grants you the right to self-host, the delivered files may not support it. Those are two different things, and buyers routinely check only the first. Ask for one complete title as a zip during evaluation and search the extracted folder for the licensor's domain. If it appears in the HTML, the JavaScript, or a config JSON, self-hosting means an engineering task per title, which at catalogue scale means it is not really available.
Check the runtime too. Open a demo title with the network panel recording and look at what it requests after the initial load: an analytics beacon, an ad SDK, a fonts host, a leaderboard endpoint. Those calls persist even when you host the files yourself, and each is a dependency on somebody else's uptime and somebody else's region.
๐ Three Places the Files Can Live
There are really only three arrangements, and each is genuinely right for someone.
The licensor's hosted embed
You get a URL and an iframe snippet. Zero operations, no storage cost, updates and bug fixes arrive without you doing anything, and you can be live this week. You give up cache-header control, compression settings, region choice, and the ability to keep serving if their origin has a bad day. For a marketing campaign running six weeks, a proof of concept, or a small site in the same region as the origin, this is the correct choice and the rest of this post is optional reading.
Your own CDN
You take the build files and serve them from your infrastructure. You choose the points of presence, set immutable cache headers on versioned assets, enable Brotli, and control what happens on a bad deploy. You now own patching: when a licensor ships a fix, somebody on your side has to pull and re-upload it, and at a few hundred titles that needs to be a pipeline rather than a person. For a portal with traffic concentrated outside the licensor's region, or an operator games portal with in-market performance commitments, this is usually the only arrangement that meets the brief.
Your own origin, no CDN
Defensible only if your audience is genuinely one metro area and your origin is in it. Otherwise you have taken on all the operational burden of self-hosting and none of the geographic benefit. If you are going to self-host, put a CDN in front of it.
One browser behaviour cuts across all three and surprises people: modern browsers partition the HTTP cache by top-level site. A player who loaded the same licensed title yesterday on a different portal does not arrive at yours with a warm cache. Shared hosting does not mean shared caching, so do not model second-visit load times as if it did.
๐งช The One-Hour Test to Run Before You Sign
This costs an afternoon at most and it is the single highest-value piece of diligence in a catalogue purchase.
- Pick five titles from the catalogue: the largest, the smallest, and three you actually intend to feature.
- Load each from a machine or a VPS in your primary market, not from your office. Record TTFB, total bytes transferred, request count, and wall-clock time to the first interactive frame.
- Repeat with the cache cleared, and again on a throttled mobile profile. The cold, throttled number is the one your player experiences.
- Check response headers on the assets: cache lifetime, and whether content is compressed at all.
- Ask for one title as a zip. Search it for absolute URLs and count the files.
- Record what the game requests from third parties after load.
Six data points per title, five titles, one afternoon. Put the results in the negotiation. A licensor who can answer them is a different proposition from one who cannot.
๐ซ Five Ways Hosting Gets Decided Badly
- Evaluating on the office connection. Every catalogue looks fast on fibre next to the origin. You have measured nothing about your market.
- Assuming the right to self-host implies portable files. Absolute paths make the clause decorative. Verify the build, not just the contract.
- Taking the embed for a permanent product. Fine for a campaign; a structural dependency for a portal you intend to run for years.
- Ignoring the second-visit case. Cache headers you do not control, on a cache the browser partitions anyway, decide whether returning players wait again.
- Treating APK delivery as the same problem. An Android build ships its assets inside the package; the load-time question is install size and update size instead. If Android is in your plan, size Android game licensing against store limits, not against CDN latency.
๐ The Hosting Terms Worth Naming in the Agreement
Six lines, none of them controversial, all of them cheaper to have than to want:
- An explicit right to self-host and mirror the builds, with builds delivered as relative-path packages.
- A file manifest per title: byte size, file count, and any external runtime dependencies.
- Who sets cache headers and compression, in each hosting arrangement.
- How updates are published and how you are notified โ a feed, a versioned path, or an email.
- For the hosted option, what happens during an outage and what notice you get for planned changes.
- Whether you may strip or replace third-party calls inside the build, and who pays for that work.
๐ฏ What You Get When You License HTML5 Games From a Direct Licensor
The reason this is a licensing question rather than an engineering one is that hosting rights are granted, not configured. Forestry Games has licensed games directly since 2017 across a catalogue of 1,049 HTML5 and Android titles, so the delivery question gets answered by the party that controls delivery rather than relayed through a reseller.
A licence scope is written around the use case: HTML5 builds for web and portal delivery, APK builds where Android is the target, source where the arrangement supports it, branding and white-label options, and hosted or self-hosted delivery as the deployment requires. If your traffic is concentrated in a region and first-load time is a commitment you have made to a client or an operator, say so before terms are drafted rather than after. To size the shortlist, browse the HTML5 games catalogue and pick the titles your launch actually depends on, then ask for a scope written against them.
๐งธ Licensing Branded Games for Portals, Campaigns and Events
Forestry Games also works with branded IP and has brand partnerships including Disney, Nickelodeon, Cartoon Network and Warner Bros, so businesses can license branded game content for campaigns, portals, events and apps alongside a generic catalogue.
Branded titles add a second layer of approval above the ordinary licence, and hosting sits inside it: a rights holder has a view on where a title may be served from and in which territories it may appear. That is worth settling in the same conversation as file delivery rather than a month later. The next step is concrete โ browse the catalogue, mark the titles a specific launch depends on, and ask for a licence scope that names the hosting arrangement, or request a white-label portal demo if what you need is a running storefront rather than a set of files.
โ Run the Cold-Load Test This Week
You do not need a new vendor or a new budget to act on this. Take the catalogue you already have or are evaluating, pick five titles, and load them cold from your primary market on a throttled mobile profile. Write down time to first frame. If that number is over ten seconds, you have a hosting problem that no amount of merchandising will fix.
Then read your agreement for the word "host". If it is not there, the arrangement you have is whatever the licensor's server does today, and it can change without you. Ask for the self-host right and a relative-path package in the next renewal. It costs nothing to hold, and it is the difference between a performance problem you can fix and one you can only report.


