Skip to content

survey: how other engines name targets #32

Description

@sp0lsh

Survey - how other engines name targets

Engine Target-crate / module naming Principle
Unity StandaloneWindows64, StandaloneLinuxUniversal, StandaloneOSX, WebGL, Android, iOS, PS5, XboxSeries, Switch Category prefix (Standalone/Web/Mobile/Console), platform suffix only when needed
Unreal Win64, Mac, Linux, IOS, Android, HTML5, XboxOne, PS4 + Shipping/Development configurations Platform name directly; no standalone/web abstraction
Godot "export templates": linux_server, web, android, iOS, windows, macos Platform name + optional role (server)
Flutter flutter build {apk,ios,web,windows,macos,linux} Platform name directly
Bevy No per-target crate. cfg(target_arch = "wasm32") + Cargo features (x11, wayland, webgl2) Single-crate, feature-gated
macroquad Single-crate, #[macroquad::main] works native + web Single-crate, silent cross-target
Tauri src-tauri/ (native shell) + webview frontend (no name per-target) Two-role split, not per-target

Takeaways:

  • Unity's category prefix model is the widest-adopted for multi-target runtimes that load user code (same model PillEngine uses). pill_standalone fits directly into Unity's "Standalone" bucket.
  • "Native" is ambiguous - different audiences parse it as JNI-vs-managed / C++-vs-Dart / AOT-vs-JIT.
  • "Desktop" is cleaner than "standalone" on brevity but collides with mobile-vs-desktop layout metaphors; Unity chose "Standalone" over "Desktop" for this reason.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions