Skip to content

Patch note


V 0.1 : August 1, 2026

First public release of RE:MAKE 2D. All core engine functionality is included below, organized by module.

Core

  • Signal<Args...> — connect/join, priority slots, one-shot slots, condition-based auto emission (bind, bindRising, bindFalling, bindChange)
  • EventManager (event) — 300+ signals covering keyboard, mouse, gamepad, touch, window and application events
  • Croutine<Args...> — coroutine-based concurrency with a 3-lane thread pool (engine, heavy, user), rmk_pause/rmk_await/rmk_lockedPause
  • PauseGuard / SharedPause — coroutine-safe locks for use across rmk_pause()
  • System (system) — Setup/Toggle/Info sub-interfaces for engine configuration and host platform info
  • Error and per-module error subtypes, rmk_dynamicAssert

Graphics

  • Window — multi-window support, viewports, blend modes, draw/fill for shapes, textures, tilemaps, parallax
  • MainRenderLoop (loop) — main loop driving event polling, physics, and (as of this patch) animation updates
  • Shape<POINT_COUNT> / Geometry — regular polygon shapes, SAT collision, Point, Line, Triangle, Rectangle, Square, Circle, Losange, Hexagone, Ellipse
  • Camera — smoothing, zoom, boundary limits, follow (Vec2d, Geometry, PhysicBody)

Texture

  • Texture<S> — image mapped onto an arbitrary IsShape geometry's actual contour, not just its bounding box
  • SpriteTexture<Rectangle> alias for the common rectangular case
  • Text / FontManager (font) — font loading, anchoring, wrapping, formatting tokens (fmt::nl, tab, endl, flush)
  • Animation — sprite-sheet playback with loop count and FPS control; frame advancement is now handled automatically by the engine's main loop rather than requiring a manual per-frame call

Sound

  • Music / SFX (Sound base) — OGG/MP3/FLAC music, WAV effects, per-channel SFX playback, onFinish signal

Physics

  • PhysicBody / StaticBody / DynamicBody (Box2D-backed) — mass, friction, bounce, gravity toggle, bullet mode, warp/limit zones
  • PhysicManager (physics) — world bounds, gravity, pixels-per-meter ratio, body registry
  • Contact signals — onContact, onContactStart, onContactEnd
  • Movement signals — onMove, onMoveUp, onMoveDown, onMoveLeft, onMoveRight

Maps

  • TileMap — tile layout loading, tagging, async physics build, camera-aware culling and rescaling via linked viewport
  • TileGrid — lightweight cell-only grid, no texture/physics overhead
  • Parallax — multi-layer scrolling backgrounds with per-layer speed quotients

Time

  • DeltaTime (delta) — frame delta, FPS tracking, configurable frame rate cap
  • Timer / TimerManager (timer) — countdown with onTimeout, pause/resume, repeat
  • Chronometer — free-running elapsed time counter with pause/resume
  • Date / Clock — parseable/formattable calendar date and time-of-day types

Tools

  • math — full arithmetic operator set (+ - / * %) for Vec2d, Dim2d, Fact2d, Grid2d, Area, Color; comparison operators for Date/Clock
  • streamostream/istream support for base types, chainable Text building via <<
  • conceptIsShape, IsTexture, IsPhysic, IsActor, IsSignal, IsSavable, IsBasicType
  • utilityNil/nil, angle conversion + literals, physics unit conversion, layer helpers, file::jump, color/HSL conversion
  • Random (random) — seeded Mersenne Twister, rand<T> for numeric/Vec2d/Dim2d/Color (HSL-interpolated), choice, chance, dice, mixColor
  • Scene / Act — layered actor/function updates, scene grouping and focus switching

Data & Script

  • Data — variant container for all base types plus nested lists/maps
  • ISavablesdata/ldata interface for custom savable types
  • DataFile / SaveManager (data) — JSON persistence, <</>> streaming
  • Script / SolState (script) — Lua hot-reload via sol2, registerType, loadVar, full engine type exposure to Lua

V 0.2 : August 2, 2026

First patch of RE:MAKE 2D beta version.

Texture

Text and animations now render correctly Text and Animation could remain invisible on screen despite loading their resources successfully. This is now fixed — both display properly, including after being moved, rotated, or resized.

Color tinting now works on text and sprites The color passed to Window::draw(...) previously had no visible effect on text or animated sprites — they always kept their original color. This is now fixed, including for Parallax and TileMap.

Testing notes

Snake demo: high score is now saved correctly In the sample game, the best score wasn't being kept after a restart. It's now properly saved and persists between sessions.


previous