Independent game technology studio building modular runtime infrastructure for creators.
Take Some() Entertainment builds game technology for developers who need control, extensibility, and a clean runtime architecture.
Our core principle is simple:
Engine as host. Feature as plugin.
The engine should not trap creators inside rigid assumptions. It should host systems, expose stable contracts, and let specialized modules evolve independently.
We focus on:
- modular runtime architecture;
- gateway-driven service boundaries;
- plugin-first feature delivery;
- deterministic CI and reproducible builds;
- asset, UI, rendering, input, physics, logging and tooling infrastructure;
- creator freedom without sacrificing engineering discipline.
NewEngine is the core runtime platform.
It is designed around:
- explicit service contracts;
- runtime gateways;
- modular crate and plugin boundaries;
- asset-driven pipelines;
- deterministic loading and diagnostics;
- replaceable platform, renderer, UI, physics, input, logging and tooling layers.
Core architecture rule:
engine-core hosts
plugins implement
gateways route
assets describe
CI verifies
| Repository | Purpose |
|---|---|
NewEngine |
Core runtime, APIs, gateways, shared engine crates and platform contracts. |
AssetManager |
Asset registry, codecs, NEF8 containers, package/index handling and runtime asset access. |
AureliaUI |
UI provider, layout, styling, interaction, paint commands, font/icon support. |
winit-platform-plugin |
Winit-based native window, platform loop, input surface and runtime host bridge. |
JoltPhysics |
Jolt-backed physics integration and NewEngine physics adapter. |
VulkanRenderer |
Vulkan renderer plugin and graphics runtime integration. |
InputPlugin |
Input module, keyboard/mouse/gamepad state and event normalization. |
LoggingPlugin |
Runtime logging, diagnostics, .ulog pipeline and event infrastructure. |
ProfilerPlugin |
Runtime profiling, frame diagnostics and performance reporting. |
FlecsECS |
ECS integration and entity/component runtime bridge. |
Features belong behind contracts, not inside the engine core.
Bad: engine knows every concrete system.
Good: engine routes to declared services and plugins.
Runtime systems should not bypass asset routing.
All production asset reads must go through the AssetManager API.
A repository is not healthy unless it builds in automation.
Required baseline:
cargo check --workspace --all-targets --locked
cargo test --workspace --all-targets --locked
cargo clippy --workspace --all-targets --locked --no-deps -- -D warningsNative plugins may add platform-specific checks, release builds, artifact upload and packaging validation.
Warnings are future bugs. CI uses strict warning gates where practical.
-D warningsLint exceptions must be explicit and justified at crate or module level.
Generated binaries, cache files, target directories and temporary build products must not be committed unless the repository explicitly defines them as release artifacts.
Use short, scoped branch names:
fix/ci-upload-artifact-v7
fix/jolt-native-build
feat/loading-kernel
refactor/asset-registry
docs/plugin-policy
Prefer clear, imperative commit messages:
Fix release artifact output path
Update upload artifact action
Add loading manifest registry
Stabilize AureliaUI clippy policy
For larger work, use structured commits:
feat(asset): add NEF8 manifest route
fix(ci): pin native build generator
docs(policy): document plugin boundaries
refactor(ui): split layout registry
Every PR should answer:
- What changed?
- Why was it needed?
- What contracts or runtime behavior are affected?
- What was tested?
- Are there migration notes?
Each production repository should include:
README.md
LICENSE
CONTRIBUTING.md
SECURITY.md
CODEOWNERS
.github/workflows/ci.yml
.github/dependabot.yml
.gitignore
GitHub Actions artifact upload should use the current maintained action version:
uses: actions/upload-artifact@v7Release DLLs should be uploaded from stable target paths:
path: target/release/*.dllRecommended main branch protection:
- require pull request before merge;
- require status checks;
- require CI success;
- block force-pushes;
- block branch deletion;
- require linear history where practical;
- require review for runtime-critical repositories.
NewEngine repositories should support both local iteration and CI reproducibility.
Local developer flow:
cargo check --workspace --all-targets --locked
cargo test --workspace --all-targets --locked
cargo clippy --workspace --all-targets --locked --no-deps -- -D warningsRelease flow:
cargo build --workspace --locked --profile releaseNative plugins must document external toolchain requirements such as:
- MSVC / clang-cl;
- CMake;
- Ninja;
- Vulkan SDK;
- platform-specific SDKs.
| Team | Responsibility |
|---|---|
| Engine Team | Runtime host, gateways, API contracts, lifecycle, loading, diagnostics. |
| Rendering Team | Vulkan renderer, frame graph, shader/material systems, render passes. |
| Asset Team | AssetManager, codecs, NEF8 packages, import/export, content routing. |
| UI Team | AureliaUI, layout, styling, interaction, font/icon/render command pipeline. |
| Physics Team | Physics API, Jolt integration, simulation adapters, collision pipeline. |
| Tools Team | Developer tools, packers, inspectors, validators, build utilities. |
| Docs Team | Architecture, policies, onboarding, contribution guides. |
| Art & Experience Team | UI/UX, concepts, visual identity, demos, presentation assets. |
We welcome contributors who value disciplined engineering and creative freedom.
Before contributing:
- Read the repository
README.md. - Check
CONTRIBUTING.md. - Run the repository CI commands locally.
- Keep changes scoped.
- Avoid unrelated formatting churn.
- Prefer explicit contracts over hidden behavior.
- Document new runtime assumptions.
Please do not report security issues through public issues.
Use the repository SECURITY.md when available. If a repository does not yet provide one, open a minimal private contact request through the maintainers.
Licensing is repository-specific.
Some repositories may use permissive licensing, while internal runtime or studio infrastructure may use a proprietary policy. Always check the repository-level LICENSE, crate metadata and contribution terms before reuse.
Take Some() Entertainment builds tools for people who want to create without asking the engine for permission.
Host the runtime.
Declare the contract.
Load the plugin.
Route the asset.
Verify with CI.
Ship the experience.
