Page 1 sur 2

http download des assets et compatibilité OS

Publié : mar. 14/juil./2020 12:54
par falsam
Avec ce code de test, je charge les éléments d'une scene depuis un serveur. Chez moi le temps de download est immédiat. Tous le monde n'ayant pas la fibre, j'aimerais faire un test.

:arrow: Pouvez vous lancer ce code et me dire combien de temps il vous faut pour charger ces quelques éléments.

:arrow: J'aurais besoin aussi de savoir si ce code fonctionne sous Mac OS et Linux.

Code : Tout sélectionner

; Credit : https://www.musicscreen.be/musique-libre-de-droit-ambiances1.html
EnableExplicit

Global camera

Global Texture, Material, Mesh
Global Ground, Player, PlayerSpeed, CurrentAnimation.s

Global SoundLoop

Global Bottom

Global Assets.s = GetUserDirectory(#PB_Directory_Downloads)
Global Url.s = "http://falsam.com/Download/"

Global StartTime.q

; Sommaire
Declare Start()
Declare DownLoad(Url.s)
Declare Exit()


; Download des assets

StartTime = ElapsedMilliseconds()
DownLoad(Url + "sound/fluid.ogg")
DownLoad(Url + "textures/terrain/gras2_512.png")
Download(Url + "textures/sky/Evening.zip")
DownLoad(Url + "packs/Sinbad.zip") 

Debug "Délai de download " + Str(ElapsedMilliseconds() - StartTime) + " Milliseconde(s)"

Start()

Procedure Start()
  
  ; Initialisation de l'environnemet 3D
  If Not (InitEngine3D(#PB_Engine3D_DebugLog) And InitKeyboard() And InitSprite())
    MessageRequester("Information", "Impossible d'initialiser l'environnement 3D")
    Exit()
  EndIf
  
  ; Window & Screen 3D
  ExamineDesktops()
  OpenScreen(DesktopWidth(0), DesktopHeight(0), 32, "")
  KeyboardMode(#PB_Keyboard_International | #PB_Keyboard_AllowSystemKeys)
  EnableWorldPhysics(#True)  
  
  ; Localisation des elements 3D
  Add3DArchive(Assets, #PB_3DArchive_FileSystem)
  Add3DArchive(Assets + "Sinbad.zip", #PB_3DArchive_Zip)
  Add3DArchive(Assets + "Evening.zip", #PB_3DArchive_Zip)
  Parse3DScripts()
  
  EnableWorldPhysics(#True) 
  WorldGravity(-20)
  
  KeyboardMode(#PB_Keyboard_International | #PB_Keyboard_AllowSystemKeys)
  
  
  Bottom = CreateSprite(-1, ScreenWidth(), 150, #PB_Sprite_AlphaBlending)
  
  ; Light
  SkyBox("evening.jpg"); , RGB(255, 255, 255), 1, 900, 6000)
  CreateLight(#PB_Any,RGB(255, 218, 185), -10000, 1000, 10000)
  WorldShadows(#PB_Shadow_Additive)
  
  ; Camera
  camera = CreateCamera(#PB_Any, 0, 0, 100, 100)
  MoveCamera(camera, 0, 10, 40)
  CameraLookAt(camera, 0, 0, 0)
  
  SoundLoop = LoadSound3D(#PB_Any, "fluid.ogg")
  PlaySound3D(SoundLoop, #PB_Sound3D_Loop)
  
  ;- Entités
  Texture   = LoadTexture(-1, "gras2_512.png")
  Material  = CreateMaterial(-1, TextureID(Texture))
  Mesh      = CreatePlane(-1, 10000, 10000, 100, 100, 30, 30)
  Ground    = CreateEntity(-1, MeshID(Mesh), MaterialID(Material))
  CreateEntityBody(Ground, #PB_Entity_StaticBody, 1, 0, 1)
  
  Mesh = LoadMesh(#PB_Any, "sinbad.mesh")
  Player = CreateEntity(-1, MeshID(Mesh), #PB_Material_None, 0, 170, 0)
  ScaleEntity(Player, 25, 25, 25)
  CreateEntityBody(Player, #PB_Entity_ConvexHullBody, 200, 1, 500)
  EntityAngularFactor(Player, 0, 1, 0)
  
  ; Render
  Repeat 
    ExamineKeyboard() 
    
    ;-keyboard events : Distance and move
    If KeyboardPushed (#PB_Key_Up)
      PlayerSpeed = 300
      CurrentAnimation = "RunBase"
    ElseIf KeyboardPushed (#PB_Key_Down)
      PlayerSpeed = -300
      CurrentAnimation = "RunBase"
    Else
      CurrentAnimation = "IdleTop"
      PlayerSpeed = 0
    EndIf
    
    ;-keyboard events : Rotation around player and turn
    If KeyboardPushed (#PB_Key_Left)
      RotateEntity(Player, 0, 3, 0, #PB_Relative)
      CurrentAnimation = "RunBase"
    ElseIf KeyboardPushed (#PB_Key_Right)
      RotateEntity(Player, 0, -3, 0, #PB_Relative)
      CurrentAnimation = "RunBase"
    EndIf   
    
    If PlayerSpeed
      DisableEntityBody(Player, #False) ; Wake up entity (BugWare)
      MoveEntity(Player, 0, 0, PlayerSpeed, #PB_Absolute|#PB_Local)
    EndIf
    
    ;Play animation
    If EntityAnimationStatus(Player, CurrentAnimation) = #PB_EntityAnimation_Stopped
      StartEntityAnimation(Player, CurrentAnimation)
    EndIf
    
    CameraFollow(Camera, EntityID(Player), 180, EntityY(Player) + 100, 500, 1, #True)
    
    RenderWorld(60)
    FlipBuffers()
  Until KeyboardPushed(#PB_Key_Escape)
EndProcedure

Procedure DownLoad(Url.s)  
  Protected FileName.s = GetFilePart(Url)
  Protected StartTime = ElapsedMilliseconds()
  Protected Result
  
  Debug "Chargement de " + FileName + " en cours ..."
  Result =  ReceiveHTTPFile(Url, Assets + GetFilePart(Url))
  If Result
    Debug "Temps de chargement " + Str(ElapsedMilliseconds() - StartTime) + " milliseconde(s) " + #CRLF$
  Else 
    Debug url + " is not download"
    Exit()
  EndIf  
EndProcedure

Procedure Exit()
  End  
EndProcedure
:idea: Utiliser les flèches de votre clavier pour déplacer Sinbad. Esc fin de l'exécution.

Re: http download des assets et compatibilité OS

Publié : mar. 14/juil./2020 14:25
par falsam
Chez moi
Chargement de fluid.ogg en cours ...
Temps de chargement 506 milliseconde(s)

Chargement de gras2_512.png en cours ...
Temps de chargement 164 milliseconde(s)

Chargement de Evening.zip en cours ...
Temps de chargement 136 milliseconde(s)

Chargement de Sinbad.zip en cours ...
Temps de chargement 264 milliseconde(s)

Délai de download 1070 Milliseconde(s)
Windows 10 - Fibre à terminaison cuivre (FTTLA)

Re: http download des assets et compatibilité OS

Publié : mar. 14/juil./2020 15:07
par Micoute
Bonjour falsam,

chez moi, par rapport à chez toi, les temps sont doublés.

Chargement de fluid.ogg en cours ...
Temps de chargement 1163 milliseconde(s)

Chargement de gras2_512.png en cours ...
Temps de chargement 363 milliseconde(s)

Chargement de Evening.zip en cours ...
Temps de chargement 213 milliseconde(s)

Chargement de Sinbad.zip en cours ...
Temps de chargement 465 milliseconde(s)

Délai de download 2204 Milliseconde(s)

Re: http download des assets et compatibilité OS

Publié : mar. 14/juil./2020 15:15
par falsam
Merci Micoute. L'affichage est correcte ? le son fonctionne ?

Suite a des observations sur Discord, j'ai modifié le code de manière à ce que ca fonctionne sous Linux (Du moins j’espère).
- Si Linux inutile d'utiliser OpenGL
- #PB_Window_Maximize ne fonctionnant pas correctement sous Linux, la dimension maximale de l'OpenScreen() est donnée par ExamineDesktop()

Re: http download des assets et compatibilité OS

Publié : mar. 14/juil./2020 15:34
par SPH
Avec la fibre 200mbps et win64 :
Chargement de fluid.ogg en cours ...
Temps de chargement 1023 milliseconde(s)

Chargement de gras2_512.png en cours ...
Temps de chargement 260 milliseconde(s)

Chargement de Evening.zip en cours ...
Temps de chargement 191 milliseconde(s)

Chargement de Sinbad.zip en cours ...
Temps de chargement 409 milliseconde(s)

Délai de download 1884 Milliseconde(s)

Re: http download des assets et compatibilité OS

Publié : mar. 14/juil./2020 16:05
par falsam
@SPH. Merci pour ton test. L'affichage et le son fonctionnent ?

Re: http download des assets et compatibilité OS

Publié : mar. 14/juil./2020 16:12
par SPH
falsam a écrit :@SPH. Merci pour ton test. L'affichage et le son fonctionnent ?
Tout fonctionne 8)

Re: http download des assets et compatibilité OS

Publié : mar. 14/juil./2020 17:16
par GallyHC
pour ma part

Code : Tout sélectionner

Chargement de fluid.ogg en cours ...
Temps de chargement 595 milliseconde(s) 

Chargement de gras2_512.png en cours ...
Temps de chargement 264 milliseconde(s) 

Chargement de Evening.zip en cours ...
Temps de chargement 183 milliseconde(s) 

Chargement de Sinbad.zip en cours ...
Temps de chargement 318 milliseconde(s) 

Délai de download 1360 Milliseconde(s)
Cordialement,
GallyHC

Re: http download des assets et compatibilité OS

Publié : mer. 15/juil./2020 11:07
par Patrick88
windows 10 - 4g SFR - 23 Mb/s download

Chargement de fluid.ogg en cours ...
Temps de chargement 2341 milliseconde(s)

Chargement de gras2_512.png en cours ...
Temps de chargement 671 milliseconde(s)

Chargement de Evening.zip en cours ...
Temps de chargement 344 milliseconde(s)

Chargement de Sinbad.zip en cours ...
Temps de chargement 981 milliseconde(s)

Délai de download 4337 Milliseconde(s)

Pat

Re: http download des assets et compatibilité OS

Publié : mer. 15/juil./2020 12:35
par Mindphazer

Code : Tout sélectionner

Chargement de fluid.ogg en cours ...
Temps de chargement 1863 milliseconde(s) 

Chargement de gras2_512.png en cours ...
Temps de chargement 264 milliseconde(s) 

Chargement de Evening.zip en cours ...
Temps de chargement 156 milliseconde(s) 

Chargement de Sinbad.zip en cours ...
Temps de chargement 505 milliseconde(s) 

Délai de download 2788 Milliseconde(s)
Par contre, sur Mac OS, le chargement du son ne fonctionne pas (Loadsound3D), mais c'est pas ta faute.
J'ai un message d'erreur furtif pour un composant obsolète, je pense que PB utilise une librairie obsolète sur la dernière version de MacOS.

En commentant les 2 lignes, ça fonctionne impecc

Re: http download des assets et compatibilité OS

Publié : mer. 15/juil./2020 16:40
par Ollivier
Etant dépourvu de ce type de connexion jusqu'à présent, j'ai un délai de téléchargement infini.

Re: http download des assets et compatibilité OS

Publié : mer. 15/juil./2020 17:26
par Patrick88
Mindphazer a écrit :le chargement du son ne fonctionne pas (Loadsound3D), mais c'est pas ta faute.
pareil sur MacOS 10.13.6 High Sierra

Pat

Re: http download des assets et compatibilité OS

Publié : mer. 15/juil./2020 17:46
par Guillot
Chargement de fluid.ogg en cours ...
Temps de chargement 3935 milliseconde(s)

Chargement de gras2_512.png en cours ...
Temps de chargement 452 milliseconde(s)

Chargement de Evening.zip en cours ...
Temps de chargement 249 milliseconde(s)

Chargement de Sinbad.zip en cours ...
Temps de chargement 1098 milliseconde(s)

Délai de download 5734 Milliseconde(s)



tout marche

Re: http download des assets et compatibilité OS

Publié : ven. 17/juil./2020 8:12
par Micoute
Oui falsam, tout fonctionne.

Re: http download des assets et compatibilité OS

Publié : sam. 25/févr./2023 16:22
par falsam
Hello je relance ce sujet. Pouvez vous tester à nouveau le code du premier message avec PB 6.0 uniquement et poster vos temps de chargements des différents éléments.

Voici les miens.
Chargement de fluid.ogg en cours ...
Temps de chargement 516 milliseconde(s)

Chargement de gras2_512.png en cours ...
Temps de chargement 261 milliseconde(s)

Chargement de Evening.zip en cours ...
Temps de chargement 162 milliseconde(s)

Chargement de Sinbad.zip en cours ...
Temps de chargement 318 milliseconde(s)

Délai de download 1257 Milliseconde(s)
Pas de Delta Time dans ce code. On ne crie pas :mrgreen: