Vous n'êtes pas identifié.
Ben voila, mon 3eme prog : Falldown.
Le petit jeu que tout le monde connait
Version bêta pour l'instant uniquement, en effet je n'ai pas encore inclu les bonus et le mode 2 joueurs. J'ai lu le post de X_Thunder sur le sien (mais je n'ai pas pu l'essayer, tous les liens sont morts), je peut vous dire que mon mode 2 joueur sera diffferent du (des) sien(s).
Les touches : les fleches <- -> pour se deplacer, ESC pour revenir au menu principal pendant le jeu, lorsque la partie est terminée ("Game Over") EXE pour recommencer et tout autre touche pour revenir au menu principal.
Toute critique constructive est acceptée (même s'ils sont rares )
:cry: :cry: :cry: :cry:
Hors ligne
J'me souvenais meme pu d'avoir pensé à un mode 2 joueurs... enfin la j'suis pas en état de penser correctement...
Liens morts, surement parce que j'ai rangé mes repertoires..
Hors ligne
mode 2 joueur: coopératif ( le 1er qui meurt fait tout perdre)
- mode 2 joueur: versus (le 1er qui perd fait gagné l' autre)
- mode 2 joueur: challenge ( le jeu fini quand tout le monde perd)
Perso je prévoit un mode un peu plus complexe, en versus :
Quand la balle d'un joueur est en bas, elle fait scroller l'écran. Le but est de faire scroller l'écran assez rapidement et assez longtemps pour que l'autre arrive en haut du jeu. D'ailleur, quelle serrait les touches pour que les 2 joueurs ne se gene pas (4 mains sur une graph ca fait beaucoup....)
J'ai pensé à <- -> 1 2 mais j'aimerais un avis
enfin la j'suis pas en état de penser correctement...
Tu nous explique? :P
Liens morts, surement parce que j'ai rangé mes repertoires..
Certainement, depuis le temps...
Hors ligne
J'ai le binaire de Falldown dans ma caltos, je peux l'uploader et te l'envoyer si tu veux
Hors ligne
L'archive originale de la version de X-Thunder avec les sources, un binaire et un readme_et_ta_interet_a_le_faire_sinon_ca_va_chier.txt est sur le site de casioworld :
http://perso.wanadoo.fr/casioworld/zip/falldown2.zip
J'ai retrouvé mon câble, et après une recompil noyau (je sait pas comment j'ai fait pour décocher le driver des ports série), j'ai pu essayer le jeu.
Première impression : tout est beaucoup trop rapide ! Le menu, et le jeu.
Pour le menu, il faut mettre une tempo sinon on arrive difficilement a choisir. Le jeu est également trop rapide, c'est très dur de jouer plus de 20 secondes (sans entraînement). Je pense qu'un petit ralentissement est nécessaire pour prendre en main le jeu, et ensuite accélérer pour augmenter la difficulté.
Je trouve également que les barres sont très espacées. La barre supérieure a complétement disparue quand la barre suivante apparaît. Je préférerai la voir un peu avant.
Sinon pour un deuxième jeu c'est pas mal du tout.
Quelques suggestions pour des nouvelles fonctionnalitées :
- gestion des high-scores
- plusieurs niveaux de difficulté
- mode 2 joueurs
HS : J'ai commencé il y a pas mal de temps une petite lib (codée uniquement en asm, donc très petite, mais utilisable en C) pour afficher du texte et des grandes images. Si ça intéresse quelqu'un, je nettoye un peu et je publie.
Hors ligne
Pour le menu, effectivement, on m'a déjà fait la remarque.
Pour ce qui est du mur, en effet, une ligne apparait quand l'autre a disparu. C'est ce qui rajoute du piquant au jeu.
Et il est vrai que le defilement est rapide.
Je vais donc penser a ajouter un systeme qui metra la difficulté de maniere croissante (je ne pense pas que je vais diminuer le scrolling, je vais certainement metre plus de trous dans les murs au départ, et ca diminuera progressivement jusqu'au niveau actuel)
Pour les highscores, il va faloir que j'étudie le tuto sur les mem-zones
Et le mode 2 joueur était prévu.
Merci beaucoup pour ton test et tes remarques.
Je regarderais la version de X-Th, nottament pour les differents bonus disponibles.
En ce qui concerne ta lib, elle m'interesse evidemment, mais si elle est compatible au mode 5GS de Julien
Hors ligne
Pour l'instant les polices fonctionnent uniquement en mode 0xD3 et 0xDB (n/b en lignes et noir/gris/blanc) pour l'instant, mais il suffit de copier les buffers pour l'utiliser, et ça ne devrait pas être long de faire une fonction pour le mode 5GS.
Les fonctions d'affichage d'images fonctionnent dans les mêmes modes. Elles permettent de faire du scrolling pix/pix vertical _et_ horizontal suffisamment optimisé pour être utilisable, même en gris.
Cette lib était à l'origine une réécriture de gruges en asm, la plupart des fonctions d'affichage sont écrites, il manque juste toute la partie lecture et interprétation des fichiers.
L'interface C a été testée avec dmc et bin86 (et peut-être tc3, mais je ne me souviens plus).
Un détail important : j'utilise des instructions spécifiques au proc de la g100 qui ne sont pas implementées dans wing100, donc il est impossible d'utiliser l'émulateur. Cependant il suffit de coder ces deux instructions (ext et ins) pour que ça fonctionne, mais je ne peux pas le faire, vu que c'est codé avec les atl et que je n'ai pas accès a visual studio. De plus wine ne supporte pas les atl, donc un portage linux est impossible.
Si quelqu'un veux m'aider à améliorer les fonctions, je pense héberger le projet chez google (http://code.google.com/hosting/), il suffit de me donner une adresse gmail pour je vous ajoute dans la liste d'accès au dépot svn.
Hors ligne
Pour l'affichage des characteres, j'ai ma petite fonction (assez rapide a mon gout) En revanche, un scrolling peut etre tres interessant, si toutefois il marchait avec le gs5 (sinon ya db-lib)
Pour ce qui est de l'emulateur, c'est un peu génant mais ce n'est pas vital.
Tes gruges sont vraiment tres évoluées
Je t'aurais volontier aidé, mais je ne connait pas du tout l'asm
Hors ligne
Une petite remarque: Le mode 5GS (comme tu l'appelles ) n'est vraiment intéressant que pour les images relativement fixes. Pas la peine de donner 5 couleurs à des éléments qui bougent, on ne les verra pas
Ca peut être bien si tu veux faire un joli menu ou s'il y a beaucoup de decors fixes dans le jeu (genre zelda par exemple), mais pour un falldown inutile de donner 5 couleurs à la boule
Donc si ça te semble plus "confortable" d'utiliser le mode DB plutot que les 5 couleurs (parce qu'il existe des libs pour le DB comme celle dont tonton parle etc), penses-y
Hors ligne
pour Falldown, j'ai considéré que mettre 3 couleurs était un luxe...
Tu nous explique?
Hmmm, 3 jours plongés dans le bonheur coupés par un retour à la réalité ^^
Hors ligne
@ Julien : C'est vrai, mais mon menu est en 5 couleurs, alors j'ai aussi fait le jeu en 5 couleurs, et puis la derniere fois que j'ai essayé d'afficher quelque chose en DB (bmp2c+BMPTabType+disp_bmp) ca a finit par une bouillie de pixel :x
@ Azor : toujours pas compris :?:
Hors ligne
Alors voila : une nouvelle version ; qui ressemble tres fort à une version finale.
*Pause au début du match (pour que le joueur soit pret) (idée prise sur le Falldown2 de X-Thunder) et accessible en mode 1 joueur par appuye sur F1
*Bonus : Nombre de bonus croissant (pour palier à la difficulté vers la fin)
*Ghost : Permet de traverser les murs
*Flash : Permet de se déplacer plus rapidement
*Wait : Le scrolling attend le joueur
*Score : Incremente le score
*Difficulté progressive : De moins en moins de trous au fur et a mesure que le joueur avance
*Mode 2 joueur : expliqué un peu plus haut
/!F1 et ESC ne fonctionnent pas dans ce
mode (pour eviter qu'un joueur trop mauvais perdant mette fin au jeu innopinement). Pas de bonus dans ce mode (trop inegal)
*Menu amelioré : la selection ne s'affole plus lorsque on reste appuyé
Disponible a l'adresse mentionnée dans le premier post.
Dsl pour le doublon
Hors ligne
pense à uploader ton fichier sur le FileSharing
PS: c'est agréable de voir un programemur actif sur G100
Hors ligne
(Quand ta vie est monotone, que subitement tu passes les 3 jours les mieux de ta vie, et que t'es obligé de revenir à ta vie monotone, ça t'fait pas forcément du bien...)
ah, au passage, j'ignore totalement si t'as pris ce probleme en compte, mais y'a des problemes avec les touches multiples.
Tu vois la grille des touches multiples?
Si 4 touches sont disposées de cette manière:
[A] ... [B]
. .
. .
. .
[C] ... [D]
A et B sont sur la meme ligne,
C et D sont de meme,
A et C sont sur la meme colonne,
B et D sont de meme.
Si 3 touches sont appuyées, la 4eme est considérée comme appuyée (c'est un bug, ou en fait ça n'a pas été prévu pour cette utilisation)
Si tu piges pas, un tit exemple:
Si tu appuie sur [1], [2] et [0], bin la caltos considérera que la touche [.] sera aussi appuyée.
Hors, les touches flechées sont situées sur les meme colonnes que [F1], [F2], [F3], [F4].
Donc aussi les touches [0], [.], [x10X] et [(-)].
Malgré leur opposition géographique sur la calculatrice, les utiliser en meme temps pour des modes 2 joueurs est une erreur qui provoque des bugs.
Penses y, ça t'évitera d'avoir des problemes de conflits, par exemple quand le joueur 1 fait une action qui provoque une action involontaire chez le joueur 2...
J'ai eu longtemps ces problemes la, et la seule solution pour ne plus l'avoir, a été de ne plus utiliser les touches flechées pour les jeux 2 joueurs en temps réel.
La solution général, consiste à simplement éviter de retomber sur ce contexte de rectangle de touche.
Malheureusement, ça n'empechera pas l'autre joueur, s'il connait un tant soit peu ce bug, de l'exploiter intelligemment pour tricher.
La façon la plus sûre de programmer un jeu à 2 reste, le réseau...
Hors ligne
Ah, je ne connaissait pas du tout ce bug, merci de m'en informer.
Mon mode 2 joueur utilise les touches <- -> 1 2 , donc il ne semble pas y avoir de probleme car 2 n'est pas sur la meme colone que ->
En ce qui concerne le reseau, euh, ouais.... :? J'attendrais d'avoir un niveau plus important pour m'y attaquer, et puis la je vais chercher de la doc pour les memzones de 2072 et les passer en application pour creer un systeme de highscores.
Si tu as de la doc sur l'utilisation du Com, et/ou des sources je ne dit pas non.
En parlant du port com, avec AFXSound, peut on jouer une musique de fond? (en boucle) c'est àdire qu'au début du jeu on la lance, et pis elle tourne toute seule comme une brave :P sans qu'on soit obligé de la relancer dans la boucle principale, ou de dire de joueur les notes une par une?
Pareil, si quelqu'un a de la doc la dessus (autre que le readme de la lib) je suis preneur.
@ 2027 : J'uploaderais mes projets quand ils seronts fini-finis (highscore sur Falldown, Menu arrangé sur MasterMind et Rebound)
PS : Qu'est ce qui était si bien ces 3 derniers jours?
Hors ligne
Le réseau ce n'est pas infaisable, il faut trouver une bonne manière de synchroniser les 2 caltoches et il y a moyen de garder un bon framerate
Typiquement il y a une des caltoches qui joue le rôle de "serveur" et l'autre de "client":
- le serveur demande au client l'etat de ses touches
- le client envoie et se remet en attente
- le serveur effectue les calculs et les operations qui determinent l'évolution du jeu, pour les 2 joueurs (déplacements, décors, sprites à afficher, effets, ...)
- le serveur transmet au client la liste des trucs qui doivent apparaitre à l'écran (la position et le numéro de chaque sprite + autres infos)
- quand c'est fait les 2 machines rafraichissent l'écran en meme temps
- le client se remet en attente
- et ça recommence
Bien sûr avec ce système on gaspille un peu la capacité de calcul du client qui se tourne (virtuellement) les pouces en attendant que le serveur lui transmette la configuration de l'écran, mais c'est plus facile à gérer. Il y a parfois moyen de répartir les taches et alors on peut gagner en performances
Hors ligne
Ca je le savait (mais c'est toujours bon de repreciser) moi je parlais de doc pour la transmission, concretement : quelle lib utiliser (si il en existe une) comment ca marche, etc...
Hors ligne
Tu peux toujours télécharger GLink, c'est une bibliothèque pour envoyer/recevoir des données. Ces fonctions sont utilisées par GComm et mon jeu de démineur en réseau.
Dans cette lib, il y a une couche bas niveau (communication simple) et une autre plus complexe qui permet de vérifier la validité des données envoyées ou reçues.
http://flash100.free.fr/xoops/modules/w … amp;lid=29
Hors ligne
Interessant, merci beaucoup. Je suis en train de travailler les memzones la.
Hors ligne
tonton, j'ai foutu le code de la libg100 sur le svn de sourceforge.... faudrais ptet re-essayer de faire du code plus "commun"....
Hors ligne
Comme tu veux. Mon id chez sf est tonton1664.
Hors ligne
Loin d'etre évident pour le réseau...
Comme le dit Julien, la méthode c'est "j't'envoie l'état de mes touches, tu m'renvoies les positions des objets"
Et eventuellement, j'me demandais si c'était pas une bonne idée de renvoyer carrément une copie de l'écran...
Sinon l'autre méthode, c'est le clustering. Loin d'etre évident, une partie des tâches de calculs est faite sur le client et l'autre sur le serveur.
J'pense que la meilleure chose est d'envoyer que les données essentielles, et de laisser le client reconstruire tout ce qui en dépend... Par exemple, si on est sur que les comms sont fiables à 100%, on pourrait envoyer seulement le décalage de position d'un objet dans le temps, et laisser le client effectuer le déplacement tout seul...
Edit: Au fait, ce sujet doit etre déplacé dans NewsG100...
En fait, faudrait déplacer tout les sujets dans leur endroits correspondants...
Edit2: C'qui était si bien... c'est pas l'sujet :P
Hors ligne
Voila, la version sort avec les highscores. La prochaine version, les changements seront invisible, je referais le code source de maniere plus propre, il faut d'abord que je fasse ca pour Rebound. En parlant de ca, maintenant que j'ai ma fonction void highscore(unsigned int score), je peut l'implementer dans tous mes jeux,
Que diriez vous d'un Highscore dans rebound, ca vaut la peine que je me penche dessus?
A noter que ca été testé uniquement sur émulateur, je n'ai pas pris le temps de le tester sur ma G100
Disponible a l'adresse mentionnée dans le 1er post.
@ Azor -> ya les MP pour ca alors :P
Hors ligne
"En parlant de ca, maintenant que j'ai ma fonction void highscore(unsigned int score), je peut l'implementer dans tous mes jeux,
Que diriez vous d'un Highscore dans rebound, ca vaut la peine que je me penche dessus?"
De manière propre, tu pourrais faire une librairie à linker pour cette fonction.
Si tes jeux permettent d'afficher des scores, bin ouais, pourquoi s'en priver?
Mais oublies pas avant de finir completement ta fonction concernée, et éviter de rajouter des fonctionnalités APRES l'avoir utilisée dans d'autres projets.
Hors ligne
Mais oublies pas avant de finir completement ta fonction concernée, et éviter de rajouter des fonctionnalités APRES l'avoir utilisée dans d'autres projets.
Ben la fonction permet de lire et ecrire 5 scores ainsi que 5noms de 3 lettres, je vois pas quelles fonctionnalité je pourrais rajouter, outre une protection de donner, de maniere à eviter les tricheurs...
Mais je vois pas trop l'utilité, le mec qui télécharge le jeu est honnete envers lui, meme si dans les tableau de score ya ecrit 50000pts, ils sait bien lui meme qu'il les a pas fait et ca sert pas a grand chose...
Tu comprend ce que je veut dire?
J'ai un fichiers que j'utilise pour tous mes projets, c'est utils.h&utils.c qui contient comme son nom l'indique des fonction utile que j'utilise dans tous mes prog. La majorité des fonx sont extraites de lib (getkey() de Db-lib, actAPO()..etc) mais il y a aussi des fonctions que j'ai fait moi meme (write()), je n'ai qu'a copier highscore() dedans, a moins que ce dont tu parler, c'est distribuer cette lib.
Dans ce cas, ce n'est pas un problème, si qqun est interessé par la source, je veut bien la communiquer ici meme.
Hors ligne