become_a_painter.md 5.16 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
# Become a painter

Do you want to visualize legends data yourself! You are in the right place.
Here you find some of out finest sketches. There is something for everyone,
take a look around. These sketches should help you get started.
And you will be a legendary painter in no time!

You can find out assortment of [sketches here](https://gitlab.com/df_storyteller/df-storyteller-sketches).

If you like to show of your own creations or just want to browse, take a look
at our [gallery](paintings.md). If you want to create a canvas using you
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
preferred materials please share it, so we can add it to the list above.

## Things you need to know
If you want to become a painter note the following things as they will effect you.

### Backwards compatibility
We will try to support most of the versions of Dwarf Fortress in future versions of the 
application but we might need to have breaking changes at some point to further the 
development of the application. For more information see [this page](docs/versions.md).

For changes you can also look at the [application changes](CHANGELOG.md)
and [api changes](CHANGELOG_API.md).

### DF Version
All of the API calls have version numbers attached to them this way you can see
what version of DF Storyteller people will need to run your application.
Just keep track of the highest version number.
Because of our [update policy](docs/versions.md) you don't have to worry about this to
much as we will force users to update after a year.

### DF Storyteller Settings
Users can change different [settings](docs/settings.md) in there application that should
directly effect the UI. These settings and preferences can be acquired using the `/api/df_st_info` 
API call. The `base_url` can be acquired here, of course the first API url has to be provided somehow. 
For this you should allow some way for the user to input this url at the start.
We will show the base URL to the user in the terminal so you can refer to this to the user.

### Pre version 1.0.0
We are still developing and updating our API and application so things might change quickly.
This means that we will change API output and maybe even API calls at any point.
We want to make our API intuitive to new painters and thus responses might change name.
We are planning to make out API more stable in release `1.0.0`. Before this your painting might
break frequently, sorry. But to make it up to you we will document all our (breaking) changes
to our API in our [`CHANGELOG_API.md` file](CHANGELOG_API.md).

Ralph Bisschops's avatar
Ralph Bisschops committed
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
### Language and Technologies
Because RESTful APIs are supported almost everywhere these days you have a lot
of choice what language and technologies to use. But we have some
suggestion and remarks you might want to take into account.

Because DF Storyteller has build in support for the hosting of files through the
"serve-paintings" folder. And because of a lot of other reasons we **highly**
recommend you use standard web technologies and/or languages.

The best choice is to use web technologies like 
[HTML](https://developer.mozilla.org/en-US/docs/Web/HTML), 
[CSS](https://developer.mozilla.org/en-US/docs/Web/CSS) and 
[JS](https://developer.mozilla.org/en-US/docs/Web/JavaScript) or even 
[Web Assembly](https://developer.mozilla.org/en-US/docs/WebAssembly).
These are easy to use, both for the developer and user and are more then
capable of almost everything you need.

But if you really want to use something else, go ahead. We all like to experiment sometimes.
Here are some popular options and some advice/comments regarding the creation of visualizers,
(but meanings differ[^1]:
* Rust: Best to compile to Web Assembly, you have the power of Rust and
the flexibility of the web.
* Node.js: Just compile it to JS and run it in the browser or
compile to Web Assembly. Both are better options then making the user
install node.js.
* Python: A very common beginners language, but for DF Storyteller we recommend JS as a beginners language.
* Korlin: Have not used it, but seems popular.
* Go: Popular but have not used it.
* C#: Not great for cross platform support, in most cases, but can be cross platform.
* Java: JVM is installed by a lot of users these days, but a bit heavy in
most cases here. Also UI might not be the best.
* C++: Just please learn Rust, you don't want to start another C++ project these days, al least not for this, unless you REALLY want to.
* ...

81 82 83 84 85 86
**Mobile development**: We still recommend using web technologies, but native applications
could also work. This can even work withouts needing to have DF ST working on the mobile device.
This is because to can run DF ST on your computer and just connect to it over LAN.
You can not use it on the go that way, but it can be used until DF ST is working on
mobile devices.

Ralph Bisschops's avatar
Ralph Bisschops committed
87 88 89 90 91 92 93 94
[^1]: You might have different opinions then I do, and that is good.
If you want to use a language, please do! I just want to help you make the right decision.

**PHP**: In the past PHP was a popular language for creating websites.
But because of the client side nature we do **NOT** suggest you 
use it to create visualizers. For more info and discussions look
[here](https://gitlab.com/df_storyteller/df-storyteller/issues/64).

95 96
## Technical info
For more technical info [look here](docs/technical.md).