peaashmeter / npdart

A minimal game engine for visual novels, based on Flutter.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

npdart

A minimal game engine for creating visual novels. Please check the example folder before use.

Features:

  • Global and local game state management
  • Scene tree
  • Basic persistence (including autosaves)
  • Rendering backgrounds and foreground sprites
  • Sounds
  • Textbox with RichText support

Example:

void main(){
  runApp(const Example());
}

class Example extends StatelessWidget {
  const Example({
    super.key,
  });
  @override
  Widget build(BuildContext context) {
    const prefs = Preferences(savePath: '/example/');

    return MaterialApp(
      home: FutureBuilder(
        future: getDefaultInitialSaveData(prefs),
        builder: (context, snapshot) {
          if (!snapshot.hasData) return Container(color: Colors.black);

          return Novel(
              initialState: snapshot.data!,
              tree: Tree(scenes: {
                'root': Scene(script: (stage, state) async => state.loadScene('root'))
              }),
              preferences: prefs);
        },
      ),
    );
  }
}

About

A minimal game engine for visual novels, based on Flutter.

License:MIT License


Languages

Language:Dart 72.9%Language:C++ 13.7%Language:CMake 7.3%Language:Ruby 2.0%Language:Swift 1.6%Language:HTML 1.3%Language:C 0.5%Language:Java 0.5%Language:Kotlin 0.1%Language:Objective-C 0.0%