Features topic
🎯 Bullseye2D
A rapid 2D game prototyping library for Dart
- Quickly prototype and build web games
- 2D Library witihout wrestling huge frameworks
- Code-centric approach to game dvelopment, valuing direct control and understanding of the engine's components.
Features:
-
Graphics
- Fast 2D rendering with WebGL2.
- 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).
-
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 stuff.
-
Audio Engine:
- Play sounds and music.
- Multi-channel audio (control volume, pan, playback rate per channel).
- Sound retrigger delay control.
-
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 browser focus (pauses/resumes your game).
- Default loading screen included.
- Clear app lifecycle (
-
Utils:
- Matrix stack for easy 2D transformations (translate, rotate, scale).
- Color & vector math utilities.
- A flexible debugging logger with tagging and filtering capabilities.
Why build another engine?
Roadmap
Here are some ideas and plans what I want to add next to Bullseye2D:
- Compile to native desktop apps (Windows/Mac/Linux/maybe even Consoles)
- 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
- Improve Documentation
- Official Website
- More online resources (youtube videos, tutorial, educational material)
- An example creating / manipulating texture by data
- Maybe a per frame renderbuffer :)
- 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.
{@category Getting_Started}
{@category TutorialFirstApp}
{@category Features}
{@category Cheatsheet}
getter/setter pair