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 » C-Engine
Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

C-Engine

Posté le 12/11/2015 08:29

Avez vous imaginé un monde dans lequel les moteurs de jeu pour calculatrice existaient ...... et bien après avoir lus ces quelques lignes je pense que oui. Et ce sera bientôt le cas avec C-Engine.


C-Engine est un moteur de jeu pour calculatrice. Mais me direz vous que fait il. Et bien .... tout.

C-Engine c'est aussi une nouvelle façon de programmer avec la P.O.O Programmation orientée objets.

C-Engine c'est:
-Un moteur graphique
-Un moteur physique
-Une gestions des évenements
-Un Network
-Des GUIs
-Et un code open source.


Fichier joint


Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 28/11/2015 17:02 | #


Lephenixnoir a écrit :
Intelligide a écrit :
Les templates sont parfois obligé d'être dans le fichier où la classe est déclaré. c'est dangereux mais bon,..

Alors pourquoi est-ce que c'est fait comme ça ? >_<
Ben je sais pas, mais dans le WinSDK, j'ai été contraint de le faire
Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

Citer : Posté le 28/11/2015 18:30 | #


J ai un livre sur le C++, je vais relire la partie template.
It's Show Time !!!
Mes Jeux :
- Street Fighter : Pour les accrocs du free-fight.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".


< Le recoin du C-Engine >
Dynasty Hors ligne Membre Points: 464 Défis: 2 Message

Citer : Posté le 01/12/2015 23:15 | #


Ca m'a l'air très prometteur comme projet ! Cela pourrait donner un coup de boost au développement d'addins. Excellente initiative en tout cas, j'ai hâte de l'essayer !
Le monde ne tourne pas rond.... sa m'en donne le tourni U_u'

Mon projet actuel
Un combat au tour par tour !

Projet de combat au tour par tour type DOFUS mais totalement orienté sur le PvP. Le projet va demander un peu de temps mais soyons patient...

Menus
   85%

Gestion des Caractéristiques
   90%

Gestion des déplacements
   100%

Implémentation des sorts
   50%

Création carte
   100%



Mon ancien projet (en attente)
Revenge
Il s'agit d'un RPG assez gros, je ne sais pas si j'aurais la place suffisante sur une calto... peut être ferais-je des programmes à installer séparément pour les donjons/instances...
Menus/présentation
   75%
Systèmes niveaux/sorts...
   65%

Système de combat
   10%
Map
   1%

Donjons/Instances
   1%





Mon autre projet
Laby3D

Le titre (laby3D) en dit long sur son contenu : il s'agit d'un simple moteur de labyrinthe en "3D" (enfin on va dire juste un effet de profondeur ). il aura la particularité d'être aggrémenté de superbes petites animations sur les rotations d'angles de vue ! j'y bosse pas mal et j'espère bien le réussir !
Editeur de niveaux
   100%

Graphismes
   95%

Moteur du jeu
   95%

Animations
   100%

Level Design
   80%


Le jeu devrait sortir bientôt


Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

Citer : Posté le 02/12/2015 07:07 | #


Le moteur graphique et la gestion d événement sont terminés. Il me reste á coder le moteur physique et finir les GUIs.

Je pose une petite question aux futurs utilisateurs: Que voudriez comme fonction dans le C-Engine ?
It's Show Time !!!
Mes Jeux :
- Street Fighter : Pour les accrocs du free-fight.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".


< Le recoin du C-Engine >
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 02/12/2015 11:13 | #


Comment ça ? Si il y a les fonctions nécessaires à un moteur de jeu…
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 02/12/2015 12:16 | #


Fife86 a écrit :
Je pose une petite question aux futurs utilisateurs: Que voudriez comme fonction dans le C-Engine ?


Une fonction qui fasse le café (avec HTCPCP)
Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

Citer : Posté le 02/12/2015 14:43 | #


Des fonctions comme la création d'inventaire dans le cadre d'un jeu RPG ou de scrolling dans un shoot and Up. Bref pour le café, c'était déjà prévus
It's Show Time !!!
Mes Jeux :
- Street Fighter : Pour les accrocs du free-fight.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".


< Le recoin du C-Engine >
Eltoredo Hors ligne Modérateur Points: 4301 Défis: 35 Message

Citer : Posté le 02/12/2015 14:45 | #


Et bien normalement, ce genre de programme est censé te permettre de faire n'importe quoi à partir de certains outils. Normalement, il n'y a rien qui te permet d'avoir un truc tout fait, sauf si des utilisateurs l'ont fait mais après, si tu proposes de le faire, c'est plus sympa effectivement

Et bien inventaire, scrolling, tout ce genre de trucs possibles sur calculatrice si c'est ça que tu veux dire, j'en vois pas beaucoup directement oncalc x)
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

Citer : Posté le 02/12/2015 14:54 | #


Justement quelle sont les outils que vous voudriez car je maîtrise maintenant Qt, je peux donc créer un logiciel pour créer des objets puis les positionner dans une map, avec des cases à cocher pour choisir quelque option sur l’objet.
It's Show Time !!!
Mes Jeux :
- Street Fighter : Pour les accrocs du free-fight.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".


< Le recoin du C-Engine >
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 02/12/2015 14:56 | #


- Un éditeur de code
- Un générateur de makefile
- Un GUI Designer

Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

Citer : Posté le 02/12/2015 15:00 | #


Pour l'éditeur de code il me faudra un peu d'aide mais je pense pourvoir y arriver. Sinon très bonne idée je prend note. Bon la j'ai cours je reviens ce soir.
It's Show Time !!!
Mes Jeux :
- Street Fighter : Pour les accrocs du free-fight.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".


< Le recoin du C-Engine >
Dynasty Hors ligne Membre Points: 464 Défis: 2 Message

Citer : Posté le 02/12/2015 23:55 | #


C'est assez difficile de proposer vu que je ne sais pas encore trop ce que proposera de base le moteur (genre gestion de collisions, display du framerate, gestion des sauvegardes...)

D'ailleurs je n'ai toujours pas totalement compris comment on interagit avec le moteur, si c'est purement script ou s'il y'a des fonctionnalités gérées par des paramètres? Le script sera du C/C++ avec des fonctions ajoutées qui permettent l'interaction avec le moteur?

Que de questions dans ma tête

EDIT :

Ah oui et grande question aussi : Intègre t-il la compatibilité SH4 ou sera-t-elle a scripter in-engine? (ou bien passer par compatibility tool)
Le monde ne tourne pas rond.... sa m'en donne le tourni U_u'

Mon projet actuel
Un combat au tour par tour !

Projet de combat au tour par tour type DOFUS mais totalement orienté sur le PvP. Le projet va demander un peu de temps mais soyons patient...

Menus
   85%

Gestion des Caractéristiques
   90%

Gestion des déplacements
   100%

Implémentation des sorts
   50%

Création carte
   100%



Mon ancien projet (en attente)
Revenge
Il s'agit d'un RPG assez gros, je ne sais pas si j'aurais la place suffisante sur une calto... peut être ferais-je des programmes à installer séparément pour les donjons/instances...
Menus/présentation
   75%
Systèmes niveaux/sorts...
   65%

Système de combat
   10%
Map
   1%

Donjons/Instances
   1%





Mon autre projet
Laby3D

Le titre (laby3D) en dit long sur son contenu : il s'agit d'un simple moteur de labyrinthe en "3D" (enfin on va dire juste un effet de profondeur ). il aura la particularité d'être aggrémenté de superbes petites animations sur les rotations d'angles de vue ! j'y bosse pas mal et j'espère bien le réussir !
Editeur de niveaux
   100%

Graphismes
   95%

Moteur du jeu
   95%

Animations
   100%

Level Design
   80%


Le jeu devrait sortir bientôt


Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

Citer : Posté le 03/12/2015 07:07 | #


Je vais poster le code ce soir, le moteur marche avec 2 class Principals: la class Engine qui réalisera l ensemble des actualisations et la class Object qui permet de créer un objet telle qu un joueur ou bien un mur. Au départ, l utilsation du moteur sera entièrement scriptée puis je dévelloperait un logiciel pour faciliter le codage des objects. Pour ce qu il y a déja actuellement, vous verez bien sa ce soir.

Ajouté le 03/12/2015 à 18:43 :
Comme promis j'ai posté le code de C-Engine avec un mini-jeu en bonus. C-Engine
It's Show Time !!!
Mes Jeux :
- Street Fighter : Pour les accrocs du free-fight.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".


< Le recoin du C-Engine >
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 04/12/2015 11:27 | #


Plusieurs remarques sur la qualité du code:

1) L'organisation est à revoir. Les classes sont mélangés dans les headers, on ne sait pas où les retrouver dans les .cpp. En clair, c'est la bazar. Je te conseille de créer un .cpp et un header par classe. Par exemple, pour la classe Render, il faut un fichier Render.cpp et un autre Render.hpp C'est une technique que j'utilise, que plein d'autres devs utilisent aussi. Dans certains langage, cette technique est obligatoire (comme en Java ou en PHP) pour retrouver les classes.

2) Dans ma conception de la POO, POO rime avec encapsulation. Par conséquent, mettre:
Object * ListeObject;
    Script * EScript;
en public n'est pas une bonne idée. Un getter ou un setter ne rajoute pas beaucoup de ligne

3) Convention, Convention, Convention. Trèèèèèès important, ça évite de faire de la m***e.
Je ne sais pas comment tu fais pour différencier méthodes et attributs dans le code. Pour ma part, je rajoute un _ devant chaque attribut, cependant, la plupart préfixent par m_. Un code en français peut faire mal aux yeux. Mais un code en franglish est encore pire.
    void RestartGame() {this->restart = true;}
    void AssocierScript(Script & VScript);


4) Trouve des noms plus explicite pour les classes. Engine est un moteur, OK, mais il fait quoi, le rendu, les collisions, les événements? Et la classe Render, ça veut rien dire!

5) C-C-C-Combo! J'ai trouvé ça:
void AddObject( Object & v , int nb){ this->ListeObject[ nb ] = v; v.AssocierEngine(this);}

dans un header Alors ça, c'est un truc récurrent que je vois assez souvent, mettre du code inline dans un header! ça ne se fait pas, en C comme en C++, un header ne sert qu'à déclarer les fonctions et non à implémenter ces fonctions.
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 04/12/2015 12:43 | #


Yep. Tu peux éventuellement mettre des trucs de type "#define abs(x) x<0 ? -x : x" dans tes headers, mais c'est tout
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

Citer : Posté le 07/12/2015 21:09 | #


Après une gros restructuration de mon code, je voulais savoir si il existait un moyen simple de créer un moteur physique ? Car j'ai vu pas mal de bibliothèque qui utilise la STL et donc qui ne peuvent être utilisées.
It's Show Time !!!
Mes Jeux :
- Street Fighter : Pour les accrocs du free-fight.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".


< Le recoin du C-Engine >
Ninestars Hors ligne Membre Points: 2461 Défis: 24 Message

Citer : Posté le 07/12/2015 22:31 | #


Clic ici, un peu plus bas, tu as 3 liens, les 2 premiers sont très intéressants, ou alors sur le Site du Zéro.
Mais il n'y a pas de moteur tout fait tout simple à intégrer, il faut le faire from scratch.
Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

Citer : Posté le 22/01/2016 14:04 | # | Fichier joint


Voici les sources du C-Engine qui est en version Béta, par contre le code est un peu dégeux je n'est pas eu le temps de le rendre plus propre. Dimanche je le nettoie et je le re-poste.
It's Show Time !!!
Mes Jeux :
- Street Fighter : Pour les accrocs du free-fight.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".


< Le recoin du C-Engine >
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 22/01/2016 16:13 | #


Dark storm a écrit :
Yep. Tu peux éventuellement mettre des trucs de type "#define abs(x) x<0 ? -x : x" dans tes headers, mais c'est tout

Je corrige et je le fais en criant à moitié :
[b]#define abs(x) ((x) < 0 ? -(x) : (x))[/b]

Voyons voir ce qui se passe avec ta macro si je fais ceci...
abs(2 - 4)

Cela va donner très gentiment :
2 - 4 < 0 ? - 2 - 4 : 2 - 4

Et le résultat sera donc -6, ce qui est loin d'être une valeur absolue.

Et puis une macro c'est pas du code, hein.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Darkysun Hors ligne Membre Points: 1747 Défis: 52 Message

Citer : Posté le 23/01/2016 17:57 | #


Alors j'ai pas tout compris hein mais si ta fonction abs c'est pour donner la valeur absolue pourquoi tu fais pas tout simplement #define abs(x) sqrt(x*x) ? (Après peu être que je n'ai pas cerné le problème hein
Si je ne réponds pas à un post depuis trop longtemps : envoyez-moi un message pour me le rappeler !




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

Citer : Posté le 23/01/2016 18:06 | #


Darkysun a écrit :
Alors j'ai pas tout compris hein

En gros c'est de la substitution de texte donc si tu écris -x et que x c'est '2 - 4', ça va donner '-2 - 4' au lieu de '-(2 - 4)' comme voulu.

Darkysun a écrit :
pourquoi tu fais pas tout simplement #define abs(x) sqrt(x*x) ?

Parce que c'est lent. La multiplication à elle seule est 5 fois plus longue que la valeur absolue et la racine carrée autour de 30 à 40 fois sans doute.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)

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