Le jeu en pure... ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Le jeu en pure... ?

Message par poshu »

Salut'
J'ai vu que B-games sortait son premier jeu commercial, et je reste toujours aussi impressionné par leur travail.
Je me suis récemment mis à coder du jeu aussi, et jusqu'ici j'ai fait un moteur de maniac shooter vertical. Je ne peux malheureusement pas le diffuser puisse que les graphismes ne m'appartiennent pas T_T

Une seule chose me vient à l'esprit cependant: si je compare leurs productions à la miennes, j'ai clairement été fini à la pisse >.<

Alors bon, je me tâte sérieusement à acheter PureGDK puis ce que j'avais de meilleurs résultats en DBP qu'en pure pour la 2D (à, oui: la 3D j'en ai pour l'instant rien à taper). Cependant leur niveau me fait hésiter (y'a pas de mauvais outils, y'a que de mauvais ouvrier).

Auriez vous donc des exemples avancés (je suis pas noobs au point de reprendre toutes les bases) de code utilisant beaucoup de sprites? Des exemples de bidouilles avancées?

Merci d'avance.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Le jeu en pure... ?

Message par Backup »

poshu a écrit :de code utilisant beaucoup de sprites? Des exemples de bidouilles avancées?

Merci d'avance.
ce qui m'embete dans ta question c'est le "Avancée" ...

comment definis tu ce qui est avancée ?? 8O

j'imagine qu'en lisant ça beaucoup auront la même réaction que moi..
c'est a dire : "je vois pas comment je pourrai lui apporté un code Avancé"
puisque je ne considère pas ce que je fais comme "avancée"...

donc je ne peux t'aider Désolé :)

ps : Huitbit a fait recement un code de fleches avec beaucoup de Sprite a l'ecran...
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Message par poshu »

Par avancé, je voulais dire "plus loin que ce que je fais moi". oui, c'est une notion abstraite :/

Sinon, j'ai vu flechistique, mais ca ne m'apprends pas grand chose, à part les maths ^^;
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Un petit effet que j'avais fait il y a quelques temps; rien d'extraordinaire. j'ai déjà dû le poster quelque part... Il faut une image 128x128, et jouer avec les boutons de la souris et la molette.

Code : Tout sélectionner

;Chess effect
;Djes 11/04/2005

;******************************************************************************************************

If InitSprite() And InitSprite3D() And InitKeyboard() And InitMouse()
Else
 End
EndIf

OpenScreen(800, 600, 16, "3D Demos")
SetFrameRate(75)

RandomSeed(ElapsedMilliseconds())

CatchSprite(1,?sprite,#PB_Sprite_Texture)
CreateSprite3D(0, 1) 

speed_x3.f=0
speed_y3.f=0
speed_x2.f=0
speed_y2.f=0
speed_x1.f=0
speed_y1.f=0
pos_x1.f=0
pos_y1.f=0
pos_x2.f=0
pos_y2.f=0
pos_x3.f=0
pos_y3.f=0

;******************************************************************************************************

Repeat

 ExamineKeyboard()
 ExamineMouse()

 If MouseButton(1)
  speed_x3+1
  If speed_x3>16 : speed_x3=16 : EndIf
  If speed_x3<-16 : speed_x3=-16 : EndIf
  speed_x2=speed_x3*15/10
  speed_x1=speed_x3*20/10
 EndIf

 If MouseButton(2)
  speed_x3-1
  If speed_x3>16 : speed_x3=16 : EndIf
  If speed_x3<-16 : speed_x3=-16 : EndIf
  speed_x2=speed_x3*15/10
  speed_x1=speed_x3*20/10
 EndIf

 speed_y3+MouseWheel()
 If speed_y3>16 : speed_y3=16 : EndIf
 If speed_y3<-16 : speed_y3=-16 : EndIf
 speed_y2=speed_y3*15/10
 speed_y1=speed_y3*20/10 

 ClearScreen(0)
 Start3D()
 ;***
 Gosub damier
 ;***
 Stop3D() 

 FlipBuffers(1)
  
 Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
 
End

sprite:
IncludeBinary "Gfx/damier128x128.bmp" 

;******************************************************************************************************

damier:
 a.f+0.1
 ;pos_x1=(pos_x1+speed_x1)%128
 ;pos_y1=(pos_y1+speed_y1)%128
 ;pos_x2=(pos_x2+speed_x2)%100
 ;pos_y2=(pos_y2+speed_y2)%100
 ;pos_x3=(pos_x3+speed_x3)%72
 ;pos_y3=(pos_y3+speed_y3)%72

 pos_x1=(pos_x1+speed_x1)
 If pos_x1<0 : pos_x1+128 : EndIf
 If pos_x1>128 : pos_x1-128 : EndIf
 pos_y1=(pos_y1+speed_y1)
 If pos_y1<0 : pos_y1+128 : EndIf
 If pos_y1>128 : pos_y1-128 : EndIf

 pos_x2=(pos_x2+speed_x2)
 If pos_x2<0 : pos_x2+100 : EndIf
 If pos_x2>100 : pos_x2-100 : EndIf
 pos_y2=(pos_y2+speed_y2)
 If pos_y2<0 : pos_y2+100 : EndIf
 If pos_y2>100 : pos_y2-100 : EndIf
 
 pos_x3=(pos_x3+speed_x3)
 If pos_x3<0 : pos_x3+72 : EndIf
 If pos_x3>72 : pos_x3-72 : EndIf
 pos_y3=(pos_y3+speed_y3)
 If pos_y3<0 : pos_y3+72 : EndIf
 If pos_y3>72 : pos_y3-72 : EndIf


 ZoomSprite3D(0,72,72)
 For y=-72 To 672 Step 72
  For x=-72 To 872 Step 72
   dd.f=((x-pos_x3)+(y-pos_y3))/100
   ZoomSprite3D(0,72+20*Sin(dd),72+20*Sin(dd))
   DisplaySprite3D(0,x-pos_x3,y-pos_y3,100)
  Next x
 Next y
 
 ZoomSprite3D(0,100,100)
 For y=-100 To 700 Step 100
  For x=-100 To 900 Step 100
   dd.f=((x-pos_x2)+(y-pos_y2))/100
   ZoomSprite3D(0,100+40*Sin(dd),100+40*Sin(dd))
   DisplaySprite3D(0,x-pos_x2,y-pos_y2,200)
  Next x
 Next y
 
 ZoomSprite3D(0,128,128)
 For y=-128 To 728 Step 128
  For x=-128 To 928 Step 128
   dd.f=((x-pos_x1)+(y-pos_y1))/100
   ZoomSprite3D(0,100+60*Sin(dd),100+60*Sin(dd))
   DisplaySprite3D(0,x-pos_x1,y-pos_y1,255)
  Next x
 Next y
 Return


Anonyme

Message par Anonyme »

Salut poshu , pour avoir fait partie de l'équipe B-games , il n'y a rien d'extraordinaire , c'est du code , point barre. la différence qu'il y a entre Polux , Djes & co et d'autres coders , c'est la motivation d'aller jusqu'au bout.

Dire que tu as de meilleurs perf avec DBP qu'avec pure , j'en doute , les resultat de Purebasic sont aussi bien qu'avec un code en c/c++. c'est pas le cas de dbp , je parle en connaissance de cause , j'ai codé sous les 3 langages.

Ensuite , pour le jeu , je serais ravi de t'aider à optimiser tes routines , donne nous un truc à croquer et on t'aidera , pour les médias proprio , fait en des pourris avec paint... on s'en fou ^^
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Cpl.Bator a écrit : Ensuite , pour le jeu , je serais ravi de t'aider à optimiser tes routines
occupe toi donc de Gears3D toi :lol:
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Message par poshu »

Dobro a écrit :
Cpl.Bator a écrit : Ensuite , pour le jeu , je serais ravi de t'aider à optimiser tes routines
occupe toi donc de Gears3D toi :lol:
Mais c'est vrai, retourne bosser, en plus t'as un gosse, t'occupes pas des débutants >.<

Merci djes.

Mon problème n'est pas vraiment la motivation: je veux avant tout me faire plaisir en codant, et pas spécialement finir un jeu. Cependant, me faire plaisir en codant passe par la réussite de mes objectifs. Et pour le moment, j'ai l'impression de patauger. Ca fait des années que j'ai pas codé de la 2D, ca vient peut etre de là, mais quelle misère pour le moment :/
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

y a quelques temps j'avais mis ça a dispo
c'est la base d'un petit jeu video
a noter que les Sprites on ete fait a l'aide de 3dsMax

http://michel.dobro.free.fr/Forum_PB/space_i.zip

il y a tout dedans,
  • multisprites animés,
    collision
    compteur de vie
    compteur de score
    musique
    son FX
    gellules de bonus
    gestion joystick ou clavier
    touches fleches + espace pour le tir
    utilisation des timers pour l'arrivé des ennemis
    :D

le code est clair et commenté :)

le but du jeu ? rester en vie le plus longtemps possible :D
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

poshu a écrit :
Dobro a écrit :
Cpl.Bator a écrit : Ensuite , pour le jeu , je serais ravi de t'aider à optimiser tes routines
occupe toi donc de Gears3D toi :lol:
Mais c'est vrai, retourne bosser, en plus t'as un gosse, t'occupes pas des débutants >.<

Merci djes.

Mon problème n'est pas vraiment la motivation: je veux avant tout me faire plaisir en codant, et pas spécialement finir un jeu. Cependant, me faire plaisir en codant passe par la réussite de mes objectifs. Et pour le moment, j'ai l'impression de patauger. Ca fait des années que j'ai pas codé de la 2D, ca vient peut etre de là, mais quelle misère pour le moment :/
Peut-être aussi que tu n'utilises pas les bons outils?! Où bloques-tu? Au niveau du rendu de ton programme? Au niveau de tes graphismes? Au niveau du design général?
beauregard
Messages : 1307
Inscription : dim. 08/juil./2007 18:32
Localisation : Toulouse

Re: Le jeu en pure... ?

Message par beauregard »

Ton post est bien sympathique, voir revigourant, donc je vais répondre avec enthousiasme :) ( mais au risque de manquer d'humilité, alors je tiens à m'excuser dès maintenant: pardon! :oops: )
poshu a écrit :Salut'
J'ai vu que B-games sortait son premier jeu commercial
ah ! je ne savais pas, merci pour l'info, j'ai du passer à côté d'une annonce sur ce forum parce que c'est quand même un évènement.
poshu a écrit :Je me suis récemment mis à coder du jeu aussi, et jusqu'ici j'ai fait un moteur de maniac shooter vertical. Je ne peux malheureusement pas le diffuser puisse que les graphismes ne m'appartiennent pas T_T
Et là tout est dit, inutile de commenter. Bon aller, appuyons là où çà fait mal, mais c'est pour ton bien ;) :

Code : Tout sélectionner

les graphismes ne m'appartiennent pas
Coder, c'est pas facile, mais c'est de la rigolade comparer à la conception des images. Heureusement pour nous, il existe des modeleur/animateur3D. Modéliser, c'est sympa, surtout au début, et tu te rendra compte que modéliser un vaisseau spatial, et bien c'est plus facile qu'un dragon( tout ce qui est vivant est difficile à modéliser). L'apprentissage de 3dsmax ou tout autre modeleur va nécessiter du temps et pas mal d'effort, faut pas manquer de courage quoi( sacrifier tout ton temps libre).

Ou alors tu cherche un graphiste, ou un amateur qui se débrouille bien en pixel art( ton bel avatar en est peut être issu d'ailleur)...
Auriez vous donc des exemples avancés (je suis pas noobs au point de reprendre toutes les bases) de code utilisant beaucoup de sprites?
je suis un noob dans bien des domaines, mais j'ai bien secoué notre petite communauté l'été dernier, pour comprendre le pourquoi du comment pour la gestion des images, et puis j'ai pondu, en grimaçant, 3 codes:
google-> peur basique
1er code: jeu peur basique en mode graphique
2eme code: un programme de test collision et utilisation sprite3D
3eme code: jeu peur basique en mode fenêtre

google-> editeur de niveau 64

Code : Tout sélectionner

Delay() 
pour un jeu cette commande est à oublier.

Maintenant, il faudrait peut être te poser la question sur ton objectif, à savoir concevoir un manic shooter: est ce une bonne idée ? As-tu testé tout les manic shooter sortis ? Les joueurs aimant cette catégorie de jeu sont de moins en moins nombreux( au fur et à mesure que le rectangle de collision du vaisseau dirigé par le joueur se réduit comme peau de chagrin d'ailleur...) Par contre, les joueurs ayant appréciés r-type, gradius, view point ou même raystorm sont plus nombreux. J'ai l'impression que dans un manic, un vaisseau alien descend légèrement, stoppe puis balance des boulettes par centaines. Et pis voilà.
Alors que dans les shoot à l'ancienne, la mise en scène des vaisseaux ennemis, leurs capacités( vitesse/comportement/résistance/ la façon dont ils tirent...) étant autrement plus élaborés( d'où leurs charmes).
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Message par poshu »

Salut ^^;

J'ai vécu quelques années au japon et j'ai donc zonné dans des sales d'arcades; je suis un joueur régulier, et parmi mes grosses spécialité, y'a le maniac, sur mes quelques bornes d'arcades (j'en ai quatre) y'en a une qui est dédié au shmup vertical, surtout quand y'a plein de petites boulettes roses et bleues *O*
Le principe d'un maniac, c'est avant tout le 1 credit, on met 1 pièce dans la machine, et on va jusqu'au bout du titre sans perdre une vie, sans utiliser une bombe. En faisant le plus gros score possible. Le lever design de ces jeux est un petit exploit de complexité (bien plus que ce que tu appelle un shmup traditionnel, au contraire de ce que tu semble penser) tant il faut cacher LA possibilité de maximiser le score. C'est véritablement un sport, et que je sois le seul à le pratiquer ou qu'on soit des millions, j'm'en moque comme de l'an 40, j'aime ça, et y'a assez de jeux qui sortent pour me nourrir... Aaah, mon DodonPachi Dai Fukkatsu doit arriver sous peu par la poste *-*.

Bon, après cet encart un peu inintéressant sur le shmup, en voilà un autre sur mes motivations: je ne cherche pas (en tous cas pour l'instant) à créer des jeux. J'aime programmer, c'est un passe temps, autant que de jouer, le fait de coder est un plaisir et après quelques années à coder des applications plus ou moins débiles pour moi, que je n'ai pas distribués et que je ne souhaite pas distribuer, j'ai envie d'aller bidouiller du jeu pour moi, que je ne souhaite pas distribuer et que je ne distribuerais pas. A partir de là, le graphisme, je m'en fou, puis ce que la seule chose que je cherche, c'est de nouvelles situations de code. Un autre objectif: j'ai quelques idées qui me trainent dans la tête depuis des années, et qui n'apparaissent pas dans le jeu vidéo. N'étant pas plus génial que tout autre personne, je me doute que les game designer y ont déjà pensé, eux aussi, et qu'il doit y avoir une raison pour laquelle elles n'ont pas été implémentés. Et cette raison, j'aimerais la connaitre.

Dernier détail, ma patrie, c'est le jeu vidéo asiatique (japonais/coréen) 2D. Et naturellement je me dirige vers le mêmes techniques de dev, à savoir baser le temps passé dans le titre non pas sur un timer, mais sur le nombre de frame. Je sais que c'est une tradition étrange pour vous, mais c'est comme ça que je veux faire, et avec de bonne raisons.

Maintenant, je me suis rendu compte que ce topic que j'aurais aimé fourre-tout n'est pas assez précis. Je vais essayer de produire des codes simples pour illustrer mes problèmes et poser des questions plus adéquate.

Je reviendrais.
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

Avec les ecrans 16/9 qui se propagent, un shoot them up a scrolling horizontale serait du plus bel effet :D
Genre R-Type 2K8
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Message par poshu »

le probleme des R-Type et compagnie, c'est qu'ils sont foutrement facile. Les plus dur des shmup horizontaux, c'est les gradius... Qui restent simple :/ A la limite, progear (à ma connaissance le seul maniac horizontal) de cave est corsé.
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

poshu a écrit :le probleme des R-Type et compagnie, c'est qu'ils sont foutrement facile. Les plus dur des shmup horizontaux, c'est les gradius... Qui restent simple :/ A la limite, progear (à ma connaissance le seul maniac horizontal) de cave est corsé.
Project X ? Appidia facile ?? :P :P
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

poshu a écrit :savoir baser le temps passé dans le titre non pas sur un timer, mais sur le nombre de frame
Ah, la quête du saint graal! Sur PC, c'est une vraie gageüre, tant le nombre d'écrans, de cartes graphiques sont différents. Rien de plus moche qu'un jeu 2D au timer! Le problème c'est que du coup, on perd du monde en route, parce qu'avec les écrans TFT réglés au 60hz, si tu veux en afficher 85 le résultat n'est pas terrible... Et un écran crt classique à 60hz ça fait mal aux yeux :(

Personnellement, je n'ai toujours pas "la" solution miracle. Je bloque mes jeux sur un framerate, si la machine rame, tant pis. Si elle est rapide comme il faut c'est fluide, mais pas question pour l'instant que je fasse "sauter" mes sprites pour suivre le timer.
Répondre