Mes petits projets sur OR (scripts pour Open Rails v0.15.0)

Venez présenter vos projets à venir sur vos créations spécifiquement dédiéss à ORTS.

Modérateur : Modérateurs

Avatar du membre
Sharpe49
Messages : 319
Enregistré le : 23 août 2010 4:46
Localisation : Lyon (69)

Mes petits projets sur OR (scripts pour Open Rails v0.15.0)

Messagepar Sharpe49 » 19 janv. 2014 13:29

Hello tout le monde !

Je viens vous parler de mes projets en cours sur OR. Pas de matériel roulant ou de lignes, mais un travail sur le logiciel lui-même.
J'ai 3 tâches dont une en cours de réalisation.

1) Passage à XNA 4.0 et .Net 4.0. L'objectif est d'utiliser plus tard MonoGame et ses fonctionnalités supplémentaires par rapport à XNA... et surtout de sa compatibilité avec les différentes API graphiques, dont OpenGL. De plus, XNA n'est plus supporté par Microsoft. Par contre, MonoGame a un développement open source très actif et supporte un grand nombre de plateforme (y compris bientôt les consoles tels que PS4.
J'ai terminé l'adaptation et j'ai désormais un simulateur qui fonctionne sur XNA 4.0. Je vais passer sur MonoGame dans les jours qui viennent. Autre résultat intéressant, la partie 3D a été simplifiée sur certains points (comme la gestion de la 3D) grâce à la nouvelle API mais d'autres ont du être un peu plus travaillées. Exemple : XNA4 ne supporte plus les formats BMP (il faut faire une conversion) et TGA (j'ai transformé les textures TGA d'OR en PNG). De plus, j'ai du modifier le système qui charge les effets (fichiers .fx) car l'ancien a été supprimé par Microsoft.
Je n'ai plus que deux régressions à traiter avant de proposer l'intégration de mes modifications dans le projet OR. La 1ère est assez complexe car il s'agit de la traversée du terrain des tunnels : le terrain apparait de nouveau dans ceux ci. L'autre est due à l'arrêt du support du dessin de points dans XNA qui est utilisé dans OR pour la pluie. Ce point devrait être résolu rapidement.
Ce projet a été plutôt formateur pour moi, car il m'a permis de m'initier au codage de logiciel 3D temps réel.

2) La proposition d'une solution de traduction du logiciel. Comme déclaré dans un autre message, le .Net Framework propose des fonctions simples afin d'externaliser les chaînes de caractères en langue étrangère. Je vais donc faire une première application de cette fonctionnalité dans le menu, puis dans le simulateur.

3) C'est plus sur le long terme (au delà de la 1.0), car les bases ne sont pas présentes. Les documents présents dans le dossier de développement d'OR laissent penser qu'on pourra créer des plug-ins de signalisation ! Étant désormais ingénieur signalisation, il faut avouer que cela m'intéresse beaucoup. Imaginez une TVM300, une TVM430, un KVB ou même de l'ETCS complètement réaliste !

Bien sûr, je vous tiendrai au courant de mes avancées dans ces sujets.

Ciao ciao !
Modifié en dernier par Sharpe49 le 17 oct. 2016 22:28, modifié 3 fois.
Cédric Gniewek
Développeur Open Rails

Scripts Open Rails pour matériel roulant : signalisation française et robinet de freinage PBL2
https://github.com/Sharpe49/OpenRails_Scripts

Avatar du membre
BB25187
Administrateur
Messages : 15015
Enregistré le : 09 mai 2004 1:07
Localisation : Grenoble
Contact :

Re: Mes petits projets sur OR

Messagepar BB25187 » 19 janv. 2014 13:38

Hello,

Whaou, c'est diablement intéressant tout ça! Comment vas tu procéder: tu prépares ces évolution de ton côté et tu proposes les patchs aux développeurs, ou tu auras accès à la base SVN?
Bon courage à toi quoiqu'il en soit. Je serai très intéressé par les nouvelles que tu pourras nous donner de temps en temps.

A+
"Er ist ein Unmensch, ein Tyrann!" - Tamino - Erster Akt - Die Zauberflöte.
____________________________________________________________

Image

Avatar du membre
CM63
Messages : 1919
Enregistré le : 13 août 2010 21:48
Localisation : Un peu au large de la faille de Limagne
Contact :

Re: Mes petits projets sur OR

Messagepar CM63 » 19 janv. 2014 15:02

Bonjour,

Très intéressant en effet car cela vise notamment le portage sous Linux. Bravo pour ton travail. ce que tu fais est reconnu par OR? Tu fais partie de l'équipe de développement? Ou alors tu travailles dans un mode "travailleur indépendant" qui propose des choses à OR, qui seront acceptées... ou pas... ?

Bon courage.
Image

Avatar du membre
Sharpe49
Messages : 319
Enregistré le : 23 août 2010 4:46
Localisation : Lyon (69)

Re: Mes petits projets sur OR

Messagepar Sharpe49 » 19 janv. 2014 15:50

Salut,

Pour le moment, ce seront des patchs que je donnerai aux développeurs. Mais j'espère rejoindre l'équipe d'OR.

Pour les plug-ins de signalisation, il y aura pas mal de boulot à faire pour créer l'interface sur OR, mais ce sera pour après la 1.0. Une fois l'interface terminée, on va pouvoir se lancer sur les différents systèmes de signalisation. Je pense qu'on pourra faire ceci en créant de nouveaux aspects (exemple : TVM430_230A pour un 230 annonce en TVM430) et en créant de nouveaux types d'éléments de cabine.
Le problème de la TVM, c'est qu'il existe plusieurs variantes pour une même version.

Pour les variantes TVM300, c'est très simple :
  • version TGV PSE (limitée à 270 km/h)
  • version TGV Atlantique (limitée à 300 km/h)
Pour les variantes TVM430 qui doivent fonctionner également sur de la TVM300, c'est plus complexe :
  • version TGV PSE et Atlantique (limitée à 300 km/h)
  • version TGV Réseau, Duplex et ETCS niveau STM (limitée à 320 km/h)
  • version TGV TMST (limitée à 300 km/h avec plus de paliers de vitesse que pour les TGV du service intérieur)
  • version TGV Postal (limitée à 270 km/h avec un palier à 240 km/h)
  • version fret (à 100, 160 et 200 km/h avec un palier à 50 km/h sans indication d'exécution)
  • version Class 395 (pour les british, limitée à 225 km/h).
De plus, pour Eurotunnel et la HS1, il y a quelques fonctionnalités supplémentaires à prendre en compte. Donc, ça va être un gros bordel.

Si tu veux plus d'infos sur les interfaces prévues, les dossiers Architecture et Documentation sur SVN sont intéressants.
Cédric Gniewek
Développeur Open Rails

Scripts Open Rails pour matériel roulant : signalisation française et robinet de freinage PBL2
https://github.com/Sharpe49/OpenRails_Scripts

Avatar du membre
CM63
Messages : 1919
Enregistré le : 13 août 2010 21:48
Localisation : Un peu au large de la faille de Limagne
Contact :

Re: Mes petits projets sur OR

Messagepar CM63 » 19 janv. 2014 16:21

Quelles est ton ordre de priorité? Le portage sous Linux d'abord ou le traitement des signaux?
Image

Avatar du membre
Sharpe49
Messages : 319
Enregistré le : 23 août 2010 4:46
Localisation : Lyon (69)

Re: Mes petits projets sur OR

Messagepar Sharpe49 » 19 janv. 2014 16:24

Salut,

Dans l'ordre de priorité ? Portage vers XNA4 puis vers MonoGame en premier, puis système de traduction et enfin la signalisation.

PS : Je viens de traiter un problème de couleur des lumières. En effet, XNA 4 ne supporte plus le format de couleur BGRA (dans l'ordre des octets : bleu, vert, rouge, alpha) utilisé par MSTS mais le format RGBA (rouge, vert, bleu, alpha). Ainsi, sans modification du code, tout ce qui est rouge aurait été bleu et vice versa. Je l'avais déjà corrigé pour les textures ACE, mais pas pour les lumières.
Cédric Gniewek
Développeur Open Rails

Scripts Open Rails pour matériel roulant : signalisation française et robinet de freinage PBL2
https://github.com/Sharpe49/OpenRails_Scripts

Avatar du membre
CM63
Messages : 1919
Enregistré le : 13 août 2010 21:48
Localisation : Un peu au large de la faille de Limagne
Contact :

Re: Mes petits projets sur OR

Messagepar CM63 » 19 janv. 2014 16:33

Bonsoir,

Sharpe49 a écrit :Salut,

Dans l'ordre de priorité ? Portage vers XNA4 puis vers MonoGame en premier, puis système de traduction et enfin la signalisation.


Ok, ça me va (;

Sharpe49 a écrit :Salut,
PS : Je viens de traiter un problème de couleur des lumières. En effet, XNA 4 ne supporte plus le format de couleur BGRA (dans l'ordre des octets : bleu, vert, rouge, alpha) utilisé par MSTS mais le format RGBA (rouge, vert, bleu, alpha). Ainsi, sans modification du code, tout ce qui est rouge aurait été bleu et vice versa. Je l'avais déjà corrigé pour les textures ACE, mais pas pour les lumières.


Attend, mais on a jamais observé ce problème? ,+ , c'est assez basique, c'est que ce format est très peu utilisé ou quoi?
Image

Avatar du membre
Sharpe49
Messages : 319
Enregistré le : 23 août 2010 4:46
Localisation : Lyon (69)

Re: Mes petits projets sur OR

Messagepar Sharpe49 » 19 janv. 2014 16:35

Re,

C'est uniquement sur la version XNA4 que cela apparait car il n'y a plus de support du fameux format. Il me semble que le format BGRA est en effet très peu utilisé sur les jeux modernes, d'où le retrait du support.
Cédric Gniewek
Développeur Open Rails

Scripts Open Rails pour matériel roulant : signalisation française et robinet de freinage PBL2
https://github.com/Sharpe49/OpenRails_Scripts

Avatar du membre
PHIGUI
Messages : 423
Enregistré le : 30 avr. 2006 15:07
Localisation : Besançon

Re: Mes petits projets sur OR

Messagepar PHIGUI » 19 janv. 2014 16:50

Bonjour


applaus001 applaus001 applaus001

Je suis admiratif devant autant de compétences et de pugnacité pour améliorer un système d'une complexité cosmique !
En tout cas , bravo et merci pour ton travail au profit de la communauté et de notre passion.

Philippe

Avatar du membre
Sharpe49
Messages : 319
Enregistré le : 23 août 2010 4:46
Localisation : Lyon (69)

Re: Mes petits projets sur OR

Messagepar Sharpe49 » 27 janv. 2014 8:42

Bonjour,

Bon, j'ai enfin réussi à trouver d'où vient le 1er problème (les bouts de texture qui apparaissent dans les tunnels). Ce sont les "transferts", plus communément appelés décalques, qui sont posés autour du tunnel pour cacher le vide autour du tunnel, qui s'étendent au delà de leur zone prédéfinie (la texture est répétée sur les bords ce qui ne devrait pas se réaliser normalement).
La raison : Microsoft a retiré le support du remplissage des extensions de texture par une couleur (ici : la couleur "transparente", qui ne devrait donc pas être visible dans le tunnel).
Seul espoir pour corriger le problème : ré-implémenter ça dans MonoGame. C'est pas très compliqué pour DirectX, il suffit de changer une variable de mode de DirectX pour que ça marche. Pour OpenGL et ses variantes par contre, il va y avoir un peu de boulot en plus.

J'ai également corrigé quelques erreurs qui causaient des plantages par ci par là.

Pour la pluie et la neige, j'ai trouvé une implémentation sur internet qui semble être intéressante au niveau du réalisme. Reste à savoir comment je peux l'intégrer dans OR. Car une chose est claire : la gestion des précipitations actuelle a l'air totalement incompatible avec XNA4.

Bonne journée (je vais travailler sur mes plans de signalisation !)
Cédric Gniewek
Développeur Open Rails

Scripts Open Rails pour matériel roulant : signalisation française et robinet de freinage PBL2
https://github.com/Sharpe49/OpenRails_Scripts

Avatar du membre
CM63
Messages : 1919
Enregistré le : 13 août 2010 21:48
Localisation : Un peu au large de la faille de Limagne
Contact :

Re: Mes petits projets sur OR

Messagepar CM63 » 27 janv. 2014 9:48

Bonjour,

Bon courage Sharp49, pour tout ce travail. Pour les transferts, oui c'est important, mais il ne faudrait pas régler le problème à trop bas niveau, ce principe de remplir les trous par une couleur est quand même spécifique aux transferts (et quand tu me parles de régler cela dans DirectX, ça me paraît un peu "bas niveau" <2< ), mais bon je te fais confiance , bon courage.

Pour la partie traduction, je pourrai te donner un coup de main, tu me feras signe. Sinon le portage sous Mono m'intéresse au plus haut point évidemment (ça y'est j'ai réussi ma première session Linux, dans peu de temps je serai "Libre" (; ).

A plus.
Image

Avatar du membre
Sharpe49
Messages : 319
Enregistré le : 23 août 2010 4:46
Localisation : Lyon (69)

Re: Mes petits projets sur OR

Messagepar Sharpe49 » 27 janv. 2014 21:49

Bonsoir,

Je ne règle pas le problème en bas niveau dans le jeu, mais dans la bibliothèque MonoGame elle-même. C'est dans MonoGame que je vais rajouter le bout de code manquant pour faire fonctionner la fonctionnalité prévue à l'origine dans XNA3.1 et qui a été virée à tord dans XNA4.0.
Pour donner plus de contexte, ce qui pose problème, c'est l'utilisation du mode TextureAddressMode.Border qui remplit ce qu'il y a autour d'une texture par une couleur définie par le développeur (ici, la couleur "transparente"). Elle est essentielle sinon la texture du transfert (je préfère décalque) est répétée dans l'espace indéfiniment.
Cette fonctionnalité de XNA3.1 provient directement de DirectX. Il s'agit juste de changer ce mode à Border sur la carte graphique et d'indiquer la couleur dans BorderColor. Dans XNA4.0, ils ont viré l'accès à cette fonctionnalité sur l'argument que ça ne fonctionnerait pas sur Windows Phone. J'en ai rien à cirer de Windows Phone, je veux que ça fonctionne sur ordinateur et puis c'est tout.
Il suffit juste que je crée ce mode manquant et que je crée le code permettant d'activer ce mode sur la carte graphique, que ce soit en DirectX qu'en OpenGL (qui possède une fonction équivalente).

Dans l'immédiat, je vais passer sur MonoGame pour pouvoir ensuite rajouter cette fonction. Et réactiver ce mode sur Open Rails.

Bonne soirée !
Cédric Gniewek
Développeur Open Rails

Scripts Open Rails pour matériel roulant : signalisation française et robinet de freinage PBL2
https://github.com/Sharpe49/OpenRails_Scripts

Avatar du membre
CM63
Messages : 1919
Enregistré le : 13 août 2010 21:48
Localisation : Un peu au large de la faille de Limagne
Contact :

Re: Mes petits projets sur OR

Messagepar CM63 » 28 janv. 2014 18:36

Bonsoir,

Alors OK, si c'est une fonctionnalité qui existait dans XNA je comprends mieux. Dans ce cas c'est encore plus bas niveau que je ne le pensais et c'est bien là qu'il faut le corriger. OK .

Bonne soirée.
Image

Avatar du membre
Sharpe49
Messages : 319
Enregistré le : 23 août 2010 4:46
Localisation : Lyon (69)

Re: Mes petits projets sur OR

Messagepar Sharpe49 » 31 janv. 2014 22:39

Salut,

Mauvaise nouvelle, MonoGame fonctionne pour le moment encore moins bien que XNA4. Je vais attendre qu'ils finalisent la prochaine version majeure avant de reprendre mes essais sur MonoGame.
Donc je reste temporairement sur XNA4 avec mes décalques qui déconnent. Je vais m'occuper de la pluie, mais ce n'est plus ma priorité.

Je vais donc tenter la mise en place des fichiers de traduction désormais sur la version XNA 3.1.
Il n'y aura pas de soucis de compatibilité vu que ce sera basé sur le .Net Framework.

Bonne soirée.
Cédric Gniewek
Développeur Open Rails

Scripts Open Rails pour matériel roulant : signalisation française et robinet de freinage PBL2
https://github.com/Sharpe49/OpenRails_Scripts

Avatar du membre
Sharpe49
Messages : 319
Enregistré le : 23 août 2010 4:46
Localisation : Lyon (69)

Re: Mes petits projets sur OR

Messagepar Sharpe49 » 07 févr. 2014 19:20

Bonsoir,

Bon, la solution de traduction du jeu dont j'avais parlé précédemment (utilisation des fichiers ressources qui contient les différentes phrases traduites) est vraiment à chier car il faut recompiler le logiciel dès qu'une nouvelle langue est ajoutée. Ce n'est pas cette solution que je vais proposer.

Par contre, je me suis souvenu qu'une bibliothèque de fonctions open source, GetText, permet de faire des traductions de logiciel facilement et sans nécessité de recompiler le logiciel à chaque ajout de langue.
Une version en C# de cette bibliothèque existe. Je vais essayer cette solution.

Edit (01h54) : Eh oui ! Une petite édition en pleine nuit ! J'ai réussi à faire fonctionner cette bibliothèque et elle remplit parfaitement son rôle ! Le menu est désormais traduit ! Avant de demander l'intégration dans le serveur SVN de OR, il faut que je rajoute un menu déroulant dans le menu Options pour forcer le choix de la langue. Il faut aussi que je rajoute les fonctions de traduction dans RunActivity et le lanceur. Il y a enfin quelques ajustements de la traduction en français à ajuster.
Il faut que j'écrive un petit manuel pour les nouveaux traducteurs.

PS : Sur Elvas Tower, j'ai posté un message nommé OR Localization avec une version provisoire (mon pseudo est là bas Serana, mon nom de personnage complet sur les MMO étant Sharpe Serana).
De plus, j'ai lu les IN et DES (documents SNCF) concernant le KVB. Je sais désormais comment sont calculées les courbes du KVB. Après le système de traduction, je vais m'y coller.
Cédric Gniewek
Développeur Open Rails

Scripts Open Rails pour matériel roulant : signalisation française et robinet de freinage PBL2
https://github.com/Sharpe49/OpenRails_Scripts


Retourner vers « ORTS: Vos projets »