Features topic

Bullseye2D

A rapid 2D game library for Dart

  • Write once, run everywhere -- web browsers and desktop/mobile (native) (via SDL3) from a single codebase
  • 2D Library without wrestling huge frameworks
  • Code-centric approach to game development, valuing direct control and understanding of the engine's components

Features:

  • Multi-Platform

    • Web: WebGL2 rendering, Web Audio API, DOM input events
    • SDL3: SDL3 rendering (auto-selects Vulkan/Metal/D3D12/OpenGL)
    • Single API across all platforms -- no #if guards or platform-specific code needed
  • Graphics

    • Fast 2D rendering with automatic sprite batching
    • Texture loading & management (sprite sheets, filtering, mipmapping, wrapping)
    • Blend modes (alpha, additive, multiply, etc.)
    • Draw primitives (points, lines, rects, ovals, polys)
    • Bitmap fonts (with on the fly .ttf/.otf auto-atlas generation)
    • Matrix stack for 2D transformations (translate, rotate, scale)
  • Input Handling:

    • Keyboard (down, up, hit, char queue)
    • Mouse (position, buttons, wheel) -- plays nice with touch
    • Gamepad (multiple controllers, buttons, axes, triggers)
    • Accelerometer for motion (web/mobile only, no-op on desktop)
  • Audio Engine:

    • Play sounds and music
    • Multi-channel audio (32 channels, control volume, pan, playback rate per channel)
    • Sound retrigger delay control
    • Audio visualizer for music waveform data (works on both web and SDL3)
  • Resource Loading:

    • Easy loading for textures, sounds, fonts, and generic data files
    • Built-in progress loader
    • Texture & font caching
  • Game Loop & Structure:

    • Clear app lifecycle (onCreate, onUpdate, onRender)
    • Auto-handles focus loss (pauses/resumes your game)
    • Default loading screen included
    • Virtual resolution support
  • Utils:

    • Color & vector math utilities
    • A flexible debugging logger with tagging and filtering capabilities
Why build another engine?

Roadmap

Here are some ideas and plans for Bullseye2D:

  • Export/Bindings to VanillaJS and Typescript
  • Support for custom shaders
  • Add RenderTargets for rendering directly into framebuffers
  • Add Support for Tracker-Music-Formats (Protracker, Fasttracker ...)
  • Support for Tilemaps
  • Support for prebaked bitmap fonts
  • A simple themeable, immediate mode gui module
  • More online resources (youtube videos, tutorials, educational material)
  • An example creating / manipulating texture by data
  • Games as showcase and examples to learn from

Properties

dartDoc bool? Features Cheatsheet Getting Started My first App
This is just a unused variable to enforce the dart doc generator to include topics that aren't attached to a specific classes or functions.
getter/setter pair