Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#151 Le 22/07/2009, à 15:42

kaoron

Re : Ultimate Smash Friends: un smash bros like en python

Sinon, si tu veux discuter création de jeux, passe à l'occasion sur le GCN, forum et canal IRC.
Il y a quelques python/pygame-istes sur le canal, et on est toujours ravis de causer création smile

Dernière modification par kaoron (Le 22/07/2009, à 15:58)

#152 Le 22/07/2009, à 15:49

tshirtman

Re : Ultimate Smash Friends: un smash bros like en python

je vais regarder ça, pour la gestion d'image par contre je sais pas si tu as vu mais c'est le fonctionnement actuel quand je veux afficher une image je fait surface.blit(loaders.image('chemin_de_l_image') et elle est chargé, mais le chargeur a un décorateur 'memoize' ce qu'il fait que si elle a déja été chargé il renvois le résultat de la fois précédente (stoqué dans un dico) ça a fait sacrément gagner en perfs, plutot qu'essayer de savoir moi même si je l'avais ou pas... (pour les persos c'est à peine différent, je les charge de la même façon au chargement du niveau, pour pas que ça rame en jeu, je testerai peut être de voir si ça fait rammer tant que ça). Tu notera que la gestion des zooms d'image est stoqué au même endroit donc chaque niveau de zoom necessaire n'est fait qu'une fois par image.

Pour le reste des chargement oui on (moi et toineo) travaille sur l'idée d'une refonte pour mettre plus en commun les ressources, dans un gestionnaire.

Pour ce qui est des séparations, c'est vrai que j'ai du faire quelques compromis un peu sales, et au niveau de la physique c'est assez éparpillé (une partie dans la boucle de jeu, une autre dans les entitées elles mêmes... sad) faut que je remette ça en forme aussi.

Je vais lire tes suggestions de lectures au plus tôt wink. (c'est vrai que j'ai très peu fréquenté les forums du genre, j'ai un peu fait dans mon coins).

Hors ligne

#153 Le 25/07/2009, à 18:19

tshirtman

Re : Ultimate Smash Friends: un smash bros like en python

natheo a écrit :

Ok je veux bien mais dans quel _init_ exactement parce que lorsque je regarde controls.py je tombe sur

  def __init__(self, player, keys, action, condition=None):

et

def __init__(self):

arg tu as eu la malédiction de bas de page -_- j'avais pas vu ton message! désolé :s

c'est dans le __init__ de controls qu'il faut ajouter (si necessaire) ta ligne, mais si ça se trouve c'est déjà initialisé en même temps que le reste.

@kaoron: pas encore trop lus tes liens, je suis dans un chantier là, mais ça devrait pas tarder wink. J'ai fait un tour sur ton forum et j'essayerai de m'inscrire et d'y présenter mon jeu un de ces 4, voir ce qu'en pense les gens, ça grouille pas d'open source, mais je peux essayer de montrer que c'est faisable tongue.

Hors ligne

#154 Le 30/07/2009, à 03:50

samυncle

Re : Ultimate Smash Friends: un smash bros like en python

je m'abonne wink


Hello world

Hors ligne

#155 Le 03/08/2009, à 21:32

geenux

Re : Ultimate Smash Friends: un smash bros like en python

Moi aussi, je vais tester ton petit jeu pour voire smile

Hors ligne

#156 Le 03/08/2009, à 23:13

tshirtman

Re : Ultimate Smash Friends: un smash bros like en python

/me compte faire des releases plus souvent... dont une cette semaine, garder l'oeil ouvert...

Hors ligne

#157 Le 03/08/2009, à 23:18

LittleWhite

Re : Ultimate Smash Friends: un smash bros like en python

... et en plus il nous empêche de fermer les yeux :s
De toute façon, j'aurais une notification ... donc je peux fermer mes deux yeux tongue


Linux ou mourir
Pour avoir des problemes : demarrer Windows
Script de compression multi archive : http://forum.ubuntu-fr.org/viewtopic.php?id=225297

Hors ligne

#158 Le 04/08/2009, à 00:25

tshirtman

Re : Ultimate Smash Friends: un smash bros like en python

pour ceux qui utilisent le svn je veux bien des tests de la version de maintenan et avoir des retours avant de sortir une release avec. (pas ce soir wink)

sinon bonne nuit wink

Hors ligne

#159 Le 04/08/2009, à 01:58

Кຼزດ

Re : Ultimate Smash Friends: un smash bros like en python

$usf
Fatal Python error: (pygame parachute) Segmentation Fault
/usr/bin/usf: line 3: 19589 Abandon                 python ultimate-smash-friends

hmm j'ai la dernière version de pygame, et je viens d'installer la version svn


dou

Hors ligne

#161 Le 04/08/2009, à 10:14

geenux

Re : Ultimate Smash Friends: un smash bros like en python

Il y a un bug avec la version svn (pygame 1.8.1 sous gentoo) :
Lorqu'on configure le clavier et qu'on choisit reset, ça ferme brutalement.

BAD: characters/.svn is not a valid character directory.
BAD: characters/3Ball is not a valid character directory.
BAD: characters/BiX is not a valid character directory.
BAD: characters/wazo is not a valid character directory.
Traceback (most recent call last):
  File "./ultimate-smash-friends", line 228, in <module>
    main(sys.argv[1:]).go()
  File "./ultimate-smash-friends", line 194, in go
    self.controls
  File "modules/menu.py", line 484, in update
    controls.reload()
  File "modules/controls.py", line 286, in reload
    self.keys = loaders.load_keys()
AttributeError: 'module' object has no attribute 'load_keys'
zsh: exit 1     ./ultimate-smash-friends

Hors ligne

#162 Le 04/08/2009, à 10:20

tshirtman

Re : Ultimate Smash Friends: un smash bros like en python

ah, pas testé le reset récement, je vais voir...

edit: normal, j'y avais pensé en faisant le changement en plus -_-, je vais tenter de corriger ça...

Dernière modification par tshirtman (Le 04/08/2009, à 10:21)

Hors ligne

#163 Le 04/08/2009, à 14:42

kaoron

Re : Ultimate Smash Friends: un smash bros like en python

Je m'étais fait une réflexion autour de ta gestion multi, et mieux vaut t'en faire part avant que tu dépenses trop d'énergie dedans : faire jouer plusieurs joueurs en temps réel sur un même clavier, c'est pas viable. La plupart des claviers ont des limitations techniques intrinsèques à leur conception, lesquels occasionneront des blocages indésirables (voir cet article à ce sujet).
Donc joypads quasi obligatoires si tu veux du multi sur une seule machine, sinon : réseau.

A mon avis, tu devrais dans un premier temps te concentrer a la création et au peaufinage de tes modules physique et gestion des evènements(input, jeu). Faire un proto de jeu de plate-forme basique en quelque sorte.
- Vires la limite supérieure des arènes. Elle ne sert pas à grand chose et est toujours trop basse.
- Je n'ai pas regardé comment était gérée la caméra/scène, mais essaye de la découpler au maximum de ton jeu. Tu devrais pouvoir l'extraire et calculer sa position et son facteur de zoom en fonction de l'état du jeu. Notamment, ça te permettrait d'utiliser différentes caméras si tu veux faire plusieurs modes de jeu (mode plate-forme solo, arène multi).
- Peaufine la physique, ou refais-la complètement... la gravité n'est pas crédible (voire même carrément aléatoire), les personnages s'envolent au lieu de sauter, ils restent collés au plafond si ils rencontrent un obstacle... ça va pas neutral C'est con, j'avais réalisé un prototype fonctionnel en python/pygame qui n'était pas trop mal réglé... mais impossible de mettre la main dessus, je ne l'ai pas versionné et j'ai du le supprimer par erreur.

Ce serait bien aussi que tu donnes rendes les modules un peu plus facilement reconnaissables. Qu'est-ce qui s'occupe de la physique, qu'est-ce qui s'occupe de l'affichage, etc.

#164 Le 04/08/2009, à 17:30

tshirtman

Re : Ultimate Smash Friends: un smash bros like en python

merci pour tes conseils, tu as malheureusement raison sur bien des points, je vais essayer de suivre dès que j'aurais un temps raisonnable pour reprendre plus à la base... le moteur physique est vraiment un gros problème.

par contre pour la limite haute du jeu, dans smash bros y'en as une, c'est une façon de perdre, elle est juste mieux foutus (le perso disparait de l'écran et retombe très loin au fond), il faut que je gère mieux mes sorties de niveau, qu'on comprenne un peu plus.

Dernière modification par tshirtman (Le 04/08/2009, à 17:32)

Hors ligne

#165 Le 04/08/2009, à 18:46

geenux

Re : Ultimate Smash Friends: un smash bros like en python

Je confirme, pour les sauts c'est très déstabilisant. Le personnage qui saute à 10km de haut, qui crève sans qu'on remarque pourquoi (enfin on comprend vite la raison quand même).

Hors ligne

#166 Le 04/08/2009, à 20:03

LittleWhite

Re : Ultimate Smash Friends: un smash bros like en python

Je vais dire peut être une connerie, mais si on recommençait le code de zero, en basant la programmation sur une reflexion d'abord ... voir des trucs UML et après on s'y met à deux ou à plus ( des codeurs qui reste pas des personnes qui passe deux jours et pouf ) ( bien sur on peu prendre tout les benevoles d'un jour ou deux, par patch ou truc dans le genre ).
Je dis ça j'ai pas encore commencé le code, mais ça me semble chaud ... ( architecture du code actuelle )
Peut être voir une conception beaucoup plus modulaire. ( Module clavier / Module Joystick / Module Son / Module Affiche ( à décomposé par caméra ... objet ... ) / Module Monde / Module network )
Enfin je dis ça, vous pouvez me lancer des pierre wink


Linux ou mourir
Pour avoir des problemes : demarrer Windows
Script de compression multi archive : http://forum.ubuntu-fr.org/viewtopic.php?id=225297

Hors ligne

#167 Le 04/08/2009, à 20:05

tshirtman

Re : Ultimate Smash Friends: un smash bros like en python

j'ai augmenté la hauteur du jeu pour le rendre plus fun, mais apparement c'est trop... (et je me demande s'il est pas dépendant de la machine hmm)


@little white: je compte pas te jeter la pierre, reprendre de 0 ça me ferait un peu mal, y'a des trucs dont je suis content... sinon:

-Module clavier / Module Joystick -> y'en as un pour les deux mais c'est bien un module.
-Module Son -> c'est le cas
-Module Affiche ( à décomposé par caméra ... objet ... ) -> c'est pas vraiment le cas, tout le monde s'affiche indépedamment faut que j'y travaille.
-Module Monde -> level? si oui oui c'est le cas
-Module network -> oui c'est prévus juste compliqué.

Dernière modification par tshirtman (Le 04/08/2009, à 20:31)

Hors ligne

#168 Le 04/08/2009, à 20:08

LittleWhite

Re : Ultimate Smash Friends: un smash bros like en python

Dépendant de la machine ... tu voudrais dire que tu vise une sorte de résolution à place des hauteur du monde ?


Linux ou mourir
Pour avoir des problemes : demarrer Windows
Script de compression multi archive : http://forum.ubuntu-fr.org/viewtopic.php?id=225297

Hors ligne

#169 Le 04/08/2009, à 20:32

tshirtman

Re : Ultimate Smash Friends: un smash bros like en python

non je voulais dire que j'ai pas vérifié mais la hauteur du saut dépends peut être de la rapidité d'affichage, si oui ça craint...

Hors ligne

#170 Le 04/08/2009, à 20:51

LittleWhite

Re : Ultimate Smash Friends: un smash bros like en python

La rapidité d'affichage peut être différente de la rapidité de la mise à jour du monde. Ce que disais un prof dans son cours...
J'ai jamais trouvé ça interessant ... mais du moins cela reste possible. Par contre faut faire de l'interpolation.
Sinon ça évitera le problème de ta théorie.
Enfin, même si j'aimais pas ce que disais le prof ( car il voulait mettre à jour le monde que 5 fois par seconde ) il est certains qu'il faut toujours séparé la vitesse de rafraichissement de celle de la mise à jour du monde ( au cas ou que ça lag ). Et puis tout les déplacements doive être basé sur le temps réel et non ( qui peut avoir une sorte d'interface pour un temps virtuel plus libre ) qui permet donc de se détacher du rafraichissement.

( ou un truc dans le genre ... car je m'embrouille un peu vite sans feuilles )


Linux ou mourir
Pour avoir des problemes : demarrer Windows
Script de compression multi archive : http://forum.ubuntu-fr.org/viewtopic.php?id=225297

Hors ligne

#171 Le 04/08/2009, à 21:19

tshirtman

Re : Ultimate Smash Friends: un smash bros like en python

kaoron m'a passé un bon lien là dessus plus tot, j'ai lus mais pas réussis à me motiver à implémenter la bonne méthode, qui demande d'être prédictif... mais oui on peut séparer les deux, je l'avais fait avec une mauvaise méthode à une époque (threading) ça donnait des résultat pas agréables à l'oeil (monde un peu élastique/instable), mais son lien donne de meilleures solutions. Faut juste que je motive par ce que c'est sacrément lourd comme changement. (enfin j'ai l'impression)

Hors ligne

#172 Le 04/08/2009, à 21:33

kaoron

Re : Ultimate Smash Friends: un smash bros like en python

LittleWhite a écrit :

La rapidité d'affichage peut être différente de la rapidité de la mise à jour du monde. Ce que disais un prof dans son cours...
J'ai jamais trouvé ça interessant ... mais du moins cela reste possible. Par contre faut faire de l'interpolation.
Sinon ça évitera le problème de ta théorie.
Enfin, même si j'aimais pas ce que disais le prof ( car il voulait mettre à jour le monde que 5 fois par seconde ) il est certains qu'il faut toujours séparé la vitesse de rafraichissement de celle de la mise à jour du monde ( au cas ou que ça lag ). Et puis tout les déplacements doive être basé sur le temps réel et non ( qui peut avoir une sorte d'interface pour un temps virtuel plus libre ) qui permet donc de se détacher du rafraichissement.

( ou un truc dans le genre ... car je m'embrouille un peu vite sans feuilles )

Plusieurs choses :
1/ le lag, c'est spécifique au réseau
2/ Il ne faut pas "toujours" séparer l'update logique de l'update graphique, notamment lorsque ton gameplay est frame-dependant (par exemple dans un jeu de baston 2D, les frames peuvent être utilisées comme repères pour déclencher les combos)
3/ Ce que dit ton prof n'est pas stupide, certains jeux (ou certaines phases de jeu) n'ont pas besoin de mettre à jour leur logique 75 fois par seconde, et 5 updates/s c'est bien suffisant pour la logique d'un jeu au tour par tour par exemple. On peut faire plus, mais ça sert à rien.

Une solution peut être de fixer le framerate max (par exemple à 50 fps) et de s'arranger pour que le jeu ne descende pas en dessous.

Sinon... -1/2gt² +vt+y0 big_smile.

Sur le sujet, j'avais donné ce lien à la page précédente : http://dewitters.koonsolo.com/gameloop.html

#173 Le 04/08/2009, à 22:24

LittleWhite

Re : Ultimate Smash Friends: un smash bros like en python

1) Je m'excuse kaoron, mais je ne parlais pas du réseau ...
2) Je ne suis pas sur qu'un jeu de baston qui se base sur les frames soit un bon jeu. Mieux vaut avoir un jeu de baston se basant sur du temps réel. Un jour ton jeu va ramé ( car PC pas puissant , windows sucks et prend tout le CPU, ou encore tu voulais jouer pendant une compression de tes fichiers ) bah les combos seront bizarrement ultra facile à faire tongue ( car le système d'event va certainement très bien marché lui tongue ).
3) J'ai pas dit que ce que disais mon prof était stupide, j'ai dis que je n'aimais pas tongue ( J'ai jamais dit que je n'appliquerai pas ce qu'il dit ).

Il faudra que je regarde le lien tongue


Linux ou mourir
Pour avoir des problemes : demarrer Windows
Script de compression multi archive : http://forum.ubuntu-fr.org/viewtopic.php?id=225297

Hors ligne

#174 Le 04/08/2009, à 22:58

kaoron

Re : Ultimate Smash Friends: un smash bros like en python

2) Je ne suis pas sur qu'un jeu de baston qui se base sur les frames soit un bon jeu.

La quasi-totalité des jeux de baston 2D en arcade (street fighter, kof, etc) sont frame-dependant avec un framerate fixe, et les meilleurs joueurs savent à quelle frame précise se lance un combo (mais ce ne sont certainement pas de bons jeux wink ).
Ces jeux tournent sur du matos connu et dédié et ont un framerate parfaitement fixe, mais à partir du moment ou ta machine est assez puissante et ton jeu assez optimisé, tu peux te permettre de fixer les mêmes conditions.

Ici, ce n'est pas vraiment le cas, mais il ne faut pas forcément se dire que la logique non découplée du framerate c'est toujours le mal absolu. Il y a des cas où c'est justement une partie du jeu

#175 Le 04/08/2009, à 23:53

tshirtman

Re : Ultimate Smash Friends: un smash bros like en python

là j'ai fait du temps pour les combos, mais le systeme demande à être revus maintenant que j'y repense (les touches ont une durée de vie dans une queue, et la queue doit contenir la séquence de la combos, ce serait une bonne idée si ça n'impliquait pas qu'une combo doit etre tapé d'autant plus vite qu'elle est longue...)

edit: si je me basait sur l'age de la dernière touche tapé ça irait? par contre il faut s'assurer de vider la queue d'une combo executée...

Dernière modification par tshirtman (Le 04/08/2009, à 23:56)

Hors ligne