Temple of The Roguelike Forums

Development => Programming => Topic started by: tangar on January 20, 2018, 07:56:37 PM

Title: [coding] TomeNET needs your help to find a bug! :D
Post by: tangar on January 20, 2018, 07:56:37 PM
Hi ho! :D

Just a few months ago I've presented my free-to-use 1-bit tileset for TomeNET (http://tomenet.eu) and not only: https://www.reddit.com/r/roguelikedev/comments/6f6fww/tileset_tangars_tileset_1bit_pseudographics_font/ ... Also wanna remind, that I'll be very happy if someone would use this tileset in YAGR (yet another great roguelike) :D

This tileset works great in TomeNET and makes gameplay much more enjoyable!

But we got a trouble...

There is a bug - currently it's not possible to map characters at certain glyphs of this graphical font:
0, 2, 16-31, 129, 141, 143, 144, 157, 195

If this bug would be fixed, it would be possible to add extra _24_ symbol in this tileset (I'll update my tileset, of course!). 24 symbols would make huge difference!

Devs don't know how to fix this bug :( It's even totally unknown where to find this mistake... That's why I beg every living person who knows something about coding to help in solving this issue!

Source files for TomeNET could be found there: https://tomenet.eu/downloads.php

Topic about this problem at TomeNET forum:
https://tomenet.eu/phpBB3/viewtopic.php?f=9&t=1737

Please don't hesitate to post any assumptions and hypothesis considering this bug, lets discuss it. Any hints could be useful!
Title: Re: [coding] TomeNET needs your help to find a bug! :D
Post by: mushroom patch on January 21, 2018, 02:05:59 AM
The numbers you list mostly correspond to control characters or other non-printable ASCII/extended ASCII codes. I would speculate that the numbers you are using to identify tiles are being fed through something that interprets them as codes of that type.

From my memory of tomenet, the map part of the interface was reasonably legible and clear with ordinary text and color. The main problem was flashing "colors" were frequently indistinguishable and the only means for positively identifying some of these monsters was using the L command, direct from angband, which is totally unsuitable for a realtime game and, frankly, an insult to the player. Perhaps the interface has become more expressive and usable in this way in the last 10 years, though the developers seemed very committed to this sort of backwardness last time I spoke with them.
Title: Re: [coding] TomeNET needs your help to find a bug! :D
Post by: Krice on January 21, 2018, 10:16:20 AM
What is really impressive is how that source code can be compiled to a working(?) program. I like how there are two versions of z-term.c (with three versions of headers), the another one has edits, probably the actual one used. Also I spent some quality time scrolling down common/defines.h. It would help if "developers" knew where the output routines to display characters/tiles is, then provide that generic information to anyone wanting to find that bug.

Here is my suggestion: rewrite the entire source code using anything else than old school C. In the end you will be glad you did it.
Title: Re: [coding] TomeNET needs your help to find a bug! :D
Post by: tangar on January 22, 2018, 04:39:05 PM
thanks for a feedback! I'll add it to our headquarters ( https://tomenet.eu/phpBB3/viewtopic.php?f=9&t=1737 )

mushroom patch, you have to try it right now :) with new graphical font option (see my 1st message) game become much more enjoyable, all monsters a very good recognizable, game looks like this:

(http://mmoforum.org/download/file.php?id=53)

Krice, there are so much awesome and unique things done already, more then in any other MMORPG, I'll say. So rewriting it would be almost impossible thing. And also - why to rewrite anything which works very good and stable? TomeNET works fast and reliable, no lags at all (and it's super important in real-time online game)... I suppose C would be much faster then Python :D So there is important reasons to leave it as it is, but make it better!
Title: Re: [coding] TomeNET needs your help to find a bug! :D
Post by: Krice on January 23, 2018, 07:42:08 AM
And also - why to rewrite anything which works very good and stable? TomeNET works fast and reliable

It's so great that the developers of the game itself can't figure out how to use some of tiles for some ascii values. That may happen if you try to stick graphics on top of ascii based engine.
Title: Re: [coding] TomeNET needs your help to find a bug! :D
Post by: mushroom patch on January 23, 2018, 11:08:40 AM
I think it's odd that your response to a pretty specific complaint is that the game has become better overall, rather than speaking to the particular issue. My guess is that nothing has changed there.

It may be true that they have made improvements to tomenet, but this is not saying much. There was an alternate version of the game when I was playing that did simple things like making basic items more available in shops so that shop scumming was a less central aspect of the game and that already represented a significant improvement. Similar very simple things, such as removing food, fuel, curses and identification, along with the massive volume of useless items generated to prop up the identification minigame would also massively improve the game. Identification in tomenet is shockingly tedious and bizarre, completely disrupting any kind of flow to the game.

Tomenet, even ten years ago, had correctly nerfed a lot of the worst angband mechanics, such as teleport other, teleport level, *destruction* among others, which in all my history of tomenet criticism I never gave them proper credit for. But the fact is they keep plenty of the worst stuff, in particular instantaneous teleportation, monster summoning, high damage breath weapons, and 31 flavors of elemental damage, and compound them by putting these instantaneous effects into a real time setting. It is such a simple-minded transcription of turn-based mechanics into real time it's mind boggling anyone can take it seriously enough to play.
Title: Re: [coding] TomeNET needs your help to find a bug! :D
Post by: tangar on January 24, 2018, 09:20:14 PM
For 3 years which I play TomeNET, game become better and better every update :) Now it's almost perfect =)

But please lets go back to main topic of this discussion - font bug.

Investigation into the problem (video):
https://www.youtube.com/watch?v=MDYDr2Ey5nY

List of problem  glyphs:

0 linked to 35 (#)
2 WORKS!

16 ┼ 253C 197
17 ◄ 25C4 17
18 ↕ 2195 18
19 ‼ 203C 19
20 ¶ 00B6 20
21 ┴ 2534 193
22 ┬ 252C 194
23 ┤ 2524 180
24 ↑ 2191 24
25 ├ 251C 195
26 → 2192 26
27 ← 2190 27
28 NULL
29 NULL
30 NULL
31 linked to 35 (#)

129 NULL
141 NULL
143 NULL
144 NULL
157 NULL
195 WORKS!

List of code page 437 table:
https://en.wikipedia.org/wiki/Code_page_437

TomeNET source could be found:
https://www.tomenet.eu/downloads.php
Title: Re: [coding] TomeNET needs your help to find a bug! :D
Post by: mushroom patch on January 25, 2018, 04:13:36 AM
So I have to ask, has producing 95% of tomenet-related online writing in the past three years actually driven nontrivial traffic to your youtube channel?

The fact that one dude can produce such a volume of posts about tomenet over such a long period of time with almost zero response speaks to how deeply unpopular the game is.
Title: Re: [coding] TomeNET needs your help to find a bug! :D
Post by: Krice on January 25, 2018, 09:38:58 AM
Wait, those tiles are actually fonts? In that case you are working with the console window. I'm surprised that anything other than 32-127 works (visible ascii). So you can stop wondering why some letters aren't showing, because you can't make it work. The only way (I guess) to fix that is write a custom "console" probably using something like SDL2.
Title: Re: [coding] TomeNET needs your help to find a bug! :D
Post by: tangar on January 25, 2018, 11:04:02 AM
mushroom patch, sorry dude, but all your posts about TomeNET looks like 'hate'. Donno why you got so much hatred towards TomeNET and it's developers, but it looks really stupid. You say  "nothing changed for years and monsters flickering unrecognizable" - I replied to you with screenshot that shows that this problem is fixed. Now you don't have arguments and become personal. Lame. Please follow topics subject - we are trying to find a solution to particular bug.

Krice, thanks for a suggestion, but I hope it's possible to find less radical fix to this problem.
Title: Re: [coding] TomeNET needs your help to find a bug! :D
Post by: getter77 on January 25, 2018, 01:45:23 PM
Just to chime in as things hopefully remain cordial:

Given the longform nature of tangar's content, to say nothing of the fairly unique circumstances of niche existence that tomenet occupies within the roguelike scene, it doesn't at all shock me that responses are what they are beyond tangar checking in as things happen, updates arrive, etc.   Most things posts on most topics in these parts are not done so necessarily to light up the page count, but rather making the case for awareness both in a timely sense and for others to stumble upon as they do.  It is good that tomenet endures, as that outright has worth the same as true for all Roguelikes. 
Title: Re: [coding] TomeNET needs your help to find a bug! :D
Post by: mushroom patch on January 27, 2018, 03:48:52 AM
Your screenshot shows nothing of the kind. It's just a still frame showing no flashing behavior at all. What I notice more than anything is the lack of any new display showing descriptions of monsters visible, which would be the obvious solution to the issue I raised. It seems pretty clear to me that nothing has happened.

As to why I am so down on tomenet, it's a bad game that could be an okay game but remains bad not because it's hard to change but because the people involved in it are committed to bad ideas. It occupies a space where something good or at least okay could exist, but rather than show how a multiplayer or realtime roguelike could work, it shows every way those concepts don't work and gives the impression that nothing can be done. In my opinion, the existence of an example like tomenet is worse than nothing, the tiny audience it has attracted over 20 years notwithstanding. It takes a good idea, done successfully by commercial game developers (e.g. in the diablo series, path of exile, etc.) and does it unbelievably poorly.

Now you might ask why I don't roll up my sleeves and make the changes myself if it's so easy. The short answer is that tomenet violates the licenses of the networking code/libraries it uses. I'm not going to get involved with something that it seems to me could blow up at any moment.
Title: Re: [coding] TomeNET needs your help to find a bug! :D
Post by: getter77 on January 27, 2018, 01:16:40 PM
Alternatively, there's always PWMangband that has been making good strides of late as one of the extremely few contemporaries?  Fairly confident feedback would be at least considered given the less rigid and history unburdened nature of it going in a different direction than tomenet.   tangar also did some vids on it ages ago prior to many rounds of updates~
Title: Re: [coding] TomeNET needs your help to find a bug! :D
Post by: Krice on January 27, 2018, 09:57:47 PM
As to why I am so down on tomenet, it's a bad game

I think at least we as roguelike developers should not have that kind of attitude, because we should know it's not easy to create good roguelike games. If you want to do that it takes a lot of time and work. It's good enough that people are trying something, that's what I think about these matters anyway.
Title: Re: [coding] TomeNET needs your help to find a bug! :D
Post by: tangar on January 30, 2018, 09:13:07 PM
2mushroom patch

If you don't understand the game, it doesn't mean that it's bad.

1) My screenshot is pretty clear. With my tileset ( http://tangar.info/en/t/tileset/ ) TomeNET player got no problem at all with recognizing dangerous monsters, flashing (actually it's 'flickering') don't mess the game.
2) AFAIS you just can't handle TomeNET real-time combat. TomeNET is the hardest roguelike around, it's constant zeitnot, you have to think and make desicions very fast. I'll say it's much harder then NetHack, cause there you could think about next turn for whole week and in TomeNET yuo got less then second sometimes... So yep, TomeNET wouldn't become popular game cause it's complexity, what makes me love this game so much - it's game like no other. But still, it got good numbers of players (in comparison to roguelikes), AFAIR TomeNET got 2000+ active accounts atm and it's very nice people around.
3) Considering developing and your 'ideas'.. Dude, with your 'hater' attitude I doubt that anyone would want to have joint project with you, no offence...

getter77,  Krice - thanks for a support, guys! :)

Cya in TomeNET :D
Title: Re: [coding] TomeNET needs your help to find a bug! :D
Post by: tangar on February 24, 2018, 10:11:44 AM
Guys, lets continue brainstorm!

For now we need to understand how to fix 0, 16-31 glyphs! As 1-15 works for remapping (but actually they are 'system' commands), it has to be possible to make 16-31 work too!

Currently they got this values:

0 linked to 35 (#)

16 ┼ 253C 197
17 ◄ 25C4 17
18 ↕ 2195 18
19 ‼ 203C 19
20 ¶ 00B6 20
21 ┴ 2534 193
22 ┬ 252C 194
23 ┤ 2524 180
24 ↑ 2191 24
25 ├ 251C 195
26 → 2192 26
27 ← 2190 27
28 NULL
29 NULL
30 NULL
31 linked to 35 (#)

Symbols took from https://en.wikipedia.org/wiki/Code_page_437 (but they are in wrong places)

GOGOGO! We can do it!

===
!!! We got an important update:

'Fony' (http://hukka.ncn.fi/?fony) developer Hukka noted that:

Quote
Anyway, this seems to be a bug in the game and not Fony. I've seen at least two people say that it's because "Fony relies on Unicode", but that makes no sense when it comes to bitmap fonts, and Fony only really uses Unicode to display various language translations in the user interface. Previous versions of Fony didn't even support Unicode in any way at all! Bitmap fonts have no concept of Unicode, nor does Fony when it's handling them. It's just 256 glyphs, one after another, bitmaps in a file.

Does it looks like it's not the problem of the font, but actually the problem in the TomeNET code? TomeNET source could be found: https://www.tomenet.eu/downloads.php

p.s.
Also Hukka said that soon he would create crossplatform opensource version of Fony! Great news :D
Title: Re: [coding] TomeNET needs your help to find a bug! :D
Post by: Krice on February 25, 2018, 08:03:54 AM
For now we need to understand how to fix 0, 16-31 glyphs! As 1-16 works for remapping (but actually they are 'system' commands), it has to be possible to make 16-31 work too!

My guess is it depends on that console window, how it's displaying fonts. In graphical versions it would be simply easier to use anything else than console, something like SDL2. That way you can use real bitmaps (rather than fonts) and forget everything about console. If you can't change how the console is displaying fonts then how are you going to make it work?
Title: Re: [coding] TomeNET needs your help to find a bug! :D
Post by: tangar on February 28, 2018, 11:14:01 AM
Font is much better than bitmaps in case of TomeNET. Regular tilesets wouldn't be good idea to use cause TomeNET is real-time and you need to react at stuff fast... It's very different game in compare to all other roguelikes... So my tileset based at text glyphs is better in terms of 'reading game situation' - font could be painted with different colors (with flickering patterns!) which helps to recognize monsters fast, it's actually help identify monsters on the map and give the player improved situation awareness. TomeNET got more monsters than some other games combined - over 1100 monsters and many 'ego monster' types; a lot of bosses among them. Imagine how much stuff you need to draw and to _remember_ while you play real-time. Glyphs are 100500 times better :D

So, back to business! We need to understand why 1-15 glyphs works and 16-31 aren't. Please lets discuss this matter, this particular bug, but not ideas about rewriting whole game.
Title: Re: [coding] TomeNET needs your help to find a bug! :D
Post by: Krice on March 02, 2018, 08:27:24 AM
We need to understand why 1-15 glyphs works and 16-31 aren't.

I just told you my theory about the console implementation. I'm starting to get an impression that you guys aren't programmers at all.
Title: Re: [coding] TomeNET needs your help to find a bug! :D
Post by: mushroom patch on March 09, 2018, 03:14:05 PM
I am surprised to see that this code panhandling thread continues a month later.

@getter77: PWMangband seems to have licensing issues as well. I recall the developer of that variant calling tomenet "unplayable" 10 years ago, which shows at least some of the critical perspective lacking here. It seems to be closer to vanilla angband than tomenet, which of course brings in the issues of vanilla that tomenet has addressed. From what I can tell, PWMangband doesn't address the conversion of offline game time to online real time or its interactions with the instantaneous nature of angband effects.

As to tangar's posturing about tomenet being the hardest game around, he has not tried my version of nethack where monsters do quadruple damage. I don't care how many weeks you think about your next move, quad damage is quad damage. Of course, given the complexity of mushroom patch hack, I wouldn't expect a large following. None of you normal damage scrubs can handle the intensity of my perfect version of nethack.