Library / SDK
Gamua/Starling-Framework avatar
Gamua/Starling-Framework

Starling Framework: a GPU 2D engine for ActionScript 3 on Adobe AIR

The Cross Platform Game Engine

3,109 stars811 forksActionScriptNOASSERTION

At a glance

What is it?
Starling renders a Flash-style display tree through Stage3D so ActionScript 3 games can run on iOS, Android, Windows and macOS via Adobe AIR. It is a small, readable framework rather than a full editor-based engine, and the latest release is v2.8 from 2026-01-02.
Who is it for?
Adopt Starling if you already ship ActionScript 3 on Adobe AIR and need GPU-rendered 2D without rewriting in another language; the README states the target is 2D games, and the repository ships samples/demo_mobile, samples/demo_web and samples/scaffold_mobile to start from. Do not adopt it if your team has no AIR toolchain, since the README points to the HARMAN AIR SDK as the runtime you must install first.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 76 days ago.
What is it written in?
Mainly ActionScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What Starling solves, and for whom

ActionScript 3 developers who built 2D games on the classic Flash display list hit a ceiling: that display tree was designed for the CPU, and the README says Starling exists because its own display tree, while mimicking the Adobe AIR/Flash architecture, renders every object directly on the GPU through the Stage3D API. So the audience is narrow and specific. You are expected to know ActionScript 3, you are expected to be deploying through Adobe AIR, and you are expected to want 2D. The README states the main target is 2D game creation but adds that Starling may be used for any graphical application. It is not a level editor, an asset pipeline or a physics system. It is the rendering and scene layer you build those things on top of. With under 20k lines of code, per the README, the project's stated aim is that an experienced developer can read the whole thing, which is a different promise from the one a large editor-based engine makes.

How the Stage3D rendering path actually works

Starling keeps the mental model Flash developers already have. You add objects to a display tree, you nest them, you set transforms and alpha, and you get the familiar parent-child semantics. The difference is underneath: those objects are batched and drawn by the GPU via Stage3D instead of being rasterised by the CPU. That is the whole architectural bet, and it explains the two design choices the README highlights. First, Stage3D internals are hidden by default, so a developer who only wants sprites and textures never has to write shader code. Second, those internals remain reachable, so a developer who needs full performance and flexibility can drop down to them without leaving the framework. The repository layout reflects that split: the engine lives in starling/, samples/ holds runnable projects, tests/ holds the test code, and util/ holds supporting tooling. Extensions are not in the core; the README links to a wiki page for them, which is a deliberate boundary rather than an accident.

Installing the AIR SDK and running the scaffold_mobile sample

Starling does not ship its own runtime. The README links to the AIR SDK provided by HARMAN as the place to get the latest SDK, so the install path is: get an AIR SDK, get a Starling build, and compile the two together. The repository's samples/ directory gives you working reference projects, including samples/scaffold_mobile, which is the smallest starting point for a mobile app. A Starling application begins by constructing a Starling instance and handing it a class that extends the framework's sprite type, then adding that instance to the stage. The exact class names come from the API reference, not from the README, so treat the shape below as the entry point rather than a copy-paste file.

bash
# Get the AIR SDK from the HARMAN page linked in the README, then
# open one of the repository samples in your ActionScript IDE:
#   samples/scaffold_mobile/   minimal mobile project
#   samples/demo_mobile/       fuller mobile demo
#   samples/demo_web/          browser-targeted demo

Once the sample compiles and runs, the first real change is to replace the sample's root sprite with your own and confirm that your content is being drawn by the GPU path rather than the classic display list. If the sample runs but your own scene does not, the problem is almost always in how you started Starling, not in the scene graph.

Where Starling is the wrong tool

The dependency on Adobe AIR is the hard boundary. The README lists iOS, Android, Windows and macOS as deployment targets, all reached through AIR. If your project needs a web build that runs without an AIR runtime, or a console target, nothing in the README claims to cover it. The second limitation is the language. ActionScript 3 is the only way to write against this framework, so a team without AS3 experience is buying a language migration along with the engine. Third, the release history is uneven. v2.8 arrived on 2026-01-02, but the release before it, v2.7, was on 2021-07-27, and v2.6 was on 2020-02-11. A framework that goes years between releases is not one where you should expect upstream fixes to arrive on your schedule; the README's own framing, that the source is small enough to read and modify, is effectively the project telling you that patching it yourself is a supported path. The last push to the repository was on 2026-07-17.

Starling compared with a full game engine

The honest alternative is not another ActionScript renderer; it is a complete engine such as Unity or Godot, where the editor, scene format, asset import and build pipeline are part of the product. The difference in approach is scope. Starling gives you a rendering and display-tree layer and expects you to assemble everything else, which is why the README points to a wiki for extensions instead of shipping them. A full engine gives you the assembled toolchain and expects you to accept its language, its editor and its build system. Starling's advantage is that the entire framework is under 20k lines, so a small team can understand and change any part of it. Its disadvantage is that the same small team owns the missing pieces. If your game is mostly rendering and input, Starling's trade is favourable. If it needs an editor-driven content pipeline, it is not.

Maintenance cost, release cadence and licensing

Budget for reading the source. The gap between v2.7 and v2.8 means any fix you need between releases is yours to write, and CHANGELOG.md at the repository root is the place to check what actually changed before you upgrade, rather than assuming compatibility. The samples in samples/demo_mobile, samples/demo_web and samples/scaffold_mobile are the reference for how a working project is structured, and they are worth diffing against your own project after a version bump. On licensing, the repository reports NOASSERTION, which means the automated classifier could not map the licence to a standard identifier; the actual terms are in LICENSE.md at the repository root and differ from what a SPDX label would tell you. Read that file before you ship a commercial build, and if the terms matter to your business, have someone qualified read it too. Nothing here is legal advice.

Editorial conclusion

Adopt Starling if you already ship ActionScript 3 on Adobe AIR and need GPU-rendered 2D without rewriting in another language; the README states the target is 2D games, and the repository ships samples/demo_mobile, samples/demo_web and samples/scaffold_mobile to start from. Do not adopt it if your team has no AIR toolchain, since the README points to the HARMAN AIR SDK as the runtime you must install first. Before committing, verify that the AIR SDK version you plan to use still matches the Stage3D behaviour your target devices expose, and read CHANGELOG.md to see what changed between v2.7 (2021-07-27) and v2.8 (2026-01-02), because that five-year gap is the real upgrade risk.

Frequently asked questions

What is the best game development framework?

That depends on your language and target, and Starling only answers it for one case: ActionScript 3 developers deploying through Adobe AIR who need GPU-rendered 2D. The README states the main target is 2D game creation, and that Starling may be used for any graphical application.

What is game engine programming?

In Starling's case it means working at the rendering and display-tree layer: you add objects to a tree, set transforms and alpha, and the framework batches them to the GPU through Stage3D. The README notes the framework hides Stage3D internals but keeps them reachable for developers who need full performance and flexibility.

What is the difference between a game framework and an engine?

Starling is a framework: it supplies a rendering and display-tree layer and leaves the rest of the toolchain to you, which is why extensions live on a wiki page rather than in the core. A full engine bundles the editor, asset pipeline and build system as one product.

Official sources

  1. Gamua/Starling-Framework on GitHub
  2. Issues
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/gamua-starling-framework.svg)](https://hysenlabs.com/projects/gamua-starling-framework)