#151 Le 22/07/2009, à 14:42
- kaoron
Re : Ultimate Smash Friends: un smash bros like en python
#152 Le 22/07/2009, à 14: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... ) faut que je remette ça en forme aussi.
Je vais lire tes suggestions de lectures au plus tôt . (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, à 17:19
- tshirtman
Re : Ultimate Smash Friends: un smash bros like en python
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 . 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 .
Hors ligne
#154 Le 30/07/2009, à 02:50
- samυncle
Re : Ultimate Smash Friends: un smash bros like en python
je m'abonne
Hello world
Hors ligne
#155 Le 03/08/2009, à 20:32
- geenux
Re : Ultimate Smash Friends: un smash bros like en python
Moi aussi, je vais tester ton petit jeu pour voire
Hors ligne
#156 Le 03/08/2009, à 22: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, à 22: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
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 03/08/2009, à 23: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 )
sinon bonne nuit
Hors ligne
#159 Le 04/08/2009, à 00: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
j'ai la dernière version de pygame, et je viens d'installer la version svn
dou
Hors ligne
#160 Le 04/08/2009, à 08:59
- tshirtman
Re : Ultimate Smash Friends: un smash bros like en python
arf j'ai pas testé avec pygame 1.9...
Hors ligne
#161 Le 04/08/2009, à 09: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, à 09: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, à 09:21)
Hors ligne
#163 Le 04/08/2009, à 13: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 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, à 16: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, à 16:32)
Hors ligne
#165 Le 04/08/2009, à 17: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, à 19: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
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, à 19: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 )
@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, à 19:31)
Hors ligne
#168 Le 04/08/2009, à 19: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, à 19: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, à 19: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, à 20: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, à 20:33
- kaoron
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 )
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 .
Sur le sujet, j'avais donné ce lien à la page précédente : http://dewitters.koonsolo.com/gameloop.html
#173 Le 04/08/2009, à 21: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 ( car le système d'event va certainement très bien marché lui ).
3) J'ai pas dit que ce que disais mon prof était stupide, j'ai dis que je n'aimais pas ( J'ai jamais dit que je n'appliquerai pas ce qu'il dit ).
Il faudra que je regarde le lien
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, à 21: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 ).
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, à 22: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, à 22:56)
Hors ligne