Posté le 06/12/2020 19:58
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 59 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
Citer : Posté le 06/12/2020 20:32 | #
Salut, alors évidemment je suis biaisé quand je réponds (je suis l'auteur de gint), mais dans l'ensemble il n'y pas d'inconvénient fatal à utiliser l'un ou l'autre. Le PrizmSDK a certaines fonctionnalités que gint n'a pas encore (communication série/USB, le projecteur pour enregistrer du gameplay), et l'inverse aussi (des drivers propres pour le DMA, le SPU, et la configuration automatique du DSP), mais un jeu moyen peut être écrit avec les deux sans problème.
Maintenant si gint a un avantage quelque part je pense que c'est qu'il tente de présenter toutes les options pour la haute performance (... sauf l'overclock qui n'est pas encore implémenté, ironiquement). C'est là j'ai mis l'accent récemment en tous cas. Dans le cas d'un projet ambitieux avec des grosses contraintes de performance, ça pourrait être utile.
Après, il faut garder plusieurs choses en tête :
• D'abord, selon tes objectifs, ce projet peut être extrêmement difficile à optimiser. Si tu veux avoir un Minecraft en plein écran, à par exemple 5-10 FPS, tu devras tirer sur à peu près toutes les cordes disponibles : overclock, RAMs rapides, envois à l'écran, calcul en point fixe, etc.
• Et puis les fonctionnalités que gint t'offre sont assez techniques à utiliser, si tu débutes c'est sans doute pas par là qu'il faudrait que tu attaques ton projet.
Mon conseil, si je peux en formuler un, serait de commencer à jouer avec ce qui est simple à installer pour toi (ie le PrizmSDK), et de foncer pour l'instant pour afficher des choses à l'écran et juste t'amuser avec le projet. Avec le temps, tu rencontreras sans doute plein de problèmes de perfs, et si tu as la patience de t'y attaquer cette communauté pourra aider (tu pourras notamment voir les notes de Ninestars sur son moteur 3D Windmill, ou ce que gint peut t'aider à faire pour accélérer le code). Porter ton projet du PrizmSDK à gint serait sans doute plus facile qu'amener ton moteur à des performances élevées, donc tu pourras te poser la question plus tard.
Bon courage en tous cas, je serais vraiment hypé devoir ce projet se réaliser ! o/
Citer : Posté le 06/12/2020 20:39 | #
Merci pour la réponse.
Je voulais faire le jeu en 2D (d'ailleurs j'ai vu que un clone de Minecraft en 2D a déjà été fait pour une TI mais je n'ai pas trouvé le code source). J'ai réussi à afficher des blocs sous forme de carrés colorés de pixels même si j'ai un étrange décalage de pixel à la moitié verticale de l'écran.
Citer : Posté le 06/12/2020 20:44 | #
Ooooh... c'est beaucoup plus simple alors. En 2D les problèmes de performance ne sont pas du tout du même niveau, ça ira tout seul (... ou presque).
Vas-y avec les outils de ton choix, PrizmSDK ou gint n'importeront pas ici et ce serait malhonnête de prétendre le contraire. La voie est totalement libre !
Citer : Posté le 06/12/2020 21:55 | #
J'aimerais bien pouvoir tester gint mais je n'arrive pas à le compiler sous windows et ubuntu via le WSL (j'ai essayé de me faire une VM d'ArchLinux pour le paquet déjà compilé mais l'installation de l'OS plante)
Citer : Posté le 06/12/2020 21:57 | #
N'hésite pas à raconter ce que tu obtiens sur le topic de gint pour voir si on a une solution ou au moins un bon indice.
Citer : Posté le 06/02/2021 16:41 | #
J'ai réussi à implémenter le menu principal mais je ne sais pas comment générer la map. J'aimerais créer une fonction qui renvoie une chaîne de caractères contenant les blocs sous forme de chiffre comme le jeu AST3_C mais je ne sais pas comment faire. L'algorithme de génération importe peu, la question repose surtout sur le type de variable à utiliser et son exploitation.
Citer : Posté le 06/02/2021 16:54 | #
Je connais un administrateur qui ne va pas aimer ce que tu souhaites faire
Plus sérieusement, lephe n'aime pas trop cette technique d'hardcodage du niveau en mémoire, je ne sais pas vraiment comment tu peux le remplacer.
En plus, refaire un minecraft signifie avoir un niveau qui n'est pas statique. Le garder en mémoire comme je le fait dans AST3_C, permet d'afficher toujours le même niveau. Avec ton minecraft je ne pense pas que ce soit la meilleure des solutions...
Sinon le fonctionnement des niveaux est assez simple. Il s'agit simplement d'une liste contenant un nombre déterminé de caractère. Chaque caractère correspond à un identifiant de bloc, et en fonction de ça, j'applique certaines règles (comme la collision par exemple). Je peux déterminer facilement la position du joueur sur cette carte grâce au nombre de bloc en x et en y.
Je pense pas que ce soit une bonne solution pour toi là. Attends lephe
(Et de toute façon, vous pouvez pas dire le contraire)
MultipliCasio
RDM Calculs
Back Mirror
A Switch To The Top C
Citer : Posté le 06/02/2021 17:46 | #
Pour reformuler la question, tu as besoin de structures de données pour représenter et stocker ton monde.
Une chaîne de caractères est une mauvaise idée pour plusieurs raisons. D'une part ce n'est pas un format très pratique : les caractères ne sont pas vraiment la même chose que les blocs du monde. Ensuite c'est un format utilisé souvent pour écrire à la main des maps fixes, et qui est relativement pratique pour ça (comme Tituya l'a dit je trouve ça barbare), mais n'apporte aucun avantage à un algorithme de génération procédurale.
Je te conseille plutôt de t'inspirer du code de Terrario (de KBD2) qui fait ça très bien. La map est un énorme tableau de blocs en 2 dimensions. Chaque bloc est représenté par son objet Tile (de 1 octet) qui contient un id menant à une définition de bloc (de type TileData). Le TileData donne tous les détails sur le bloc, ses propriétés, ses collisions, son nom, etc.
L'idée c'est ça : un tableau à deux dimensions (ou une dimension traitée comme deux, la méthode habituelle), les éléments sont des références à des définitions de blocs. Dans ton cas tu voudras peut-être éviter d'avoir un tableau pour le monde entier et à la place avoir un tableau par chunk.
Citer : Posté le 07/02/2021 10:59 | #
c'est possible du faire un minecraft en 3d (mais limité)!
il suffit de réduire la définition
il suffit de dessiner dans un petit rectangle qui fais la quart de l’écran et de le convertir ensuite
ça fait plus de FPS
Citer : Posté le 07/02/2021 16:02 | #
Oui, mais c'est pas ca la question.
Citer : Posté le 07/02/2021 18:56 | #
Pour compiler Terrario, le 'math.h' on le trouve où ? Il n'est pas dans le code source.
Ajouté le 07/02/2021 à 18:57 :
Je ne veux pas l'utiliser à la place c'est juste pour voir ce que ça donne.
Citer : Posté le 07/02/2021 20:38 | #
C'est un peu compliqué, KBD2 a une installation de newlib qu'il faut coupler au compilateur. C'est beaucoup de travail à obtenir. Si tu veux juste un binaire, prends-en un dans le topic de Terrario.
Citer : Posté le 07/02/2021 20:58 | #
C'est que je voulais l'essayer en changeant les textures.
Ajouté le 07/02/2021 à 21:02 :
et il faut changer le code pour la 90+e puisque la taille de l'écran change
Citer : Posté le 07/02/2021 23:24 | #
I'm in the process of switching to Lephenixnoir's fork of OpenLibm, which will be much easier to install.
However, I think you'll have to change a fair bit to get this to run on a Graph 90+E, as it currently only knows how to deal with monochrome models' hardware when setting up the game on launch.
Citer : Posté le 08/02/2021 12:49 | #
Vous conseillez un tableau à une dimension (comme Terrario où on calcule avec les x et y la position dans le tableau) ou à deux dimensions ?
Citer : Posté le 08/02/2021 13:23 | #
À une dimension, c'est plus flexible. En mémoire ce sera exactement pareil (le programme fera les mêmes calculs et les mêmes accès), mais les tableaux à deux dimensions sont aussi plus compliqués à allouer dynamiquement.
intermario Invité
Citer : Posté le 09/01/2022 12:38 | #
Callou15, pourrais tu stp faire in tuto pour faire marcher le jeu minecraft en 2D sur youtube. Tu pourras mettre un lien yt stp
g pas reussi avec les fichier que tu as mit sur github
Citer : Posté le 10/01/2022 00:13 | #
Callou15, pourrais tu stp faire in tuto pour faire marcher le jeu minecraft en 2D sur youtube. Tu pourras mettre un lien yt stp
g pas reussi avec les fichier que tu as mit sur github
Alors ... Bon. Pour tout dire, ça fait un moment que je me suis éloigné de cette communauté et ce projet est relativement tombé à l'eau, compte tenu de mon incompétence en C (je ne le métrise pas), je ne savait pas comment organiser les algorithmes, et je n'ai jamais réussi à faire fonctionner gint (j'avais commencé quelque chose avec le PrismSDK mais je l'ai perdu avec une panne ).
Citer : Posté le 10/01/2022 10:14 | #
Dommage ! Il y a du potentiel dans l'idée. Est-ce qu'il te reste des sources du projet original que tu pourrais lier pour que les futurs amateurs de Minecraft qui veulent tenter l'idée puissent s'inspirer ?
Citer : Posté le 10/01/2022 18:56 | #
Je peut essayer de m'y remettre.