TirNanoG Open Source RPG engine

Re: TirNanoG Open Source RPG engine

Postby farrer » 27 Jan 2022, 19:56

My fault, my eyes focused on the page body and forgot about the "headers".

bzt {l Wrote}:1. for the language selector, how to write Portuguese in Portuguese? Is it "Português"? (for some languages, this question isn't as trivial as one might think...)


Yes, it's "Português".

bzt {l Wrote}:2. please translate the menu too. Basically the same as the headings, but it must have short versions, preferably one word. For example "Capturas de Tela" is definitely too long for the menu. Also "Home" and "Issues" have no heading and they are impossible to translate with Google Translate, those need a native speaker for sure ("Home" as in go the main page, and "Issues" as in go to the bug tracker; again, both needs a short, preferably one word translation).


{l Code}: {l Select All Code}
Início
Instalação
Templates
Documentação
Fotos
Problemas


Maybe you should change the Portuguese screenshots' heading from "Capturas de Tela" (ie: screenshots) to "Fotos" (ie: pictures) too, to keep them equal.

bzt {l Wrote}:3. please translate this sentence as well: "The translation is not ready yet. Redirecting to the manual in English" (this is shown when someone clicks on the "Manual do Usuário" link, because the Portuguese translation for the manual isn't ready yet).


"A tradução ainda não está disponível. Redirecionando ao manual em inglês."
User avatar
farrer
 
Posts: 109
Joined: 24 Feb 2014, 21:00

Re: TirNanoG Open Source RPG engine

Postby bzt » 28 Jan 2022, 18:41

Thank you very much @farrer!

I've added the Portuguese language, and when I did, I've realized there's still one more paragraph missing (this is the last one, I promise). It is in section "Installation", under the list with small font:
{l Code}: {l Select All Code}
You can use the executable in the archive as-is, the other files only provide integration with your desktop (icons and such).
It will autodetect your operating system's configured language, and if a dictionary is found, the editor will greet you in your language.
That's it, that's the last one! Everything else is in place!

Thanks again,
bzt
User avatar
bzt
 
Posts: 214
Joined: 23 May 2021, 21:46

Re: TirNanoG Open Source RPG engine

Postby farrer » 29 Jan 2022, 14:26

Here we go:

{l Code}: {l Select All Code}
Você pode utilizar somente o executável se desejar: os demais arquivos apenas realizam a integração com sua área de trabalho (ícones e outros arquivos do tipo).
O executável detectará automaticamente a linguagem do sistema, e se um dicionário for encontrado, o editor utilizará a mesma.


Thinking about it, this "dictionary" is a .po file or something like that? If yes, you could point me out the file and I can also translate it before each new release.
User avatar
farrer
 
Posts: 109
Joined: 24 Feb 2014, 21:00

Re: TirNanoG Open Source RPG engine

Postby bzt » 29 Jan 2022, 21:23

farrer {l Wrote}:Here we go:
Thank you! I'll update the website ASAP!

farrer {l Wrote}:Thinking about it, this "dictionary" is a .po file or something like that? If yes, you could point me out the file and I can also translate it before each new release.
Well, something very similar to that. Technically they are C header files, but there's absolutely no code in them, just a bunch of strings.

The "msgid" part is in here, and the keys named hopefully in a straightforward self-describing way. All strings that appear on a certain page are prefixed the same way (for example all strings on the file operations page start with FILEOP_, all strings on the cutscene editor page start with CUTSCN_, etc. you get the idea. Strings that are displayed on multiple pages (typically button labels) are near the end and prefixed by LANG_, for example LANG_SAVE, LANG_OK etc.).

The translated strings (the "msgstr" part) is in here for example (for the English version), and only contains strings, nothing else. For a Portuguese dictionary, one would need to add a lang_pt.h file. I recommend to copy lang_en.h and modify that.

Do not start translating it just yet, because I'm still working on it and it is subject to change (at least the ones starting with SAVEEXT_ will change for sure, and I might have add some new ERR_ strings too for the .tng format export/import. I'm planning to finish this within a few days. The rest of the keys are final though, with no plans to change those.) I won't lie to you, translating the editor would be very very much appreciated, but it is a LOT, really a LOT, about 1000 sentences and phrases.

The manual's source isn't .po either, it is stored in MarkDown files, and I think it's final (at least there are no planned changes in the near future, save fixing typos). It might be easier to translate that (but that's a LOT too). I might have overdone the manual a bit, the English version is almost half a megabyte when turned into HTML, so lots of text there too.

BTW, the built-in translator that you can use to translate the games themselves does actually use .po files :-)

Cheers,
bzt
User avatar
bzt
 
Posts: 214
Joined: 23 May 2021, 21:46

Re: TirNanoG Open Source RPG engine

Postby farrer » 31 Jan 2022, 16:59

bzt {l Wrote}:Do not start translating it just yet, because I'm still working on it and it is subject to change (at least the ones starting with SAVEEXT_ will change for sure, and I might have add some new ERR_ strings too for the .tng format export/import. I'm planning to finish this within a few days. The rest of the keys are final though, with no plans to change those.) I won't lie to you, translating the editor would be very very much appreciated, but it is a LOT, really a LOT, about 1000 sentences and phrases.


Understood. When the sentences and phrases become somewhat stable, just ask here and I'll try to translate them. The same for the manual, as I believe it will evolve a lot as the implementation goes further.

Anyway, keep going with this great (and big) project!
User avatar
farrer
 
Posts: 109
Joined: 24 Feb 2014, 21:00

Re: TirNanoG Open Source RPG engine

Postby bzt » 01 Feb 2022, 16:01

farrer {l Wrote}:Understood. When the sentences and phrases become somewhat stable, just ask here and I'll try to translate them.
Ok, they are now :-) I might will add some new error messages, but otherwise the existing keys are final. (I wrote on 29 Jan that I need a few days, but it actually only took one day to finish the "Save as Extension" interface. I haven't uploaded the binaries yet, but the source in the repo along with the lang.h and lang_en.h are final).
farrer {l Wrote}:The same for the manual, as I believe it will evolve a lot as the implementation goes further.
Nope, I consider it final too. The featureset is complete, there's nothing I would want to add or change (at least for the first release most certainly this is everything), so I'm not planning to change the interface any more, therefore the manual is up-to-date and there's no need to evolve it (again, as long as the first release concerned). I went through it a few days ago and got all the typos fixed, but I might have to fix some more if/when I find more, but that's everything.

I've also added a small README for you (and for other future contributors) on how to translate the manual. Basically you are free to translate as you wish, but heading ids must be unique and if a heading has an alias (like "tab0", "tab1"... "tab21") do not change that alias. Strictly speaking you won't need "gendoc", because I'll generate the doc anyway, and I'll update the "pages" branch, but I suggest to install that because it does a through check on the source document and gives you very very useful error messages that helps a lot with unique headings, unresolved internal links, misspelled image urls and such.

farrer {l Wrote}:Anyway, keep going with this great (and big) project!
Thanks! I'm planning to finish it within a week. The distribution format exporter is about 60% done, then I'll have to implement the importer. Neither of these should change the editor from user's perspective. Otherwise nothing left to do in the editor (except for bugfixes of course). So I'm planning to moving on to next phase next week: implementing the player, but this also depends on how much free time I'll have.

Cheers,
bzt
User avatar
bzt
 
Posts: 214
Joined: 23 May 2021, 21:46

Re: TirNanoG Open Source RPG engine

Postby farrer » 12 Feb 2022, 16:28

Finally, got some time and translated the editor's strings. I've uploaded it here.

A few notes about the translation process. Although I believe that you already measured the pros and cons of using a translatable header file, I do believe that there are some big concerns that could make future translations' process awful:

1. The translated strings are position dependent. It's too easy to make a mistake when translating, removing or adding a string. The error will be noticeable when compiling, but discovering the additional or removed string is a pain.
2. Adding new strings to be translated will be an arduous process: if added at the end of file (the easiest to update), you'll lose the context of use that the translator could take as a hint. If you add near other strings of the same context, doing the same process on each already translated file will be a pain (and also to the translators of those already existent translations to find what they should update. etc).
3. As a translator, the need to compile/recompile the project just to see how the translation works on-the-screen is maybe too much. It also keep away potential translators which aren't programmers or know how to compile it.
4. Some strings are duplicated (or even more), and so, re-translated n-times.

Anyway, just to point it out. Header translatable files works and for the end-user it's what is important.
User avatar
farrer
 
Posts: 109
Joined: 24 Feb 2014, 21:00

Re: TirNanoG Open Source RPG engine

Postby bzt » 13 Feb 2022, 12:27

farrer {l Wrote}:Finally, got some time and translated the editor's strings. I've uploaded it here.
Thank you! I'll add it ASAP.

farrer {l Wrote}:A few notes about the translation process. Although I believe that you already measured the pros and cons of using a translatable header file, I do believe that there are some big concerns that could make future translations' process awful:

1. The translated strings are position dependent. It's too easy to make a mistake when translating, removing or adding a string. The error will be noticeable when compiling, but discovering the additional or removed string is a pain.
Quote the contrary, being position dependent makes it super easy, you just have to take a quick look at the line number and that's it.
farrer {l Wrote}:2. Adding new strings to be translated will be an arduous process: if added at the end of file (the easiest to update), you'll lose the context of use that the translator could take as a hint. If you add near other strings of the same context, doing the same process on each already translated file will be a pain (and also to the translators of those already existent translations to find what they should update. etc).
Try using an editor which shows the line numbers. Most IDE can do this, but also supported by many many text editors. That's how I do it: I open all language headers on different tabs, and scroll them simultaneously, so I can see if the line numbers are aligned.
farrer {l Wrote}:3. As a translator, the need to compile/recompile the project just to see how the translation works on-the-screen is maybe too much. It also keep away potential translators which aren't programmers or know how to compile it.
That's true. However the application must be a portable executable, which means no installation and no shipped configuration (like language) files, it must embed the dictionaries. I'll try to add more header files for languages to the repo, so that translators will only have to fix one or two strings in them, and they won't have to worry about creating files, line positions and compilation etc. (BTW, using defines and string arrays for dictionaries was originally ESR's idea, I've just splitted that array into separate header files.)
farrer {l Wrote}:4. Some strings are duplicated (or even more), and so, re-translated n-times.
No, they are not, they just look like it :-) Joke aside, English is a very simple language with a not so big vocabulary. For example, in German the string "Login" needs different translations if it appears as a heading ("Loginseite") or as a button label ("Einloggen"). Or another example, in my language "Player" has more translations: one for the tool that plays the game ("Lejátszó") and one for the person using the tool and actually playing the game ("Játékos"). These are different strings, they just happen to be using the same word in English.

farrer {l Wrote}:Anyway, just to point it out. Header translatable files works and for the end-user it's what is important.
Yes, they admittedly aren't perfect, but nevertheless the simplest possible solution for embedding dictionaries.

Thanks again for your work! In return I can offer you an editor license which allows creating encrypted game files and allows you to choose whatever license you want for your game (commercial and proprietary included as long as you only use game assets for which you own the copyright).

Cheers,
bzt
User avatar
bzt
 
Posts: 214
Joined: 23 May 2021, 21:46

Re: TirNanoG Open Source RPG engine

Postby bzt » 15 Feb 2022, 20:05

Image

The TirNanoG Editor version 1.0 Release Candidate is available for download!
With all the features and all the language dictionaries (English, Portuguese and Hungarian are checked and verified, others might need some fix, I just did a quick'n'dirty GT on them).

The TirNanoG File Format has been finalized and I've also updated all the documentations, specifications and the User's Manual.

Cheers,
bzt
User avatar
bzt
 
Posts: 214
Joined: 23 May 2021, 21:46

Re: TirNanoG Open Source RPG engine

Postby bzt » 26 Feb 2022, 20:26

Another good news!

After more than a week of hard work, the TirNanoG Player finally can open game files! It does not parse them yet, just open. This might not sound much, but it actually is! (The emscripten port was particularly a major PITA.) This also includes things like a simple launcher if game file wasn't provided on the command line, or downloading the file from the MMORPG server if a "tng://" URL was given, etc.

If interested, check out the source repository.

I couldn't set up the Android SDK, so I'm looking for some volunteers who are brave enough to try to compile it with gradle. It should work, but I'd appreciate any feedback.
Another thing that I could use a little help with is the game controllers. Currently not much, only the launcher can be tested (up / down, select, quit), but it would be great to know if I've initialized everything correctly (I don't have a game controller, so I can't test this myself).

Cheers,
bzt
User avatar
bzt
 
Posts: 214
Joined: 23 May 2021, 21:46

Re: TirNanoG Open Source RPG engine

Postby bzt » 20 May 2022, 16:08

I'm a bit sidetracked from the development, I have to do the assets myself, because unfortunately pixel artists aren't up for the task. I'm no designer, just a humble programmer, so it's going slowly, but I'm getting there.

Please keep tuned!

Cheers,
bzt
User avatar
bzt
 
Posts: 214
Joined: 23 May 2021, 21:46

Re: TirNanoG Open Source RPG engine

Postby bzt » 20 May 2022, 22:50

Okay, I've cleaned up the UI sprites finally. Here are two mockups of the editor's previews, both configured with a different asset set. (Normally the window is at the centre, and the dialog is much wider. I've changed them so that I can put together the "UI Elements" preview with the "HUD" preview.) Oh, and I haven't loaded any fonts yet, what you can see is the default font.

The first one is the TirNanoG Base asset set (based on LPC), and the second one is FantasyCore (based on FlareRPG's assets by the same name). Both asset sets are CC-BY-SA licensed, and can be selected as a game template when you starting a new project. (Or you could just specify your own sprites and make the UI look whatever you'd like in your game! :-D)

What do you think?

Cheers,
bzt
Attachments
tirnanog_tngbase.png
TirNanoG Base default UI
tirnanog_fantasycore.png
FantasyCore default UI
User avatar
bzt
 
Posts: 214
Joined: 23 May 2021, 21:46

Re: TirNanoG Open Source RPG engine

Postby bzt » 20 Jun 2022, 22:46

Huh, finally! After months (!) of hard and tedious work, I'm finished with the assets. I'd like to say this is the most comprehensive collection of LPC assets, but I had to modify so many things that it simply cannot be called LPC any more.

So I just call this collection the TirNanoG Base. There are more than ten thousand sprites (11756 to be precise, without animation frames, animated sprites counted as one; and character generator templates are also excluded from this number),
  • all categorized and tagged to be searchable (tags translated to several languages)
  • all suffixed in a standard way (eg.: "_tl": top left, "_bm": bottom middle, "_v": vertical etc.)
  • properly positioned to work together
  • recolored to use the same palette
  • missing directions and frames fixed and drawn by me
However I'm still not sure I've fixed everything. If you notice any problems (sprites not working together well or a certain animation is missing for example), please open an issue or write here and let me know!

Now I can go back to coding! :-)

Cheers,
bzt

ps: oh, and development moved to another githost, the new webpage is https://tirnanog.codeberg.page.
User avatar
bzt
 
Posts: 214
Joined: 23 May 2021, 21:46

Re: TirNanoG Open Source RPG engine

Postby bzt » 21 Jun 2022, 16:19

Ok, now you can search for the sprite's technical name with (possibly shortened) English tags as well as for the translated tags, depending on your machine's localization! :-)
On the attachment you can see the search results for tiles tagged as "terrain" ("terreno") and "water" ("agua").

I've also created guides for the suffixes, but they are pretty straightforward.

Cheers,
bzt
Attachments
tagsearch.png
Searching for localized tags works too
suffixes.png
Suffixes with examples
User avatar
bzt
 
Posts: 214
Joined: 23 May 2021, 21:46

Re: TirNanoG Open Source RPG engine

Postby bzt » 23 Jun 2022, 10:59

Hi,

Lots of improvements on map editing, now I can call it really easy to use and comfortable:
  • even more GIMP-compatible keyboard shortcuts
  • select all tiles of the same kind with one click (in addition to rectangle, polygon, and fuzzy selection)
  • possibility to select empty areas as "tile kind"
  • option to fill the entire selected area even if its segmented (by Shift + click, otherwise only continuous regions filled)
  • option to fill only one specific kind of tile, but all of its occurance (by AltGr + click)
  • doubled the number of ground and roof layers: now you have 4 - 4, allowing lot more transparent tile combinations (so far there were 2 - 2)
  • I've removed the objects tile category, they are using the same tiles as the ground and roof layers. Now you can use any tile as object (with autogenerated collision mask).
  • instead of a per layer brush, now there's one brush per tile category (for example, if you select a tile on Ground 2 layer, and switch to Roof 1, the same brush is kept)
  • copy'n'paste now works between layers which use the same tile category
  • pipette tool scans through layers if the tile on the current layer is an empty one
  • in preview, do not show technical object tiles, which only add to the collision mask

I've also uploaded a few example maps to demonstrate the capabilities and the default tile set. Lots of improvements were made in the TMX format to provide better Tiled compatibility, however this turned out to be for nothing. In retrospect I shouldn't have used TMX at all, it's such a limited, inefficient and bug-heavy format:
  • "tileorientation" attribute simply doesn't work. I could workaround this with tile offsets.
  • "tilecount" attribute simply doesn't work. You can select different tiles on the UI and Tiled will use the same numeric id for them... No workaround exists, be extremely cautious when using Tiled!!!
  • Tiled cannot support tile atlases. That's right, no mistake, that's "the mapeditor" for you. There's a 7 years (!) old, still open and unresolved issue about this. I've added the XML tag for one of the proposed solutions (see this issue), but it is commented out in the TMX for now, because Tiled does not support it yet.
The only viable solution for now (if you really want to open TirNanoG generated maps in Tiled too), is to unpack the tile atlases: tnge -u (atlas), otherwise you'll only get "Image could not be loaded" errors in Tiled. The downside is, instead of 70 PNG files, you'll have nearly 12000, which adds a significant performance penalty on load times. For the TirNanoG editor, this is irrelevant, the same TMX map "just works (TM)", no matter if the tiles are stored separately or packed into an atlas (it only uses the "firstgid" and "name" attributes, so it does not parse nor need the image tag in the first place).

Question, I'd like to hear your opinion on this: what do you think, knowing that Tiled does not support atlases so maps probably won't work, does it worth using the inefficient TMX format? Or should I implement my own much more efficient format and add an "Export to TMX" option? What do you think?

Cheers,
bzt
User avatar
bzt
 
Posts: 214
Joined: 23 May 2021, 21:46

Re: TirNanoG Open Source RPG engine

Postby farrer » 24 Jun 2022, 21:17

bzt {l Wrote}:Question, I'd like to hear your opinion on this: what do you think, knowing that Tiled does not support atlases so maps probably won't work, does it worth using the inefficient TMX format? Or should I implement my own much more efficient format and add an "Export to TMX" option? What do you think?


As long as the TMX format adds extra complexities to your implementation or limit some features you want to add, I believe the best option would be to use a more efficient format and let the TMX (and its complexities and workarounds) restricted to the exporter / importer.

On the other hand, if the map-editor is already fully finished (not sure), maybe a better approach would let it be as it is (TMX), focusing on other parts of TirNanoG.
User avatar
farrer
 
Posts: 109
Joined: 24 Feb 2014, 21:00

Re: TirNanoG Open Source RPG engine

Postby bzt » 25 Jun 2022, 14:02

Thanks farrer! Yeah, if this was that simple, I wasn't asking :-D

farrer {l Wrote}:As long as the TMX format adds extra complexities to your implementation...
Yes, it does, but I have already implemented all of those (csv, gzip, zstd compressions, buggy polygon coordinates, tile alignment workarounds etc. etc. etc.). So isn't an issue because all of this is already done.

farrer {l Wrote}:...or limit some features you want to add
Isn't the case either, TirNanoG can store all the data it needs in TMX files easily. It is a bit resource wasting and messy format, but otherwise works. The only issue is with Tiled.

You see, the only reason why I've picked the TMX format is to provide Tiled compatibility. Now I'm facing a strange situation where TirNanoG works just fine, but Tiled isn't... Maybe It's easier to explain through an example.
{l Code}: {l Select All Code}
 <tileset firstgid="1" name="terrain_grass_a" tilewidth="32" tileheight="32" tilecount="1"  columns="1" objectalignment="bottomleft">
  <image source="../tiles/terrain_grass_a_soo0.png" width="32" height="32"/>
  <!--image source="../tiles/terrain_atls.png"/><tile id="1" x="128" y="192" width="32" height="32"/-->
 </tileset>
TirNanoG only needs the "firstgid" (for a map local id) and the "name" attributes from this tile specification, nothing else. But Tiled also requires the other attributes as well as the "image" tag with the file path, and that's the problematic part. For that TirNanoG writes the atlas-less form (the atlas version is written commented out because Tiled does not understand it yet). The problem is, even if Tiled gets fixed and I remove the comment out, unpacking and packing tile atlases would still break Tiled compatibility (unless I also completely rewrite ALL maps that reference the tiles in that atlas, which is just auch). Using a separate TSX file won't work either, because adding a new tile or changing one tile's dimension could result in a different atlas arrangement hence change the global tile id, and (again) would require to rewrite ALL maps to ensure Tiled compatibility...

farrer {l Wrote}:On the other hand, if the map-editor is already fully finished (not sure)
Yeah, it is. I might add some more convenience features and more editing tools, but that won't affect the file format.

farrer {l Wrote}:maybe a better approach would let it be as it is (TMX), focusing on other parts of TirNanoG.
I guess you're right about that. I'll leave it as it is then. If anyone really wants to use Tiled they'll have to unpack tile atlases first, end of story. Doesn't matter for TirNanoG anyway if tiles are packed or not.

BTW, I'm finally working on the Player now! :-D I occasionally go back to the Editor to fix some TNG export issues, but that's just minor bugfix from now on!

Cheers,
bzt
User avatar
bzt
 
Posts: 214
Joined: 23 May 2021, 21:46

Who is online

Users browsing this forum: No registered users and 1 guest