PDA

Voir la version complète : Besoin d'informations sur du développement pc



edenwars
12/09/2010, 17h49
Bonjour


Voilà



Je me suis toujours demander comment développer un petit jeu sur pc.
Une petite demo par exemple,rien d'énorme.


Quels sont par exemple les outils utilisés,le temps que ça peux mettre rien que pour une petite demo,et l'utilisation d'un moteur.
Je ne suis pas fan du moteur unreal,je plancherais plus sur un moteur comme havok.Si pour créer les modèles ils faut juste le créer sous 3ds max et ensuite lui rajouter les textures etc...


Si il y a des gens qui travaillent dans une boite de jeux vidéos et qui développent sur pc,pourraient ils me donner deux ou trois infos?




PS:Combien coûte le moteur havok?
Je possède des notions de langage de programmtion en c et commence l'apprentissage du c++ bientôt,car à la base je suis développeur web.
Je veux voir un peu les coulisses du dev sur pc.




Merci beaucoup et pardon si je ne suis pas assez clair.

Sirithang
12/09/2010, 19h34
Alors avis rapide d'un étudiant en Info (j'attaque cette année une lic pro 3D temps réel). Donc je suis pas un pro, bien loin, juste quelque notions que je fais partager ^^.

Déjà HavoK est un moteur physique, et non graphique ;) c'est à dire que c'est un ensemble de fonctions (encapsuler dans des classes, mais je veux pas t'embrouiller, tu verra ça quand tu approfondira le C++ et la programmation objet) qui vont permettre de calculer les réactions physiques des objets les uns par rapport aux autres, pas leur affichage à l'écran.
Et HavoK est gratos pour une utilisation non commercial, mais c'est un outils très complexe pas forcement adapté a une petite démo...
Note : Havok a maintenant des produit d'IA et tout je crois également, mais rien de graphique en tout cas.

Pour en revenir à la question initiale : des outils il y en as des tonnes.


Il faut d'abord un language de programmation. Même si la plupart des "gros" jeux sont en C++ dans leurs grosses partie, surtout parce que c'est un langage "rapide", indispensable pour la 3D temps réel, on voit de plus en plus de jeu avec du Java (MineCraft), du C# (le c++ mâtiné de Java, désolé pour les plus pro, toujours vu ça comme ça moi ^_^)....sans parler des jeux utilisant des langages plus "exotique" comme le python.
Enfin généralement on se tourne vers un langage objet, ce qui clarifie l'architecture du jeu (on peux mettre tout ce qui concerne les entités dans une classe, tout ce qui concerne le niveau dans une autre etc....et grâce aux spécificités de la POO (programmation orienté-objet) réutiliser plein de truc partout, ce qui allège les taches)

Bref avec le language, pratique d'avoir un IDE, tel que Visual Studio, Code:Block, Dev-C++ etc... Si tu es dev Web, tu doit déjà être familier du concept d'IDE : c'est un logiciel qui regroupe un éditeur de texte avec coloration du texte selon la syntaxe du language, améliorant la lécture, mais c'est surtout un ensemble d'outils qui facilitent la compilation (transformation du code écrit en code compréhensible par la machine), l'utilisation de "boite à outil" (SDK, Framework etc...on en parlera après), et souvent avec un débuggeur bien pratique pour trouver pourquoi tes points de vie se retrouvent à -954126485 quand tu passe ce point précis de ta map :)

Avec le langage va venir une tripoté de SDK, Framework et autre truc bien utile. Tout ça sont généralement des ensembles de classes et fonctions qui vont faire des choses "basiques" qu'il nous prendrait du temps à recoder.
Car dans l'absolu, juste un bibliothèque graphique bas niveau pourrait suffire (OpenGl par exemple). Seulement même si c'est très drôle pour les gens passionnées et qui veulent apprendre, c'est pas très productif de réinventer la roue sans arrêt.

Coté boite à outil on peut citer :

- Graphique : Ogre3D, Irrlich ("gratuit")
Pour les moteurs commerciaux on a l'Unreal Engine (comprit dans l'udk), le moteur Source² de Valve, l'idTech etc...
Tout ça sont, en très simplifié, des ensembles de fonctions qui vont géré l'affichage de la 3D à l'écran : on leur donne nos modèles 3D dans un format qu'ils attendent (exportable à partir des "modeler" principaux Maya, 3DSmax, Blender) leur positions, tailles, comment les transformer à telle instant (tourner a 95° vers la droite etc...) et ils vont s'occuper de traduire tout ça dans un code de bibliothèque graphique (DirectX, Opengl). En très simplifié hein, les plu pro que moi diront sans doute qu'il y a des optimisation plus bas niveau etc... et ils sauront mieux que moi, je simplifie ;)

-son : Fmod, OpenAL (gratuit)
Même chose, on leur donne nos sons, et ils vont les jouer en se servant d'un truc plus bas niveau, qui seraient long à coder à la main (ouverture des périphérique, définition du canal, etc...). Là pour simplifié, on donne la localisation du fichier, et on appelle une fonction play() =D

-Physique : newton game dynamics (utilisé dans Amnesia), ODE (gratuit les deux)
Ceux là, ont leur donne des "enveloppe" qui encapsule nos objet 3D, et il vont calculer pour un laps de temps, comment la physique agit sur eux : collision, friction, gravité etc...
C'est dans ça que se place HavoK dont tu parles ;)



Voila après on réunit tout ça dans un ensemble d'interactions qu'on code, avec une boucle qui va rafraichir l'écran et le moteur physique toute les "x" milliseconde pour donner l'illusion du mouvement (soit au mini 24 image/seconde. Mais 60 c'est mieux [/joueur de FPS]) et tu as un jeu vidéo =D


Donc une démo peut prendre quelque semaine à quelques mois, voir années selon ce que tu en attend et ta maitrise des outils, du nombre de personnes sur le projet....La tache est plus hardu qu'elle n'y parait, mais loin d'être impossible avec de la persévérance :)

http://www.guillaume-saby.com/ c'est mon site, regarde dans projet IUT (entièrement à base d'OpenGl, OpenAl et Newton) et projet Tuteuré(toolkit Graphique OpenSceneGraph) ce que 4 étudiants qui apprennent juste peuvent faire en 5 mois. Pas mirobolant, mais c'est un début, faut juste pas se décourager ;)




Après juste une note concernant l'UDK, l'UDK est un moteur de jeu complet, qui comprend donc un moteur graphique, l'unreal engine, un moteur physique PhysX, moteur de son etc...Tout pour faire un jeu vidéo quoi. On peux citer Unity3D et des truc comme Neoaxis Engine aussi dans les games engines. XNA egualement.
Et enfin Valve qui distribue un SDK Source sur lequel se base tout les mods qu'on trouve sur le net. Et comme tu peux le voir, on peux faire un jeu complet avec, parce qu'il y a tout le code source. Ce dernier comprend le moteur graphique Source, le moteur Physique havok ;p



Enfin te décourage pas, d'autre te répondront mieux que moi (ou l'auront déjà fait quand je taper et corrigé ce message), mais ça te donne une piste de réflexion de départ :)

edenwars
12/09/2010, 19h52
Merci pour toutes ces bonnes infos.


Et enfin Valve qui distribue un SDK Source sur lequel se base tout les mods qu'on trouve sur le net. Et comme tu peux le voir, on peux faire un jeu complet avec

Je connais(si on veut ^^ )le sdk de valve.
Je croyais qu'avec on pouvait juste importer des modèles,skin map etc...
Quand tu dis que l'on peut faire un jeu complet,je peux donc refaire une nouvelle licence(façon de parler) et le faire à mon goût?

Sirithang
12/09/2010, 20h01
http://www.moddb.com/mods/platform

http://www.moddb.com/mods/half-life-2-wars


Deux mode qui te répondrons ;)

Donc oui, le code source est entièrement (ou presque) là dans le SDk Valve. Tu peux faire n'importe quel type de jeu avec.

Seulement c'est un code existant, et plus tu t'éloignera de la base plus il faudra le modifier....Or mettre son nez dans le code d'autre, surtout quand on a pas des connaissances très très solide, c'est dur...Surtout que le SDK est très complet et complexe.
Mais là encore des tuto existe, et c'est surtout histoire de persévérances et de temps passé a bidouiller ici là pour apprendre et apprivoisé le tout ;)

Donc ne crois pas que ce soit facile, du tout, je ne veux pas casser une espérance, mais ne crois aps que ce soit imposisble non plus! Juste un travail de longue haleine. Mais si t'es passionné et que t'en veux, une fois arrivé au bout du tunnel, la récompense n'en sera que meilleur :)

edenwars
12/09/2010, 20h08
Je pense si je demande et que m'intéresse justement des infos à propose de havok justement c'est pouvoir démarrer un "mini-projet" pour commencer.Cela fait un bout de temps que je joue avec les produite steam et que les outils employés sont de bon augures.


Je vais aller regarder chez moddb.com.

Et j'aurais pleins de questions par la suite ^^.


Merci


PS:Quand toi et test collègues avez débuter votre projet,comment avez vous procéder?
Etape I:Croquis dessin et compagnie
Etape II:Heu choix des outils de la plateforme de développement etc...


Et quoi par la suite?

Sirithang
12/09/2010, 22h09
Bah coté techno on été forcé par notre formation : pour le projet IUT obligé d'utilisé OpenGL (c'était dans le cadre du cours de bibliothèque graphique OpenGL ;p) et pour le projet tuteuré, il était sur OpenSceneGraph donc bon =D c'était l'application de démo qui montrer ce qu'il était possible de faire avec.

Par contre pour les autres techno on a procédé comme suit :

J'ai réalisé des schéma UML (http://fr.wikipedia.org/wiki/Unified_Modeling_Language) (Unified Modeling Language) qui sont en gros les differente interactions et relation entre les classes de mon programme. Comment trouvé ces classes?
ben oui tout simplement avec des schéma, on pose sur papier ce a quoi on veut que le programme ressemble, l'écran de jeu, quelle seront les actions possibles, comment une partie type va se déroulé. On en déduit les fonctions qu'il va falloir faire, puis de la comment les faire, et enfin comment mettre tout ça sous forme de classes.

Bon ça c'est la théorie, on se retrouve avec de jolies feuilles pleine de schéma qui permette d'avoir tout les développeur sur la même longueur d'onde, que ce que chacun fait soit réutilisable par les autres, et d'avoir une vue d'ensemble.
En pratique, on se retrouve à faire de l'extrem programming assez vite ^_^ c'est à dire a réfléchir a notre classe en la tapant, en rajoutant les trucs dont on en besoin quand on en a besoin, car étant débutants, y'avait pas mal de chose qu'on avait pas prévu.

Mais cette phase de préconception est très importante tout de même, évite de partir dans plein de cul de sac qui font perdre du temps et rendent le code totalement illisible. Le squelette ne change pas, on rajoute juste des rustine là ou sa fuit.


Coté techno, mes collègues ont simplement regardé ce qui existait selon nos besoin.
Exemple : besoin de son, on regarde les alternative gratuite sur le net, on isole Fmod et OpenAl. Le projet étant petit, on savait qu'on avait que 5 mois, on était débutant, donc on a prit openAL. Moins "perfectionner" que Fmod, mais du coup plus adapter, on aurait eu besoin que de 10 % de ce que Fmod avait a offrir, pas la peine de prendre un buldozer pour éclater une noix =D

edenwars
12/09/2010, 23h27
Ce soir je n'aurais pas le temps,mais demain et si tu à un peu de temps disponible,je te montrerais ce que j'envisage de faire ou de créer.


Si tu pouvais me dire par exemple,si ceci est bien si c'est pas bien,si c'est faisable etc...



Je te montre tous ceci demain ok?


En tous cas merci pour les infos données jusqu'à présent.


Bonne soirée

gimiz
20/09/2010, 18h02
Salut l'affreux !

Perso, petit jeu = XNA Game Studio, direct. C'est du C#, intégré à Visual Studio Express, le tout est gratos, et über easy à prendre en main, surtout si tu pars d'un de leurs starter kits pour te faire la main. Après tu vas sur leur forum (http://forums.xna.com), en cherchant bien, y'a des moteurs physiques prêts à l'emploi pour XNA (comme Farseer, que je recommande chaudement). Moteurs graphiques, j'ai pas cherché mais y'en a très probablement. Sinon XNA gère pas mal d'assets (ressources multimédia) : audio, maps 3d, textures... de manière simplissime (genre Game.LoadTexture2D(tonfichier.png)).

Have fun !

Enigma
21/09/2010, 04h16
Il y a aussi Construct (http://www.scirra.com/) qui peut être plus adpaté selon les besoins. C'est gratos et pas compliqué à prendre en main.
C'est très adapté pour de la 2D mais on peut faire plein de choses sympa avec.

Akwantik
21/09/2010, 09h33
Sinon y'a toujours du AS3/Flex (flash) via log open comme FlashDevelop.
C'est pas tres dur et ca permet de diffuser rapidement sans trop de contrainte. Mais à conseiller uniquement pour de la 2D.

Processing est aussi pas mal et gere beaucoup mieux la 3D il me semble.

Tout ça reste pour un usage petit jeu / proto / démo bien entendu.

Septa
24/09/2010, 12h55
Sinon y'a toujours du AS3/Flex (flash) via log open comme FlashDevelop.
C'est pas tres dur et ca permet de diffuser rapidement sans trop de contrainte. Mais à conseiller uniquement pour de la 2D.

Processing est aussi pas mal et gere beaucoup mieux la 3D il me semble.

Tout ça reste pour un usage petit jeu / proto / démo bien entendu.

Si tu utilise Flex + Flash Develop et veut faire de la 2D non vectorielle autant utiliser flixel ou flashpunk. Ces deux Framework permettent de gérer pas mal de truc simplement et faciliter le dev.

Après perso j'ai tendance à commencer par proto d'un truc pour tester une idée, le "jeu" évolue avec le code celon ma flemme et mes idées...
Et ça finit jamais vu que je me lasse avant la fin.
:tired:

MetalDestroyer
24/09/2010, 14h32
Sinon, tu fais du modding sur les jeux utilisant le Source Engine/Cry Engine/Unreal Engine/autres en intégrant une petite équipe qui a fait ces preuves. C'est un bon moyen de gagner en compétences.

Si vraiment, tu veux y aller molo.

edenwars
24/09/2010, 19h33
Ton idée est bonne metaldestroyer...


C'est chaud de développer une demo ou un truc dans le genre surtout seul :O.
J'ai commencer à mater un peu un tutoriel sur youtube sur le mapping left4dead.


Ca a l'air cool et frais.


Et la nuit d'avant j'avais visionné zombieland,ça m'a inspiré deux trois trucs bien fun....:wub:


Mais bon,faut voir hein,car des fois je pars dans des délires.....

Akwantik
26/09/2010, 13h44
Si tu utilise Flex + Flash Develop et veut faire de la 2D non vectorielle autant utiliser flixel ou flashpunk. Ces deux Framework permettent de gérer pas mal de truc simplement et faciliter le dev.:

Carrément ! Je me suis mis sur un petit projet Flixel récemment (framework de "Canabalt (http://adamatomic.com/canabalt/)" notamment) et je le trouve vraiment bien foutu !

Pour quelqu'un n'ayant que quelques notions vague de programmation ca permet de commencer vraiment en douceur !