Some very minors ones

Place to report bugs in MoM IME and suggest ideas for enhancements (please read rules before posting)
Post Reply
aggelon
Posts: 71
Joined: Tue May 16, 2006 6:58 pm
Location: FRANCE
Contact:

Some very minors ones

Post by aggelon »

Hi :oops:

So, I've downloaded IME for the first time (it's very very GREAT !!!), and tried it... very nice !!!!

"leaving minor bugs until later... hopefully most of them are already listed on the To Do section of the Version History page. If you find any that aren't listed, let me know and even though I may not get onto fixing them right away, I can at least get them added to that page."

OK, let's go, this is the very first minor bugs seen :

*** On the server:
- Within the main window, the column XML Database ends by an undisplayable caracter (seems repeating to the infinity) (see screenshot at http://aggelonware.free.fr/mom/ime/screen1.jpg)
- The window of each game ends by "Game Setup Completed" and stays on the display, without any button to close it or reduce it. (see screenshot at http://aggelonware.free.fr/mom/ime/screen2.jpg)
- The main window displays "Creating game 'Test 1'", but never displays "Creation completed, game 'Test 1' available" (see again screenshot at http://aggelonware.free.fr/mom/ime/screen1.jpg)
- There is no check if the name of the new game is already in use or not, so we can create 3 games with the same name... it's not a technical problem since it seems the name isn't the key of the database, but not very simple to join a party (see screenshot at http://aggelonware.free.fr/mom/ime/screen6.jpg)

*** Client
- If DirectX is installed but disabled (some games need it be disabled!), it gives an internal error (see screenshot at http://aggelonware.free.fr/mom/ime/screen3.jpg) + Windows Error (send or not) + internal error (see screenshot at http://aggelonware.free.fr/mom/ime/screen4.jpg) + Windows Error + internal error (see screenshot at http://aggelonware.free.fr/mom/ime/screen5.jpg)
Walkthrough:
Start -> Run -> dxdiag -> Display -> Enable DirectDraw
(not sure of the menus' names because my XP is in french)

- When the required number of human players joined the game, there is no any message on the client to say "'I'm creating the game, please wait a minute", so I searched the "Start" button everywhere :lol:

- The Zoom level is not show during the game (may be useful?)

- When a player leaves the game during another one get a window requiring a key-in, this window stays displayed after the game ended (see screenshot at http://aggelonware.free.fr/mom/ime/screen8.jpg)
Maybe not useful bug's notice, cause in the To Do you say the human will be transform into AI


*** Coding
I'm don't know HOW you implement your game, but you say "Stability/thread locking issues: The controls on a form are not kept locked while processing events for those controls. There is a VERY small opportunity for a crash here - for example if you right click one of the 'Select Unit' buttons on the map screen to get info about a unit at the precise instant that you receive a network message from the server to tell you that that unit has been killed. I looked into trying to fix this properly and it is nearly impossible (I won't go into the details of why). I think the chances of this actually causing anybody problems are pretty slim"

I think about maybe 2 various solutions:

1)Use a semaphor, so when the event of 'kill unit' comes, the receiver looks at the semaphor, if it is checked (just before starting the 'get info'), it could say "Hey! There's someone who asked for info... I have to wait the green fire..."

2)Use a FIFO of events on each unit
"-Hey Unit, my name is 'Get Info', may you add me to your FIFO tasks list ?
- OK boy, I'm going to serve you
-Hey Unit, my name is event and I am here to kill you... may you add me to your FIFO tasks list ?
- No problem boy, but you're not the first one, there is another before you and when he will had finished its job, it will be your time... your demand has been recorded, hold the line please..."

OR

"-Hey, my name is event and I am here to kill you... may you add me to your FIFO tasks list ?
- OK boy, I'm going to serve you
-Hey Unit, my name is 'Get Info', may you add me to your FIFO tasks list ?
- No problem boy, but you're not the first one, there is another before you and when he will had finished its job, it will be your time... your demand has been recorded, hold the line please..."
Before the Event kills the unit, it checks the FIFO and inform all recorded source that the game is over for this unit, so no any action can be done with it... including the simple 'Get Info' one...


BTW, this is so little little bugs or suggestions, no matter... let's work on the functionnal first :P


Hum... how can we help you about translation? I can start to translate some XML files (or other) into french language... don't be afraid, my french is better than my english :D

PS: debug log can be created for each of this bugs is needed

Have fun playing,
Aggelon.
User avatar
Implode
Site Admin
Posts: 433
Joined: Fri Feb 24, 2006 3:35 am
Location: Newfoundland, Canada
Contact:

Re: Some very minors ones

Post by Implode »

Wow, thanks for the detailed list, that's really helpful, especially with the screenshots.

>> Within the main window, the column XML Database ends by an undisplayable caracter (seems repeating to the infinity) (see screenshot at http://aggelonware.free.fr/mom/ime/screen1.jpg)
Strange, I don't get that... does it happen as a result of you resizing the window, so do the lines appear closer or further apart if you resize the window slowly or quickly?

>> The window of each game ends by "Game Setup Completed" and stays on the display, without any button to close it or reduce it. (see screenshot at http://aggelonware.free.fr/mom/ime/screen2.jpg)
The window has to stay open - that window is actually running the game! I know a minimize button would be helpful, but you can't add a minimize button without also having a close button... and if there's a close button its too easy to accidenally close games that are still being used.

>> The main window displays "Creating game 'Test 1'", but never displays "Creation completed, game 'Test 1' available" (see again screenshot at http://aggelonware.free.fr/mom/ime/screen1.jpg)
That's what the "Game Setup Completed" message in the game window is for, to tell you the game is available. The "creating game test 1" in the main window really just means "creating the separate window for game test 1".

>> There is no check if the name of the new game is already in use or not, so we can create 3 games with the same name...
Good point - added this to the list.

>> If DirectX is installed but disabled (some games need it be disabled!), it gives an internal error (see screenshot at http://aggelonware.free.fr/mom/ime/screen3.jpg)
Right, you mean if hardware acceleration is disabled - it'll do the same if someone has an ancient graphics card that doesn't support hardware acceleration. I'll add this to the list but I don't think it too important...

BTW, in just about all situations, only the first error is the actual useful error - you tend to then get piles of useless access violation & windows errors afterwards, don't bother taking screenshots of these, the numbers in access violation messages are of no use to me :)

>> When the required number of human players joined the game, there is no any message on the client to say "'I'm creating the game, please wait a minute", so I searched the "Start" button everywhere :lol:
Yeah I've thought about adding something like that in the past too, its worse when actually playing over an internet connection (rather than both the server and client on the same PC or same LAN), it takes ages and you can't tell anything is happening. Added this to the list too.

>> The Zoom level is not show during the game (may be useful?)
What do you mean? Have a label that says e.g. "Current zoom level: 150%"?

>> When a player leaves the game during another one get a window requiring a key-in, this window stays displayed after the game ended (see screenshot at http://aggelonware.free.fr/mom/ime/screen8.jpg)
Heh, nice, I've not had that in the past, but have had various other misc windows left open.

>> 2)Use a FIFO of events on each unit
I do something kind of similar... the Client is driven a lot by "animations". Many are literally animations, like a unit moving in combat or the amount of time it takes to draw arrows being shot from one unit to another. Since for example (if you look at the messages in the server window), its typical that the server has finished a combat, decided the winner (and in a simultaneous turns game, sometimes has gone ahead and started the next turn and already taken all the AI players moves!!) and the client is still going through showing all the animations of the final few attacks. So in this situation, the "kill unit" that the server sends when units die has to be queued up behind the animations, which are still drawing that unit alive in combat.... if that makes any sense.

But that's not quite the situation I was describing. The unit buttons are created & freed on the fly. However the list of controls (buttons and such) is not kept locked while the pressing of the button is handled. Therefore you could click a button, then another thread comes along, kills the unit and frees the button, then it tries to process the click - and oh dear - its trying to process a click on a button that no longer exists, so it would fall over horribly with a memory error.

I'm very happy to say though that the thread locking library I wrote a while back works fantastically well now I'm using it throughout and has basically solved all the stability problems. I know 0.8.7 is the first version you've tried, but some of the older versions were *really* unstable and crashed all over the place.

>> Hum... how can we help you about translation? I can start to translate some XML files (or other) into french language...
I was hoping you might ask that :) Since I have gone to great lengths from the start to try to make MoM IME multi-language capable, I've been hoping someone would finally show up and express an interest in actually creating an XML for another language! It is basically just a matter of creating a new XML file in the Languages folder and changing the text - the game will find the new XML file and let you select it when you click Choose Language on the front screen.

Things to watch out for are:
1) I have an editor to edit the server XML file, and one to edit the graphics XML file. However I've never needed an editor for the language XML file, although the file is getting big enough now that it could do with one. So if you're serious about doing a translation then let me know and I'll get this done and make all the editors available for download. It will pretty much be essential for you to have a proper editor, to make sure it uses the correct XML notation for all the accented characters (e.g. you can't just use a & character, you have to type & and I believe accented characeters are similar, if you just type directly then it'll be an invalid XML file and probably refuse to load it).
2) It uses the fonts from the original MoM, so I suspect many accented characters simply won't display. I know for example some of the fonts don't even have () or * characters, let alone accented characters. But I would rather you put the accented characters in how they should be rather than leaving accents off, I'll then worry about getting them to display correctly later on.
3) Not absolutely all the text in the game is read from the language XML file, so there are some things which for now are going to be stuck in English. Particuarly things like the text on buttons. Once you have a language XML file done, it'll be obvious what's left in English, so then I'll be able to do a bit of work in making the remaining things multi-language capable.
4) Its not going to be a small job, the language XML file is already nearly 4,000 lines long and more and more gets added to it with every new version.
aggelon
Posts: 71
Joined: Tue May 16, 2006 6:58 pm
Location: FRANCE
Contact:

Post by aggelon »

Undisplayable letter behind Master of Magic Database is here from the starting, without resize the column or the window
maybe it is from my font file?
my file is "MS Sans Serif 8,10,12,14,18,24 (VGA res)" SSERIFE.FON 64656 bytes version 4.10.0.1684 langue Anglais (États-Unis)
créé le mardi 1 janvier 1980, 01:00:00 modifié le mardi 28 août 2001, 13:00:00
(see http://aggelonware.free.fr/mom/ime/screen12.jpg)

------------------------------------------------------------


For the Window not hided:
maybe an "Hide/Show the Window of the Selected Game" button inside the main window

----------------------------------------

For the ZOOM:
Yes, it is.
maybe a % or a level number (from 0 to 10) displayed between the Zoom+ and the Zoom-

--------------------------------------------------------------

For the bug and the FIFO : oh! :(
I don't have any idea at this time....

--------------------------------------------------------------


For the translation, YES, I would like to download the editor.

I tried to translate the XML file of the client (with Notepad) : it works fine, it is correctly detected (http://aggelonware.free.fr/mom/ime/screen19.jpg).
If the name of the file is incorrect (with a 'ç' for example into the word 'Français'), it creates an error
(http://aggelonware.free.fr/mom/ime/screen20.jpg).
At this time (while the font is not modified), the accent within the XML file creates an error too(http://aggelonware.free.fr/mom/ime/screen13.jpg).

In the French edition of the Original MoM, the game is not fully translated into french language (can be downloaded from http://www.abandonware-france.org/ltf-jeu.php3?id=276 ). Some buttons are not translated (http://aggelonware.free.fr/mom/ime/screen9.jpg)
The original text does not include accent (http://aggelonware.free.fr/mom/ime/screen10.jpg &
http://aggelonware.free.fr/mom/ime/screen11.jpg)
Maybe the french font is the same as english one ?

I have to go now,
Aggelon.
aggelon
Posts: 71
Joined: Tue May 16, 2006 6:58 pm
Location: FRANCE
Contact:

Post by aggelon »

OK, you're right : that's works !!!

As you said, I've got the same error ( http://aggelonware.free.fr/mom/ime/screen27.jpg ) but the result is here (without the accent) http://aggelonware.free.fr/mom/ime/screen33.jpg

As you can see in this screenshot, the second client systematically displays the FPS without put any parameters.

In addition, I saw a strange behavior, but I assume this will be corrected while I're going to manage the "player killing/disconnection".
Cause of the first accent error, I had to kill my 2 clients.
You can see here ( http://aggelonware.free.fr/mom/ime/screen28.jpg ) the sigkill was detected and proceed, but, since there is another 3rd player (AI, see http://aggelonware.free.fr/mom/ime/screen32.jpg ) the game is not ended -> it's OK (see last line of main window at http://aggelonware.free.fr/mom/ime/screen28.jpg )

BUT, the game (still running with the AI) is not displayed within the game-list from others clients (see http://aggelonware.free.fr/mom/ime/screen29.jpg ). I created another new game ( http://aggelonware.free.fr/mom/ime/screen30.jpg ) but no improvement ( http://aggelonware.free.fr/mom/ime/screen31.jpg )


Maybe cause the game is 'full' (with the required number of players) and is running, so not displayed within the list ?
Not tested yet.


So, editors work perfectly !!!
User avatar
Implode
Site Admin
Posts: 433
Joined: Fri Feb 24, 2006 3:35 am
Location: Newfoundland, Canada
Contact:

Post by Implode »

I moved parts of this discussion to do with a french language file to the new forum, as you suggested :)

http://www.roughseas.ca/momime/forum/viewtopic.php?t=28

Implode.
Post Reply