Proto-Type

Programmation avancée de jeux en PureBasic
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Proto-Type

Message par cha0s »

Voici une démo que j'ai présenté au dernier concours de l'AJVA. Cette Démo n'est pas finit et ne le sera jamais car comme indiqué c'est un prototype. Le but était de crée un moteur de shoot them up entièrement scriptable en XML. Je lache le code source car je recode le moteur (qui est loin d'être finit)en C++ en gardant le principe du XML.

Coté code 4,1K ligne de code, il compile sous linux avec le subsystem OpenGL mais les collisions sont aléatoire car pas de pixel perfect. J'utilise beaucoup de lib disponible sur Chronos et incleu dans le code sources generé.
Sources.

Les graphisme sont la propriété de l'auteur (voir crédits), aucune réutilisation sans son consentement.


Pour DL l'exécutable c'est Ici : (windows only)
http://www.doujin-spirit.com/oldies/Proto-Type.rar
Anonyme

Message par Anonyme »

Sympa mais un peu raidos quand même :D
le jeu saccade lorsque je tire.

les boules jaunes & rouges sont des bonus ?
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Message par cha0s »

Nop aucun bonus que des tirs. Le jeux est assez gourmand notamment a cause de la texture de fond. C'est scripté a larache étant donné que tout a été fait en une semaine. D'ailleurs c'est assez simple quand on a fait le niveau une fois et qu'on a remarqué comment ne pas se faire toucher. Pour les collisions je vais passer en quadtree le pixel perfect de pure est trop gourmand.
Anonyme

Message par Anonyme »

:oops:

tu stockes la texture dans un tableau de byte (1=collision 0=non)
pour les collisions , pour se type de jeu un simple bouding box suffit
tu récupères l'intersection des 2 box , si il se rentre dedans tu lis que la partie qui se chevauche , si tab_A() = 1 & tab_B() = 1 alors collisions. Simple, rapide. :)
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Message par cha0s »

Avec le quadtree encore mieux je divise récursivement une image en quatre partie N fois. et après je fait un tableau pour les feuilles (dernière subdivision). Comme sa j'évite de tester les zones inutiles de collisions.
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Pour un truc fait en une semaine, c'est plus que bien! 8O
Tu nous tiendras au courant des résultats du concours, stp?
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Message par cha0s »

Le top 4 a été donné hier a la Japan Expo.

1 - Invaders Resurrection
2 - Sukubus
3 - LightDroid V2
4 - Ocean's Keeper

A croire que il y avait du challenge, d'ailleurs je n'ai pas respecté le cahier des charges car le niveau a une fin et il fallait un jeu infinissable (mais bon sans le boss, la démo aurait une autre saveur :p).
Par contre aucune idée pour le restant des jeux, enfin personnellement jetait sur place et j'ai trouvé l'organisation (si on peut appeler cela une organisation) du stand était faite avec des pieds.
Anonyme

Message par Anonyme »

Cpl.Bator a écrit ::oops:

tu stockes la texture dans un tableau de byte (1=collision 0=non)
pour les collisions , pour se type de jeu un simple bouding box suffit
tu récupères l'intersection des 2 box , si il se rentre dedans tu lis que la partie qui se chevauche , si tab_A() = 1 & tab_B() = 1 alors collisions. Simple, rapide. :)
je ne suis pas a la maison, je te ferai un jolie dessin tout a l'heure :D
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Oui, plutôt terrible en une semaine :)
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Anonyme

Message par Anonyme »

Voilà ce que je voulais dire :

Image

tu fait 2 boites , tu gardes les intersections , tu lis dans ces limites.

@+
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Je crois qu'il avait compris... Tu implémenterais comment le quadtree pour les tirs? En stockant au fur et à mesure dans un tableau? Je vois pas trop...
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Message par cha0s »

@CLP : oui j'avais comprit ^^'.

djes a écrit :Je crois qu'il avait compris... Tu implémenterais comment le quadtree pour les tirs? En stockant au fur et à mesure dans un tableau? Je vois pas trop...
En fait plutôt une liste. Le principe c'est sa Image

je vais prendre l'exemple du vaisseau principale
Image

Je divise l'image en quatre partie car chacune des partie contient des pixel visible. Dans la partie en haut a droite nous avons 1 2 3 et 4. seul 4 est crée an tant que sous arbres car il contient des pixels, les autres zone sont ignoré. En cas de collision le principe est simple je test sur les zone existante si elle entre en contacte et ce récursivement jusqu'à arriver a la zone la plus petite en collisions. Une fois ceci fait je regarde si les pixel se chevauchant on une opacité supérieur a 0. résultat : si aucune collision mais un chevauchement des images très peu de calcul a réaliser et si une collision on isole les zone concerné ce qui diminue les tests.
beauregard
Messages : 1307
Inscription : dim. 08/juil./2007 18:32
Localisation : Toulouse

Message par beauregard »

cha0s a écrit :@CLP : oui j'avais comprit ^^'.
tu devrais faire un tour au forum shump, là tu apprendrai que pour les collisions, faut pas s'embêter: un seul rectangle de collision suffit. Pour les derniers manic shooter, un minuscule rectangle se trouve au centre de chaque boulettes... ... et même chose pour le ship du joueur.
Anonyme

Message par Anonyme »

Cpl.Bator a écrit :pour se type de jeu un simple bouding box suffit

la vache , on me lit en diagonale :D
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

Message par Cool Dji »

Bravo Chaos !!
Only PureBasic makes it possible
Répondre