60

Oui on parle de toi et des nombreux malaises que t'as engendré avec ton Titan sur PC smile
Pour certains c'était 2ème effet kisskool garantie hypno warp couic2

61

Ha oui, Titan, sympa ce jeu non ?

Moi j'aime bien, outre la performance technique, le jeu est bon dans l'ensemble. C'est un Philippe Pamart qui l'a inventé et qui a fait les niveaux si je ne m'abuse, et il c'est bin débrouillé !

Mais j'en ai fait d'autres depuis, hein !

62

Casse brique original qui t'as valu des éloges à l'E3 pour sa conversion sur PC, n'est ce pas wink
ça restera pas le meilleur casse brique de tous les temps (ni le plus mauvais, loin de là) mais au moins il aura fait parler de lui !

Sinon je sais que tu as fait d'autres jeux avec d'autres programmeurs et d'ailleurs tu continues toujours avec Magic Pocket happy
Autrement, c'est vrai cette histoire de pull en cashmir griffé par ton pote Marc Djan? smile

63

EricZ :
Sinon Fred, c'est quoi cette fameuse routine de collision dans cette non moins fameuse Lib ? Ca consitait en quoi ?


Bien je vais essayer de me souvenir correctement ^^

Il s'agissait de créer une classe dérivée de la classe de base de gestion des sprites et d'y integrer donc un test de collision qui en lui même restait relativement basique.

Le problème était surtout de gérer des collisions en evitant les "traversements", bien entendu ca reste algorithmiquement simple dans la mesure où on à les données de positions frame à frame.

Mais ici les positions étaient gérées dans une classe dont dérivait déjà la classe de gestion des sprites. j'ai donc simplement créé une copie des positions précédentes dans ma classe de cCollideSprite.

Jusque la ca semble simple, là ou ca se complique un peu, c'est que pour que ces données soient misent à jour, il fallait qu'à chaque fois qu'une modification des positions était faite par la fonction SetPos qui se trouvait donc dans cette classe dont dérivait cSprite (j'ai oublié le nom, appellons la le cItemPos) il aurait fallut automatiquement que cela mette à jour les données contenues dans cCollideSprite au cas ou la classe pointée était bien un cCollideSprite (ca aurait simplement pu être un cSprite).

La méthode standard aurait été de déclarer la fonction SetPos virtual de sorte à ce qu'elle appelle la fonction que j'aurai alors redefinie dans cCollideSprite et qui aurait mis à jour ses données avant d'appeller le cItemPos :: SetPos()...

Mais là, se posait un problème de performances lié au fait que le mécanisme virtuel entraine non seulement la sauvegarde d'un pointeur dans chaque instance de la classe mais que chaque appel de la fonction entraine une ligature dynamique (chargement du pointeur et appel de la fonction au travers du pointeur, fonctions inline impossibles...)

Je te laisse imaginer le ramier si à chaque fois qu'une modification de position d'un sprite avait du entrainer ce process sans compter l'ajout de 4 octets pour chaque sprite hum...

j'ai donc opté pour une fonction inline spécifique devant être appellée dans le cCollideSprite et qui se nomait UpdateCollide(), problème il fallait donc bien faire attention à appeller cette fonction au bon moment pour bien avoir les positions frame précédente dans le cCollideSprite et les positions frame courrante dans le "cItemPos"

moins pratique pour l'utilisateur mais nettement plus rapide.

Il est clair que si le problème des collisions avait été envisagé avant, ca aurait simplifié le problème.

64

Fred : Le plus gros problème technique dont souffrait Planet, effectivement, c'etait l'incapacité a décrire simplement les choses simples.

Non seulement les problèmes de traversement ne se produisent casiement jamais, mais en plus ca se resolverait en moins d'une heure, si le problème de base est decrit plus simplement.

Pour info on a jamais eu a gérer ce problème, et en plus les coordonnées de sprites ne sont stocké nulle part (lemoteur possède une fonction DisplaySprite(u16 name, u32 coord, ...); Et les collisions doivent être gérées par le haut niveau.

En tout cas merci pour le tuyau, je pensais que tu avais implémenté des testes au pixel, autrement plsu compliqués.


Xerus : Et oui, Titan fut le premier jeu commercialisé sur PC tournant à la trame, avec un scrolling fluide Full Screen. Et ce, EN CGA, MDA et EGA avec le même code executable qui détectait la carte vidéo. Mais en tout cas t'es bien renseigné, je me demande bien comment tu me connais, généralement je suis discret, ne participe en prové à rien de ce qui touche la programmation ni le jeu...

L'histoire de la reconvertion de MD est vrai, sauf qu'aux dernières nouvelles sa boite de pull ayant coulé (aussi), il vend des pantallons (Directeur commerciale d'une nouvelle marque s'installant en France).

65

EricZ :
Fred : Le plus gros problème technique dont souffrait Planet, effectivement, c'etait l'incapacité a décrire simplement les choses simples.

Non seulement les problèmes de traversement ne se produisent casiement jamais, mais en plus ca se resolverait en moins d'une heure, si le problème de base est decrit plus simplement.

Pour info on a jamais eu a gérer ce problème, et en plus les coordonnées de sprites ne sont stocké nulle part (lemoteur possède une fonction DisplaySprite(u16 name, u32 coord, ...); Et les collisions doivent être gérées par le haut niveau.
En tout cas merci pour le tuyau, je pensais que tu avais implémenté des testes au pixel, autrement plsu compliqués.



Pardon ?

Je vois que EricZ n'est pas Eric Zmiro...

Comment sais-tu ce qui est dans le moteur alors que tu n'y a pas participé ?

Je pense que je ne vais pas te répondre plus loin que cela, si la structuration était compliqué c'est lié à VOS choix, je n'ai pas decidé de cette structure et j'ai du faire avec.

Et dire que les problèmes de traversements n'arrivent quasiment jamais, c'est dire nimporte quoi, dès que le déplacement dépasse la taille du sprite les traversements sont extrement fréquents, surtout si les sprites ne se touchent que par un coin.

C'est inutile si c'est pour avoir une discution sans objet, un combat de mensonge hakim, je vais te laisser parler tout seul.

Sans compter que c'est toi qui m'a demandé de créer ce cCollideSprite tu es d'une malhonnêteté puante, mais ca te connaît ca... t'as l'habitude hein ?

De plus nous avions convenu de ne pas faire de test de collision au pixel pour economiser du temps machine, comme si je n'aurai pas pu le faire alors que tu sais à quel point je maitrise l'algorithmique...

De toute façon je vais te dire, fait ta vie, moi je vais faire la mienne et rendez-vous dans quelques années.

Pauvre type.

66

Xerus : Et oui, Titan fut le premier jeu commercialisé sur PC tournant à la trame, avec un scrolling fluide Full Screen. Et ce, EN CGA, MDA et EGA avec le même code executable qui détectait la carte vidéo. Mais en tout cas t'es bien renseigné, je me demande bien comment tu me connais, généralement je suis discret, ne participe en prové à rien de ce qui touche la programmation ni le jeu...


J'ai mit un stalletite au dessus de ta tête, je sais tout de toi, fouille aussi dans ton bureau, tu y trouveras un micro normalement smile
Bon plus sérieusement, oui un scroll à la VBL sur PC c'était une belle claque pour l'époque, bien joué d'avoir été le premier; t'aurais dû plus t'exprimer car aujourd'hui Eric Zmiro ça dit rien à personne alors que Steve Bak ou les Bitmpa Brothers...

Tient parle nous aussi de ton premier scroll différentiel sur PC à l'époque de Titus wink
L'histoire de la reconvertion de MD est vrai, sauf qu'aux dernières nouvelles sa boite de pull ayant coulé (aussi), il vend des pantallons (Directeur commerciale d'une nouvelle marque s'installant en France).


Ah bah commercial voilà au moins un poste où il devrait cartonner, quoi que si c'est pour diriger aïe grin

67

Fred: Comment sais-tu ce qui est dans le moteur alors que tu n'y a pas participé ? Ben je ne parle pas de ton moteur, je parle du miens chez MP !!! Je confrontais ton expérience avec mon vecu, voila, pas de quoi se facher !

Du coup j'imagine que croyant parler a un imposteur tu t'es un peu NRV. En plus c'est con, moi j'ai eu l'occasion de te faire passer un test d'embauche (chez Montecristo, tu resortais de chez Quantic) t'es loin d'être bête...


Xerus: Oui, je me suis bien marré avec ce scroll fluide, j'ai eu les doc EGA et VGA très tot et je m'en ssuis servi. Pour le MDA (monochrome), j'ai reprogrammé le MC6845 (controleur vidéo) pour émuler le CGA (la même organisation mémoire, pas les couleurs !) du coup ca a marché directement.

Bon, tu me donne un indice, t'es qui ?

68

EricZ
: Ben je ne parle pas de ton moteur, je parle du miens chez MP !!! Je confrontais ton expérience avec mon vecu, voila, pas de quoi se facher !


Donc c'est vraiment toi ?

Mon moteur ? Quel moteur...

La seule chose que l'on peut qualifier de "moteur" dans ce que j'ai écris c'est une librairie qui ne fait que définir une classe cCharacter prennant en charge les actions standard de tout personnage et dérivant d'un classe cAnimatedSprite prennant en charge les annimations. La partie moteur d'affichage "equivalent" à ce que vous aviez développé sur GBC à été presque intégralement designé et programmé par hakim et alexandre et s'appellait la GTI.

Je voudrais bien d'ailleurs savoir comment une librairie qui gère des objets peu nombreux et dont les fonctions ne sont appellées qu'une fois par frame et fonctions qui de plus ne contiennent que des process sans quasiment aucune boucle pourrait être source de lenteur ou de consomation excessive de mémoire...

C'est facile de présenter du code à un programmeur en lui disant que c'est un autre qui est l'auteur pour se décharger de ses responsabilités et comment je pouvais me défendre de ca moi alors que je n'étais même plus dans l'entreprise ?

Addendum:

J'ai oublié qu'il y avait aussi dans ma librairie un cPhysics qui gérait la physique des objets à chaque frame, avec des paramètres tels que: la vitesse, l'inertie et les coéficients de "rugosité" ou adhérence des surfaces en contact, tout cela était géré en fake avec tout au plus quelques additions et parfois une multiplication ou division. Cela processé une fois par frame, temps machine négligeable.

L'essemble des objets était processés et puis c'est tout, les collisions entre tous les spirte était testées automatiquement générant des états et une liste d'objets à traiter en fonction de cela. Oui les collisions était testés directement avec chaque objet donc forcément le nombre de test correspondait à (N * N-1).

Donc au delà d'une 20 aine d'objets traités il aurait fallu développer un système de pré tri par table comme je l'ai déjà fait plusieurs fois pour des moteur de collision en 3D (un peu plus dur en 3D d'ailleurs). Mais je n'ai jamais prétendu avoir développé une librairie contenant absolument tout ce qui pouvait être nécessaire pour n'importe quel type de jeu. Si le besoin de réduire le nombre de test de collision s'était fait sentir, il suffisait d'ajouter ce code, enfin si on savait le faire bien entendu...

69

ça servirait à rien de te donner un indice car on s'est jamais rencontré, ni de près ni de loin !
En plus j'ai jamais rien fait dans ce mileu smile
Par contre j'ai beaucoup de revues et comme je suis un trentenaire et que j'ai bien aimé cette période des jeux vidéos je connais pas mal de choses (surtout que je m'intéressais autant à la technique qu'au jeu en lui même) et pas que spécialement sur toi; bien qu'accessoirement je connais des gens qui te connaisse, hé hé !

Sinon à ton avis t'es le premier à avoir fait un scroll differentiel sur PC pour un jeu (Prehistorik) ou pas? smile

70

Pas forcement le premier, non, je n'ai pas une connaissance exaustive de l'ensemble de la prod mondial sur PC !

Disons que je n'en ai pas vu au moment où j'ai fait Prehistorik2, et que c'est un petit peu compliqué pour faire tourner ca rapidement. Ca élimine.

voila... mon, je vais trouver qui tu es... ca doit etre facile !

71

Xerus : T'es le frere de Seb, hein ? ha! ha! demasqué !

72

Fred: mais moi je ne t'attaques pas !!!!!! Je voulais juste savoir si la routine de collision marchait au pixel ou pas, c'est tout, je n'ai jamais rien dit ou écrit sur ton travail. De toute façon je ne connais pas travail.

Et évidement, je me doute que t'es en mesure de faire une routine de test de collision au pixel, tu as largement le niveau pour le faire, si tu en avais besoin.

C'est possible d'échanger en privé au fait ?

73

Oui par mini-messages smile

74

EricZ :
Fred: mais moi je ne t'attaques pas !!!!!! Je voulais juste savoir si la routine de collision marchait au pixel ou pas, c'est tout, je n'ai jamais rien dit ou écrit sur ton travail. De toute façon je ne connais pas travail.
Et évidement, je me doute que t'es en mesure de faire une routine de test de collision au pixel, tu as largement le niveau pour le faire, si tu en avais besoin.


Désolé mais je suis sur les dents, mets toi à ma place je te jure ca fait tout bizarre de se faire mettre sur le dos des trucs qu'on a pas fait. Surtout quand en plus on a fait l'effort avant de partir de boucler son travail (ma librairie) en tt cas mes quelques classes étaient finies et facilement réutilisables, enfin bon j'aurai peut-être pas dû, comme ca, ca leur aurait évité de commencer casper avec...

Le problème c'est qu'ils auraient de toute façon dû utiliser la GTI et le problème aurait été le même... Mais là c'était pratique comme ca casper aussi c'était ma faute... Et tout les autres projets qui n'ont jamais été finis c'est à cause de quoi ? Ma librairie en fait c'était un virus qui s'installait sur les projets en douce sans que personne le sache ?

C'est pas dirigé contre toi mais, j'ai les boules par ce que je pense que la seule erreur que j'ai vraiment faite professionnellement, c'est lorsque j'ai sous estimé le temps que je mettrais à faire une gestion physique de l'impact du ballon sur le filet pour le projet Playstation Ronaldo futeball de PAM.

Oui en effet ils m'avaient dit que les collisions étaient déjà faites... tu parles de collisions, un simple test de franchissement de la ligne de but ! Tu m'étonnes que j'ai pris du retard! J'ai du écrire tout le moteur de collision 3D avant de commencer à bosser sur le filet, moteur de collision qui est d'ailleurs utilisé dans tout le jeu final en passant.

Mais à mon avis ils le savaient très bien et c'était intentionnel...

Le remerciement pour leur avoir permis de continuer le projet et de leur avoir trouvé des programmeurs pour remplacer les démissionnaires, ca à été une belle fin de période d'essai pour noël.

Ben oui, quand on emploie des gens plus cher qu'on ne peut les payer en leur promettant un poste de directeur technique alors qu'en plus il y à déjà un directeur technique co-patron de la boite, faut bien virer du personnel après... Mes fiches de paye ne correspondaient ni à mon salaire ni à mon poste et quand j'ai demandé des comptes, à l'époque Marc Djan m'a envoyé chier en me disant que l'important c'était ce que je touchais et que vu ce qu'il m'était déjà arrivé de par le passé, je n'avais pas trop interêt de la ramenner. Non mais je te jure...

A noter que si je ne m'étais pas avant tout cela, au début battu pour que Hakim lorsque je l'ai fait embaucher à PAM, touche le même salaire que moi, je ne me serais sans doute pas fait virer. Car la boite aurait probablement eu les moyens de payer tout le monde. Ca n'en dédouane pas l'entreprise de son attitude malhonnête mais c'est quand même bien fait pour ma gueule, ca m'apprendra à être stupide.

En passant je n'ai JAMAIS eu le moindre contrat en 4 mois de travail à PAM...

Croyez-vous que mon nom soit dans les développeurs ? même pas dans les remerciements...

Alors après tout ca, finir en plus avec une réputation de mauvais programmeur c'est vraiment très, très énervant.
C'est possible d'échanger en privé au fait ?


Oui tu clic sur le pseudo en haut, d'ailleur je t'ai envoyé un message ^^ quand je pensais que tu n'étais pas toi ^^

75

cite]Pocket Magazine :
Oui par mini-messages smile[/cite]

Tu réponds a quoi au juste ?

76

EricZ
:
Pocket Magazine :
Oui par mini-messages smile

Tu réponds a quoi au juste ?


A ta demande, s'il est possible de converser en privé smile

77

EricZ
: Et évidement, je me doute que t'es en mesure de faire une routine de test de collision au pixel, tu as largement le niveau pour le faire, si tu en avais besoin.


Merci, tu m'excuses mais je suis tellement sur les dents que je me suis même pas rendu compte...

78

Alors les gars, vous avez toujours envie de travailler dans les jeux vidéos (pour ceux qui n'y sont pas déjà...), c'est top top non ?

Tu fais souvent soixante à soixante dix heures par semaine, tu bosses souvent les week end, tes heures sup ne sont JAMAIS payées, dans le jeu vidéo les congés payés se nomment les assedic, si tu tombes sur un projet qui foire t'es bon pour la casse, t'as aucune sécurité de l'emploi, tu mets tout ton coeur dans ce que tu fais par ce que c'est ta passion et t'as vite fait de te retrouver avec une réputation d'incompétent chronique indifféremment de ton travail, c'est génial vous trouvez pas ?

Enfin, en tout cas, si vous aimez vous faire sodomiser en prenant des coups de gourdin sur la tête, c'est la bonne filière tilt

79

Erf... c clair que ca donne pas envie de bosser dans les jv ! grin
le casper dont il est question a un moment, c lequel ? pas celui sur play ? (vous faite surtout des trucs sur PC, non ?).
smile
avatar
MK !
Collectionneur, retrogamer.
Enfin, un peu moins maintenant.

80

Allez un dernier petit déballage et puis j'en aurai enfin fini ^^

Je voudrais finalement remercier l'équipe de VIP chez Kalisto, projet qui lorsque je suis arrivé début 2000 pour le reprendre se trouvait alors à quelques mois de dates fatidiques et était déjà entrain de péricliter. Merci donc à vous pour m'avoir raconté tout un tas de salades sur la technologie NC2 (issue du moteur et des outils utilisés pour Nightmare Creatures 2), que je ne connaissais alors en rien. Cela dans l'optique de couvrir le fait que vous aviez pour le moins glandé.

Ce, pour ensuite quand je commençais à peine à rentrer dans le code et les outils, me faire passer pour un incompétent notoire en laissant sous entendre que j'étais l'unique source des rapports alarmants que j'ai fait dans l'urgence auprès des dirigeants de Kalisto.

Cela s'adresse plus particulièrement à la personne qui était alors coach programer du projet et dont j'ai oublié le nom.

A noter que peut-être que si Kalisto n'avait pas pendant des années, refusé à cette personne des congés payés sous prétexte d'urgence permanente, cela ne serait peut-être pas arrivé non plus.

81

MetalKnuckles :
le casper dont il est question a un moment, c lequel ? pas celui sur play ? (vous faite surtout des trucs sur PC, non ?).
smile


Non, c'était sur GBA ^^ un des nombreux projets avortés du défunt Planet Interactive.

82

Ok, j'avais adoré l'épisode sur play. ^^
erf, c dommage. wink
avatar
MK !
Collectionneur, retrogamer.
Enfin, un peu moins maintenant.

83

FredericPlanet :
Allez un dernier petit déballage et puis j'en aurai enfin fini ^^

Je voudrais finalement remercier l'équipe de VIP chez Kalisto, projet qui lorsque je suis arrivé début 2000 pour le reprendre se trouvait alors à quelques mois de dates fatidiques et était déjà entrain de péricliter. Merci donc à vous pour m'avoir raconté tout un tas de salades sur la technologie NC2 (issue du moteur et des outils utilisés pour Nightmare Creatures 2), que je ne connaissais alors en rien. Cela dans l'optique de couvrir le fait que vous aviez pour le moins glandé.

Ce, pour ensuite quand je commençais à peine à rentrer dans le code et les outils, me faire passer pour un incompétent notoire en laissant sous entendre que j'étais l'unique source des rapports alarmants que j'ai fait dans l'urgence auprès des dirigeants de Kalisto.

Cela s'adresse plus particulièrement à la personne qui était alors coach programer du projet et dont j'ai oublié le nom.
A noter que peut-être que si Kalisto n'avait pas pendant des années, refusé à cette personne des congés payés sous prétexte d'urgence permanente, cela ne serait peut-être pas arrivé non plus.


rotfl
avatar
https://air-gaming.com/tests/ si vous voulez de la bonne lecture :=)

84

EricZ
: Xerus : T'es le frere de Seb, hein ? ha! ha! demasqué !


Ah quand même, avec tous les indices dissimulés sur le net cela aurait été dommage que tu ne trouves pas smile

85

Une dernière chose.

Si comme je l'ai dit plus haut, la parole de l'un contre la parole de l'autre c'est toujours difficile à trancher; Dans mon cas, j'ai quand même un atout supplémentaire.

C'est que moi, ce que je dis, dans la grande majorité des cas, je peux le prouver. Même si parfois ca peut revêtir un caractère difficile à mettre en oeuvre. Tandis qu'en face de moi, il y a peut-être des gens qui parlent de travers et me critique, ca c'est même certain. Mais dès qu'il s'agit d'apporter des éléments concrets, là il n'y a plus personne... Et c'est bien ca que je regrette et qui m'a valu bien des désagréments, c'est que souvent les gens prennent partie sans autre garantie que la parole des personnes...

Si la plus part des gens étaient un peu moins manipulable, ca rendrait sans doute la vie plus difficile aux enflures qui s'en servent allègrement...

Bien entendu, on pourra me répondre que ma parole n'a pas plus de valeur que celle des autres... Et bien... Qu'ils s'expriment !

A moins qu'ils n'aient peur que leurs mensonges ne puissent pas survivre longtemps à la lumière d'une confrontation.

Ou peut-être encore préfèrent-ils faire comme si ils n'avaient rien entendu...

Quoi qu'il en soit, moi les affirmations que j'ai faites ici, je suis prêt à les refaire en présence de toutes les personnes concernées.