Launching on Crazy Games
This article explains the requirements and process for Pley games to launch on crazygames.com
Prepare, Launch, & Operate
Pley's objective is for game studios to continue doing exactly what they are good at; building, launching, and publishing their game. With Pley, you continue to do just that, but leveraged by web distribution. Now, that includes your own direct-to-player gamesite AND web game destinations such as Crazy Games.
Even when launching on Crazy Games through Pley, the should always just be:
- One game build
- One game server
- No extra SDKs
- No extra work to maintain
This documentation shows the steps and requirements to launch to Crazy Games as Pley game. Once you are live, there is no additional workload. One game on the web -- multiple destinations for users to play.
Estimated Timeline:
- Implementation prerequisites (1 day of development)
- Update game to match Crazy Games' QA (1-2 days of development)
- Enable mobile gameplay (0-2 days of development)
- Launch Process (0-3 days, plus Crazy Games' QA wait.)
(1) Implementation prerequisites to launch on Crazy Games
Before submitting the Pley game to Crazy Games, some minor game code additions are required. You do not need to add any new SDKs.
- Update the Pley SDK to version 5.5.0 or newer.
- If a new user is generated which creates a username, set the name using GetUsername().
- Make sure the required Pley analytics methods are called. (How-to documentation / C# Reference)
- Add the mandatory crazy-games events, and make sure they trigger at the appropriate moment.
Analytics Event Method | When to fire? |
---|---|
Pley.AnalyticsKit.Initialize(config); | On startup as soon as Player data is loaded, initialize Pley AnalyticsKit. |
Pley.AnalyticsKit.GameLoaded(); | When the initial loading screen is finished and the game first begins. |
Pley.AnalyticsKit.GameplayStart() | Whenever active gameplay starts. |
Pley.AnalyticsKit.GameplayStop() | When the game is paused, menus are opened, UI screens are shown, etc. |
Pley.AnalyticsKit.LoadingStart() | When a loading screen starts. |
Pley.AnalyticsKit.LoadingStop() | When a loading screen finishes. |
//Initialize analyticsKit with player properties
Pley.AnalyticsKit.Initialize(config);
//Example of how to fire an event
PleyResult result = Pley.AnalyticsKit.GameLoaded();
//Examples of how to fire the events which is a prerequisite for Crazy Games:
//Gameplay Starts
PleyResult result = Pley.AnalyticsKit.GameplayStart()
//Player pauses the screen or a menu opens.
PleyResult result = Pley.AnalyticsKit.GameplayStop()
//Player clicks resume or closes the menu
PleyResult result = Pley.AnalyticsKit.GameplayStart()
//Loading screen starts, loading assets for next scene.
PleyResult result = Pley.AnalyticsKit.LoadingStart()
//Loading...
PleyResult result = Pley.AnalyticsKit.LoadingStop()
//Assets are loaded, loadings screen completed, and closes.
(2) Crazy Games' Recommendations
Final note: Crazy Games has some guidelines regarding ads and game quality. This is a non-concern for most Pley games, but it could be good to review before the game is submitted for launch. Fixing these things leads to fewer iterations with QA and faster launches with better results:
- The game should load quickly, and get into gameplay as soon as possible.
- Remove any in-game login systems as Crazy Games has their own user-system, integrated with Pley.
- Change tutorials/text to match the current device ("Tap to continue" on mobile, "Click to continue" on desktop).
- Don't show on-screen controls (such as touch controls) when playing on desktop; only on mobile.
- ESCAPE can't be the only button to pause the game (disabled on Crazy Games). Add "P" to pause.
- Make sure fonts are large enough to work on low-resolution devices, such as Chromebooks.
- Add interstitial ads between levels (only possible on Crazy Games). Interstitial ads should not be used in the same scenes/levels where rewarded ads are available.
- Crazy Games users are used to seeing a lot of ads and paying less. Consider increasing the volume of ads shown.
- Crazy Game's Guidelines for video ads.
- Crazy Game's Guidelines for Game Quality.
Pley Platform Integration
This is a very small list of things you have to do to enable a Crazy Game's launch. Pley runs the Crazy Game SDK for you, making sure that the right behavior happens no matter where the game build runs.
This lets your game call Pley functionality as it always does, which the Web Playable out-of-the-box translates to the right behavior when running on Crazy games!
(3) Implementation to support mobile
Highly recommended.
Crazy Games supports mobile gameplay. Right now, Pley mobile is in a beta state (Android). It is recommended to have mobile web support when going live on Crazy Games. For that two things need to be done:
- (#1) Support mobile input and controls in the web build (including on-screen controls)
- (#2) Change any UI/UX elements that behave differently on desktop/mobile, such as tutorials ("Tap here" vs. "Click").
The standard solution for running web- and mobile games in the same codebase is through conditional compilation. To make the web version of the game work on mobile and desktop, the game must change some of its WEBGL conditional compilation. For many games (especially ones with mouse-only input on desktop), no changes are required.
//Example:
#if UNITY_ANDROID || UNITY_IOS
//Code for mobile behavior
#elif PLEY || UNITY_WEBGL
//Code for web behavior
//////////////////////////////////////////
//Should be modified to be:
#if PLEY || UNITY_WEBGL
//Code which should only and always be run on web, such as calling Pley SDK functionality.
if(Application.platform == RuntimePlatform.WebGLPlayer
&& (Application.platform != RuntimePlatform.Android || Application.platform != RuntimePlatform.IPhonePlayer))
//Code which should run on desktop web, but NOT on mobile web.
//Example: Change and hide input from touch controls to keyboard input.
(4) Process to launch
Once your game is ready, you should release it to production through the Game Manager. Then, reach out to us and we will begin the process to launch your game. The process will work as follows:
- Legal: Distribution agreement update (We will reach out).
- Your game will be submitted to the Crazy Game's QA team.
- There will be a round of feedback (must-fixes and recommendations).
- After critical issues are resolved, the game will go live on crazygames.com
- As a new game, it will be displayed to users under the "new" category until enough other games are released. Then, it is up to the Crazy Games algorithm to decide if your game should be featured. Games need as many players and as much playtime as possible to be featured.
Launched!
That is it!
Once your Pley web game is launched on Crazy Games, nothing else changes.
- Game Updates will automatically work on Crazy Games.
- Game, asset, or settings changes done in the Game Manager will work on Crazy Games.
- Payments, products, rewarded ads -- all Pley functionality is supported on Crazy Games.
- Analytics will work on Crazy Games.
- Payouts (Ads & In-game purchases) will continue to work the same.
Account Systems; You and Crazy Games
As part of the Pley <-> Crazy Games integration, Crazy Game's account system is used. Users will login through Crazy Games.
While this will work out-of-the-box for your game, it means that users who login on Crazy Games will not be able to play on your game site (because the Crazy Games account system does not exist there).
It is on our roadmap for the end of 2024 to provide a system for users to link their Crazy Games progress with normal Pley accounts and/or mobile game progress.
Updated about 1 month ago