Page 1 sur 2

COSMOS THE SECRET MELODY

Publié : jeu. 05/mars/2020 23:10
par drfloyd
Voilà, j'ai débuté le remake de mon jeu COSMOS CHRONICLES, maintenant que j'ai acheté la licence !

Je vous tiendrai au courant de l'évolution du jeu ! C'est le premier jeu procédural qui simule l'univers dans son entier.

MAJ du 18/04/2020
j'en suis a 13% de développement

Image

Image

Re: COSMOS THE SECRET MELODY

Publié : ven. 06/mars/2020 7:45
par SPH
Ca fait tres annees 80 mais ca peut etre cool si le scénario tiens la route 8)

Re: COSMOS THE SECRET MELODY

Publié : ven. 06/mars/2020 20:02
par case
ca a l'air cool :)

Re: COSMOS THE SECRET MELODY

Publié : ven. 06/mars/2020 20:18
par Ollivier
Rien que le visu donne à t'encourager. Bon courage dans ton travail.

Re: COSMOS THE SECRET MELODY

Publié : lun. 09/mars/2020 18:42
par Fig
Je ne connais pas le jeu original, je vais aller voir.
En tout cas bravo 8O
La question est de savoir si c'est juste un visuel ou est ce que c'est déjà fonctionnel ? :?:

Re: COSMOS THE SECRET MELODY

Publié : mar. 10/mars/2020 13:41
par Zorro
@Fig , DrFloyd est un vrais codeur Basic a l'ancienne
il a deja un prg qui tourne ... il est coutumier du fait, il code depuis tres longtemp en Basic :)

je lui ai permis de voir que le Purebasic etait un bon langage , il a accroché, c'est cool
plus il va coder avec, plus il va kiffer ....

le seul probleme, c'est qu'il viens de tomber dans un piege
car il ne pourra plus changer de langage maintenant :lol:

DrFloyd a son propre Site et Forum , plutot orienté ancien jeux,anciennes machine (consoles compris ) tres intéressant a lire
si ce n'est quelques membres un poil lourding , mais c'est pas de sa faute :mrgreen:

ps: il a fait un article sur notre MajickEric ;) qui nous avait bien caché son identité , le coquin :)
https://www.purebasic.fr/french/viewtop ... ic#p205437
et dont la photo apparait meme dans le bandeau du forum de notre ami DrFloyd
Image



voir ici :
https://www.gamopat-forum.com/

Re: COSMOS THE SECRET MELODY

Publié : ven. 13/mars/2020 22:26
par drfloyd
ahah merci Zorro ;) Tu nous manque sur Gamopat ! Et merci aux autres pour le soutiens !

Le plus compliqué je pense c'est d'accrocher... quand on le decouvre comme ça, franchement le Pure basic n'inspire pas confiance :) Mais une fois dedans, whaouuu... Ce langage cache bien son jeu... Sans Zorro j'aurai lâché.

J'ai seulement un peu galèré au départ avec le paramétrage du mode fenetré plein ecran et/ou fullscreen.... Pure ne facilite pas le boulot pour ça. Pour l'instant le jeu est en 640x400 mode windows (fenetre plein ecran)... mais ce n'est pas du pixel perfect du coup, j'ai envie de passer vrai fullscreen pour la version finale mais je crois que 640x400 n'est pas une definition native ?

Je code effectivement à l'ancienne, à l'instinct :lol: Je pense avoir de bons concepts, car mes 2 jeux précédents COSMOS ont été adapté sur Atari ST et ont tous deux gagné des prix dans des conventions rétro.

Pour répondre à la question : oui ca tourne, c'est fonctionnel (jeu à la souris et clavier, et 5 ecrans fonctionnels)... je bosse un peu chaque semaine dessus.

Je vous posterai des screenshots de l'évolution du développement

Re: COSMOS THE SECRET MELODY

Publié : dim. 19/avr./2020 14:14
par drfloyd
nouvelles images du jeu :

Image

Image

Image

Re: COSMOS THE SECRET MELODY

Publié : dim. 19/avr./2020 17:17
par MLD
Merci vivement la fin :lol:

Re: COSMOS THE SECRET MELODY

Publié : mer. 06/mai/2020 21:32
par drfloyd
ca avance, mais j'ai une question technique :

Un sprite, comment l'inverser en mode miroir horizontal ? Il n'y a pas de commande pour ça.

Ca doit etre avec Transformsprite... mais je ne trouve pas les parametres a indiquer... c'est un chaud à maitriser cette commande pour moi.

Image

Re: COSMOS THE SECRET MELODY

Publié : mer. 06/mai/2020 22:46
par Ar-S
Il ni a pas de commande pour cela effectivement.
Donc soit tu mets plus images dans tes spritessheets, soit tu peux essayer cette solution (non testé).
https://www.purebasic.fr/english/viewto ... 13&t=16501
et ici
viewtopic.php?f=1&t=1352&view=next

Re: COSMOS THE SECRET MELODY

Publié : jeu. 07/mai/2020 0:08
par Ollivier

Code : Tout sélectionner

Procedure SpriteHorizontalFlip(N.I)

 Structure DWORD
  L.L[1 << 14]
 EndStructure

 Define.I W = SpriteWidth(N), X, Y
 If StartDrawing(SpriteOutput(N) )
  Define *A.DWORD = DrawingBuffer()
  For Y = 0 To (SpriteHeight(N) - 1)
   For X = 0 To (W >> 1 - 1)
    Swap *A\L[X], *A\L[W - X - 1]
   Next
   *A + DrawingBufferPitch()
  Next
  StopDrawing()
 EndIf
EndProcedure

Re: COSMOS THE SECRET MELODY

Publié : jeu. 07/mai/2020 13:11
par Ar-S
Très cool Ollivier.

Mise en pratique dans l'exemple PB sur openswindowedscreen()

Code : Tout sélectionner

Declare SpriteHorizontalFlip(N.I)


If InitSprite() = 0
    MessageRequester("Erreur", "Impossible d'ouvrir l'écran & l'environnement nécessaire aux sprites !", 0)
    End
  EndIf
  
  If OpenWindow(0, 0, 0, 220, 160, "Un écran dans une fenêtre...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ButtonGadget(0, 170, 135, 45, 20, "Quitter")

    If OpenWindowedScreen(WindowID(0), 0, 0, 160, 160)
      CreateSprite(0, 40, 40)
      If StartDrawing(SpriteOutput(0))
        Box(0, 0, 20, 20, #Red)
        Box(20, 0, 20, 20, #Yellow)
        StopDrawing()
      EndIf
    Else
      MessageRequester("Erreur", "Impossible d'ouvrir un écran dans la fenêtre!", 0)
      End
    EndIf
  EndIf
  
  direction = 2
  Repeat
    ; Il est très important de traiter tous les évènements restants dans la file d'attente à chaque tour
    ;
    Repeat
      Event = WindowEvent()
      
      Select Event 
        Case #PB_Event_Gadget
          If EventGadget() = 0
            End
          EndIf
        
        Case #PB_Event_CloseWindow
          End 
      EndSelect
    Until Event = 0
  
    FlipBuffers() 
    ClearScreen(RGB(0, 0, 0))
    DisplaySprite(0, x, x)
    x + direction
    If x > 120 : SpriteHorizontalFlip(0) : direction = -2 : EndIf
    If x < 0   : SpriteHorizontalFlip(0) : direction =  2 : EndIf
    Delay(1)
  ForEver
  
  
  
  
  
  Procedure SpriteHorizontalFlip(N.I)
; Ollivier
Structure DWORD
  L.L[1 << 14]
EndStructure

Define.I W = SpriteWidth(N), X, Y
If StartDrawing(SpriteOutput(N) )
  Define *A.DWORD = DrawingBuffer()
  For Y = 0 To (SpriteHeight(N) - 1)
   For X = 0 To (W >> 1 - 1)
    Swap *A\L[X], *A\L[W - X - 1]
   Next
   *A + DrawingBufferPitch()
  Next
  StopDrawing()
EndIf
EndProcedure

Re: COSMOS THE SECRET MELODY

Publié : jeu. 07/mai/2020 15:43
par drfloyd
merci pour vos réponses

c'est un peu lourd

je pensais qu'une simple commande genre :

TransformSprite(0,1,1,100,0,1,100,0,100)

suffirait

Non ?

Re: COSMOS THE SECRET MELODY

Publié : jeu. 07/mai/2020 17:12
par Ollivier
Non, elle permet de faire de la 3D et d'éviter le calcul de l'état de la face : cachée ou pas. Si tu sais le faire de tête, t'es un bon en méca (c'est un torseur), mais pas en optimisation puisque tu dois calculer chaque face à chaque frame d'affichage.

Là, TransformSprite() t'épargne ce travail et charge le GPU de faire le calcul donc ton CPU pionce pendant que ça s'affiche.

Le flip horizontal (ou vertical, même constatation) se calcule avant l'affichage, une bonne fois pour toute, donc, pareil, pas de perte de temps.

Il ne faut pas oublier que TransformSprite(), c'est déjà jusqu'à 10 paramètres donc rajouter l'option de face cachée optionnelle, ça aurait fait fuir d'autres survivants !