Page 1 sur 1

Projet Jeu Dungeon Keeper 3

Publié : mar. 15/nov./2011 13:26
par Atlante
Bonjour,

Je suis un grand fan de Dungeon Keeper (bullfrog 97-99), ce jeu est en abandonware et cela fait plus de dix ans que l'on attend le 3 et rien.
Je souhaiterai donc créer le 3 non officiel afin de reunir une communauté autour et pourquoi pas être l'élément déclencheur. On a le droit de rêver ^^

Maintenant que PB s'est doté d'une 3d abordable, je me sens tout à fait capable de reussir.
Mais il y a quelques points que je souhaiterai aborder avec vous afin d'avoir vos retours :

Les couches du jeu :

; MAP 200 *200
;
; Couche 0 : terrain (afin de pas mettre l'eau dans du vide par exemple)
; Couche 1 : terre, eau, lave
; Couche 2 : sol ( neutre, couleur d'une faction)
; Couche 3 : Murs, gisements, salles, pieges, portes ...
; Couche 4 : objets (ors, pieges à poser, livres de sorts, bonus)
; Couche 5 : personnages
; Couche 6 : Lumières, effets 3d

Je vais utiliser les listes avec des structures.

-----------------------------------------------------------------------------
Petite question :
Quelle taille me conseillez vous pour les planes :?
X=2 Y=3 Z =2
Je n'ai pas envie de créer un monde taille fourmiz ;)

------------------------------------------------------------------------------
Ce que je sais faire :
- Mettre une texture differente sur chaque face d'un cube par exemple. (merci comtois)

ce que je pense savoir faire :
- IA (j'ai des idées)

Ce que je ne sais pas faire :

- Créer l'image pour le terrain ( il faut que le terrain soit plat partout sauf où il y a de l'eau et de la lave).
- Les shaders (pas important pour le moment)


-----------------------------------------------------------------------------

Donc ce projet est abordable, il faut que je me concentre sur un éditeur de map.
Je suis en attente de vos retours avant de me lancer tête baissée.

Cordialement.
Atlante

Re: Projet Jeu Dungeon Keeper 3

Publié : mar. 15/nov./2011 13:33
par Ar-S
Je suis pas du tout doué pour la programmation de jeu (et pour la 2D/3D en générale). D'autres pourront te conseiller mieux que moi.
Mais je suis près à t'aider dans d'autres domaines (interface, bruitages...) car je suis un ultrafan des prods Bulfrog (je joue encore a Dungeon Keeper 2 sur pc et que de souvenirs avec des perles comme syndicate à l'époque sur Amiga).
Donc n'hésite pas.

Re: Projet Jeu Dungeon Keeper 3

Publié : mer. 16/nov./2011 19:37
par Atlante
merci Ar-S ;)
Je te tiens au courant.

Bon personne pour me dire si mes couches sont cohérentes.

Et j'aurai besoin d'aide sur ces deux points, car je commence l'éditeur de carte :
- Mettre une texture differente sur chaque face d'un cube par exemple.
- Créer l'image pour le terrain ( il faut que le terrain soit plat partout sauf où il y a de l'eau et de la lave).
Merci

Re: Projet Jeu Dungeon Keeper 3

Publié : mer. 16/nov./2011 21:36
par comtois
voila un exemple pour le cube , ou alors tu utilises un éditeur 3D.

Code : Tout sélectionner

#CameraSpeed = 5

IncludeFile "Screen3DRequester.pb"

Define.f KeyX, KeyY, MouseX, MouseY

Define.f x, y, z, nx, ny, nz, u, v
Define.l Co
Define.w t1, t2, t3

If InitEngine3D()
  
  Add3DArchive("Data/Textures", #PB_3DArchive_FileSystem)
  
  InitSprite()
  InitKeyboard()
  InitMouse()
  
  If Screen3DRequester()
    
   
    
    CreateMesh(0)
    
    Restore Cube
    For k=0 To 5
      
      AddSubMesh()
      For i = 0 To 3
        Read.f  x : Read.f  y : Read.f  z
        Read.f nx : Read.f ny : Read.f nz 
        Read.l Co : Co = $FFFFFF
        Read.f u : Read.f v
        AddMeshVertex(x, y, z)
        MeshVertexNormal(nx, ny, nz) 
        MeshVertexColor(Co)
        MeshVertexTextureCoordinate(u, v)
      Next i

      AddMeshFace(2, 1, 0)
      AddMeshFace(3, 2, 0)      

    Next
    
    FinishMesh()
    NormalizeMesh(0) 
        
    UpdateMeshBoundingBox(0)
    
    For i = 0 To 5
      CreateTexture(i, 256, 256)
      StartDrawing(TextureOutput(i))
      Box(0, 0, 256, 256, Random($FFFFFF))
      StopDrawing()
      CreateMaterial(i, TextureID(i))
      ;MaterialAmbientColor(i, #PB_Material_AmbientColors)
    Next
        
    For i = 0 To 5
      SetMeshMaterial(0, MaterialID(i), i)
    Next 
  
    CreateEntity(0, MeshID(0), #PB_Material_None)
    ScaleEntity(0, 140, 140, 140)
    
    CreateCamera(0, 0, 0, 100, 100)
    CameraLocate(0, 0, 0, 1000)
    
    CreateLight(0, RGB(255,255,255), 300, 600, 100)
    AmbientColor(RGB(80, 80, 80))
    
    Repeat
      Screen3DEvents()
      
      If ExamineKeyboard()
        
        If KeyboardPushed(#PB_Key_Left)
          KeyX = -#CameraSpeed 
        ElseIf KeyboardPushed(#PB_Key_Right)
          KeyX = #CameraSpeed 
        Else
          KeyX = 0
        EndIf
        
        If KeyboardPushed(#PB_Key_Up)
          KeyY = -#CameraSpeed 
        ElseIf KeyboardPushed(#PB_Key_Down)
          KeyY = #CameraSpeed 
        Else
          KeyY = 0
        EndIf
        
      EndIf
      
      If ExamineMouse()
        MouseX = -(MouseDeltaX()/10)*#CameraSpeed/2
        MouseY = -(MouseDeltaY()/10)*#CameraSpeed/2
      EndIf
      
      RotateEntity(0, 1, 1, 1, #PB_Relative)
      
      RotateCamera(0, MouseY, MouseX, RollZ, #PB_Relative)
      MoveCamera  (0, KeyX, 0, KeyY)
      
      RenderWorld()
      Screen3DStats()      
      FlipBuffers()
    Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
  EndIf
  
Else
  MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf

End

DataSection
Cube:  
;Dessus 0 à 3
Data.f -0.5,0.5,-0.5
Data.f 0,1,0
Data.l 0
Data.f 0,0

Data.f 0.5,0.5,-0.5
Data.f 0,1,0
Data.l 0
Data.f 0,1

Data.f 0.5,0.5,0.5
Data.f 0,1,0
Data.l 0
Data.f 1,1

Data.f -0.5,0.5,0.5
Data.f 0,1,0
Data.l 0
Data.f 1,0

;Dessous 4 à 7
Data.f -0.5,-0.5,0.5
Data.f 0,-1,0
Data.l 0
Data.f 0,0

Data.f 0.5,-0.5,0.5
Data.f 0,-1,0
Data.l 0
Data.f 0,1

Data.f 0.5,-0.5,-0.5
Data.f 0,-1,0
Data.l 0
Data.f 1,1

Data.f -0.5,-0.5,-0.5
Data.f 0,-1,0
Data.l 0
Data.f 1,0

;Devant 8 à 11
Data.f -0.5,0.5,0.5
Data.f 0,0,1
Data.l 0
Data.f 0,0

Data.f 0.5,0.5,0.5
Data.f 0,0,1
Data.l 0
Data.f 0,1

Data.f 0.5,-0.5,0.5
Data.f 0,0,1
Data.l 0
Data.f 1,1

Data.f -0.5,-0.5,0.5
Data.f 0,0,1
Data.l 0
Data.f 1,0

;Derrière 12 à 15
Data.f 0.5,0.5,-0.5
Data.f 0,0,-1
Data.l 0
Data.f 0,0

Data.f -0.5,0.5,-0.5
Data.f 0,0,-1
Data.l 0
Data.f 0,1

Data.f -0.5,-0.5,-0.5
Data.f 0,0,-1
Data.l 0
Data.f 1,1

Data.f 0.5,-0.5,-0.5
Data.f 0,0,-1
Data.l 0
Data.f 1,0

;Cote gauche 16 à 19
Data.f -0.5,0.5,-0.5
Data.f -1,0,0
Data.l 0
Data.f 0,0

Data.f -0.5,0.5,0.5
Data.f -1,0,0
Data.l 0
Data.f 0,1

Data.f -0.5,-0.5,0.5
Data.f -1,0,0
Data.l 0
Data.f 1,1

Data.f -0.5,-0.5,-0.5
Data.f -1,0,0
Data.l 0
Data.f 1,0

;Cote droit 20 à 23
Data.f 0.5,0.5,0.5
Data.f 1,0,0
Data.l 0
Data.f 0,0

Data.f 0.5,0.5,-0.5
Data.f 1,0,0
Data.l 0
Data.f 0,1

Data.f 0.5,-0.5,-0.5
Data.f 1,0,0
Data.l 0
Data.f 1,1

Data.f 0.5,-0.5,0.5
Data.f 1,0,0
Data.l 0
Data.f 1,0
EndDataSection

Re: Projet Jeu Dungeon Keeper 3

Publié : dim. 20/nov./2011 19:01
par Atlante
Merci comtois ;)
Super ce code.

Re: Projet Jeu Dungeon Keeper 3

Publié : lun. 21/nov./2011 14:26
par blendman
Je ne connais pas Dungeon keeper, donc difficile de voir ce que tu veux faire :).

Mais sinon, l'IA ne me semble pas le plus compliqué, il faut juste créer une structure d'ennemi adéquate, avec par exemple un type pour les ennemis, ou créer plusieurs structures, au choix (1 par type d'ennemi par exemple).

Concernant les shaders, il y a un manque au niveau des exemples.
On peut voir comment faire un shader de type métal (avec envmap), mais c'est tout.
Par contre, il y a quelques codes qui fonctionnent sur cette rubrique-ci, mais tous les codes ne marchent plus.
Donc, si tu les corriges n'hésites pas à les poster ;).

EDIT : allez, hop, un sublime shader d'ocean :
http://www.purebasic.fr/english/viewtop ... 12&t=48204

Re: Projet Jeu Dungeon Keeper 3

Publié : mar. 22/nov./2011 22:41
par Atlante
merci blendman. J'ai regardé rapidement, et cela semble quand même complexe.

Re: Projet Jeu Dungeon Keeper 3

Publié : jeu. 24/nov./2011 14:58
par blendman
le shader ocean ?
ouip, c'est du haut niveau déjà :)

Sinon, avec le moteur MP3D, on peut faire de la 3D (en pure) et les shaders sont "plus faciles" à créer et à utiliser je trouve.
En plus, ce moteur est vraiment très bon et une fabuleuse alternative aux fonctions du pure.

Re: Projet Jeu Dungeon Keeper 3

Publié : ven. 20/avr./2012 9:35
par jbernard13
Bonne chance Atlante pour ton projet