The cross platform Defold game engine has grown to become a popular option for HTML5 game developers with games released on Poki, Google GameSnacks, Facebook Instant Games, Yandex and many other platforms.
In this talk we'll share our collected learnings on how to successfully release HTML5 games. We will talk about best practices in terms of game design, monetization and the importance of designing your games to load fast and work well also on mobile HTML5.
3. AGENDA
● What is Defold?
● Best practices when releasing HTML5 games
○ Distribution
○ Monetization
○ Conversion to Play
○ Optimizing game size
○ Web Game Standards
● Q & A
6. FEATURES
● 2D and 3D
○ Tilemaps
○ Sprites
○ Meshes
○ Models
● Particle effects
● Physics
● Scene and GUI editor
● Code editor and debugger
○ Lua scripting
7. ZERO SETUP POLICY
● One download
○ Automatic updates
● Build for all supported platforms
○ No additional tools required
■ No Xcode
■ No Android Studio
9. 100M+ PLAYS IN 2021
Zoom-Be, Duo Survival, Duo Vikings, Words Emoji, Puffy Cat, Mahjong Cards, Party Toons, Raft Wars, Solitaire
Classic … and many more!
17. FOR FUN OR FOR MONEY!
● Design for monetization from the start!
○ Optimize your core game loop and meta game
○ Look at successful games in the genre
● Monetize through ads
○ Poki, Yandex, GameDistribution, Facebook etc
○ Google Ad Placement API for H5 Games
18. FOR FUN OR FOR MONEY!
● Sell or license your game
○ Google GameSnacks, Miniclip etc
● In-app purchases
○ Facebook, Yandex
● Microtransactions
○ WebMonetization
● Donations and sales
○ Itch.io
● Crowdfunding
20. CONVERSION TO PLAY
Web games need to get players into the game quickly!
● Poki uses Conversion to Play as a metric
○ From discovery to first play
○ Loading experience, loading time, menus
■ Engine size plays a big role
● Example: 10 MB game
○ US 🚀 1 in 5 players drop
○ Egypt 🐌 2 in 5 players drop
21. DISCOVERY
● Stand out from the crowd!
○ Icon
○ Logo
○ Banner
○ Game title
○ Game page
22. LOADING EXPERIENCE
Goal: sub-second loading time
Reality: for many players there will be noticeable a delay
Don’t ignore your loading screen!
● Visually interesting
● Use a progress indicator
● Show helpful tips
23. ADD SHORTCUTS TO FUN!
● Skip main menu for new players?
○ Drop straight into a tutorial level?
● Reduce amount of user interaction required to start a new game
○ Replay button
○ “Play next level”
○ “Continue”
24. HUMANS ARE WORSE THAN GOLDFISH
“Microsoft found that since the year 2000 (or about when the mobile revolution
began) the average attention span dropped from 12 seconds to 8 seconds.”
A goldfish has an attention span of 9 seconds…
25. GENEROUS GAME DESIGN
“Giving something to the player, in hopes that they will sort of subconsciously
decide ‘ok that was cool, I’ll give you more of my time, what else you got’” - Adam
Saltsman, creator of Canabalt
26. THE STARBUCKS TEST
“Can you play your game and have a meaningful experience in the time it takes
for a barista to make your macchiato?” - Torsten Reil, CEO, Natural Motion
● Playing a level in Bejeweled Blitz
● Beating your longest run in Subway Surfers
● Playing a match in Venge.io
● Collecting a reward in Garden Tales
28. ENGINE SIZE
● How small is your engine?
○ Defold: 848kb (wasm)
● Size of an empty project
○ Defold: 940kb (wasm+loader+index.html+archive)
● Can it be optimized further?
○ Remove features that are not used?
○ Defold: 756kb (wasm) removed 3D physics
29. GAME CONTENT SIZE
● Optimize and Compress textures
○ Pack textures
■ Defold: Basic texture packer included
○ WebP is great
■ Defold: BasisU with WebP coming as an extension
● Compress sounds
○ Mono or stereo?
○ Procedural sounds
● Compress content
○ Gzip over the wire
○ Defold: lz4 compression on game data archive
30. DIVIDE AND CONQUER
● Split content into manageable chunks
○ Download only what you need
○ Defold: Use LiveUpdate to exclude and download content
33. WEB GAME STANDARDS - MOBILE
● Increasing in popularity - do not ignore!
● Things to consider:
○ Landscape and portrait mode or locked?
○ Handle different aspect ratios
○ Notch and hole-punch!
● Defold
○ No special configuration required
○ Try it! https://poki.com/en/g/foggy-fox
34. WEB GAME STANDARDS - GAMEPADS
● Consider supporting gamepads
○ Gamepad API available on 97% of browsers
○ Defold: Supported out of the box
● Handle disconnects properly
○ Pause menu!
○ Defold: Detect with the Disconnected and Connected input events
35. WEB GAME STANDARDS - SOUND AND MUSIC
● Autoplay policy!
○ Requires user interaction
● Pause audio when showing ads
○ Defold: sound.pause()
● Add options to toggle sound and music
○ Remember between sessions!
■ Defold: sys.save() and sys.load()
36. WEB GAME STANDARDS - LOCALIZATION
● EFIGS
○ English, French, Italian, German and Spanish
○ More depending on distribution platform
● Detect device/user language
○ Defold: Use sys.get_sys_info().language
■ Two character ISO-639 format, i.e. "en"
Cross platform
Desktop
Mobile
Console
Web
FROM A SINGLE CODEBASE
No additional setup
Free to use
No royalties
No up-front costs
No licensing fees
Located here in Vilnius
Do your research!
Use a publisher or self publish?
PUBLISHER
What kind of games do they typically publish?
SELF PUBLISH
What are the most popular types of games on the platform?
Is the platform curated or open?
Does the platform focus on mobile or web or both?
Are you making games for fun or for money?
BOTH ARE OK!
THERE IS NO RIGHT OR WRONG HERE!
Ben James
Tons of games released on itch.io
Open source on GitHub
Game jams is another perfect example of doing games for fun!
Research successful games
Ads - COMMON!
Platform specific SDKs
Poki, Yandex, GD, FB
Open SDK
Google Ad Placement API for H5 Games
For use on itch.io etc
Preroll
Ad shown before the game starts
Interstitial ad
Fullpage
Between screen transitions
Before game starts
Between levels
Rewarded
Watch video ad and get a reward
Banner ads
Not very popular
Avoid while playing
Other options
US - Fast internet connections
Egypt - Very slow internet connections
A player must pick your game out of 30-50 games in a list? Why?
Icon
Scalable - work in various sizes
Recognizable - identify and recognize at a glance
Bright colors and contrast
No words - avoid unless the brand is very well known
Can you A/B test title, logo, banners etc?
Simulate slow connection using your browser!
Progress bar
Give feedback that the loading process isn’t stuck
Tips
Teach your prospective players about your game
Especially important for players on mobile
Pure JS engines are typically smaller
PlayCanvas 337kb gzipped
Phaser 280kb gzipped
Textures usually take up a lot of space
Use a texture packer
Compress textures
HTML5 games can expect gzipped data over the wire
Only provide the first few levels in the initial download
Split into levels, worlds, episodes
Download as the player progresses through the game
CanIUse
Autoplay policy changed in 2018
Requires user interaction: click, tap etc
Discovery
Research launch partner/platform
Stand out from the crowd
Monetization
Plan for it from the start. Or not!
Conversion to play
Loading experience
Optimizing game size
Small engine
Compress content
Divide game content in chunks
Standards
Mobile
Gamepads
Sound & music
Localization