flutter3d_game 0.6.0
flutter3d_game: ^0.6.0 copied to clipboard
The game layer on top of flutter3d: the touch, keyboard, mouse and gamepad devices, with the whole of flutter3d_sim re-exported.
0.6.0 #
- A floor, and no code — the same shape as 0.5.1 and for the same reason.
The input devices, the fixed step and the interpolation are byte for byte
0.5.1's. What moved is the promise about the package this one re-exports
whole:
flutter3d_simis required at^0.6.0, so a caller reaching a simulation type through this name reaches a version that has it rather than whatever the resolver picked. pad_inputandpointer_lockstay at^0.4.0. They are on a line of their own, their 0.4.1 is a documentation patch, and a floor that demanded it would be claiming this package needs something it does not.
0.5.1 #
- A floor, and no code. Nothing in this package changed; what changed is
what it promises about the package it re-exports.
flutter3d_simis now required at 0.5.2 or above, because that is whereHeightfieldarrived and, through it,flutter3d_physics0.5.1 with the collision shape a body stands on. A caller reaching those names through this one was reaching whatever the resolver happened to pick, which for a^0.5.0floor could be a version without either — and the symptom is a compile error in somebody else's package.
0.5.0 #
Breaking. A stick use carries what it does, and an issue is an object.
PadStickUseis open, and its interpreter opened with it. It was an enum switched over in one method, so a game could not say its stick leans the ship. A use now is what it does with a deflection —routeagainst a narrowPadStickTarget,letGofor whatever it writes — and the three built in are instances rather than cases. There is no switch left to break.IssueSinktakes anIssue. A bare string could not grow a severity or a source without breaking every sink anybody had written.
0.4.1 #
- The simulation moved out, and nothing that imports this package changes a
line. The fixed step, the entity store, the level format, saves, demos, the
rewind buffer, actors, navigation and the maths are
flutter3d_simnow — a plain Dart package with no Flutter in it, so a server can replay a run through the same simulation the player ran. This package keeps the eight files that reached Flutter — the touch stick and button, keyboard and mouse, the gamepad route, theMediaQueryread and the diagnostics sink — and re-exportsflutter3d_simandflutter3d_physicswhole.
0.4.0 #
- A touch control lets go when it leaves. The button and the stick press
into a shared
InputState, and unmounting while pressed is a normal path — settings opening over the control, a level transition. Each now releases its held action or zeroes its axis indisposeinstead of leaving the runner jumping into the next screen.
0.3.0 #
Playingno longer askskIsWeb, and both answers it used to give about a browser were wrong. Capture is asked ofpointer_lock, which can now hold a pointer in a desktop browser and says so — and which says no on Windows and Linux, where the old platform list claimed a capture that does not exist and then turned off drag-look, leaving a camera that could not move at all. Touch is asked ofdefaultTargetPlatform, which reports a mobile browser asandroidoriOS, so a phone opening a web build finally gets the on-screen controls it has always had natively.InputTaperecords a run as transitions plus axes, one entry per fixed step, and replays it exactly. A tape of intents, not of poses.StepSystems: a game adds a rule to a genre's step without forking it. Phases are named by the genre, announced unconditionally, and run in a defined order — never in whatever order a hash map returns.InputStateexposes this step's presses, releases and analogue readings, which is what a recorder needs and cannot ask for by name.
0.2.0 #
- An ECS whose every component serialises, and one snapshot mechanism serving the save, the network packet and the determinism test.
- Actors with a flow field to walk it, mechanisms composed through signals, and movers that carry what stands on them.
- A pad and a touch layer that arrive as the same actions a key does, and
GameActionopened from an enum to a value class so a genre can invent its own. WorldStep: the order the world is stepped in, as named phases the game calls, because two genres want their actors on different sides of the index.
0.1.0 #
- A fixed timestep with an accumulator that reports the steps it had to drop, and interpolation at draw time.
- Device-independent input: actions, bindings, and a keyboard — all arriving as the same thing.
- Levels as documents — brushes, entities, lights, materials — with a validator that reports a coordinate rather than "the file is broken".