Dark Knight est un projet de beat’them all, dans le style des jeux d’arcade des annees 90, comme street of rage ou final fight.
Dark Knight est notre second projet. Notre precedent jeu, SuperNova, est un shoot them up vertical oriente arcade.
· SuperNova a obtenu quatre étoiles sur telecharger.com
· Plus de 20.000 telechargements de SuperNova en moins d’un an
· SuperNova est présent sur la Compil Top 100 de telecharger.com comme l´un des " meilleurs jeux gratuits sortis ( ou mis à jour) durant l´année 2004"
Le concept est finis, et le game-design, qui fait une vingtaine de pages est en train d´etre corrige. L´equipe comprend deja un musicien, un level-designer, un illustrateur et je suis programmeur.
J´ai deja fait de la programmation professionnelle, et j´utilise le C++, DirectX, Fmod et Lua.
Nous recherchons des personnes interresses pour etre graphiste, webmaster, ou level-designer. Vous pouvez me contacter par mail ou sur notre site:
http://www.exo-games.com
Tres intéressant ![]()
J´ai quelques questions techniques :
- Vas tu employer DirectDraw ou DirectGraphics. Dans ce cas, vas tu simuler de la 2D grace a la lib 3D ( ce qui pourrait tirer avantage du Z-buffer) pour classer l´affichage de priorité des sprites, et permettre également d´eventuels zooms sympas ? ![]()
- Comment vas tu gérer les collisions ?
Bon courage en tout cas !
Ben en voilà un qui relève un peu le niveau de ces derniers jours ![]()
tien j´ai aussi une petite question, pourquoi utiliser Fmod au lieu de DirectSound?
meci ![]()
Fmod est une lib haut niveau qui permet de gerer le son de maniere simple, avec quelques fonctions.
DirectSound est une librairie surement plus complexe, ou tu doit faire plus de choses pour le meme resultat ( et surtout comme toutes lib microsoft, faut ecrire des centaines de lignes pour le moindre trucs, c´est ca ? ).
Pour ton projet, il existe un moteur de creation de tels jeux qui s´appelle " Beast of Rage". Je sais que c´est moins interressant pour toi qui est programmeur car le moteur est deja fait, mais il est abouti et est multiplateforme ( dont consoles meme PSP). Ca permet de pouvoir etre joué par plein de monde. Interressant si vous compter produire beaucoup de données.
lapintade: je connais DirectSound
et se n´est pas très compliqué à utilisé, de plus cela fait une lib de moins à trimballer.
DirectSound c´est une lib aussi ![]()
oui, mais installé sur 90% des pc windows ![]()
Aaaaah, enfin un bon projet ! Bon courage ! ![]()
oui, mais installé sur 90% des pc windows
Ouais mais pour developper, t´es obligé d´installer le SDK Directx, ce qui est beaucoup plus lourd qu´une petite lib style Fmod ou GAudio.
On les connait les SDK de 300Mo qui changent tout les quatres matins, merci microsoft ( le mieux c´est quand meme quand ils s´arrangent pour changer la structure d´un header, ça fout tout les programmes en l´air ! \o/ )
tout a fait, ne pas confondre le " runtime", qui est en fait un ensemble de dll. et le SDK, qui ajoute a cela les . h et les . lib ( ou . a) nécessaires pour programmer avec...
étant donné qu´il développe son jeu en directx, il a obligatoirement le sdk, et donc l´enssemble des libs directx
, et cela ne change pas qu´au final il devra trimballé sont jeu+fmod au lieu de son jeu tout seul.
On lui pourri son topic le pauvre ![]()
Enfin de toute façon il sé débrouille bien comme ça
HS: Shadow > pourquoi VB.NET+DX managed poukwaaa ) ´:
Oula, je pensais pas avoir autant de reponses aussi vite... Ca prouve que le projet interresse.
Pour repondre aux questions:
- J´utilise DirectGraphics, et en particulier l´interface D3DXSPRITE. Donc je ne simule pas la 2D avec de la 3D.
Mais je pense le faire pour des questions de performances ( D3DXSPRITE est repute lent), et la je pourrais utiliser eventuellement le Z-buffer.
Pour l´instant je le simule en ordonnant mes sprites selon leur position sur Z ( mes objets ont des coordonnees sur x,y,z).
- Les collisions sont geres avec une collision map que je genere au chargement du sprite. J´utilise une bounding box, et ensuite eventuellement j´utilise les collision maps.
Ca reste ( relativement) performant et c´est pixel-perfect!!!
- J´utilise Fmod parce que c´est une bibliotheque petite, simple et performante. Le moteur de supernova etait en directX7, et j´utilise maintenant Dx8.1
J´ai a peine le temps de bien connaitre l´API que microsoft sort une nouvelle version... Bref, a cause du changement, je devais reecrire toute ma partie son.
Donc, j´ai change pour Fmod, et j´en suis tres content!
- Je connais bien sur beast of rage, mais notre projet est un peu different. Il y plein de choses qu´on ne peux pas faire avec beast of rage ( video, choisir des routes differentes...)
Avec notre propre moteur, nous pouvons utiliser une resolution plus grande ( a priori ce sera 800*600), la transparence alpha, le jeux a quatre.
Bref, BOR est excellent, mais ca nous empeche pas de faire notre propre jeux.
Et n´hesitez pas a aller sur le site, le forum est vide ![]()
qq petites precisions sur ID3DXSprite ; cette interface qui est apparue avec les dernieres ( comprendre, a partir de la 8) versions de DX n´est qu´une encapsulation fonctionnelle de ressources classiques.
Ca masques les vertex buffers, mais ce sont bien quand meme des quads qui sont generes derriere tout ca.
Quant a la rapidite, il est vrai que c´etait lent.. jusqu´a DX9.0c ou l´interface pour cette partie a ete refondue ! Et en l´etat actuelle, ca depote bien et c´est tres souple : ce serait dommage de se priver cette simplicite :D
Pour les collisions, au lieu de la collision map apres bounding box, je te conseille un algo + rapide pour ce genre de jeux :
la collision par point d´action :
Dans le bitmap de chacunes de tes images, tu integres un " point d´action", ou tu veux. Eventuellement plusieurs.
Par exemple, tu dis que le pixel 15,23 de cette image est le point d´action :
Comme ça, quand tu dessines un gars en train de taper : sur l´image du coup de poing, tu mets le point d´action au bout du poing
pour l´image du coup de pied, au bout du pied...
Et apres, l´algo est simple : le mec A tape le mec B si et seulement si le point d´action du mec A touche le mec B
( apres, pour déterminer le mec B, bounding box, et eventuellement collision map pour les pixels perfect, et la c´est nickel ! )
Je t´explique l´inconvénient si tu ne gere pas le point d´action :
Le mec A donne un coup de poing vers la gauche de l´écran.
Le mec B est juste derriere lui ( donc sur la droite) et le touche, meme...
Tu dis : if ( mec A en train de taper && mec B touche mec A) alors il se prend la mandale, ce qui est faux dans ce cas... le mec B se prend la mandale alors que le mec A tape dans l´autre sens....
--> ça coince. Et avec le point d´action, ça marche
Autre inconvénien du aux collisions :
Tu compte faire sauter des bonhommes ?
si un gars, qui au devant de la scene, saute, alors il va etre dessiné, du a la perspective, juste au dessus de mec qui est derriere la scene, mais au sol
fait gaffe a vérifier cela
car s´ils sont dessinés l´un par dessus l´autre, leur z n´a rien a voir
mais ça, ça fait juste une petite condition de +...
Quelques nouvelles sur le projet, qui n´est pas mort, et qui se porte plutot bien!! D´abord une personne nous aide pour les illustrations, on aura donc bientot des artworks a presenter! Merci a a la communauté, puisqu´elle a connus le projet ici!!
Autre bonne nouvelle une demo! Attention, c´est une demo technique, juste un essai pour mettre en place le moteur pour le jeu. Mais ca commence deja a ressembler a quelque chose!
http://ashdyson.free.fr/DKdemo2.zip
LVG> merci pour la precision sur ID3DXSprite, c´est interressant.
JeanYvesYves> J´ai reflechit un moment sur ton algo de collision par point d´action, et surtout comment l´integrer... En fait, on peut simuler cet algo avec mon moteur dans l´etat!! En effet, les joueurs ( et ennemis) sont des amalgames d´elements, on peut donc dissocier le poing d´une autre partie du corps. En plus, il est possible de definir un comportement dangereux ou pas. Il suffit de rendre le poing dangereux et pas le reste!!! Je vais essayer d´integrer ca dans le prochain proto.
Pour le saut, oui, ce n´est qu´une petite condition de plus
C´est meme géré dans cette demo...
excellent ! ! J´aime bien Blue Mary ![]()
J´ai décompressé le zip et quand je lance le exe,je vois apparaiter une fenetre et avant qu´elle se remplisee j´obtiens ce message d´erreur
" DKDemo2 a effectué une operation non conforme et va maintenant etre fermé
Détails:
DKDEMO2 a causé une défaillance de page dans
le module DKDEMO2.EXE à 0167:00403933.
Registres :
EAX=00000000 CS=0167 EIP=00403933 EFLGS=00010202
EBX=0045d0e4 SS=016f ESP=0095f270 EBP=0095f2f8
ECX=00000000 DS=016f ESI=817be844 FS=6b17
EDX=00000001 ES=016f EDI=00000000 GS=0000
Octets à CS : EIP :
8b 10 83 c2 40 c7 44 24 10 10 00 00 00 c7 44 24
État de la pile :
00000000 00c80e28 00000000 00000000 00000001 00000000 00000000 00000001 00000001 ffffffff 00000000 0095f2d0 00000000 0045d17c 00441f40 0095f270 "
Mon pc est une vieille bouse ( rien a sauver).
J´ai direct X 9 ^^