Jump to content
Jagware
beauregard

shump vertical

Recommended Posts

beauregard    0

Bonjour,

 

Projet 0010

Il y a quelques temps, j'ai fait un petit shump qui a été apprécié par la communauté de PureBasic :

http://www.purebasic.fr/french/viewtopic.php?f=2&t=9159

Il s'agit d'un style de jeu facile à coder, qui permet comme vous le savez de prendre ses marques avec une nouvelle machine ou langage. Ce n'est pas pour autant un pong, donc faut travailler un peu beaucoup quand même. ;)

Les sources sont disponible, mais j'ai à la maison une version plus évolué (meilleure graphisme, mode 2 joueurs et alpha blending), je cherche un ou plusieurs programmeurs Jaguar pour faire la conversion/adaption/et plus encore. :)

 

projet 0001

Si le projet 0010 vous semple trop compliqué pour un premier travail en commun avec un bel inconnu, je peux ressortir des cartons, un autre jeu plus simple, mais pas dénué de fun : Glob Shoot

glob01grand.gif

glob02grand.gif

 

 

lien d'un site qui m'est inconnu, mais qui a sauvé toute la production française sur The game factory (TGF):

http://cyberlander.free.fr/Jeux-amateurs.htm

http://forumpmtgf.free.fr/globshoot.zip

liendirect

vous pourrez ainsi télécharger le jeu, et ainsi vous faire une idée. Le passage de win98se à winXP ne c'est pas fait sans mal, la palette 256 couleurs n'a visiblement pas apprécié. Mais le gameplay est lui encore intacte (MicroApplication m'avait envoyé un mail pour leur permettre de proposer Glob Shoot dans une compilation vendu dans les marchand de journaux, en 2001 si ma mémoire est bonne).

L'adresse mél visible sur le fichier joint .txt n'est plus valide.

 

Glob Shoot est antérieur à Vers l'infini, donc commencer par Glob shoot suit une certaine logique par rapport à mon vécu, mais surtout pour poser les bases, en commencent par le choix de la résolution...

 

...d'où le questionnement sur la résolution 480*480 : la console peut surement l'afficher, mais après avoir parcouru et lu deci delà vos posts, un 384*384 semble plus raisonnable pour la console. A l'époque, j'ai mis 2 semaines complète, week end compris, pour faire le jeu (hors bruitages quand même). il sera intéressant de voir combien temps il faudra... pour faire la même chose sur la Jaguar :)

 

Je suis assez exigeant, quand on commence un truc , on le termine. Donc si vous êtes dispos que pour 2 jours et demi, détournez votre regard. Mais si vous êtes déterminé, sortez vos griffes !

 

@pluche !

Share this post


Link to post
Share on other sites

Hi

 

I had to google translate that from French to english, but it would appear you are after a game engine?

 

Check out the specs of our P1 sh'm'up engine here: http://dbug.kicks-ass.net/reboot/web/p1-page/tech.html

 

Our engine is complete, but we will not be using it to finish our game off. If you feel it can be adapted to this then please, by all means, send me a PM if you'd like to talk more ;-)

Share this post


Link to post
Share on other sites
Zerosquare    10

Jolis graphismes :)

 

Par contre, attention à ne pas être trop gourmand question technique : il vaut mieux se limiter à du 240x240 (un mode 480 lignes est possible, mais il n'est pas officiel, et ce n'est pas encore suffisamment mûr pour être utilisé dans un jeu facilement), l'alpha blending n'est pas géré en hardware, la taille totale des graphismes et sons sera limitée, et je ne sais pas vraiment ce que tu veux dire par "sprites 3D", mais la 3D temps réel est tellement limitée qu'il vaut mieux l'oublier.

 

Il y a plus de détails sur ce qui est possible ou pas dans ce topic : http://www.jagware.org/index.php?showtopic=795.

 

Share this post


Link to post
Share on other sites
beauregard    0

merci pour vos réponses :) thanks

Jolis graphismes :)

 

Par contre, attention à ne pas être trop gourmand question technique : il vaut mieux se limiter à du 240x240 (un mode 480 lignes est possible, mais il n'est pas officiel, et ce n'est pas encore suffisamment mûr pour être utilisé dans un jeu facilement), l'alpha blending n'est pas géré en hardware, la taille totale des graphismes et sons sera limitée, et je ne sais pas vraiment ce que tu veux dire par "sprites 3D", mais la 3D temps réel est tellement limitée qu'il vaut mieux l'oublier.

 

Il y a plus de détails sur ce qui est possible ou pas dans ce topic : http://www.jagware.org/index.php?showtopic=795.

sprite : utilise la mémoire vive, la transparence étant dès plus limité, et pas d'alpha blending bien sûr.

sprites 3D : utilise la mémoire vidéo et les possibilités de la cartes 3D.

 

Le blitter sur l'Atari STE permet de superposer 2 couches de bit, pour obtenir de la transparence. Un petit calcul des plus savant doit être possible, afin de comparer la valeur de chaque bit "de dessous"(ou nibble ou byte, hum, je fais mon malin mais j'y connais rien). D'ailleurs je me demande si ces 2 machines partagent le même blitter ? Le blitter est un composant que je trouve fascinant, je ne pense pas un jour le programmer, mais connaitre ce qu'il est capable de faire, ça m'intéresse grandement. ^_^

 

240*240 : mmh, on peut pas monter jusqu'à 256*256 ? 65536 pixels, je trouve ça bô :)

Share this post


Link to post
Share on other sites
Zerosquare    10

Ah oui d'accord, je vois ce que tu veux dire. Cette distinction n'existe pas sur Jaguar. La transparence "simple" (soit un pixel est totalement opaque, soit il est totalement transparent) est supportée, mais pas l'alpha-blending.

 

256x256 on peut, mais seulement en PAL (en NTSC le maximum c'est environ 240). Et il ne faut pas perdre de vue que sur une télé cathodique, l'image sera partiellement coupée sur les bords, donc il ne faut mettre d'éléments critiques pour le gameplay (score, etc.) trop près des bordures.

Share this post


Link to post
Share on other sites
beauregard    0

Je précise que ce post est consacré au jeu 2D, au choix de la résolution, et la transparence pour magnifier les futures productions.

 

Ah oui d'accord, je vois ce que tu veux dire. Cette distinction n'existe pas sur Jaguar. La transparence "simple" (soit un pixel est totalement opaque, soit il est totalement transparent) est supportée, mais pas l'alpha-blending.
j'ai relu la doc concernant les sprites générés par purebasic (en logiciel avec la ram). Il est possible de faire de la transparence, et même de l'alpha blending (!) :

StartSpecialFX()

 

; ici les commande d'affichage des sprites

 

StopSpecialFX()

Mais comme tout est logiciel, peu de pixels sont concernés, sinon ça rame. Et c'est pourquoi il vaut mieux passer par la carte vidéo avec les sprite3D. Le concepteur de ce langage, que j'ai eu l'honneur de rencontrer en 2009, programme en assembleur, et pour arriver à faire de la transparence avec de la mémoire vive, il doit surement faire un calcul pour chaque pixel concerné.

 

Pour la Jaguar, il y a 2 Mo, le Blitter et un DSP. Ces derniers gèrent très rapidement, plus vite que la mémoire encore, les données. Donc techniquement cette console à la capacité de gérer la transparence en hardware, et un petit peu en software (car peu de ram). Je suis sûr qu'un programmeur maitrisant l'assembleur sur ces composants, avec les schémas techniques précis de ces composants (comment sont assemblé les portes logiques)...

 

MC68000 Programmer Manual = 644 pages

BLITTER = 14 pages (pas glop)

DSP = 102 pages (le cerveau caché du Jaguar)

Houston, ici nous avons un problème !

 

...et en faisant un tour sur les sites expliquant comment créer un moteur 3D, pour dénicher la formule mathématique miracle, il sera capable de faire de la transparence hardware.

 

Blitter

En l'état actuel de mes connaissances, tout va dépendre du Blitter. Car contrairement au 68000, il a une position privilégié dans le système Jaguar (voir schéma page 29) :

 

Technical Reference v8.pdf page 65 :

 

entre le Data Register et le LFU and Output Selection --> Data Comparators

 

entre le Adress Register et le Adress Generator --> Adress Comparator

nous avons donc dans notre Blitter, deux unités qui ne sont pas là juste pour faire jolie ;)

Sont-elles aussi présente dans le 68000 ? Non (j'espère ne pas me tromper, l'avis de kuk sera des plus précieux).

A la page 66, ils y a un tableau intéressant :

F02210 A1 step integer part

F02214 A1 step fractional part

 

F0221C A1 increment integer part

F02220 A1 increment fractional part

 

A la page 67, ils y a un autre tableau intéressant :

F02240 Source data, or computed intensity fractional parts

F02248 destination data

 

 

 

 

F02270 Intensity increment :wub:

l'idée est de détourner un peu les fonction 3D (qui peut le plus, peut le moins, comme disais mon prof d'électricité plein de sagesse), couplé au GPU via le Bus Master, les concepteurs de la machine lui ont donné le beau rôle : celui de magnifier le rendu --> transparence

 

http://www.mulle-kybernetik.com/jagdox/blitter.html

You can probably do collision detection on background colors, and transparent blits...

 

 

DSP

Utilisé le DSP uniquement pour la musique est peut être un gâchis monstrueux. Je peux me tromper, mais certains jeux ont des musiques très discrètes, inutile d'utiliser toute la puissance du DSP pour le son.

page 4 : It may also be used for general processing tasks. Cette courte phrase en anglais est très claire : le DSP est le véritable cerveau de la Jaguar ! Et avec ses 8 Ko interne, c'est la fête au village. Le manuel a été construit un peu à l'envers. :wacko:

 

Si le programmeur décide que le 68000 sera le chef d'orchestre de la Jaguar, c'est comme si un programmeur décide que le Z80 sera le chef d'orchestre de la Megadrive... Houston, ici nous avons un problème !

 

Pour le jeu vidéo, la transparence (l'eau, la vapeur, le brouillard) est un avantage visuel certain, surtout face à la génération de consoles qui ont précédés celle de la Jaguar.

 

256x256 on peut, mais seulement en PAL (en NTSC le maximum c'est environ 240). Et il ne faut pas perdre de vue que sur une télé cathodique, l'image sera partiellement coupée sur les bords, donc il ne faut mettre d'éléments critiques pour le gameplay (score, etc.) trop près des bordures.
si ça mord un peu sur les vieilles télévisions japonaises, ce n'est pas très grave.

Share this post


Link to post
Share on other sites
Zerosquare    10

Bon, une petit remise au point s'impose ;)

 

Tu as l'air de mélanger un peu tout.

Sans vouloir te vexer, personnellement ça va bientôt faire 5 ans que je développe sur Jaguar, et certains sur ce forum le font depuis encore plus longtemps. Donc je pense qu'on connaît un peu mieux la machine que toi.

 

Mais comme tout est logiciel, peu de pixels sont concernés, sinon ça rame. Et c'est pourquoi il vaut mieux passer par la carte vidéo avec les sprite3D. Le concepteur de ce langage, que j'ai eu l'honneur de rencontrer en 2009, programme en assembleur, et pour arriver à faire de la transparence avec de la mémoire vive, il doit surement faire un calcul pour chaque pixel concerné.
Oui, mais l'alpha-blending logiciel n'a rien de compliqué, la formule de base est simple.

 

Pour la Jaguar, il y a 2 Mo, le Blitter et un DSP. Ces derniers gèrent très rapidement, plus vite que la mémoire encore, les données. Donc techniquement cette console à la capacité de gérer la transparence en hardware, et un petit peu en software (car peu de ram). Je suis sûr qu'un programmeur maitrisant l'assembleur sur ces composants, avec les schémas techniques précis de ces composants (comment sont assemblé les portes logiques)...
Désolé mais ça ne veut rien dire. Il n'y a pas d'alpha-blending hardware, point. C'est faisable en software, mais au prix d'un usage intensif du GPU. De plus la distinction sprite software / sprite hardware dont tu parlais plus haut n'a pas cours sur la Jaguar, qui a une architecture mémoire unifiée (il n'y a pas de mémoire vidéo dédiée).

 

en faisant un tour sur les sites expliquant comment créer un moteur 3D, pour dénicher la formule mathématique miracle, il sera capable de faire de la transparence hardware.
La transparence n'a aucun rapport avec la 3D, la formule mathématique est simple, et ce n'est pas gérable en hardware.

 

En l'état actuel de mes connaissances, tout va dépendre du Blitter. Car contrairement au 68000, il a une position privilégié dans le système Jaguar (voir schéma page 29) :

 

Technical Reference v8.pdf page 65 :

 

nous avons donc dans notre Blitter, deux unités qui ne sont pas là juste pour faire jolie ;)

Merci, mais nous aussi on a lu la doc ;)

 

Sont-elles aussi présente dans le 68000 ? Non (j'espère ne pas me tromper, l'avis de kuk sera des plus précieux).
Primo ça ne veut rien dire, deuxio Kuk n'est absolument pas programmeur, contrairement à un certain nombre d'entre nous.

 

A la page 66, ils y a un tableau intéressant :

F02210 A1 step integer part

F02214 A1 step fractional part

 

F0221C A1 increment integer part

F02220 A1 increment fractional part

Ça concerne les zooms et rotations ça, aucun rapport avec la transparence.

 

l'idée est de détourner un peu les fonction 3D (qui peut le plus, peut le moins, comme disais mon prof d'électricité plein de sagesse), couplé au GPU via le Bus Master, les concepteurs de la machine lui ont donné le beau rôle : celui de magnifier le rendu --> transparence
C'est-à-dire ? Parce que là c'est très vague, je ne vois pas comment tu comptes faire.

 

http://www.mulle-kybernetik.com/jagdox/blitter.html

You can probably do collision detection on background colors, and transparent blits...

C'est de la transparence "simple" (on/off) qu'il s'agit ici, pas d'alpha-blending.

Share this post


Link to post
Share on other sites
beauregard    0

Sûr que vous avez la maitrise de la machine, et je suis admiratif de votre travail, je vais essayer d'être plus précis à l'avenir.

pas d'alpha-blending

L'Alpha Blendind permet de faire varier en transparence une image, et j'ai bien compris que la Jaguar ne peut pas le faire. En fait j'évoquais dans mon précédent post la transparence uniforme (il est vrai que j'aurai du précisé ma pensée, désolé).

 

 

 

Share this post


Link to post
Share on other sites
Zerosquare    10

Transparence uniforme, tu veux dire soit 0%, soit 100%, comme les fichiers GIF ?

Si oui, pas besoin de bricoler pour ça : c'est supporté en hardware, il y a un bit à activer dans la description du sprite pour rendre la couleur n°0 transparente.

 

Share this post


Link to post
Share on other sites
DSP

Utilisé le DSP uniquement pour la musique est peut être un gâchis monstrueux. Je peux me tromper, mais certains jeux ont des musiques très discrètes, inutile d'utiliser toute la puissance du DSP pour le son.

page 4 : It may also be used for general processing tasks. Cette courte phrase en anglais est très claire : le DSP est le véritable cerveau de la Jaguar ! Et avec ses 8 Ko interne, c'est la fête au village. Le manuel a été construit un peu à l'envers. :wacko:

 

Err, no. The DSP is crippled by it's 16-bit access to RAM. DSP<>RAM use saturates the bus killing the bandwitch for the other processors.

 

Share this post


Link to post
Share on other sites
Matmook    1
Transparence uniforme, tu veux dire soit 0%, soit 100%, comme les fichiers GIF ?

Si oui, pas besoin de bricoler pour ça : c'est supporté en hardware, il y a un bit à activer dans la description du sprite pour rendre la couleur n°0 transparente.

 

Il y a bien moyen de faire de la "semi-transparence" avec le mode vidéo CRY et le bit RMW mais ça oblige à utiliser un sprite en plus pour faire le calque et ce n'est pas super facile à réaliser (faut faire une tartine de tests avant d'obtenir un résultat intéressant) et de plus, ça dépend énormément du sprite de fond d'écran (il y a a risque de saturation des couleurs ...).

 

Exemple :

screen05.jpg

 

Share this post


Link to post
Share on other sites
GT Turbo    3

Just a little note, please use english. French is a special langage to understood and Google translation is not a very good thing, some people can't understood your posts.

 

Thanks

 

 

GT :poulpe:

Share this post


Link to post
Share on other sites
kuk    0
Désolé mais ça ne veut rien dire. Il n'y a pas d'alpha-blending hardware, point. C'est faisable en software, mais au prix d'un usage intensif du GPU. De plus la distinction sprite software / sprite hardware dont tu parlais plus haut n'a pas cours sur la Jaguar, qui a une architecture mémoire unifiée (il n'y a pas de mémoire vidéo dédiée).

 

C'est marant mais justement sur NeoGeo (CD) il y a 512Ko pour la video (et 2 Mo pour la ram dynamique)...

 

 

Primo ça ne veut rien dire, deuxio Kuk n'est absolument pas programmeur, contrairement à un certain nombre d'entre nous.

 

Dommage colateral, j'ai rien dis moi :o

Share this post


Link to post
Share on other sites
beauregard    0
Il y a bien moyen de faire de la "semi-transparence" avec le mode vidéo CRY et le bit RMW mais ça oblige à utiliser un sprite en plus pour faire le calque et ce n'est pas super facile à réaliser (faut faire une tartine de tests avant d'obtenir un résultat intéressant) et de plus, ça dépend énormément du sprite de fond d'écran (il y a a risque de saturation des couleurs ...).
semi-transparence : Voilà le terme exacte que je cherchais...

J'ai la mémoir' qui flanche

J'me souviens plus très bien... :whistling:

La Jaguar est donc capable de faire de la semi-transparence, nous voilà enfin sortie de la 4ème dimension. ;)

Pour la tartine de tests, c'est normal je pense, quel que soit la machine ou le software utilisé, beaucoup de tests doivent être faits. ^_^

 

Share this post


Link to post
Share on other sites
Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoticons maximum are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×