- Category
- Developer Tools
- Rank
- No. 1747Tools index
Previous survey · No. 1721 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- google-research
- GitHub
- 275 stars
- Latest release
- 0.0.2
- Date
About
Service that lets game developers train an AI to play their game via imitation learning from human demonstrations.
What it does
Falken is a local game-agent stack that alternates human control with autonomous play. Developers describe meaningful controls and observable world state, then organize play into task-specific brains, sessions, episodes, and steps. The service records experience, separates demonstrations, trains models, selects versions, and supplies models for on-device inference.
Why it's ranked here
Falken presents an unusually complete loop from live teaching through evaluation, repeatable inference, model serving, and trace inspection. C++ and Unity integrations make that loop concrete. The case is mixed, however: Google explicitly provides no official support, and successful results depend on developers choosing effective observations and episode boundaries.
What's good
Human teachers can demonstrate whole episodes or intervene only when the agent makes a mistake. Separate training, evaluation, and inference modes clarify whether the system should learn, compare models, or behave consistently. Continuous and discrete actions cover analog controls and selections, while structured observations support positions, rotations, numbers, categories, and environmental feelers.
Tradeoffs
Falken does not remove game-specific modeling work. Developers must choose observations, define action ranges, set episode limits, report outcomes, and reset game state between episodes. The documentation warns that observation design affects performance and recommends gradual refinement. Running the stack also means operating a local service, certificates, storage, and separate learner and API processes.
How to use it well
Use Falken for C++ or Unity games with clear tasks, controllable simulation steps, and people available to demonstrate or correct behavior. Start with the smallest observation set a human needs, train interactively, evaluate candidate behavior, then freeze learning for large-scale game testing. It does not replace game-state design, reset logic, or general production service operations.
Technical notes+
README.md describes the local service, C++ and Unity SDKs, examples, and trace dashboard. service/launcher.py uses Abseil flags, creates a self-signed RSA certificate through OpenSSL when needed, then starts api.falken_service and learner.learner_service as subprocesses; its default RPC port is 50051 and storage root defaults to the working directory. service/run_tests.py regenerates protobufs, imports a broad Abseil test suite, and supports multiprocessing shards. service/launcher_test.py mocks subprocess creation and certificate generation. dashboard/src/falken.js uses generated protobuf request classes and paginated service calls, while dashboard/src/episode.js and dashboard/src/grapher.js transform episode steps into D3 curves and distinguish human from AI control segments. service/api/api_keys.py stores generated project API keys through the datastore.
Observed
- License
- Apache License 2.0 headers appear in the supplied service, SDK utility, and dashboard sources.
- Implementation languages
- The supplied repository text includes Python service code, JavaScript dashboard code, and a documented C++ SDK.
- Game integrations
- Client SDKs are documented for C++ games and Unity games.
- Service interface
- The local service accepts RPCs, and dashboard requests use generated protobuf message classes.
- Dashboard
- A web dashboard visualizes session traces, including episode attributes and human-versus-AI control segments.
- Testing
- The Python test runner lists API, datastore, learner, model, logging, preprocessing, policy, and conversion tests, with optional parallel sharding.
- Support status
- The README states that Falken is not an officially supported Google product.
Read from README.md, service/__init__.py, service/launcher.py, service/run_tests.py, service/launcher_test.py, dashboard/src/utils.js, service/api/__init__.py, service/log/__init__.py, dashboard/src/falken.js, service/api/api_keys.py, dashboard/src/episode.js, dashboard/src/grapher.js, service/api/unique_id.py, service/tools/__init__.py, sdk/cpp/merge_zipfiles.py.
What it can do
Train AI models to play games using human demonstrations
Human gameplay demonstrations and game data → Trained AI model capable of playing the game
Integrate AI agents into game environments
Trained AI model and game application → Functioning AI player within the game
Process human gameplay recordings for training data
Raw human gameplay sessions and interactions → Structured training dataset for machine learning
Generate AI behavior patterns based on player demonstrations
Multiple human player demonstration sessions → AI behavior model that mimics human play styles
Evaluate AI performance against human benchmarks
AI model outputs and human performance metrics → Performance comparison reports and accuracy metrics
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
