Game Demo

Harmonious dynamic difficulty

Crafting a dynamic difficulty system enables tailored gameplay experiences for every player, without unsettling skilled gamers. By introducing a blue character to denote a more challenging game, players can proudly share their prowess with the community – the "blue character" becomes a recognized symbol of a pro player.
Begin algorithms can learn from your player's behaviors and help you recommend the right difficulty to them, which is not too easy or not too frustrating.
 

Show Code

# Initialize Begin AI SDK var BeginWorker = null if(Engine.has_singleton("BeginWorker"): BeginWorker = Engine.get_singleton("BeginWorker") BeginWorker.initialize({app_id:"your_app_id", license_key: "your_license_key" }) # Player finished in record time... # Let's recommend a more challenging level var recommended_levels = BeginWorker.recommend("recommendation_algorithm", "player_uuid") # recommended_levels [{'object_id': 'level2_super_hard', 'similarity': 0.89}, {'object_id': 'level2_hard', 'similarity': 0.85}, {'object_id': 'level2_easy', 'similarity': 0.61}, {'object_id': 'level2_very_easy', 'similarity': 0.50}] # For this player, let's apply the level `level2_super_hard` var selected_level = recommended_levels[0]["object_id"] get_tree().change_scene_to(load("res://src/Levels/" + selected_level + ".tscn").instance())

Tailoring quest recommendations to player preferences and mood

Offer a variety of quests that align with individual player preferences and current moods. Provide suggestions based on like-minded players’ behaviors, narratives enjoyed, and experiences.
 

Show Code

# Initialize Begin AI SDK var BeginWorker = null if(Engine.has_singleton("BeginWorker"): BeginWorker = Engine.get_singleton("BeginWorker") BeginWorker.initialize({app_id:"your_app_id", license_key: "your_license_key" }) # Let's suggest quest options to the player based on their play style and other similar players var recommended_quests = BeginWorker.recommend("quest_recommendation_algorithm", "player_uuid") # recommended_quests [{'object_id': 'strategy_quest', 'similarity': 0.90}, {'object_id': 'mind_quest', 'similarity': 0.88}, {'object_id': 'mind_quest', 'similarity': 0.85}, {'object_id': 'soccer_quest', 'similarity': 0.80}] # For this player, let's display the top 3 recommended quests as options var index = 0 while index < 3: var portal_quest = load("res://src/Objects/Portal2D.tscn").instance() portal_quest.next_scene = recommended_quests[index]["object_id"] get_tree().current_scene.add_child(portal_quest) index += 1
 

Distinguishing paying users

Within your player base, there are those who make in-game purchases and those who don't. Identifying these groups early allows you to provide a more customized experience to each. Selling game enhancements or new skins/weapons serves as a pivotal distinction in your game.
Begin’s algorithms can learn from your players’ patterns and what they might be interested in and help you tailor offers to each player or skip offers all together for ad-supported players that are unlikely to make any purchases so you don’t frustrate them with aggressive prompts leading them to quit.
 

Show Code

# Property for the Alien to display on the sell menu onready var alien_sprite = get_node("MenuOverlay/AlienSprite") # Initialize Begin AI SDK var BeginWorker = null if(Engine.has_singleton("BeginWorker"): BeginWorker = Engine.get_singleton("BeginWorker") BeginWorker.initialize({app_id:"your_app_id", license_key: "your_license_key" }) # Let's check what are the chances - if there are any - of this player buying a new skin and which one would that be var skins_on_promotion = ['blue_alien', 'green_alien', 'purple_alien', 'grey_alien'] var alien_to_sell = null for alien in skins_on_promotion: var predicted = BeginWorker.predict_engagement("predict_buying_algorithm", "player_uuid", alien) if predicted['status'] > 'INTERACTS_POSITIVE' && predicted['percentage'] > 0.95: alien_to_sell = alien break if alien_to_sell != null: alien_sprite.texture = load("res://assets/" + alien_to_sell + ".png")

Prevent churn by quickly reacting to changes in player commitment to the game

Detect player churn in advance and take preventive measures. In this example, we give the player a light level filled with easy-to-collect treasures after some hard muscling to give them a chance to rest from stress and move forward! Begin algorithms can give you a hand in identifying those critical moments.
 

Show Code

# Initialize Begin AI SDK var BeginWorker = null if(Engine.has_singleton("BeginWorker"): BeginWorker = Engine.get_singleton("BeginWorker") BeginWorker.initialize({app_id:"your_app_id", license_key: "your_license_key" }) # Let's check if this player has a higher chance to churn and if so, display a level with more coins and less enemies if PlayerData.level >= 1000 && PlayerData.die >= 4: var predicted = BeginWorker.predict_churn("predict_churn_algorithm", "player_uuid") # predicted {percentage: 0.91} if predicted['percentage'] > 0.80: get_tree().change_scene_to(load("res://src/Levels/SuperEasyLevel"+ PlayerData.level + 1 +".tscn").instance())
 

Identify malicious attackers early on

Begin fake detection algorithms can learn from behavioural patterns and parameters typically entered by fake users, bots, or toxic actors. These algorithms allow you to flag bad actors before they spoil the fun for others or cost your systems even more.
 

Show Code

# AlertDialog onready var alert_dialog = $"../AlertDialog" # Initialize Begin AI SDK var BeginWorker = null if(Engine.has_singleton("BeginWorker"): BeginWorker = Engine.get_singleton("BeginWorker") BeginWorker.initialize({app_id:"your_app_id", license_key: "your_license_key" }) # Once the Register button is selected, let's validate what is the chance of the player being fake/bot/scam var predict_fake = BeginWorker.fake_detect("fake_detect_algorithm", "new_registered_user_uuid") # this UUID can exist only locally # predict_fake {results: ['fake', [[ 0.9898333333333333, 0.010166666666666666 ]]} var predicted_label = predict_fake['results'][0] var predicted_label_percentage = predict_fake['results'][1][0] if predicted_label == "fake" && predicted_label_percentage > 0.95: alert_dialog.visible = true
 

Match players

Our innovative recommender system takes your PvP gameplay to the next level. It intelligently pairs players based on their skill levels, playing habits, and thousands of signals from your gameplay. This ensures every match is engaging and balanced, offering you the thrill of competition while maintaining fairness.
 

Show Code

# Screen to display the matched player name onready var matched_player_dialog = $MatchedPlayerDialog onready var player_node_instance = load("res://src/Actors/Player.tscn") # Initialize Begin AI SDK var BeginWorker = null if(Engine.has_singleton("BeginWorker"): BeginWorker = Engine.get_singleton("BeginWorker") BeginWorker.initialize({app_id:"your_app_id", license_key: "your_license_key" }) # Let's find a player to play against var recommended_player = BeginWorker.recommend("recommendation_player_algorithm", "player_uuid") # recommended_player [{'object_id': 'soko_01', 'similarity': 0.95}, {'object_id': 'bunny10', 'similarity': 0.90}, {'object_id': 'turtle10101', 'similarity': 0.74}, {'object_id': 'butterfly20', 'similarity': 0.60}] # Let's start a match against soko # `service` represents your API service var selected_player = service.get_player_details(recommended_player[0]["object_id"]) matched_player_dialog.get_node("Label").text = "We matched you with " + selected_player['name'] + ", based on your play history. Have Fun!" var node_instance = player_node_instance.instance() node_instance.player_color = selected_player['favorite_color'] get_tree().current_scene.add_child(node_instance) node_instance.global_position = Vector2(x_position, 740)
 

Player Insights in Real-time: Stay Ahead of Churn

ln the dynamic realm of gaming, player behaviours shift constantly. Our solution empowers you to detect these shifts in real-time, enabling you to intervene proactively before churn becomes a concern. Elevate your strategies with timely insights and keep players engaged for the long run.