Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Projet Odyssée
Shadow15510 En ligne Administrateur Points: 5503 Défis: 18 Message

Projet Odyssée

Posté le 26/06/2019 17:23

Le projet Odyssée est un projet de jeu de Rôle en C.

Le projet est en cours de refont après de multiple arrêts. Pour l'instant seuls quelques points sont sûrs :
- le projet sera compilé avec Gint (d'abord pour monochromes)
- le monde sera une matrice de map qui correspondront aux différents écrans du jeu
- les tiles seront en 8 pas 8 pixels, a priori en nuances de gris

Le lien vers le dépôt Gitea


Précédente 1, 2, 3, 4, 5, 6, 7 ··· 10 ··· 20, 21, 22 Suivante
Shadow15510 En ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 27/06/2019 13:23 | #


J'ai pas attendu que le projet commence pour dessiner ces tiles
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Yatis Hors ligne Membre Points: 581 Défis: 0 Message

Citer : Posté le 27/06/2019 13:31 | #


Ah et 9*9 au lieu de 8*8 car tu t'en rendra compte, mais t'arrives à des résultats plus convaincants, enfin reste à voir, mais l'argument de la "gestion en puissance de 2" n'est pas valable, qu'elle que soit la taille ça se programme pareil.

Peut-être mais niveau optimisation ce n'est pas la même ; je te rappelle que sur monochrome la VRAM compresse les pixels horizontaux par 8 (8 pixels par octets, ce qui permet d'avoir une VRAM de 1ko au lieu de 8ko).
(PS: le plus rapide serai d'avoir une VRAM qui compresse 32 pixels d'un coup, mais pour ça il faut faire ça propre VRAM (uint32_t VRAM[256]))

9*9 car
=> 64-1 = 63 = 7*9 = 7 tiles de haut
=> 127-1 = 126 = 14*9 = 14 tiles de large

C'est entièrement faux, l'écran fait 128 pixels par 64, donc :
* X ---> 0 ~ 127
* Y ---> 0 ~ 63
Choisir du 9*9 me semble pas être une bonne décision, car tu auras tout le temps du clipping à faire au niveau de la map :/
Shadow15510 En ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 27/06/2019 13:35 | #


Moi non plus.

Le 8*8 est problématique car vraiment trop petit… Reste le 12*12 ou le 16*16 la différence n'est pas énorme et le 16*16 permet des textures bien plus travaillées

"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir En ligne Administrateur Points: 24579 Défis: 170 Message

Citer : Posté le 27/06/2019 14:13 | # | Fichier joint


Il y a quelques autres éléments à prendre en compte. Vous pouvez vouloir prendre des tiles de taille impaire pour avoir une ligne milieu dans le tile. Pour les polices de texte c'est vraiment crucial, ici un peu moins mais pensez-y.

Mon avis personnel, pour en avoir essayé plusieurs, c'est que 8x8 est petit mais permet un bon confort visuel parce qu'on peut voir une grande partie de la map à l'écran (16x8 cases). 16x16 c'est très gros, on ne voit qu'une toute petite partie de la map (8x4) et je le déconseille.

Pour info, ces choses-là sont en 8x8. N'oubliez pas qu'il est courant de déborder sur plusieurs cases.



Yatis, la différence est certe existante en optimisation, mais pas beaucoup. Pour MonochromeLib ça changera probablement pas beaucoup les perfs. Pour gint clairement pas parce que la VRAM est alignée sur 4 octets, comme tu l'as fait remarquer.

J'ajouterai que le clipping et le scrolling de la map sont généralement une bonne idée, il faut juste penser à ne pas scroller en permanence car on ne verrait pas grand-chose à cause de la rémanence de l'écran. Avoir juste des maps d'un écran et changer de tableau à chaque fois qu'on sort c'est triste pour un jeu en C.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Rader Hors ligne Membre Points: 234 Défis: 0 Message

Citer : Posté le 27/06/2019 14:15 | #


Hmmm dans ton screen y'a des trucs a récup si on fais du 8*8
Shadow15510 En ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 27/06/2019 14:17 | #


Le 8 par 8 serait la meilleure solution… Mais le perso m'embête Faut que je le refasse de A à Z (Un volontaire pour devenir Graphistes )

Ajouté le 27/06/2019 à 14:24 :
Avec le 16x16, je pensais prendre un système de map comme ça : on prend une grande map avec scrolling et avec des limites qui dépasse l'écran (genre 4 fois la taille de l'écran ça fait des map de 32 tiles par 16) et on change de map dès que l'on quitte les limites…
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Rader Hors ligne Membre Points: 234 Défis: 0 Message

Citer : Posté le 27/06/2019 14:25 | #


On peux faire la même chise avec du 8*8, la map sera juste plus grande
Shadow15510 En ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 27/06/2019 14:27 | #


Yep… Mais le perso est vraiment super-dur à adapter
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir En ligne Administrateur Points: 24579 Défis: 170 Message

Citer : Posté le 27/06/2019 14:39 | #


Ah mais Shadow... le personnage n'est pas un tile ! Il dépasse toujours du tile sur lequel il est, c'est normal. Ici mon personnage a été dessiné complètement indépendamment du tileset. Il est dessiné après coup, par-dessus la map, et ses pieds sont sur le tile, mais sa tête dépasse.

Hmmm dans ton screen y'a des trucs a récup si on fais du 8*8

Pas de précipitation si vous le voulez bien, c'est des tilesets de test de TLT.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Rader Hors ligne Membre Points: 234 Défis: 0 Message

Citer : Posté le 27/06/2019 14:42 | #


Ça passe si le perso c'est genre du 12*12, et la map du 8*8? J'pense ça va dépasser de beaucoup
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 27/06/2019 14:45 | #


J'imagine que le personnage sera plutôt en 12x8 ou similaire.
ouais ouais
Shadow15510 En ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 27/06/2019 14:45 | #


nope, le perso est en 16*16 donc il occupe 4 tiles et c'est pratique que ça tombe juste, le problème c'est que les portes, en 8x8 donc, vont paraître minuscules…
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir En ligne Administrateur Points: 24579 Défis: 170 Message

Citer : Posté le 27/06/2019 14:49 | #


Le perso serait probablement en 8x12 s'il n'a pas de truc long sur lui comme un épée dans mon exemple. C'est rarement carré, un personnage.

Souvent les personnages font la largeur d'un tile et une fois et demie la hauteur. C'est une estimation pour vous donner une idée.

Edit : 16x16 c'est... trop gros je trouve.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 En ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 27/06/2019 14:56 | #


C'était parfaitement proportionné avec les tiles de 16x16 mais je le referais en 8x12 donc
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir En ligne Administrateur Points: 24579 Défis: 170 Message

Citer : Posté le 27/06/2019 16:07 | # | Fichier joint


C'est pas du tout impossible de faire des sprites plus petits. Voici un exemple de réduction vite fait !


Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 En ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 27/06/2019 16:13 | #


Yep, ça marche pas mal ! Mais je trouve ça moins fin quand même…
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir En ligne Administrateur Points: 24579 Défis: 170 Message

Citer : Posté le 27/06/2019 16:23 | # | Fichier joint


Évidemment que c'est moins fin, il y a moins de pixels et c'est fait 10 minutes ! xD L'écran 128x64 est un compromis à lui tout seul, il faut faire avec. Tu ne peux pas importer des jeux de game boy comme ça...

J'ai déjà fait des trucs "plus fins" (et aussi plus petits) avec plus d'effort.


Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 En ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 27/06/2019 16:28 | #


Whoa ! Comment t'as fait l'animation ? En 10 minutes t'as fait plus de dessins que moi en une année ! Par contre je ne sais pas si l'on part sur Gint ou pas… Donc les nuances de gris faut voir, mais le dessin est sympa !
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir En ligne Administrateur Points: 24579 Défis: 170 Message

Citer : Posté le 27/06/2019 16:33 | #


Eh bien, pour l'animation tu prends l'image précédente, tu la copies et tu modifies la position des bras, des jambes... et tu recommences. Là il y a 3 frames pour le premier coup, 3 pour le second et 2 pour le dernier.

Par contre, attention hein ! Je ne l'ai pas fait en 10 minutes ! J'y suis revenu pendant des semaines !

Pour le code, gint vous donne des avantages en termes de performance et de facilité de développement type conversion des images. Vous avez aussi le moteur de gris (qu'il faut que je pousse vite vite). Par contre il faut bosser sous Linux ou avoir un GCC sous Windows... c'est la contrainte. Mettez-vous bien d'accord entre vous.

Ah si, un inconvénient du SDK c'est que je vais galérer à tester le jeu pour vous aider à debugger. Ça rentre pas vraiment en ligne de compte mais voilà x_x"
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 En ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 27/06/2019 16:49 | #


Je me disais aussi… 10 minutes me paraissaient peu…

Ça tombe bien j'ai un Mac… Je suis en train d'essayer d'installer gint, on ne sait jamais, mais je me perd un peu dans tous les tutos…

Les *.c sont toujours les même non ? Donc je peux coder et demander à un membre de compiler ?
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir En ligne Administrateur Points: 24579 Défis: 170 Message

Citer : Posté le 27/06/2019 16:50 | #


Les README sont les meilleures références. Regarde sur les dépôts de gint et du fxSDK.

Shadow15510 a écrit :
Les *.c sont toujours les même non ? Donc je peux coder et demander à un membre de compiler ?

Malheureusement non, c'est pas assez pratique ! Quand tu testes le jeu tu compiles toutes les 3/4 minutes ! :o
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Précédente 1, 2, 3, 4, 5, 6, 7 ··· 10 ··· 20, 21, 22 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 118 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd