bric-à-brol

Concernant la réduction de face pour le 320*240, on oublie, faudra voir ça avec le bloc effet.

La musique est bouclée (loop), les événements de directsound ne se lançaient pas alors j’ai refait le système à ma sauce et lui fonctionne. Ca permettra aussi d’ajouter des fonctionnalités (délais, effets [fondu, …], …)

Le CR charge était buggé par ma faute, je l’ai réparé (vive les backups)

J’ai aussi déterminé l’origine d’une exception (erreur) mais qui sera à mon avis inévitable (chargement/déchargement simultané, données supprimées alors que d’autres les appelles => exception (ceci souvent en cas d’erreur [cas du CR harge]))

Résolution alternative

En voulant faire la vidéo je me suis rendu compte d’un bete truc, pour faire une vidéo le + fluide possible, il faut la faire en bonne taille (320*240). J’ai donc dit à GRAK de démarrer dans cette résolution et là… catastrophe !

Le menu déborde et est en dehors de la fenêtre, pareil pour le générique, bref pareil pour tout ce qui est 2D… car la 3D, elle, reste identique bien proportionnée par rapport à l’écran.

C’est normal vu que une image appliquée à l’écran ne va pas changer subitement de taille du fait que notre fenêtre elle change de taille.

LE problème est donc la proportion et ceci est lié à l’idée de projection. La 3D est projetée dans l’espace par rapport à la vue et donc restera proportionnel à la taille de l’écran (ici je schématise très fort). La 2D elle n’est pas et ne sera pas projetée.

A l’époque c’était facile les jeux n’avaient qu’un seul mode graphique/résolution. Puis on a varier, donc que faisait-on ? On prévoyait le jeu pour la résolution minimum, mais je me vois mal faire le jeu pour du 320*240, je le ferais plutôt pour du 800*600, mais les vidéos elle sont capturée en 320*240.

Il nous faut donc une solution : une résolution alternative pour le rendu.

En travaillant avec des rendu-textures, celles-ci sont projettées sur une face à l’écran pour être vue.

Actuellement, si on lance le jeu en 800*600, nous projettons le rendu (le monde) et la 2D dans une texture de rendu établie en 800*600 qui sera à son tour projetée sur une face.

Si maintenant on désire garder une proportion minimum de l’ensemble lorsque l’on diminue la résolution il va falloir jouer sur le seul élément variable dans ce cas : la texture de rendu : sa taille.

Nous démarrons donc en 320*240, notre jeu est fait pour du 800*600 et la carte graphique est ok pour cette résolution en mémoire. Nous créerons la texture de rendu non pas en 320*240 comme au démarrage mais en 800*600. Ce rendu sera donc projetée sur une face 320*240 ce qui écrasera l’image (sans pertes dans ce cas là) et nous auront notre porportion concervée.

Ceci est fort technique je l’avoue mais comme ça vous savez un truc en + qui sera dans GRAK 🙂 Tout ça juste pour faire des vidéos en gros lol

Ceci sera prochaînement mis au point et enfin on pourra faire une vidéo intégrale de ce qui existe actuellement.

– Où est-ce que je met ça ?

Je reviens à la charge avec les bureaux et l’éditeur de ceux-ci.

A quoi ça sert ?

Un bureau sert à gérer des fenêtres, boutons et autre objets graphique, bref les OGs de LibK.

L’écriture d’un bureau est longue, abstraite et pénible (je le sais par expérience) autant écrire le contenu d’un Widows Form à la main…

L’éditeur est donc l’homologue de Visual Studio (en + simple et basique) adapté pour les OGs de LibK pour leurs intégration facile dans les projets GRAK.

Une future super classe de LibK : Bureau, sera le siège de la gestion des événements et rendus de cette couche. (capte et redistribue les événements, gère le rendu)

En découlera une classe auto-générée de base par l’éditeur selon vos désirs.

Ajoutez votre nouvelle classe bureau à votre projet de CR et inscrivez-le dans le gestionnaire de bureau de GRAK et le tour est joué.

Cette nouvelle classe contiendra le squellette suivant :

– décalaration de vos OGs et modification des propriétés de ceux-ci
– arborescence père-fils des OG entre eux
– écriture des fonctions vierge des événements désirés des OG (via l’éditeur : cases à cocher pré-établies par défaut)
– tout le code est indenté et #regionné selon la hiérarchie père-fils

Ceci devrait définir la première structure fiable d’OGs

Relation à des milliers de clusters d’ici

C’est l’époque des déménagements, liebesstein déménage, quitte le foyer natal sécuritaire et prend son indépendance… quoique il reste bien accroché à GRAK et restent sont bien lié via des écris registré.

Explication simple : pour jouer à des jeux en flash il vous faut le jeu et le plugin flash installé, on ne vous redonne pas le plugins avec chaque jeu.

En montant un cran plus haut en restant simple : exemplede java, vous avez le JRE sur votre pc et les applications java l’appelle pour fonctionner

Et de manière complete :

1) regarder l’image suivante et la garder sous les yeux 🙂

globalisation-grak

2) avant correspond à la partie gauche de l’image (séparé par la ligne noire 😉 )

tout était réunit, tout le monde se connaissait et était rassemblé dans le même répertoire

3) globalisation, je ne veu pas redistribuer grak avec tout les jeux, 1 installation utilisable pour toutes les applications

on va séparer le coeur vital GRAK

l’exe et les dll système
+ 1 répertoire lngs contenant les fichiers langues des erreurs pour le fichier de logs 🙂
+ 1 répertoire crs pour contenir des crs élémentaire : vide et charge

4) vous installez le jeu Liebesstein

là vous aurez votre répertoire quelque part sur votre pc et il contiendra

des répertoires basique propre au jeu : captures (d’écran), fmls (monde du jeu), mp3s, textures
+ 1 répertoire plugins
+ 1 répertoire conf
+ 1 répertoire lngs contenant cette fois les fichiers langue du jeu
+ 1 répertoirecrs avec les CR du jeu (et meme vide et charge si pas oublié)

+ 1 batch (bas de l’image pour le détails) qui pour cette 1ere version appelle grak avec les paramètres

+ 1 répertoire créé DANS le rep de GRAK (la nomenclature de ce rep est strict et contiendra à priori 1 seule dll utilisée pour l’application/jeu)

dans notre cas les CRs et le plug-in ont besoin d’infos communes centralisées dans cette dll supplémentaire (et pour des raisons technique doit se trouver dans le rep de gra dans un rep du meme nom que la dll…)

5) dans un avenir pas lointain un programme lancera le jeu/application au lieu du batch, celui-ci pourra vérifier les mise à jour, la stabilité du système, et autres brol préparatoires sympa et utile (evidemment ceci reste propriétaire au jeu, le batch est le minimum à respecter pour que ca fonctionne)

6) note concernant le point 3), quand GRAK s’installe il peut être exécuté en mode initilalisation : d:grakgrak.exe -init ce qui aura poureffet d’écrire ou de réparer le registre windows pour dire ou se trouve GRAK

comma ça le lanceur du point 5) pourra constituer dynamiquement le chemin d’accès à GRAK

Voilà donc un bon pas en avant dans l’idée framework

A venir comme déjà dit la relecture des OG + la conception de la classe objet

Je me suis aussi lancé dans l’analyse spatiale des points et des plans pour élaborer des systèmes de colision précis voir également des modifications des mayage des objets. On verra bien 🙂

Vexel

Après plusieurs jours de discussion sur forum, de recherches interminables, de lecture et relecture du code d’initialisation de GRAK, j’ai enfin réussi a refaire fonctionner le SwitchMode, cad le passage entre un mode fenêtré ou un mode plein écran pendant que GRAK s’exécute.

De plus, si, à la fin du programme, le jeu est en plein écran, il le remet en fenêtré de tel sorte que vos programmes (explorateur de fichier, navigateur, msn, winamp, …) reprenne leur positions initial. (Pour info la position des autres fenêtre change lorsque l’on passe en plein écran dans une résolution differente)

A venir en matière de correction : la relecture complete des OG.

en-cor-ection

Le chargement sonore a été accéléré, on passe par un autre device prioritéaire (comme on aurait du faire depuis le début), enfin soit ça va + vite et c’est tant mieu !

GRAK a été utilisé pour la réalisation d’un petit programe bibitif : le jackpot-afond qui a été utilisé lors de la soirée d’embassade annuel de l’Ordre de la Questure Raymaldienne. Ce même programme a déjà été repris et utilisé par d’autres Ordres ! youhou 🙂 Ce logiciel se trouvera un jour dans les téléchargements. A venir donc…

aïeuh ça fait mal

Nouveautés :

  • 1er système de collision 😀 !!!
  • Chargement du monde globalisé (via dll du jeu)
  • CR init de chargement global

A faire :

  • Modifier le système de passage de niveau
  • Améliorer la méthode de chargement des niveaux

On en est à remplir le niveau d’objets divers.

ich speak internazional

Tadaaa grande nouveauté, GRAK gère un système de langue.

2 fichiers : le fichier pour grak concernant les erreurs (logs) et un autre fichier propre à l’application développée.

Il est impératif qu’une ligne option>langage se trouve dans le setup.conf, si les fichiers existent pas tampis.

Il suffira donc que qqun decide de traduire les fichiers (mode xml) et en avant la musique

2ème nouveauté : le calcul du FPS par la boucle d’Action principale. On affichait du 200-250 fps avec le premier monde de Liebestein 🙂

Souvenir souvenir

Editeur de Liebesstein : suite 🙂

  • Sauver
  • Sauver sous
  • Ouvrir

De plus j’ai amélioré la fenêtre de plugins pour qu’elle s’adapte à une taille idéale (donnée par le plugins en dur)

Le système de texture n’a été fait qu’en partie (liste XML des fichiers à chargé) ne pouvant pas encore définir le fonctionnement générale. Nous avions parlé d’un CR de chargement générale et pour le moment c’est l’Editeur qui charge les textures. CR à mettre en place donc.

Nous nous rappellerons (pour les bon vieux fans) le moteur Y (2002 – histoire de Nahyan). La salle (en capture), sauf le renfoncement, est un clin d’oeil à la salle de test de ce moteur. Une forme en L. Mais à l’époque par face murale il y avait 2 triangle et pas 2 x bloc, comme notre système actuel.

Captures :

06-04-05-editeur-0 06-04-05-editeur-1