Le moteur physique est déjà en fixed time step.
Merci, je pense donc que mon première objectif est la possibilité de rejouer une partie uniquement avec les inputs en entrée et toujours obtenir le même résultat.
Version imprimable
Le moteur physique est déjà en fixed time step.
Merci, je pense donc que mon première objectif est la possibilité de rejouer une partie uniquement avec les inputs en entrée et toujours obtenir le même résultat.
En à peine 2 semaines ( éprouvantes certes ), j'ai pus mettre en place le jeu en réseau qui fonctionne étonnamment bien !
Voici comment j'ai procédé :
- Refonte de la couche des inputs afin de pouvoir décaler les actions du joueurs de X millisecondes ( 80 ms actuellement )
- Possibilité d'enregistrer des replays composés uniquement des changements d'inputs des joueurs
- Les replays se jouent de la même manière sur les différentes machines testées ( que des Intel malheureusement, j'ai peur pour le calcul des flottants qui est susceptible de différer sur les AMD :/ )
- Ajout de la couche réseau avec Lidgren
- Une synchronisation du temps de jeu entre le server et les clients en début de partie.
- Ensuite le jeu fonctionne correctement, c'est tout simplement comme si la manette etait distante.
En cas de desynchro ( ordre d'input recu plus tard que le temps actuel ) je n'ai rien pour le moment.
Je vais partir sur un enregistrement du monde complet toutes les 100ms durant les 3 dernières secondes.
En cas de desynchro tout le monde reviendra en arrière au dernier enregistrement validé, si cela à lieu trop souvent le décalage des actions sera augmenté : si un joueur lag il fait lagger tout le monde.
Ce n'est pas l'idéal mais je ne peux pas prendre le temps de faire mieux : une gestion réseau parfaite c'est un vrai métier à temps complet.
C'est sympa comme projet, la vidéo donne envie d'y jouer ! Je trouve ca très bien aussi de nous ouvrir les portes du développement du jeu, beaucoup de petits jeunes qui se lancent sans trop savoir ou ils vont devraient s’intéresser à tout ça avant de vouloir refaire Wow en mieu en 2 jours avec le copain ^^
Bonne continuation sur ce projet très prometteur ! :)
Ahah oui, d'ailleurs voici le changelog depuis le 16 février :
Et voici quelques screens en attendant une vidéo des parties jouées en ligne !Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150 14/3/12 - Synchronisation : ajout d'une attente sur le server avant de démarrer le jeu en fonction du ping. - Il est désormais possible de connecter plusieurs clients au server ( lag certainement important pour le moment ) 13/3/12 - Refactoring synchronisation client/server - Synchronisation plus précise - Fix : le menu est de nouveau navigable au clavier 12/3/12 - Possibilité pour le client d'envoyer plusieurs joueurs au server. - Fix : la rotation des acteurs posés via l'editeur fonctionne à nouveau 11/3/12 - Possibilité de jouer une partie normalement en réseau - Fix : plus de crash si la bomba toxik se supprime à la fin d'un round 6/3/12 - Ajout de la possibilité de "jouer" en réseau via un client et un server : après test la désynchro arrive au bout de 10 secondes, rien de jouable pour le moment. - Dommage en fonction du niveau du joueur pour les bombas suivantes : - Bomba poison - Bomba Flipper - Bomba kipik - Bomba rat 2/3/12 - Fix : les types de triggers cylindre et cube ne sont plus inversés à l'affichage - Dans le scene editor en cliquant sur save il est possible de definir la position de la camera - View permet de voir la position enregistrée mais pas la direction pour le moment. 29/2/12 - Fix : les menus sont de nouveaux navigables - Fix : la camera est de nouveau deplacable dans l'editeur de niveaux - Il est désormais possible d'enregistrer des replays ( Start durant la partie ) - Il est désormais possible de visionner les replays ( menu replays ) : attention à ne pas toucher à votre manette en visionnant le replay ! 28/2/12 - Réécriture complète de la couche d'écriture des inputs - Les inputs sont bufférisés et rejoués 5 frames plus tard afin d'avoir un apercu du jeu multijoueurs. - Nouvelles affectation des touches claviers : Joueur 1 : ButtonA = Keys.Insert; ButtonB = Keys.Delete; ButtonX = Keys.Home; ButtonY = Keys.PageUp; ButtonShoulderLeft = Keys.End; ButtonShoulderRight = Keys.PageDown; Right = Keys.NumPad6; Left = Keys.NumPad4; Up = Keys.NumPad8; Down = Keys.NumPad5; Start = Keys.Enter; Joueur 2: ButtonA = Keys.A; ButtonB = Keys.Q; ButtonX = Keys.Z; ButtonY = Keys.E; ButtonShoulderLeft = Keys.S; ButtonShoulderRight = Keys.D; Right = Keys.L; Left = Keys.J; Up = Keys.I; Down = Keys.K; Start = Keys.Y; 25/2/12 - L'element sélectionné est plus visible dans l'editeur de scène - Un "ForceAction" n'effectue plus 2x l'effet 0 ( caisse qui larguait 2 bonus en cas de stun ) - Un fantôme ne peut plus séchapper de son état caché en sautant - Fix : passage du calcul de la matrice local de CODE: TOUT SÉLECTIONNER LocalMatrix = Matrix.CreateFromYawPitchRoll( m_rotation,0,0) * Maths.CreateRotation(m_upDirection) * Matrix.CreateScale(m_scale.X, m_scale.Y, m_scale.Z) * Matrix.CreateTranslation(Position); à CODE: TOUT SÉLECTIONNER LocalMatrix = Matrix.CreateScale(m_scale.X, m_scale.Y, m_scale.Z) * Matrix.CreateFromYawPitchRoll( m_rotation ,0,0) * Maths.CreateRotation(m_upDirection) * Matrix.CreateTranslation(Position); Fix de la méthode CreateRotation. - Ajout de la possibilité de "rotationner" les objets physiques dans l'éditeur, cependant in-game les collisions aux coins semblent buggées. - Fix : il n'est plus possible de voler avec la bomba rat. - Fix : la bomba rat ne fait plus 100 de dommage en fin de compteur - Fix : la bomba toxic explose en cas d'explosion à proximité 24/2/12 - La vitesse d'une animation est désormais prise en compte sur un état initial. - Le fantôme peut porter bomba, bonus et chibis. 23/2/12 - Suppression des crashs lorsque la mass était nulle 22/2/12 - Lélectrocution ne dure plus que 2.5s - Fix : les particules attachés ne sont plus mise en dehors du boundingfrustum pour rien - Ajout d'une IA idiote mais un peu fun. 21/2/12 - Fix : si un joueur porte la bomba d'un autre joueur B, le joueur B peut de nouveau lancer des bombas. - Fix : si un joueur se pose sur un chibi fantome, l'animation ne reste plus en "jump_down" - Fix : il n'est plus possible de rester sur la tête d'un chibi - Fix : lorsque le joueur est assomé, ce qu'il porte est ejecté. - La puissance de la bombaX est fonction de la puissance du joueur. - Esquisse de la victoire d'un joueur. 20/2/12 - Une bomba incarnée explose dans le trigger de sortie de zone - Ajout de controle sur le hit des fantomes - Une particule est jouée lors de l'apparition d'un fantôme - Fix : les fantômes peuvent de nouveau sauter en étant sur une caisse - Il est possible de porter la (bomba de base/toxik/nuke/Electrik) et de la lancer - Mise en avant d'un bug : un forceaction effectue l'effet 0 , 2 fois. 19/2/12 - Il est possible de porter le BonusBX en appuyant sur B en étant à une certaine distance de lui. - Il est possible de jetter le BonusBX en appuyant sur X lorsque le joueur le porte - le BonusBX se change en un autre bonus une fois jeter au sol - Fix : les acteurs ne sont plus colorés en rouges dans l'actor editor - Fix : la caméra est désormais déplaçable dans l'actors editor - Ajout d'un "SuperActor" celui ci permet de définir les comportements communs de différents actors - Définition du "SuperActor" commun des bonus : tous les bonus sont désormais portable et lancable. - Il est désormais possible de porter un chibi assomé. - Fix : plus de plantage si un fantome essais de porter un bonus - Fix : un bonus porté de peut plus disparaître - Fix : les bonus ne roulent plus une fois lancée - Fix : les acteurs attachés possèdent la même rotation que leur parent - Fix : L'octree fonctionne désormais correctement - Ajout de la bomba flipper - Ajout de la bomba electrik 17/2/12 - Fix : il est désormais possible de sauter lorsque l'on se trouve sur une caisse - Fix : la bomba Kipik ne peut plus être déplacée une fois enterrée - Ajout de raccourcies sur l'éditeur de scènes : CTRL (droit) + HAUT => Augmente la valeur de Y de 1 des objets sélectionnés. (Fais monter les objets en somme) CTRL (droit) + BAS => Baisse la valeur de Y de 1 des objets sélectionnés. (Fais descendre les objets en somme) CTRL (droit) + GAUCHE => Augmente la valeur de USER ROTATION de 45° CTRL (droit) + DROITE => Réduis la valeur de USER ROTATION de 45° - Fix : Editeur de scènes : la valeur user rotation est désormais mis à jour en temps réel lorsque l'utilisateur effectue une rotation à la souris.
http://img3.imageshack.us/img3/3632/screen1hn.th.jpg
http://img35.imageshack.us/img35/5325/screen2fo.th.jpg
http://img534.imageshack.us/img534/5...reen3za.th.jpg
http://img821.imageshack.us/img821/7...een4ems.th.jpg
Bonjour à tous,
j'ai enfin mis en place un planning technique global.
Sur l'estimation de la durée des tâches "1j" signifie une soirée soit entre 1 et 4 heures.
Ces estimations sont larges mais je ne tiens pas comptes des bugs, intégrations graphiques et nombreux imprévus : les dates indiquées c'est uniquement si tout se passe bien !
12 Avril
- Amélioration écran fin de manche
- Amélioration HUD
- Gestion draw
- Affichage nombre de bombas dispo
- Il faudrait qu'une fois la bomba spéciale posée, le curseur reviennent sur la bomba basic.
- Quand un chibis est électrocuté, il lâche tout ce qu'il porte.
- Si un chibis vivant ou fantôme meurt, il lâche ce qu'il porte et sa zone de collision est désactivé au moment même où il disparaît.
- Retouche nuke pour que le visuel corresponde un peu mieux au hit
- Lorsque l'on porte un chibi assomé plus de 3s il se réveille.
Beta test privé ( amis proches ) : fin avril
- Ajout sons gameplay (3j)
- Empecher rotation lorsque l’on est assomé ou electrocuté (1j)
- Empecher de porter une bomba quand on est electrocuté (1j)
- 5 niveaux de nuke (1j)
- ecoute des messages durant le idle de la boucle principale afin de dispatcher plus rapidement les messages entre clients ( 3j )
- Supression input entre les menus ( 3j )
- Recommencer la partie en cas de desynchro et augmenter le decalage d’input en cas de besoin ( 3j )
Version Xbox : fin mai ( concours Dream Build Play )
- Liste de variables / scene ( permettra de definir les musiques et les
types d'acteurs a spawner en live comme les cactus ) ( 2j )
- Gameplay bomba alien ( avec la soucoupe volante et tout ) (3j)
- Refonte moteur son (4j)
- Bomba kawaii (5j ? )
- Portage Xbox ( optimisations...) ( 20j )
Beta test privé ( 30 personnes ) : fin juin
- Ajout d’un auto updater (5j)
- Obfuscation du code source (4j)
- Creation d’un launcher pour affecter les touches (3j)
- Gestion des comptes en lignes ( 5j )
- Amélioration menu choix niveaux ( 3j )
- Amélioration Lobbys (3j)
Beta test publique : mi-juillet
- Debug physique qui fait sauter le chibis a 200metres de hauteur (2j)
- Debug physique lors du lancement d’une bomba qui va bien trop loin ( 1j )
- Refactoring reseau ( 2j )
- Test de décalage du temps entre client et server durant la partie afin de ralentir le temps d’un coté si decalage trop important. ( 3j )
- Options configuration graphique ( 3j )
- Bonus chaos ( 4j )
Version 1.0 : mi août
- Mise en place des avantages pour les comptes payants
- Test réseau en tcp/ip ( 3j )
- Nettoyage assets inutiles ( 4j )
Version 1.xx
- Serialization binaire des replays ( 1j )
- Test reseau non synchronisé ( 25j )
- Refonte textbox code actor editor ( 3j )
- Refonte actor editor avec des fenetre dockable ( 4j )
- Possibilité de pouvoir créer des mods facilement ( 5j )
- Mod explosion au contact ( 1j )
- Possibilité de jouer en équipe ( 5j )
- Système multi langues ( 4j )
- Distribution/ visionnage de replay en ligne ( 5j )
Salut !
Je n'ai pas pris le temps de lire toutes les infos mais la vidéo est impressionnante !!
Super travail !
Ouhh impressionant et quelle gestion de projet en meme temps ;)
Bonne chance pour dreambuildplay et ne manque pas de nous tenir au courant sur le fofo.
Et aussi:
- Portage Xbox ( optimisations...) ( 20j )
bon courage ;)
Bonjour à tous,
un petit mot pour dire que nous serons présents à l'évènement "Pitch My Game" qui aura lieu le jeudi 12 avril à 19h, à Paris/Bastille.
Vous trouverez plus d'informations sur le site : http://www.pitchmygame.com
La soirée devrait être filmée/streamé par PlayItLive (http://www.playitlive.fr/blog/)
Ça sera l'occasion de voir le jeu en action et même d'y jouer pour les plus chanceux !
Voici un excellent résumé de l'évènement "Pitch my game" :
http://fibretigre.blogspot.fr/2012/0...jeu-video.html
Super article et :bravo: pour votre travail.
Bon courage pour la suite,
Jc
Quelques nouvelles concernant la conversion Xbox comme promis :
( à savoir que le moteur a déjà subit une première passe d'optimisation pour la xbox l'an dernier avec le pooling des particules et de la physique )
( un jour : 1-4h de boulot )
Jour 1 :
-Tentative d’utilisation de l’outil “create copy of project for Xbox360” de visual.
J’obtiens l’erreur suivante “Error 15 The OutputPath property is not set for project 'Xbox 360 Copy of MoDDEngine.csproj'. Please check to make sure that you have specified a valid combination of Configuration and Platform for this project. Configuration='Release' Platform='Xbox 360'. This error may also appear if some other project is trying to follow a project-to-project reference to this project, this project has been unloaded or is not included in the solution, and the referencing project does not build using the same or an equivalent Configuration or Platform.”
Après recherches il s’agit d’un problème sur la solution lorsque l’on a utilisé des posts build events.
Mais la solution ne fonctionne pas pour moi.
Je vais donc devoir tout recréer les projets Xbox à la main.
Une fois les 6 projets Xbox recrées je rajoute mes defines !Xbox pour le code spécifique Windows ( UI , multijoueurs , accès disque dur … )
Jour 2 :
- Premier lancement Xbox.
1”40s pour le lancement du jeu.
Plus de 2” pour le lancement d’une arène.
Durant la phase de jeu le jeu freeze 2s toutes les 2.5s.
Bref tout va bien !
Je remet en marche le CLR Profiler grâce à ce blog ( http://www.crappycoding.com/2010/09/...-with-xna-4-0/ )
C'est un outil génial pour voir les allocations sur la durée :
http://img832.imageshack.us/img832/5940/clrprofiler.png
Je m’attaque dans un premier temps aux freezes en empêchant toute allocation durant la phase de jeu.
Avec un peu de poolings et des capacités de listes bien initialisées j’arrive à descendre à un freeze toutes les 30s.
Jour 3 :
- J'essaie de supprimer toutes allocations dûes à une concaténation de strings ou à une conversion de int en string.
( il y en a pas mal car le système d’édition de gameplay est un éditeur annexe très maléable qui utilise un dictionnaire String/Variable )
- Sur windows je n’ai plus que 10ko d’alloué en 40secondes lorsqu’il ne se passe rien.
( il se peut qu’il y ait plus sur xbox où les foreach génèrent de l’allocation dans certains cas précis )
- Je commence à travailler sur le pooling des acteurs ( les objets crées dynamiquement durant la partie avec de la physique et de l’animation )
Jour 4 :
- Le pooling des acteurs semble efficace ( 50ko alloué en 30s de jeu avec de nombreuses création d’acteurs )
- Je m’attaque désormais aux chargements interminables du jeu.
- Remise en place du profiling sur les portions critiques.
- Le fichier de définition des particules prend 22secondes à charger ( contre 0.5s sur mon PC..)
c’est un fichier Xml qui est désérialisé.
Je passe donc l’export et l’import en binaire.
Pareil pour le fichier de description des acteurs/entités qui prends 9s à charger.
Désormais ces fichiers sont lus en moins d’une seconde.
yo bravo pour le taf, passé de 20 sec à 1 sec pour un fichier ^^mdr!
Nouvelle vidéo gameplay :
Chibis Bomba Alpha IV - Gamefootage with 3 players - YouTube!
Est ce que ce genre de vidéo donne envie ou est-ce trop fouillis et trop éloigné pour y comprendre quelque chose ?
Petites news durant notre dernière semaine de rush avant le rendu Dream Build Play :
Petit aperçu des dernières fonctionnalités :
- Caméra dynamique ( à partir d'1 minute sur la vidéo )
- Nouvel environnement
- Possibilité de se jeter pas mal de choses sur la tronche
- etc
Chibis Bomba Alpha IV - Gamefootage with 3 players - YouTube
pour ta video et ta question
non c est pas trop eloigné et pas trop petit
faut imaginer y jouer sur 360 sur une grande télé...
Pour moi la caméra est pas mal placée à cette distance... :)
tu penses le mettre en jeu arcade sur 360?
tiens nous au courant.. j mettrai peut etre des points pour le prendre :)
On voit pas bien les derniers screens que tu as postés après "C'est un outil génial pour voir les allocations sur la durée : "
Ca donne quoi le concours Dream Build Play?
Il n'ont rien de vraiment propre au jeu : tu peux en voir de meilleurs ici :
http://geekswithblogs.net/robp/archi...ing---clr.aspx
Justement je commit ce soir !Citation:
Ca donne quoi le concours Dream Build Play?
Voici le trailer soumis au DBP :
[ame="http://www.youtube.com/watch?v=cs2aROi_WDU"]Chibis Bomba - Trailer Dream Build Play 2012 - YouTube[/ame]