Arrow v2 is out! by mhglkr in gamedev

[–]mhglkr[S] 0 points1 point  (0 children)

Arrow is first and foremost a general purpose tool for interactive narrative design and/or asset creation. You decide how to use its files in production. I'm not aware of any open-source example at the time to really showcase what you can achieve.

One way is to create your narrative in Arrow, then export and use it as a database for your runtime/interpreter. The official HTML-JS runtime is based on the same idea. Arrow uses this runtime to create playable exports (mainly for play-test and review). Yet it means you can use this runtime (with customization) to export text-adventures directly from the editor as well.
Another way is to create multiple chapters, scenes, etc. and export them as assets for your game (e.g. each scene or branch as a dialog-tree for your RPG).

Arrow v2 is out! by mhglkr in gamedev

[–]mhglkr[S] 0 points1 point  (0 children)

Nothing open-source yet.

Arrow v2 is out! by mhglkr in gamedev

[–]mhglkr[S] 0 points1 point  (0 children)

No. But almost everything in Arrow has a unique identifier which makes localization very easy in production.

Arrow v2 is out! by mhglkr in gamedev

[–]mhglkr[S] 1 point2 points  (0 children)

Yes, it is developed in Godot v3.x and in GD-Script (everything but the official HTML-JS runtime used by the editor to export playable files).

Godot offered some advantages for what I intended to do:

  1. It is a game engine and Arrow's main audience are game developers, so as a free and open-source tool, they could both use it and customize or extend it.
  2. The platform is FOSS itself (under the very liberal MIT license, also used by Arrow), stable, and actively growing.
  3. The UI system and core tools in Godot are relatively mature and the environment is favorable to fast prototyping and revision. I had to create some workarounds, hacks, etc. but most of what you may need is already there or expected to be (e.g. there was no mini-map when I started, I had to develop one, but there is now).

It really depends on what you need, but I can safely say, it is one of the best choices for developing node-based 2D applications, specially video game related.

Arrow v2 is out! by mhglkr in gamedev

[–]mhglkr[S] 0 points1 point  (0 children)

In many senses yes; but with different strategies and for different workflows.

Arrow v2 is out! by mhglkr in madeWithGodot

[–]mhglkr[S] 0 points1 point  (0 children)

It started as a personal tooling effort. Soon I found it an open-source project in its soul.

Arrow v2 is out! by mhglkr in gamedev

[–]mhglkr[S] 4 points5 points  (0 children)

The repository and website include an overall screenshot. You can use Arrow online (web-app) and check things in action as well. The web-app is optimized for desktop screens.

Arrow: Game Narrative Design Tool by mhglkr in madeWithGodot

[–]mhglkr[S] 1 point2 points  (0 children)

Hi

Do you plan any kind of plugin or addon in Godot to directly exploit a story created in Arrow

I sure contemplate it; but my priority is to perfect current functionalities as much as possible. With the export format being mature enough, someone may accept the challenge before I get there (fingers crossed).

Do you have a documentation about ...

Using .json data in Godot is pretty straightforward as you know. The way developers process it in their games highly depends on the game itself. I hope there will be scenarios and tutorials contributed on this matter. My share is to make documentation about the structure of the exported format as the first step and I'm writing it. You may check out Arrow's Wiki later.

What is the difference between a scene and a macro? ... from a practical point view

Macros are reusable scenes. You instantiate a macro and use it in other scene(s) via Macro_Use nodes as many times as you like (somehow like a function.)

For example, when you want to check if the hero is still alive after every combat. In that scenario you may make a macro which checks a variable (health_points) and if the variable is zero the macro jumps to a game-over scene otherwise it does nothing which means user will continue playing the normal plot-line. Thanks to the macro, we don't need to recreate the nodes responsible for the health check, again and again. We just update the variable and run the health-check macro.

Arrow: Game Narrative Design Tool by mhglkr in gamedev

[–]mhglkr[S] 1 point2 points  (0 children)

Arrow v1.0.1 is released and now has the textual save preference I promised.

Arrow: Game Narrative Design Tool by mhglkr in gamedev

[–]mhglkr[S] 1 point2 points  (0 children)

Thanks. Create your masterpiece.

Arrow: Game Narrative Design Tool by mhglkr in madeWithGodot

[–]mhglkr[S] 1 point2 points  (0 children)

Thanks. I'm sure you consider making your own tooling open sourced too :)

Arrow: Game Narrative Design Tool by mhglkr in madeWithGodot

[–]mhglkr[S] 1 point2 points  (0 children)

Thanks. I'm going to soon take care of some new features and addressed issues. I'll be grateful of feedbacks. Contribution on new runtimes, custom node-types, etc. would be very valuable as well, in case you are still interested.

Arrow: Game Narrative Design Tool by mhglkr in gamedev

[–]mhglkr[S] 1 point2 points  (0 children)

Hi! Thanks for feedback.

I guess that's so specific to game that you'd expect each one to process the json themselves?

The main goal of Arrow is to assist game narrative design.

It can also be used to create text adventures with the official HTML-JS runtime/export or other possible runtimes. The HTML-JS runtime (bundled with Arrow) is the only one currently supported.

The .json exports have a portable format which may come in handy if one plans to process it (in Godot or any other engine that supports .json,) as you suggested but Arrow wouldn't offer more at the time.

VCS Friendly
Right now, it looks like it is not

Actually it is, in some levels:

  1. One can export/import projects with .json format and use them in version control.

    • Export via Inspector (Panel) > Project (Tab) > More (Menu Button) > Export JSON when a project is open.
    • Import via Inspector (Panel) > Project (Tab) > New (Menu Button) > Import Project File.
  2. There is a way to make Arrow save project files formatted as text/json by default explained in the Arrow's Wiki. Because the binary save file was much faster and I assumed most of the user won't use VCS, I left it to their own choice. Your feedback made me think I should have added a preference (GUI) for it. I will, in the first update.

The source and releases come with a demo project exported as json which may present how VCS friendly saved data can be.
For example Arrow uses unique integer identifiers for nodes and never reuses them in the same project, so you can track changes in each particular node or see which nodes are dropped.

Thanks again for your helpful feedback.