Mon blog à moi... (le blog de El_Porico)
Le blog ou je parle de tout, et sans doute souvent de n'importe quoi.

Rechercher

Archives

Nombre de visiteurs*

* Visiteurs uniques : une (1) visite par IP.

La physique des jeux: système masse-ressort

Jeudi 20 novembre 2008 à 18 h 55
Je termine mon école d'ingé par un choix de modules dans lequel j'ai choisi réalité virtuelle.

L'évaluation est basée sur un projet à faire en une semaine, et j'ai un sujet plutôt cool mettant en place un moteur physique masse/ressort.

Jeu + physique masse/ressort = World of Goo!



C'est ma première tentative à coder un moteur physique, et je m'étais toujours dit que les gens qui codaient ces trucs devaient être d'affreux geeks plongés dans des bouquins de maths: que neni! Tout est en fait plutôt simple. Sans comprendre grand chose à la physique, on peut s'en sortir: il suffit de connaitre les formules et de comprendre un peu comment fonctionnent des vecteurs.

Un ressort exerce une force f=-kx sur une masse. (k constante, x distance entre l'objet attaché au ressort et la position du ressort à vide)
Ce ressort est également affecté par une force de frottement f=-bv (b constante, v vitesse de l'objet - sinon le ressort ne s'arrête jamais d'osciller)
Gravité: f = -mg
Enfin, on doit savoir que somme des force = masse * accélération.

A la fin, on a du coup, pour chaque goo:
-g -kx -bv = masse du goo * acceleration.

C'est super, mais nous ce qui nous intéresse c'est de savoir: à l'image suivante, comment mon goo aura bougé, ce que ne donne pas cette équation. Là l'inconnu c'est l'accélération, et c'est une formule très moche qui fait intervenir:
1. La position de l'objet soumis au ressort
2. Sa vitesse (dérivée de la position)
3. L'accélération (dérivée de la vitesse)

Tout ça donne lieu a des calculs très complexes de résolution d'équations différentielles, mais pour un jeu vidéo, on a besoin que ça aille vite et on utilise donc une approximation. Il en existe plusieurs mais la plus connue est la méthode d'Euler:

Vitesse de l'objet à la frame suivante = vitesse courante + force/masse*interval de temps de la frame (approximation)
Position de l'objet à la frame suivante = position courante + vitesse*interval de temps de la frame (correct)

Hop on mixe tout ça dans un shaker et ça donne une tentative de World of Goo:
CLICK

Il y a une console (²) codée un peu à la va vite qui permet de modifier les constantes et ainsi tester l'influence sur le moteur physique:
springk (constante de raideur)
springkf (constante de friction)
Essayez de bidouiller, vous allez voir qu'avec une faible friction et une trop forte raideur les ressorts se mettent à osciller violemment jusqu'à ce que le système devienne instable. Ces constantes doivent être négatives.

... Mais ca ne se comporte pas comme World of Goo!
- Les tours ne s'écroulent pas: une boule seule décalée de la structure devrait faire levier sur les autres: cette force n'est pas prise en compte et je ne sais pas trop comment l'implémenter.
- Les ressorts du dessous de la tour s'affaissent progressivement sous le poids des autres masses. J'ai l'impression que les auteurs de World of Goo ont triché en mettant volontairement des constantes de rappel plus fortes pour les goos soutenant d'autres goo afin d'estomper ce phénomène d'écrasement. A creuser... Si vous avez des idées, je prends :)

Le delit de sale gueule quand on est blanc...

Mercredi 9 juillet 2008 à 10 h 58
... c'est possible au Japon.

A la sortie d'une gare, le policier qui sert a rien et qui normalement passe sa journee a faire des courbettes (au Japon y'a peu de chomage mais le nombre de gens employes a rien foutre c'est completement dingue. Y'a des dizaines de gens dans les parkings de supermarche par exemple qui sont la rien que pour vous dire ou se garer en cas de congestion), bref, ce policier vient cash me voir. blablabla keisatsu blablablba pasupoto.

Evidemment mon passeport je l'avais pas sur moi sinon ce serait pas aussi drole. Je me trimballe jamais avec car si je le perds ca devient complique pour rentrer en France... Bref il comprend pas un mot d'anglais mais jai bien compris quil veut me faire chier derriere ses tonnes de politesses. Heureusement une gentille dame qui a vu la scene et qui parlait anglais est venue m'aider a faire la traduction. Vraiment super sympa. Elle m'explique que le policier me croit et que je n'ai pas a etre desole de ne pas avoir mon passeport sur moi.

Bon ca n'empeche pas que je suis conduis au commisariat de la gare dans une petite sale de 2x1m avec une table et deux chaises l'une en fasse de l'autre pour un interrogatoire nom prenom/pquoi vous etes au japon/depuis et jusqua quand/vous faites quoi ici bla bla bla bla. Il me fait sortir tous mes papiers et les examine un par un... sans rien comprendre evidemment.

Apres avoir pu recuperer mon numero de passeport en telephonant a ma famille d'accueil, je repars au bout de 20 min de glande avec les plates excuses du policier.

NB: cet article n'est pas la pour lancer un troll sur la pretendue xenophobie des japonnais. On est super bien accueillis et je comprends qu'un policier fasse chier un etranger sans passeport. C'est juste que cette experience du delit de sale guele, bein c'est pas tres plaisant.

Spore: c'est quoi le but

Mardi 17 juin 2008 à 16 h 39
Je crois ne pas trop avoir saisi le principe de Spore. A quoi ça sert nos bestioles? Si elles sont juste là pour décorer, c'est naz non? Je croyais qu'on pouvait organiser des combats entres nos créatures, mais on dirait que non...

Alors à quoi bon?

Sinon voici la bitedecombat


Et une tentative de dinosaure

Limbo of the Lost: compilation

Samedi 14 juin 2008 à 04 h 34
Petite compilation pour ce jeu déjà anthologique:

Oblivion


Lol


______________________________

Un autre



______________________________
Thief3


Diablo2


LOL



______________________________

Morrowind


LOL


______________________________

Unreal


LOL

______________________________

Unreal


LOL


______________________________

Painkiller


LOL


______________________________

RTCW


LOL
25 commentaires, dernier de LAtPin.

Du Halo et des putes

Vendredi 16 mai 2008 à 10 h 13
Je crois pas avoir vu cette brève sur Nofrag, pourtant elle vaut son pesant de cacahuètes et de lulz:

Hookers and Xbox on dad's credit card

Anal Blast

Dimanche 27 avril 2008 à 17 h 24
2 commentaires, dernier de ZotZ.

Monter une entreprise vitrine?

Mercredi 9 avril 2008 à 18 h 32
Je cherche depuis qq temps des infos pour monter une "entreprise vitrine" et j'avoue que j'ai un peu de mal, si y'a des nofragés qui connaissent un peu, ça m'aiderai pas beaucoup.

En fait, j'aimerai monter une boite pour donner plus de poids/sérieux au programme que je de développe et pour avoir un statut clair vis à vis des impôts quand il sera en vente. Ce serait une entreprise vitrine qui éditerai/commercialiserai ce logiciel -en fait je suis derrière tout-.
Mais c'est le casse tête, je ne sais pas trop si je dois monter une EURL ou une Entreprise Individuelle. Concrètement, je me fous de la couverture sociale ou de ces autres conneries: je ne veux pas payer de taxe "sociales" et que l'état s'occupe de ma "retraite". Tout étant totalement immatériel (logiciel+internet), l'entreprise n'aura aucun frais et je souhaite me verser tous les bénéfices (ie: les licenses vendues).

J'arrive pas à trouver si y'a des frais récurrents dû à l'administration française pour une EURL/EI même si on ne fait aucun CA/bénéfice. IE: si y'en a, c'est tout de suite moins cool. Y'a t-il des experts dans le coin?
9 commentaires, dernier de tomtomk.

Développement...

Vendredi 4 avril 2008 à 00 h 05
Le développement d'un programme Windows complexe requiert des nerfs d'acier. Je le vis tous les jours avec le développement de mon programme PokerTracker-like même si au final c'est presque du plaisir sadomasochiste pour moi que de me battre avec le debugger, le stack trace et les watch de Visual Studio.

En fait, développer un programme à vocation aussi large me demande beaucoup d'essais. La beta2 de mon logiciel vient de sortir et en surface il y a peu de nouveautés: le support de PokerStars et qq features mineurs (choix du deck, sauvegarde des données au format CSV et d'autres petits trucs). Pourtant, en profondeur, entre cette beta1 et 2; environ 75% du code a été réécrit.
Changements de contôles pour la base de données (ListView vers DataGridView), modification du schema de la base de données SQL Compact, recodage d'une partie de l'importateur de mains avec des Regexp, recodage complet du playback de main, modification de la classe de filtrage et de gestion de la base de données... La liste est longue et à chaque fois que je refais un truc, je me dis "mais bordel comment c'était salement codé par là".
Du coup, comme je n'ai pas de deadlines, j'ai tendance à trop vouloir perfectionner le code alors que le premier jet aurait été gardé si c'était un projet de SSII pour un client quelquonque.
Aujourd'hui, alors que la beta2 vient de sortir, j'ai déjà en tête la réécriture d'un paquet de code pour supporter de nouvelles features, mais je me suis littéralement forcé à produire une version "release candidate" afin de garder à l'esprit que le but final, c'est bien de lâcher l'application à des tiers. Cette approche du coding a un défaut majeur: elle est très consommatrice de temps. En contrepartie, plus le code avance, plus il devient flexible aux modifications, et plus il devient facilement maintenable.

Pour les pokereux du coin qui veulent tester: http://www.tonypottier.info/pokerhands_b2.exe
3 commentaires, dernier de Zebyg.

Journée de merde

Mardi 1er avril 2008 à 12 h 52
Comme tout geek qui se respecte, je commence ma journée par allumer le PC et aller voir sur le net:

Nofrag: retour des commentaires
Yahoo: Exclusif - Sébastien Chabal rejoint la NFL
mmo-champion: /Random algorythm hacked - High roll addon released


J'en remets une couche avec Al Batard mais c'est vraiment que ça me casse déjà les couilles. Quelle tradition de merde. Y'a t-il des sites webs sérieux qui osent dire "non nous on le fait pas, c'est de la merde" ?
10 commentaires, dernier de mlv.

[Poker] PokerHands beta1

Dimanche 9 mars 2008 à 21 h 29
Les pokereux du coin connaissent sans doute Poker Tracker, ce programme qu'il est bien qui importe vos logs de Poker et fait des stats avec. Il y a quelques temps je me suis lancé dans la programmation de mon propre Pocker Tracker, simplement parce que je n'aimais pas trop PT et que je suis un geek pisseur de code à mes heures perdues.

Bref, tout ça pour vous présenter la toute première beta release suffisamment avancée pour que vous puissiez tester et me donner vos premières impressions. Pour l'instant, il ne fonctionne qu'avec Full Tilt Poker et il est bien sur nécessaire d'avoir activé le logging des mains -en anglais- pour que ça marche.

Après l'importation, vous devriez avoir qqch comme ca:


Des graph


Des stats selon vos mains


... Et la possibilité de replay!


Ca se dl ici (need .NET)
http://www.tonypottier.info/pokerhands_beta1.zip

EDIT: .NET Framework (la plupart des gens l'ont aujourd'hui mais bon, sait-on jamais :D )
http://www.clubic.com/telecharger-fiche12834-microsoft-net-framework.html

Si vous prenez le temps de tester, merci de m'envoyer vos remarques sur pokerhands at tonypottier point info ou en postant dans les commentaires. Je recherche au passage des logs de FTP/PokerStars/PartyPoker de cash games, tournois et sit & go. D'ailleurs comme je n'ai pas de log perso de tournois, il se peut que si vous essayez d'importer des mains de tournoi, ça plante.
Il y a une autre issue identifiée aussi qui sera corrigée: la lenteur du bousin quand ça commence à dépasser 500mains. Ca n'empêche pas le programme d'être testé ceci dit.