Seuls les membres ayant 30 points peuvent parler sur le chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Projet Odyssée
Shadow15510Hors ligneAdministrateurPoints: 3737 Défis: 15 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.

Ce topic sert à cumuler les avancements du projet, mais aussi les discussions diverses autour du projet.

Les éléments du jeu et de ses moteurs sont répertoriés dans les éléments pratiques.

- Les Réunions :
Les réunions sont indispensables à l'organisation de l'équipe. Mais il est dur de se trouver tous au même endroit en même temps, c'est pourquoi je propose un Framapad (voir l'adresse plus bas). Cela permet à chaque membre de poser des questions ou d'y répondre sans forcément que tous le monde soit présent. Je vous invite donc a y aller régulièrement pour suivre l'avancée du projet. Ce Framapad sert également à l'élaboration collective des articles pour la RdP.


- Débats en cours :
Sont consignés dans cette section, tous les débats qui touchent le projet. Ces débats ont lieu soit sur le Framapad soit sur ce topic

• Quel système pour les maps ?
• Faut-il utiliser des tileset de Pokémon ?

- Décisions prises :
Sont consignés ici tous les débats ayant aboutit.

Les sprites
Les sprites
Taille de 8 pixels par 8 pixels, en nuances de gris : #ffffff (blanc), #aaaaaa (gris clair), #555555 (gris foncé) et #000000 (noir).

Nous avons besoin de :
- Au moins deux PnJ animés (8 sprites au total de 8x12 avec deux sprites par direction) de préférence un homme et une femme. (PnJ femme est en cours de dessin)
- PnJ plus simple et monstres animés ou non.
- Des styles de murs, de toit de fenêtres et de portes
- Des éléments de décors textures : herbes, mer animé (ou lac) berge ensablée, forêt (donc arbres), plantes…
- Mobilier : lit, tables, chaises, tabouret, coffres, placards, armoires, …
- Une police pour le jeu


L'outil pour coder
Gint
Gint a été retenu par l'équipe.


- Éléments pratiques :
Adresse du Framapad
Adresse du Git

L'équipe : détails sur les rôles
Cahier des charges et tâches ⇒ À poursuivre
L'architecture du code ⇒ À faire
La gestion des maps ⇒ À faire
Les capacités
Les combats

La TODO List

Éditeur de maps

Scenarii et idées

- Connaissances :
Pour Gitea :
1°. Installer git
2°. Lancer la console, et changer le répertoire de travail pour le dépôt local : cd <nom_du_répértoire> sous linux et mac et de mv <nom_du_répértoire> sous windows
3°. git clone <URL du dépôt en HTTPS ou SSH>
Vous avez cloné le dépôt git, vous pouvez travailler dessus.
Pour mettre à jour votre dépôt : git pull
Pour envoyer sur le dépôt en ligne, les modifs' :
git add <nom_fichier.extension>
git commit -m "Commentaire"
git push
Pour connaitre l'état de votre dépôt local par rapport à celui en ligne : git status

- Avancement du projet :
Avancement total
   7%


- Par catégorie :
Avancement du Code
   1%

Avancement des Graphismes
   12%

Avancement du Scénario
   10%


- Équipe :
- KikooDX
- Rader (Graphiste)
- Shadow15510 (Scénariste)
- Massena (Graphiste)
- Leno (Graphiste)
- Milang (Programmeur)

- On demande :
• 1 Programmeur
Graphiste (Pas necessaire pour l'instant)
• 1 Scénariste

Soit un total de 6 membres minimum à la fin.
Les rôles sont cumulables et peuvent changer à la demande du membre.


Dernière mise à jour le : 29 Août 2019


Pages : Précédente1, 2, 3, 4, 5, 6, 7, 8, 9, ... 18Suivante
Shadow15510Hors ligneAdministrateurPoints: 3737 Défis: 15 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

Moral
   95%


YatisHors ligneMembrePoints: 428 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 :/
Shadow15510Hors ligneAdministrateurPoints: 3737 Défis: 15 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

Moral
   95%


LephenixnoirEn ligneAdministrateurPoints: 15511 Défis: 136 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.
RaderHors ligneMembrePoints: 188 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
Shadow15510Hors ligneAdministrateurPoints: 3737 Défis: 15 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

Moral
   95%


RaderHors ligneMembrePoints: 188 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
Shadow15510Hors ligneAdministrateurPoints: 3737 Défis: 15 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

Moral
   95%


LephenixnoirEn ligneAdministrateurPoints: 15511 Défis: 136 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.
RaderHors ligneMembrePoints: 188 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
KikoodxHors ligneMembrePoints: 1323 Défis: 7 Message

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


J'imagine que le personnage sera plutôt en 12x8 ou similaire.
Shadow15510Hors ligneAdministrateurPoints: 3737 Défis: 15 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

Moral
   95%


LephenixnoirEn ligneAdministrateurPoints: 15511 Défis: 136 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.
Shadow15510Hors ligneAdministrateurPoints: 3737 Défis: 15 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

Moral
   95%


LephenixnoirEn ligneAdministrateurPoints: 15511 Défis: 136 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 !

Shadow15510Hors ligneAdministrateurPoints: 3737 Défis: 15 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

Moral
   95%


LephenixnoirEn ligneAdministrateurPoints: 15511 Défis: 136 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.

Shadow15510Hors ligneAdministrateurPoints: 3737 Défis: 15 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

Moral
   95%


LephenixnoirEn ligneAdministrateurPoints: 15511 Défis: 136 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"
Shadow15510Hors ligneAdministrateurPoints: 3737 Défis: 15 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

Moral
   95%


LephenixnoirEn ligneAdministrateurPoints: 15511 Défis: 136 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
Pages : Précédente1, 2, 3, 4, 5, 6, 7, 8, 9, ... 18Suivante

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2019 | Il y a 60 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