humani nil a me alienum puto

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 12 août 2009

220ème semaine

Synthèse de votre profil amoureux

Après étude des résultats de votre Test Meetic Affinity, il ressort de votre profil les éléments suivants :



Synthèse de vos valeurs

L'analyse approfondie de votre système personnel de valeurs universelles met en lumière une prévalence de l'ouverture au changement sur la recherche de la continuité. Vous privilégiez l'indépendance de l'action, de la pensée et des sensations et recherchez les expériences nouvelles.

Par ailleurs, vous vous engagez actuellement autant dans le sens de la poursuite d'intérêts individuels que dans celui du bien-être et de l'intérêt des autres.

Pour assurer la pérennité d'un couple, il est important que vous ayez certaines valeurs en commun avec votre partenaire. Vos valeurs les plus importantes sont les suivantes : Autonomie, Stimulation, Hédonisme, Universalisme, Bienveillance, Accomplissement social, Pouvoir. Pour la bonne marche de votre couple sur le long terme, il serait bon que votre future partenaire partage certaines de ces valeurs.


Synthèse de votre vision

Vous avez une conception « égalitariste » du couple. Pour vous la relation concrète compte davantage que le romantisme. Par ailleurs, vous vous inscrivez davantage dans uns vision moderne de l'union que dans un registre plus traditionaliste

En ce qui concerne la gestion du quotidien et de la routine, vous semblez plutôt la fuir et chercher à l'évacuer de votre vie. D'ailleurs, vous préférez avoir une vie plutôt mouvementée.

Aujourd'hui, vous avez besoin d'être charmé pour succomber à l'âme soeur. Par ailleurs, vous n'attendez pas particulièrement d'elle qu'elle vous voue une fidélité sans faille.

La sexualité quant à elle jouera une place importante au sein de votre couple, d'autant plus que vous semblez particulièrement enclin à expérimenter de nouvelles fantaisies avec votre partenaire.

Dans l'éducation des enfants, vous vous attachez à leur inculquer des limites structurantes et veillez à ne pas entretenir avec eux un rapport de type copinage. Strict du point de vue des limites éducatives appliquées, vous savez garder la bonne distance par rapport à vos enfants.

Pour vous, l'argent n'est pas indispensable au bonheur. En effet, il ne constitue pas une condition essentielle et suffisante permettant d'atteindre un fort niveau d'épanouissement et d'être heureux. Cependant, il représente pour vous d'une source certaine de plaisir. Vous appréciez en effet de dépenser votre argent afin de répondre à vos envies. Bien que, l'argent ne façonne pas le bonheur, vous le considérez tout de même comme une manière de satisfaire vos désirs.

Sur les aspects vision, là encore plus vous partagerez d'éléments en commun avec votre future bien aimée, plus vous aurez de chances de vous entendre parfaitement avec elle.


Synthèse de votre personnalité

En fonction des éléments les plus marquants de votre personnalité vous pourriez trouver un grand intérêt à rencontrer une partenaire :

  • Qui partage votre besoin de contact avec les autres.
  • Qui soit capable de parler de partager ses sentiments avec vous et de répondre positivement à votre tendance à exprimer vos ressentis personnels.
  • Qui donne toute sa place à l'écoute au sein de la relation.
  • Qui soit capable de se montrer conciliante lorsque vous semblez campé sur vos positions.
  • Qui sache lire entre les sous-entendus et s'adapter à votre mode de communication afin de ne pas entraîner d'incompréhensions.
  • Qui soit elle aussi capable de raisonner de manière rationnelle.
  • Qui partage votre souplesse et votre créativité.
  • Qui soit capable de projeter votre relation dans l'avenir.
  • Qui soit capable de voir les choses en face sans s'illusionner abusivement.
  • Qui soit capable d'accueillir vos émotions et d'exprimer les siennes de manière spontanée.


Par ailleurs, il serait préférable également que votre future partenaire :

  • Ne se montre pas trop étouffante dans sa manière de vous aimer.
  • Vous laisse la chérir et prendre soin d'elle.
  • Consacre une partie de son temps libre à des activités communes.
  • Ne vous mette pas une pression forte pour bâtir des projets à deux tout de suite.
  • Ne soit pas systématiquement physiquement collée à vous.
  • Soit capable de partager vos intérêts sur le plan intellectuel et d'échanger avec vous sur certains sujets.

C'est pas mauvais du tout ! (mis à part que les enfants sont préférables avec du sel et du poivre, que l'argent non indispensable au bonheur est un peu rapide, et que "vous n'attendez pas qu'elle vous voue une fidélité sans faille" doit être pris comme une espèce de litote, j'espère) Dans le détail, c'est même très pertinent à quelques détails près (on sait que je suis difficilement rangeable dans des boîtes préformattées, pourtant). Ça me donne même l'occasion de meubler mon billet de la semaine, parce qu'à vrai dire, je ne savais pas trop quoi raconter. Mis à part qu'on a beau avoir un carnet d'adresses qui déborde, en été, c'est mort (à l'une près, qui loin d'être de consolation, reste tout un programme...) ; comme quoi, ça ne déborde jamais assez. M'enfin bon, ça devrait s'arranger tout seul. Parce que bon, perdre une heure à passer un test psy en 65 pages pour apprendre ce que l'on sait déjà, faut vraiment ne pas avoir envie du tout de passer le frottoir... (sur ce le micro-onde appelle la pizza -- p'tain, me faut une fille pour me sauver, là, j'ai même recommencé à coder KonQueR, grave)

mercredi 26 septembre 2007

122ème semaine

Trois billets par jour, voilà qui redevient raisonnable. Et pourtant, le manque de temps se fait cruellement ressentir. Certainement parce que l'emploi du temps est bien rempli, mais quand même... J'ai tout de même pu uploader la dernière version de KonQueR sur le SVN de sourceforge, si vous avez du temps pour tester, je n'ai dû écrire qu'une ou deux lignes de code en un an, et n'ai pas trouvé l'occasion ni de changer la licence vers la GPL3, ni d'inclure des textures vraiment libres... Mais il y a le dernier système de map, et plein de bugs corrigés (je crois) ; en attendant l'éditeur de cartes, quelques idées me sont venues la semaine dernière. Reste à trouver le temps...

Évidemment, si je release avec plus d'un an de retard, c'est que mon CV va bientôt circuler à droite à gauche et au milieu (et justement, un coup de fil du président pour le dossier de cooptation ; qu'est-ce que ça leur fait mon numéro de secu, je rêve ? De toute façon, je ne le connais pas plus que mon numéro de compte bancaire, trop de chiffres, chuis littéraire moi ! :D ). Bref, demain, c'est salon. Va falloir trouver le temps pour caser des entretiens, maintenant, galère... À la rigueur, je pourrais tous les repousser en décembre (de toute façon, toutes les annonces sont pour une "disponibilité immédiate"...), mais je voudrais être fixé au plus vite, car dans le pire cas mon entreprise d'accueil attend mi-octobre pour me trouver un remplaçant, et je pourrais donc m'auto-succéder (ie rester en SSII, bof quoi) ; et puis sinon, ma boîte a enfin rappelé, sauf que la proposition correspond à ce qu'ils auraient du me donner au strict minimum (comprendre : j'aurais quand même cherché à fuir ailleurs) il y a trois mois, et pas dans trois mois sans garantie aucune ; sans compter enfin que mon péché mignon, c'est la haute-couture, et que ça coûte cher ces bêtises, et j'm'achèterais bien des pompes assorties à mon dernier blouson en vrai cuir qu'on voit les nervures et les trous des anciens poils du buffle qui y habitait avant :D  (au passage, quelqu'un connaîtrait un super cordonnier sur Paris ? J'ai mes godasses actuelles à faire retaper un peu, et à nettoyer ; c'est relou le métro, y'a des gens qui te marchent sur les pieds et esquintent -- très légèrement, certes, mais quand même ! -- deux bonnes journées travaillées d'investissement pédestre :'(  )

Bref, le temps... Avec qui assisterais-je à "Toki" cette année ? Je me suis dernièrement pris à espérer un instant que ce ne serait pas tout seul comme un con (genre comme presque tous les concerts, heureusement qu'on y voit toujours les mêmes têtes sympathiques pour passer les entractes), c'est bête, mais bon... Las, aussi haut soit le niveau de compatibilité du rang "ami[e] palpatien[ne] certifié[e]" soit élevé (qui est à peine moins élevé que le test bien connu de tous, pour futur et concernant uniquement -- pour mon malheur ? -- la gent féminine ; on comprend la gradation, j'espère : c'est exactement ce qu'il ne faut pas faire dans notre pays, ça marche très bien aux USA et en Finlande, mais pas ici), je suis tombé (ou plutôt le contraire) sur la célibataire (pour une fois...) la plus occupée de l'Ouest (ah bah finalement, ça change pas beaucoup). C'est pas de bol ; quand on croise deux ensembles quasi-vides d'espace de liberté, forcément, on n'en tire pas grand chose de consistant... Sans compter la gestion funky d'agenda, la même qui fait que je vais voir 99.99% des films tout seul même quand j'ai l'occasion de fixer une sortie ciné, parce que ça se prévoit, et moi c'est du hasard ciblé (surtout en fonction des transports en commun ratés, et de fait des séances prévues à l'eau) et de l'intensif une fois sur place, soit une activité totalement incompatible en groupe (qui, comme chacun sait, commence à deux). Bref, comment qu'ils font, là, tous ? OK, ils en font moins... Pas acceptable : reste plus qu'une centaine d'année à vivre (en buvant du lait).

Alors, failli recommencer. Mais finalement, non. Pensé au contraire tout abandonner définitivement ; quand on n'a pas de chance, bah c'est comme ça, et pis c'est tout. Même si un peu est mieux que rien, mais ce n'est pas vraiment ce qui est recherché, à la base. Je vous rassure tout de suite, mes (désormais fameuses) exigences ne sont pas impossibles (eh ouiii, faut pas croire), rien que hier dans le RER, la vingtaine, 1m73, blonde foncée (naturel, sans mèches, ça existe encore !), yeux verts profonds plongés dans le Courrier International (et ça, les enfants... :)  ), très peu de verroterie, chaussures sportives mais élégantes (ça a un nom, mais je sais pas lequel), pas fagotée pour être sexy-à-deux-balles, bref parfaite -- bague au doigt, évidemment, n'oublions pas la malédiction. Prochain exercice à la "beauty and the geek" : obtenir le numéro de téléphone de la jolie violoncelliste fana de l'orchestre de Paris (allez, on encourage !...) ; me suis déjà fait disputer par un ami proche pour avoir raté le coche avec la splendide bibliothécaire de Garnier, si on se rappelle bien (mais elle doit avoir des places d'abonnement pas très loin des miennes, donc bientôt... Oui, parce que pour l'instant, aucune des représentations à l'opéra n'étaient dans le lot...).

Donc, on est doué, ou on ne l'est pas. Mais je continue, finalement. Parce que Lea. Oui oui, en zappant un peu, je suis tombé sur ce billet sur Salomé. Et là, bah wow, quoi. Même si j'aurais plutôt dit "Non, Salome n'est pas qu'une Histoire Sexuelle!!!" ou "Pornographique" à la place de "Sexuelle", parce que la névrose -- et même ici une certaine forme d'hystérie -- est forcément liée, et même totalement couplée, à la sexualité de la jeune fille (comment avoir commis des mises en scène où elle apparaît comme une streap-teaseuse bassement allumeuse ? Elle n'a que 16 ans ! Même Melissa P. et son maniement de cravache autour du même âge ne suffira pas à me convaincre, bien au contraire), et en l'occurrence -- je pense -- à l'affirmation de son féminin (adolescent, éveil de la libido et recherche de soi simultanée, dans un milieu où elle apparaît comme séduisante, ce qui n'arrange pas la perception que l'on se fait d'elle et son intellect) bridé par la société (d'où la recherche de parole, justement ; cas de jeunes lolitas similaires rapportés en psychanalyse). Lea, nous devons absolument en parler (sans parenthèses dans tous les sens, je sais, suis lourd à lire quand je veux être succint) ; mon agenda est en haut, prochains concerts : orchestre de Paris jeudi (viendez les gens, c'est du bon, du contemporain), Pleyel vendredi et dimanche aprem' (y'aura Laurent, déjà ;) ), TCE prévu pour samedi soir (radio Bavaroise, le retour -- j'ai une offre "une place demi-tarif pour une achetée", si un non-jeune cherche encore une place ça m'arrangerait) et certain le lundi (les Moscovites que je reverrai à la fin de la semaine à Pleyel, mes vieux se sont mêmes pris deux billets), un Pierre-Laurent Aimard le dimanche soir (plein de places libres, même pour 5€ et replacement, allez-y !), et un théâtre du Châtelet le matin même si je n'oublie pas de me réveiller tôt (mais c'est pas cher et toujours très bon...). Bon, le plus simple, c'est encore Paris-Carnet de mercredi prochain, et ça manque d'ailleurs cruellement de "cultureux" comme dit l'autre (attention, y'a presque que des gens très bien et plein de culture comme c'est impressionnant, hein, mais ils ont la mauvaise idée d'avoir fait des études littéraires et en plus d'avoir pondu des gosses, ou comment être à court de finance toute sa vie  -_-  ; parce qu'on aura beau dire, même les gens qui voudraient ou serait la cible idéale pour aller aux concerts ne le peuvent pas forcément -- même s'ils sont les plus au courant des astuces budgétaires --, billet à suivre, j'ai de l'espace temporel libre).

Bref, je disais donc que je manque de temps... Heureusement que Fedora est nulle, qu'il faille 150 ans pour installer des paquets de dev, et que pendant ce temps je ne peux pas faire grand chose...

mercredi 28 février 2007

supreme KonQueR

Supreme commander est sorti ! C'est la "suite" de Total Annihilation, pour les retardataires. Enfin, l'héritage, plutôt, puisque c'est Chris Taylor qui est aux commandes. Il y a déjà quelques tests qui sortent, ici ou . Ce qui en ressort fait fortement penser à TotalA : mission et histoire nulle à chier (mais sérieux, y'en a qui en ont vraiment quelque chose à foutre de ça ? Comme si j'avais besoin d'un conte pour enfant pour faire une partie d'échecs...), gameplay de ouf, parties hallucinantes, possibilité de jeu infinies, cartes énormes (80km de côtés ! J'arrive à peine à 1km, moi :'( ; bon, j'ai pas un quadricore non plus, hein), etc. Le tout en 3D. J'ai vu ça à la fnac, maudits soient-ils de ne pas nous laisser tester le jeu pour de vrai ! Parce que bon, je comptais changer de PC juste pour ça, dès que Cedega le supportera (ça prend jamais trop de temps pour un nouveau jeu), mais là, vu les perfs que ça demande niveau matos, ça risque d'être ruineux (il faut compter la marge supplémentaire pour l'émulation), en plus du jeu à 55€  (heu, depuis quand faut être millionnaire pour jouer ?? Le dernier jeu que j'ai acheté, il devait être à 250F, et le plus cher du cher de l'innabordable, c'était 350F...).

Parce que j'aimerais bien au moins pouvoir piquer des idées. De gameplay, je veux dire, parce que les trucs visibles comme le menu déplaçable du côté par défaut vers le bas comme dans AOE (ça je peux coder facilement, tout est objet dans KonQueR), ou le split screen (excellent !! Par contre à coder, moi je risque d'en chier, va falloir au moins 500 lignes d'ajouts/modifs, à vu de nez, et bonjour les perfs, arg), ça se voit à l'écran, c'est facile à comprendre. Ensuite, il y a les trucs tendancieux ; par exemple, un de mes problèmes, maintenant que les reliefs sont fort bien gérés (heu, c'est pas la version sur sourceforge qui fait ça, j'en ai bien peur ; faudrait que je mette en place le svn, maintenant que j'ai le net chez moi), je me suis rendu compte que les chemins virtuels tracés entre les waypoints (quand on appuie sur shift ; ça s'affiche en vert, avec anim chez moi, alors que sur Supreme Commander c'est en jaune sans anim, mais avec une meilleure gestion des croisements) ne les géraient pas, c'est-à-dire que s'il y a une montagne au milieu, et bien ça passe au travers, et l'on n'y voit rien, pas glop (et clairement : un bug de merde ultra chiant à corriger) ; sur Supreme Commander, on voit que le chemin en jaune fait une sorte de parabole pour contourner les reliefs élevés, mais on voit ça de loin, en zoom, aucune idée de ce que ça donne (c'est ça le problème : ça risque d'être super moche). Enfin, les trucs impossibles à voir à l'écran sur vidéo, et qui nécessite un test réel : le mode de zoom (incrémentiel ? Parabolique dans le placement de la caméra ? Quelles touches du clavier ? Quelle vitesse de déplacement ? Comment est gérée la rotation ?), la gestion de la minimap (ça à la rigueur, j'en ai une petite idée, avec la symbolisation carré/triangle sur les screenshots), et tout simplement, le feeling général.

Bref, si un gamer passe par là et qu'il peut me renseigner, qu'il n'hésite surtout pas ! Moi pendant ce temps, je vais continuer à baver, et chercher du temps de libre pour coder mon jeu. Qui décidément reste dans le même esprit que TotalA/Supreme Commander : un tas de fonctionnalité de gameplay cachés (même moi je ne les connais pas toutes dans mon jeu, pourtant je les ai toutes codées :D ), ou encore la possibilité de changer les waypoints/actions intermédaires à la volée, sans tout redéfinir, ce qui d'après clubbic est l'invention géniale du siècle (je me gausse un peu : j'ai piqué l'idée à TotalA ; en revanche, le bouton "help" qui associe une unité ou un groupe d'unité à toutes les actions d'une unité tierce par héritage, c'est de moi en exclusivité ;) ).

mercredi 11 octobre 2006

73ème semaine

Que ne vous ai-je donc pas raconté cette semaine ? Avec toutes ces sorties, on a ma vie en direct :s. J'ai changé d'imprimante, une HP 2570, ma canon i570 imprimait des lambeaux de page, pas terrible comme idée. Fini donc les drivers pourris de chez canon, vive les drivers libres de chez HP ! Enfin, j'ai pas encore fini l'install, je me sui amusé pendant 1 heure avec l'interface web ^^. Bah ouais, parce que le truc a un petit écran de contrôle, plus de boutons que je n'en ai jamais eu de toute mon adolescence, un lecteur multicarte et port usb pour appareil photo, et un scanner intégré, dirigeable par interface web, d'ailleurs, on peut configurer un max de truc comme ça :p. Bref, je l'ai branché sur mon routeur, ça va m'éviter tous les problèmes de partage entre mon PC et mon portable que j'avais avant. Je me demande quel OS ils ont foutu dedans, normallement c'est du ThreadX, mais y'a une pile réseau et tout dedans ? Hhhmmm, faudrait que je vois si c'était dedans... En tout cas le perfectionnement de telles machines m'a fait comprendre pourquoi certaines boîtes pensent de plus en plus y mettre du Linux dedans. C'est bon pour le boulot ça :p. Enfin, le truc, c'est les grandes boîtes prennent l'eau, du coup le proj' a été abandonné, et limite heureusement, quand je pense que c'était à Cergy, arg.

Du coup, je n'ai pas de mission, et ma boîte a reconduit ma période d'essai de 3 mois. C'est assez chiant, ingénieur à l'essai pendant 6 mois, c'est quoi, un mini-CPE ? Bon, d'un autre côté, je m'en fous un peu : chuis payé pareil, et ils ne risquent pas de me virer, ils m'ont déjà payé un bon mois de formation sur les 3 où j'ai commencé, et puis, ils savent que je peux trouver du boulot en moins de 2 heures (enfin, ça dépend de la vitesse du RER pour retourner chez moi et retrouver deux ou trois cartes de visite chez la concurrence :D ). Bref, c'est un peu la mesure inutile, mais faut bien marquer le coup ("politique maison" ). Ceci dit, j'avoue, je suis privilégié, mon voisin a même déclaré "Oh la chance !". Parce qu'en échange, on m'a simplement demandé ce que je voudrais apprendre. Alors tout heureux, j'ai répondu : programmation sur kernel Linux, drivers pour commencer. C'est très demandé ça, le truc en or sur le CV, d'ailleurs ils le savent, du coup, pour l'instant, j'ai dégainé mon "understanding the Linux Kernel" de chez O'Reilly, 925 pages, et j'ai attaqué la section sur les drivers, 90 pages, chapitres 13 et 14. En attendant de me trouver quelque chose, mais toujours en interne :). Et voilà comment on se fait payer pour apprendre ^^. Et comme je comptais pas acheter d'appart' (fin juillet mon compte courant était à 150€...), ça ira pour l'essai, mais j'ai assez peu apprécié le forçage de main à 18h20 le dernier jour de la période, s'ils m'en avaient parlé avant, j'aurais tout de même accepté, les autres boîtes pour lesquelles j'avais postulé ne m'auraient pas offert pareille opportunité (on me casait sur des trucs que je connaissais par coeur, super enrichissant...), et ceux qui bossent dans d'autres boîtes commencent déjà à s'ennuyer, moi au moins, c'est comme à l'école, mais payé :p.

Un p'tit mot rapide sur KonQueR, tiens :  j'ai presque trouvé comment afficher du texte via SDL, pour l'instant ça chie monstrueusement, mais ça progresse. Et si vous connaissez mes canassons (que tout le monde prend pour des chiens, voire des renards), regardez donc celui-ci ^^.


humeur du moment: joueuse, plein d'effets à la con sur le dernier compiz ^^ (on peut réduire les fenêtres avec l'effet lampe magique, on rotation, ou ondulation, idem pour l'ouverture et la fermeture, mais c'est assez intrusif quand même...)

dimanche 1 octobre 2006

Jouez: créations numériques & jeux vidéo

Journée passée à la cité des sciences et de l'industrie, pour l'espèce de salon-expo sur les jeux vidéo qui s'y tenait ces trois derniers jours, la dernière étant aujourd'hui même. Il y avait donc un tas de consoles, de la PSP et de la DS à profusion, un peu de Xbox ou de PS2 par-ci par-là, des bornes de style arcade, des vieilleries émulées comme on bon vieux temps (invaders :) ), et des jeux futuristes comme celui réto-projeté sur un écran tournant, le joueur étant assis au centre. Des PCs aussi, en LAN, classés thématiquement, RPG, FPS, RTS, simulation, etc. Des conf', et des écoles, assurant parfois quelques formations rapides.

Niveau conf', j'ai assisté à celle sur les jeux sur téléphone portable, par Orange et gameloft. Si Nico passe par ici, il saura pourquoi ;). D'ailleurs, ça a parlé rapidement jeu géolocalisé et communautaire, comme perspective à explorer mais dont le marché n'était pas encore près. Arf, dire que ça marche depuis 4 ans au Japon... Un jour ma V2 vaincra... Enfin, vu les graphismes d'aujourd'hui, ce qui se faisait il y a 1 an et demi est totalement obsolète :s. Faut dire qu'un ARM9 comme archi de base dans les téléphones, ça aide, avec un écran de quelques dizaines de milliers de pixels (soit pas grand chose), on a une équivalent en terme de traitement, disons, d'un PIII 2,2Ghz (allez, p'têtre un peu plus ; et sans chauffer, évidemment). Forcément, ça dépote. Les gars sont tout de même plus de 6000 pour 35 jeux par an, 1 million d'Euro l'unité, 550 cibles différentes au minimum (environ 1500 pour une couverture quasi-complète), c'est assez gore, hein ? Un peu beaucoup too much, même...

Les écoles présentes étaient cool et m'ont appris beaucoup de choses. Enfin, niveau programmation, ça frise le zéro absolu, peut-être 2 vrais programmeurs qui touchent à SDL et OpenGL en tout et pour tout parmi les dizaines d'étudiants présents... Le reste est composé d'infographistes, de designers, de modélisateurs (ou modeleurs, ou ? arf), de musiciens, et parfois (rarement), de "programmeurs", comprendre : assembler de grosses briques à l'aide de scripts. C'est le monde du logiciel proprio, du 3D-S Max, de Maya (qui s'est fait racheté par le premier, c'est un peu le monde du monopole aussi), et de Virtools, qui permet de faire (à l'aide d'un Core Trio ou presque :D Bref, c'est trop trop pas optimisé, ça passe par 4 couches d'émulation au moins >_< ) des jeux tout à fait intéressants à moindre frais. Il y a des choses novatrices, des marionnettes aux Gobelins, ou de la boule sur décors mouvant sous Nitendo DS chez Infogames, ils sont jeunes et sympas, et peu nombreux, ils bosseront de toutes façon tous ensemble un jour ou l'autre je crois. Je ne sais pas s'ils ont conscience de la pourriture du milieu, ceci dit... En tout cas, je n'aurai pas pu trouver les informations que je cherchais :/. Mais j'ai découvert l'ENJMIN au passage, ils sont super sympas, et font des jeux bien sympas aussi ; sous windaube, "évidemment" :'(. C'est vraiment dommage qu'ils soient tous aussi nuls en info, et ça explique des choses une fois qu'ils ont intégré les studios. Ça explique ausso pourquoi ça patauge un peu. Faire un moteur 3D, c'est clairement "le truc de dingue", en gros, s'ils en ont un par an et par promo qui va faire ça, c'est bien...

Après plusieurs heures passés avec eux, j'ai rejoint les RTS, où une p'tit blondinette de 11 ans à tout casser (on aurait dit moi à son âge, délire ^^) s'escrimait à faire des armées, collecter du dino pour faire un barbeuc' géant, et de temps en temps casser la figure de l'ennemi ("paraworld" le jeu, je crois) ; j'ai pris sa place peu avant la fermeture, histoire de gratter quelques idées, ça ressemble violemment à du AOE, et ouais, le truc auquel je jouais quand j'avais l'âge de la gamine précité >_<. Mais c'est cool quand même, un peu facile pour un vieux routard comme moi :D (quand j'ai arrêté de joué à AOK, je faisais des parties seul contre 8 alliés en mode "super intelligent", sur 4 ou 5 heures...).

Finalement, je suis reparti en ayant fait exactement ce que je ne comptais pas trop faire, mais ce n'est pas grave, c'était fort intéressant. On retiendra surtout ce jeu purement délirant : "Lily et le géant", aux couleurs pastels et à l'univers de Burton, avec des personnages complètement kawaii, avec cette p'tite fille supra-mignonne qui donne des coups de parapluie magique afin d'écarter les gens sur le passage d'un gentil géant myope, histoire qu'ils ne se fasse pas écraser ; et parfois, la ruse consiste à activer le marchand de sucreries, ou de faire asser de vent pour soulever la jupe d'une jeune fille ^^. La vidéo est sur Youtube, pas trouvé où ça se télécharger, paraît qu'il y a p'têtre possibilité de le faire tourner sous Firefox (mais sous nunux aussi ? Telle est la question). Ça manquait cruellement de jeux libres, aussi. Et de jeux collaboratif, trop professionel tout ça. Et de choses techniques aussi. Arf, pas de bol pour mon KonQueR...


humeur du moment: dans le métro, un gamin louche sur mon écran, je fais une p'tit démo discrète de compiz, à la fin il est éberlué ^^ (gnarc gnarc :) ) ; nice day ! :)

lundi 11 septembre 2006

KonQueR et le nouveau format de map

J'ai donc fini par changer le format de map, ce qui était prévu depuis un an environ, mais commencé à peine début août. Évidemment, je ne travaille pas en continu, sinon ce serait vite réglé, et c'est ainsi que depuis une semaine, je n'ai pas écrit une seule ligne de code :/. Après une période creuse de presque 6 mois, tout de même >_<.

Comme je suis pour les formats ouverts, je m'en vais vous expliquer à quoi cela ressemble à présent :). Et poser une petite question à la fin... ;)

<map>
    <version id="0.84">
    <size w="w" h="h"/>
    <heights>"heights"</heights>
    <types>
        <types_def id="w" name="water" water=1>
        <types_def id="s" name="data/sand.png">
        <types_map>
types_maps
        </types_map>
    </types>
</map>

Voilà pour la vue générale. Tous les champs (ou presque) ont une valeur par défaut, et sont donc optionnels. Mais si on ne veut pas se retrouver avec une map de 10x10 toute plate avec que de l'herbe, mieux vaut tout définir ^^.

Dans le détail, voici ce que ça donne :

* le champ version a un id qui permet d'avoir un brin de compatibilité dans le futur. Pour l'instant c'est 0.84, en fait c'est déterminé automatiquement à la compil en fonction du nom du package (vive les autotools :p ), donc ce sera probablement 0.90 lors de la sortie.

* le champ size admet la largeur et la longueur de la carte, logique (w et h sont donc des chiffres)

* le champ heights est spécial, puisqu'il est binaire. Je sais, c'est gore, mais ça permet de compresser. Là va falloir s'accrocher, c'est un poil compliqué, chaque bit a sa signification. J'ai codé la hauteur des cases du jeu en partant de (0,0), puis en me déplaçant sur l'axe des x (de 0 à w), et celui des y (de 0 à y). Il y a donc (w + 1) * (h + 1) points. Chaque point est codé sur un octet, en réalité les 5 bits de poids faible codent la hauteur en elle-même, sur une valeur de 0 à 32 donc (c'est largement suffisant, avant c'était codé de 1 à 16). Le bit de poids fort indique si l'on a affaire à un sommet ou pas : en effet, il y a deux manières de tracer un rectangle en opengl, puisque celui-ci est composé de deux triangles ; la représentation mémoire sur ces bits est identique (vive les masques de bits dans le code ; vous comprenez mieux mes anciens problèmes de programmation dont je parlais ici il y a quelque temps ?). Restent deux bits qui n'ont d'utilité que dans le fichier de map, et seront mis à 0 dans la mémoire : ceux-ci indiquent, en numérotant de 0 à 3, à quelle case se rapporte le point décrit. J'explique : chaque point est un sommet, commun à 4 cases (sauf sur les bords) ; d'après l'ordre de ma description, je donne par défaut la hauteur du point de la case haut à gauche ; si je change la valeur du 00 (01, 10, ou 11), je décris successivement la hauteur des points haut droit, bas droit, et enfin bas gauche. De telle sorte que les sommets peuvent être en discontinuité pour des cases adjacentes : en d'autres termes, ça permet de faire des falaises (et ouais, tout ça pour ça). Le premier point en 00 est obligatoire, et donne la valeur par défaut aux autres points, qui sont tout à fait optionnels. C'est de la bonne compression, on ne peut pas faire mieux, puisque n'importe quel octet peut sortir, je ne peux pas mettre de grammaire. D'ailleurs, c'est plein de \0 au milieu, ce qui est embêtant à parser, j'ai du patcher un coup pour ne pas avoir de problèmes de dépassement de buffer en cas de map mal foutue (je prends la taille du fichier, et je la mets en limite absolue) ; je m'arrête dès que je trouve un guillemet (qui est donc obligatoire, c'est clairement du XML maison mon truc), et comme il se peut qu'il en sorte un au milieu de la map, si c'est le cas, il sera précédé d'un \ (il faut prévoir tous les cas, hein ?). Voilà pour la hauteur des points...

* Le champs type_def à présent : il s'agit de la définition d'un type de map. Il a un id qui ne peut être qu'un caractère entre ':' et 'z' en ascii, soit 64 possibilités (ça devrait suffire) : ça donne entre autre toutes les lettres des 'a' à 'z' (ainsi que leurs majuscules), mais pas les chiffres (astuce à venir). Le nom est soit un mot clef normalisé (il n'y en a que deux : grass et water), soit le chemin vers le fichier d'une texture (chargée à la volée, vive les modifs de code pour faire ça...). L'attribut "water" est optionnel, et indique si l'on a affaire à de l'eau ; par défaut, c'est faux (ou à 0). Notons que l'on peut redéfinir un type : il suffit de redonner le même "id", la surcharge efface la précédente définition. Par défaut, deux types sont chargés (que l'on peut surchager) : grass (représenté par 'g') et water (id="w").

* Pour finir, le champ type_map : il s'agit d'une suite de représentations des types des cases toujours dans le même ordre de description, en parcourant d'abord l'axe des x, et ensuite celui des y. Pour éviter d'avoir des choses du type "ggggggggwwwwwgggggg", on peut factoriser les suites de même type en indiquant un chiffre devant ; pour mon exemple, ça donne "8g5w6g". C'est diablement pratique (et ça compresse à fond), surtout que pour l'instant, j'écris les maps à la main (mais l'éditeur sait les ouvrir et les enregistrer).

Voilà, en résumé, j'ai une méthode de compression pour décrire des maps rectangulaires de n'importe quelle taille, avec 32 niveaux de dénivellation, et la possibilité de faire des falaises qui suivent les axes horizontaux ou verticaux (mais pas en diagonale) ; je peux partager en triangles dans les deux sens possibles, faire des pics, etc. Je peux charger n'importe quelle texture valide à la volée, avec une définition minimale de composition (eau ou non), on pourra toujours s'amuser à rajouter des caractéristiques plus tard (chemin difficile, par exemple, où l'on ne peut aller que moins vite). Et ensuite, appliquer ces textures à notre map précédemment définie, toujours par carrés (il faudra voir plus tard pour les diagonales, à la rigueur je peux calculer ça à l'ouverture).

Bon, s'il y a des questions, n'hésitez pas, hein, j'ai essayé d'être clair, mais bon... ^^

Ma question est la suivante : comment faire un éditeur puissant et simple ? Il faut pouvoir faire des falaises, monter des points ou des lots de points en altitude, niveller, faire simplement des collines, que sais-je encore. Il faut aussi pouvoir charger de nouveaux types (choisir un fichier, dire si c'est de l'eau), et pouvoir switcher entre eux facilement, pour pouvoir les appliquer (par case ou par bloc, par exemple). Je n'ai vraiment pas trop idée de comment faire, j'en appelle donc à tous les gamers et graphistes qui passent par là, ainsi qu'à tous ceux qui auraient de bonnes idées ;). À vous de jouer, chers lecteurs :).


humeur du moment: pourquoi je fais un jeu vidéo libre. Où je voudrais me voir apparaître un jour :)

vendredi 1 septembre 2006

vive le C

Dans ma note précédente, je me demandais ce que fumaient les drivers OpenGL. En fait, comme d'hab', c'est super protégé, et le C va jardiner en mémoire, et miracle de la sainte divinité, ça marchouille, et même, avec quelques tours de magie, ça passe.

Bref, l'erreur venait de mon code, mais c'était tout à fait détectable du côté openGL de la force, qui marchait sans que l'on sache trop comment... Parce que ce n'était pas  "glGenTextures(NB_TEXTURE, &texture[c]);" qu'il fallait écrire mais "glGenTextures(1, &texture[c]);" : je ne loade qu'une texture à la fois, dans ma boucle, et non toutes d'un coup... Encore une fois, c'est au programmeur de gérer la mémoire en faisant gaffe de ne pas déborder, le premier argument de glGenTextures correspond en fait au nombre de glBindTexture qui suivent, et quand bien même on pourrait les compter, ce qui n'est apparemment pas le cas. Allez savoir ce qui se passait en mémoire de toute façon, ça devait être assez berk, des fuites monumentales, que sais-je (ou peut-être pas), en tout cas je viens de corriger là un bug vieux de plus de deux ans. Et accessoirement, ça me fait gagner 3ko de RAM, c'est toujours ça de pris...


humeur du moment: j'aurais dû coder en Caml, y'a un binding avec OpenGL, ils ont bien dû mettre des trucs pour vérifier (ou peut-être pas, en fait...)

jeudi 31 août 2006

formidable OpenGL

#0 0xb7c59503 in _int_malloc () from /lib/libc.so.6
#1 0xb7c5b206 in malloc () from /lib/libc.so.6

Voilà ma pile d'appel d'un plantage qui arrive à peu près n'importe quand (comprendre de manière assez aléatoire entre deux lancements) lorsque je remplace :

#define NB_TEXTURE 450

static GLuint texture[NB_TEXTURE];

par :

static GLuint *texture;

et (avant utilisation/assignements)

texture = (GLuint*)malloc((Sprites_->trad[NBSPRITES] + b) * sizeof (GLuint));

Pourtant, je compte bien le bon nombre de textures, qui sont attribuées une par une dans deux boucles successives (et bientôt 3), par la commande "glGenTextures(NB_TEXTURE, &texture[c]);".

Le problème n'est pas nouveau : la macro est à 450 quand bien même je charge beaucoup moins de textures, tout simplement parce que si je baisse ce chiffre, ça segv n'importe où. Si vous faîtes des grep sur les releases précédentes de KonQueR, vous verrez que j'ai parfois même monté ce chiffre à 1200 pour éviter le segv !

Il me paraît de plus en plus clair que glGenTextures est buggué, mais comment se débrouille-t-il pour me foutre un bordel pareil ? malloc qui plante n'importe où, parfois dans la SDL, et parfois de manière non rattaché à un quelconque appel (allez savoir comment c'est possible ça :s ), c'est vraiment gore...

Je suis obligé de passer à un modèle d'allocation dynamique, quand bien même le nombre de texture par carte est à présent limité à 64 au maximum (ce devrait suffire largement), le nombre de sprites d'anim a toujours été illimité, et cela ne ferait que repousser le problème par rapport à ce que j'envisage pour plus tard. En attendant de trouver une solution (et de tester ça avec une carte nvidia, par exemple...), l'instruction magique-patch-kipu sera :

texture = (GLuint*)malloc((Sprites_->trad[NBSPRITES] + b) * 10 * sizeof (GLuint));

Programmation de porc, je déteste ça ; voilà pourquoi je réduit les dépendances au minimum, j'ai bien assez à faire avec propres bugs pour ne pas en plus à avoir à traîner ceux des autres (et encore, ça fait trois semaines que je n'ai pas vu un bug du compilo, pourvu que ça dure...).
 
edit: '* 6' passe, finalement ; '* 5' crashe arrivé presque à la fin, vraiment, on rêve ; évidemment valgrind ne voit rien...
humeur du moment: au lit ! (un jour je ferai de vraies nuits, enfin, peut-être...)

jeudi 24 août 2006

tadam !

Ça y est, bug réparé ! Quel merdier >_<. Après avoir cherché et encore cherché, lutté contre des machins les un plus zabs que les autres, enfin trouvé : glTexCoord2f, ça se met AVANT glVertex3f... Résultat des courses : utilisation de mémoire catastrophique dès que ça devenait compliqué, vertex pourris (mais avec de l'herbe toute verte, ça ne se voyait pas...), clignotement suspect (bah y'avait un nombre décalé de vertex, la cata...), bordel total. À présent, une carte de 500x500 se charge en 30 secondes (avant, ça ne se chargeait même pas), utilisation mémoire par le binaire de 20mo (pour 500 avant), et 150mo de RAM utilisé par la carte graphique qui dégorge (j'ai qu'une x300 128mo, moyen). Essayé une carte de 1000x1000, 3min30 pour charger, 500mo de mémoire, inutilisable. Mais 300x300 (le plus gros que je pouvais ouvrir avant, avec 15 minutes pour réussir le truc) est quasi-instantanné maintenant :).


bande-son: le film sur Arte (qui a vieilli, c'est nunuche), que je n'écoute presque plus parce que... 
humeur du moment: pfiou, viens d'apprendre en pleine rédaction que l'un de mes plus grands prof de maths (et de ma soeur aussi) viens de mourir -_-. Merde alors, pas moyen de vérifier l'info, en cherchant sur le net, je me rends compte que je connais même son prénom, alors que je l'ai eu en 5ème (rien trouvé, si ce n'est ceci, où évidemment il a les mentions "excellent" et "excellent"). Un Grand Homme, qui a su répondre à et augmenter mon "mathématisme". Celui avec qui j'ai fait mes plus grandes parties d'échec, aussi...

mercredi 16 août 2006

65ème semaine

Bon, un p'tit peu d'assembleur ARM par-ci, un peu de C par-là, du Makefile atroce au milieu, c'est bien beau, mais un peu de vacances forcés, ça ne fait pas de mal (ceci dit, me bouffer un RTT de force alors même que je n'en avais même pas cotisé un seul, c'est bien bête, surtout que j'économise pour fin septembre :/). Bref, virée Marseillaise, dont nous retiendrons un passage par Miramas où les glaces font 20 cm de haut (voire plus), ce qui m'a donné l'occasion de torturer à distance certaine fûûminine (en plus, j'ai pris une glace au sirop d'érable, je conseille :p ) ; et puis dégustation de zozios qui je crois ne sont pas forcément ouverts à la chasse, mais ce fut bien bon ^^. Oui, faut bien voir que dans le Sud, c'est assez végétatif, donc la vie se résume à : famille, manger. Mais c'est que pour 4 jours, alors...

J'ai repris le développement de KonQueR, j'ai mis des trucs qui déchirent tout, ça charge des maps d'un million de cases en 3 secondes pour 30 mégas de RAM, soit 15 fois moins qu'avant ; enfin, ça c'était y'a 3 jours, j'ai voulu encore plus optimiser, je sais pas ce que j'ai touché, mais j'ai tout cassé :(. THE pire bug, ça fait des heures que je cherche (et pourtant le code n'est pas gros, et je reviens quand même de 6 mois de débug de quelques centaines de milliers de lignes en Ada codés par des ricains porcins), mais pas moyen de mettre la main dessus. J'ai remarqué en tout cas que le glLoadName() me bouffait quelques centaines de méga octets de RAM, qui n'apparaissent pourtant pas dans l'espace mémoire du processus ; ce qui tendrait à faire penser que c'est la carte graphique qui dégorge (mais je ne savais pas qu'on pouvait faire ça, enfin bon, les voies du drivers ATI sont impénétrables...) ; et le problème, c'est que tout dépend de la map, soit ça me plante X (pour 250.000 cases par exemple), soit ça me grille le driver, et je n'ai plus que les emergency keys pour rebooter :'(. Pas glop du tout :/. Et de fait, je suis en retard...

Sinon, pendant mon absence parisienne, il y a eu de la conversion. Enfin, peut-être une future ici (qui correspond bien avec cet article), et une qui va me piquer mon lectorat si ça continue là :p. Zut, ça fait deux endroits de moins ou je peux troller, pas juste ! :(  (oui, je sais, jamais content, c'est mon côté féminin qui ressort :D ). Sinon, mon cousin, windaubien par excellence, est devenu fan de Linux Planète (jusqu'à en commander les anciens exemplaires !), et fait une collec' de bouquin avant une migration qui ne devrait tarder (oublié de filer le lien vers le driver userland ntfs, ça devrait bien aider...). Bref, je trouve que je suis tout de même bon évangélisateur, non ? Bon, ok, un peu casse-couille sur les bords, mais au final, n'est-ce pas une carrière de gourou que je vois se profiler ? (ça m'arrangerait, parce qu'à 6500€/m² en moyenne à Paris, je crois que je vais faire comme Goon finalement, et vieillir/économiser en attendant que les cours deviennent accessibles aux humains français...)


bande-son: une rappeuse Marseillaise, Keny Arkana, découverte via Beleg (j'écoute plus la radio depuis longtemps, en fait je n'en ai une que depuis l'achat de mon fameux lecteur de ziq), qui fait du bien aux oreilles, c'est cool d'entendre du vrai rap de nos jours :)  (en revanche, le site perso de la demoizelle est bourrré de flash et de wmv, pour une alter-mondialiste/rebèle/je ne sais quoi pas content, ça fait moins sérieux :/)
humeur du moment: Fatigue, ça doit être le second effet kisscool...

- page 1 de 3