게임을 horizOn에 연결하세요
아래에서 경로를 선택하면 긴 설정 없이 몇 분 만에 라이브로 전환됩니다.
위 예제의 기본 URL로 https://horizon.pm을 사용하세요. 앱 엔드포인트에는 X-API-Key가 필요합니다.
/api/v1/app/user-management/signup익명 또는 이메일 플레이어 생성
/api/v1/app/user-management/signin플레이어 로그인 및 세션 검증
/api/v1/app/leaderboard/submit점수 제출
/api/v1/app/cloud-save/save플레이어 데이터 저장
/api/v1/app/cloud-save/load플레이어 데이터 불러오기
/api/v1/app/remote-config/all모든 라이브 구성 값 읽기
/api/v1/app/user-feedback/submit플레이어의 버그 리포트와 아이디어 수집
Dashboard의 API Keys에서 계정 범위 키를 만들고 MCP 클라이언트 설정에 붙여넣은 다음, 어시스턴트에게 SDK 퀵스타트나 라이브 API 작업을 요청하세요.
{
"mcpServers": {
"horizOn": {
"command": "npx",
"args": ["-y", "horizon-mcp"],
"env": {
"HORIZON_ACCOUNT_API_KEY": "hzn_acc_YOUR_ACCOUNT_KEY",
"HORIZON_BASE_URL": "https://horizon.pm"
}
}
}
} GitHub에서 MCP 서버 보기 Apple requires every iOS build that offers a third-party sign-in option to also offer Sign in with Apple (App Store Review Guideline 4.8). horizOn User Management supports Apple Sign-In natively.
전체 API 레퍼런스 보기horizOn simpleServer는 horizOn Cloud 기능 세트를 그대로 구현한 REST API를 제공합니다. 모든 엔드포인트는 인증을 위해 X-API-Key 헤더가 필요합니다.
왜 PHP인가요? 최대한의 단순함을 위해서입니다 — horizOn의 메인 백엔드는 엔터프라이즈 성능을 위해 Spring/Kotlin을 사용합니다. Simple Server는 개발자가 쉽게 이해하고 수정하며 셀프 호스팅할 수 있도록 의도적으로 PHP로 제작되었습니다.
GitHub에서 보기SDK, 플러그인 & 도구
horizOn을 게임에 통합하는 데 필요한 모든 것. 선호하는 엔진용 SDK를 다운로드하고 몇 분 안에 시작하세요.
SDK 리소스
SDK, 플러그인을 다운로드하고 게임 엔진용 문서에 액세스하세요.
Unity2
Unreal Engine2
Godot2
기타 리소스2
각 클라이언트는 분당 10회 요청으로 제한됩니다. API 호출을 효율적으로 설계하세요.
데이터를 로컬에 캐시하기 모든 설정을 시작 시 불러오기 점수는 향상되었을 때만 제출하기 useCache 파라미터 사용하기 동일한 요청을 반복해서 보내기 개별 설정을 반복해서 가져오기 매 프레임마다 점수를 제출하기 항상 캐시를 건너뛰기
효율적인 시작 패턴: 시작할 때 필요한 것만 불러오고, 나머지는 캐시에 맡기세요.
전체 API 레퍼런스 보기질문이 있거나 버그를 발견하셨나요? 계정이 있다면 Dashboard에서 티켓을 열거나 horizon.pm의 게스트 티켓 양식을 이용하세요. 빠른 도움이 필요하면 Discord 커뮤니티에 참여할 수도 있습니다.
지원 티켓 열기HorizOn을 직접 확인하세요
실제 애플리케이션이 HorizOn 기능을 활용해 흔한 문제를 어떻게 해결하는지 살펴보세요
모바일 쇼핑 리스트 앱
동기화되는 쇼핑 리스트
사용자가 쇼핑 리스트를 클라우드에 저장하고, 할인 및 특가 소식을 받아보며, 여러 기기에서 데이터에 접근할 수 있는 모바일 쇼핑 리스트 앱입니다.
ShopSync
다시 오신 것을 환영합니다!
코드 예제
// Register user with email
await UserManager.Instance.SignUpEmail(
"user@example.com",
"securePassword123",
"John Doe"
);
// Sign in existing user
await UserManager.Instance.SignInEmail(
"user@example.com",
"securePassword123"
);// Define shopping list structure
[System.Serializable]
public class ShoppingList
{
public List<string> Items;
public DateTime LastUpdated;
}
// Save list to cloud
var list = new ShoppingList {
Items = new List<string> { "Milk", "Eggs", "Bread" },
LastUpdated = DateTime.Now
};
await CloudSaveManager.Instance.SaveObject(list);
// Load from cloud
var saved = await CloudSaveManager.Instance.LoadObject<ShoppingList>();// Fetch latest deals and offers
var news = await NewsManager.Instance.LoadNews(limit: 5);
foreach (var deal in news)
{
Debug.Log($"{deal.Title}: {deal.Message}");
// Display in UI: "50% off milk this week!"
}# REST API Alternative
# Register user
POST https://horizon.pm/user/signup/email
Content-Type: application/json
X-API-Key: YOUR_API_KEY
{
"email": "user@example.com",
"password": "securePassword123",
"displayName": "John Doe"
}
# Save cloud data
POST https://horizon.pm/cloud-save
Content-Type: application/json
X-API-Key: YOUR_API_KEY
Authorization: Bearer USER_TOKEN
{
"data": {
"items": ["Milk", "Eggs", "Bread"],
"lastUpdated": "2025-02-07T10:00:00Z"
}
} 이 구조가 효과적인 이유
사용자 계정과 기기 간 동기화가 필요한 소비자 앱에 딱 맞습니다. Cloud Save로 리스트가 매끄럽게 동기화되고, 뉴스 기능으로 사용자에게 할인 정보를 전달하며, 로그인으로 안전한 계정 관리를 제공합니다.
자동차 제조사 감사 앱
품질 관리 및 컴플라이언스
자동차 감사관이 앱을 재배포하지 않고도 중앙에서 업데이트 가능한 원격 체크리스트를 사용해 품질 검사를 수행하는 비즈니스 앱입니다.
AutoCorp 품질 관리
코드 예제
// Secure login for auditor
await UserManager.Instance.SignInEmail(
"auditor@company.com",
"securePassword"
);
// Check authentication status
if (UserManager.Instance.IsSignedIn)
{
var user = UserManager.Instance.CurrentUser;
Debug.Log($"Auditor: {user.DisplayName}");
}// Load audit checklist from remote config
var checklistJson = await RemoteConfigManager.Instance.GetString(
"audit_checklist_v2",
defaultValue: "{}"
);
// Parse checklist
var checklist = JsonUtility.FromJson<AuditChecklist>(checklistJson);
// Load compliance rules (updated without app deployment)
bool requiresPhotos = await RemoteConfigManager.Instance.GetBool(
"photos_required",
true
);// Fetch compliance updates and audit changes
var updates = await NewsManager.Instance.LoadNews(limit: 10);
foreach (var update in updates)
{
// Display critical compliance changes
Debug.Log($"[{update.Title}] {update.Message}");
}# REST API Alternative
# Login
POST https://horizon.pm/user/signin/email
Content-Type: application/json
X-API-Key: YOUR_API_KEY
{
"email": "auditor@company.com",
"password": "securePassword"
}
# Get remote config
GET https://horizon.pm/remote-config/audit_checklist_v2
X-API-Key: YOUR_API_KEY
Authorization: Bearer USER_TOKEN 이 구조가 효과적인 이유
안전한 인증과 업데이트 가능한 설정이 필요한 엔터프라이즈 앱에 이상적입니다. Remote Config로 모든 기기의 체크리스트를 즉시 업데이트하고, 뉴스 기능으로 컴플라이언스 변경 사항을 전파하며, 로그인으로 인가된 담당자만 시스템에 접근하도록 보장합니다.
Steam 로그라이크 게임
Steam 인디 게임
가입 장벽 없이 바로 플레이할 수 있고, 클라우드 세이브 진행 저장, 원격 게임 밸런스 업데이트, 통합 버그 리포트 기능을 갖춘 Steam 로그라이크 게임입니다.
DUNGEON DEPTHS
로그라이크 어드벤처
코드 예제
// No registration required - instant play
await UserManager.Instance.SignUpAnonymous("Player_" + Random.Range(1000, 9999));
// Token is cached automatically for session restore
if (UserManager.Instance.IsSignedIn)
{
Debug.Log("Ready to play!");
}// Load game balance values (updatable without patch)
int maxHealth = await RemoteConfigManager.Instance.GetInt("max_health", 100);
float enemyDamage = await RemoteConfigManager.Instance.GetFloat("enemy_damage", 15.0f);
bool eventActive = await RemoteConfigManager.Instance.GetBool("halloween_event", false);
// Apply to gameplay
player.MaxHealth = maxHealth;
enemy.Damage = enemyDamage;// Define save structure
[System.Serializable]
public class GameProgress
{
public int Level;
public int Gold;
public List<string> UnlockedCharacters;
}
// Save progress
var progress = new GameProgress {
Level = 12,
Gold = 5000,
UnlockedCharacters = new List<string> { "Knight", "Mage" }
};
await CloudSaveManager.Instance.SaveObject(progress);
// Load on startup
var saved = await CloudSaveManager.Instance.LoadObject<GameProgress>();// Bug report with automatic device info
await FeedbackManager.Instance.ReportBug(
title: "Crash in level 5",
message: "Game freezes when boss spawns"
);
// Feature request
await FeedbackManager.Instance.RequestFeature(
title: "New character class",
message: "Please add Necromancer class"
);# REST API Alternative
# Anonymous signup
POST https://horizon.pm/user/signup/anonymous
Content-Type: application/json
X-API-Key: YOUR_API_KEY
{
"displayName": "Player_1234"
}
# Get remote config
GET https://horizon.pm/remote-config/max_health
X-API-Key: YOUR_API_KEY
Authorization: Bearer USER_TOKEN
# Submit feedback
POST https://horizon.pm/feedback/bug
Content-Type: application/json
X-API-Key: YOUR_API_KEY
Authorization: Bearer USER_TOKEN
{
"title": "Crash in level 5",
"message": "Game freezes when boss spawns"
} 이 구조가 효과적인 이유
즉각적인 플레이어 온보딩과 유연한 밸런스 조정이 필요한 게임에 안성맞춤입니다. 익명 로그인으로 가입 허들을 없애고, Remote Config로 실시간 게임 밸런스를 조정하며, Cloud Save로 진행 상황을 보존하고, 피드백 기능으로 디바이스 정보가 자동 포함된 버그 리포트를 수집합니다.