Git Product home page Git Product logo

webstory-engine's Introduction

WebStory Engine

PLEASE READ: This project is no longer actively developed. Bugs can still be reported using the issue tracker and might get fixed, but no new features will be added any time soon (maybe never). If you want to take over, just fork the project and rename it to something else. Thanks for your understanding!

WebStory Engine is an engine for interactive web stories (e.g. visual novels). WebStories are written in an easy-to-use yet powerful XML format and run directly in the browser.

Examples and documentation at: WebStoryEngine.org

Attributions

Sounds, backgrounds and character sprites contained are in the public domain unless otherwise noted.

The engine uses MO5.js (BSD License), which itself uses Robert Penner's easing equations (BSD License).

The ease-out bounce function has been ported (also under BSD License) to JavaScript by George McGinley Smith.

The license agreements are contained within the source code.

Contributors

If you've contributed something to the project, please add yourself to this list.

  • C7N
  • lolbot-iichan

License

License: BSD 3-Clause License.

See LICENSE.txt file that you should have received along with the project for the complete text of the license.

webstory-engine's People

Contributors

gitter-badger avatar jsteinbeck avatar lolbot-iichan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webstory-engine's Issues

"shake" command makes the engine crash

When using the "shake" command like this:

. shake @backgrounds, dx 20

The game crashes with this error:

Uncaught TypeError: transform(...).then is not a function at Imagepack.DisplayObject.shake (WebStoryEngine.js:14002) at Interpreter.runCommand (WebStoryEngine.js:11754) at Interpreter.next (WebStoryEngine.js:11601) at WebStoryEngine.js:11593 DisplayObject.shake @ WebStoryEngine.js:14002 Interpreter.runCommand @ WebStoryEngine.js:11754 Interpreter.next @ WebStoryEngine.js:11601 (anonymous) @ WebStoryEngine.js:11593

It only happens when dx or dy have a value (that is, when using shake actually tries to do something)

Add contribution guide to documentation

The documentation doesn't state how people can help improve WebStory Engine.

The documentation should contain the following information:

  • Examples for how to contribute (not only with code!)
  • Describe the git workflow the project uses
  • Explain how to contribute to the documentation
  • Point to tasks that contributors can pick up
  • Explain what to do when a user finds a bug

Changing the order of assets invalidates older savegames

Currently assets use WSE.tools.getUniqueId() to obtain a unique ID which enables them to identify their elements on the stage as well as their potion of a savegame.

The assets get their unique IDs in the order in which they appear inside the WebStory. When the developer changes the order, e.g. by adding an asset between two existing assets, savegames made before adding the asset break.

Proposed solution: use the name of the asset instead of a unique ID - the name should be unique anyway.

Wait command ignored when triggering next too fast

Some "wait" commands may be ignored when the user clicks on the stage or hits a key bound to "next" really fast. This is especially bad on choices, because commands following the choice may be executed when nothing has been clicked on the choice menu yet.

This bug needs to be fixed before releasing the next version.

Allow custom dataSources

Currently the data source used for savegames and persistent vars is hardcoded and cannot be changed. The engine user should be able to write their own data source and use it with the engine.

Music is turned off in some cases.

It is related to fades and reproduces with code like this:

<stop asset="music" fade="true" fadeout="1000"/>
<wait />
<set asset="music" track="badass" />
<play asset="music" />

If you wait long enough, everything is Ok.
If not, fadeout is not cancelled and new track fades out and stops, lol.

This should be fixed with pull request #22

Implement node.js-based CLI

A command line interface for WebStory Engine would make it easier for engine users to manage their projects.

The CLI should ideally have commands for the following common tasks:

  • Initialize a new WSE project
  • Generate standalone browser build (no server required to run the game)
  • Generate desktop apps using electron
  • Lint the story files

Many instances of music is started simultaniously if game is &lt;restart/&gt;'ed

Minimal test is:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<ws>
<settings>
<stage width="900px" height="636px" id="Stage" create="yes" center="yes" />
<triggers/>
</settings>
<assets>
<audio name="music" loop="true" fade="false" autopause="true">
<track title="main_menu_music">
<source href="game/main.mp3" type="mp3" />
<source href="game/main.ogg" type="ogg" />
</track>
</audio>
</assets>
<scenes>
<scene id="start">
<set asset="music" track="main_menu_music" />
<play asset="music" fadein="100"/>
<break/>
<restart/>
</scene>
</scenes>
</ws>

  1. Win the game several times.
  2. Change focus to another window.
  3. Go back to browser.
    Result: many instances of music is started simultaniously.

Textbox typewriter effect doesn't ignore multiple spaces in a row

The typewriter effect on textboxes, introduced in the 0.3 branch, takes time waiting for multiple whitespace characters in a row which looks really awkward.

Multiple whitespace characters should be replaced with a single space character before starting the effect.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.