PureBasic Community-Projekt (kleine 3D-Engine fertig)

Du brauchst Grafiken, gute Programme oder Leute die dir helfen? Frag hier.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Xaby hat geschrieben:Ich denke also, wenn einer auf den anderen wartet, wird es nie was.
Es muss parallel entwickelt werden.

:roll:
Trotzdem gibt's Prioritäten. Natürlich kann es Spiele geben, die sich stark von einer Musik inspirieren lassen und wo die Musik maßgeblich zum spielerischen Design beiträgt - es wäre ja auch denkbar, daß die Musik als solche eine wirklich zentrale Rolle spielt - aber das ist eher selten. In aller Regel muß die Idee einfach zuerst kommen. Wenigstens 'ne grobe Story oder 'ne grobe Gameplay-Idee. In meinen Augen sind das die allerwichtigsten Dinge, ohne die geht nix!

Natürlich kann auch ein Charakter-Entwurf (!) dazu dienen, den Stein ins Rollen zu bringen, aber das ist dann eine Bleistiftzeichnung und kein fertig gepixeltes 32x64-Männchen, weil dazu muß man wieder sehr viel über das Spiel wissen.

Und natürlich kann, wie gesagt, die Musik eine zentrale Rolle spielen - z.B. daß man die Musik zum Teil sogar steuert oder verändert. Oder die Musik etwas steuert (siehe z.B. http://www.youtube.com/results?search_query=audiosurf), oder daß die Musik eben so wie bei Singstar oder Guitar Hero als "Level" dient. Aber auch dann ist es nicht wichtig, bereits die fertige Mucke zu haben, sondern dann geht's wieder dran, die Spielidee auszubauen. Dazu braucht man keine fertige Musik.

Daher braucht ihr eins der folgenden, um loszulegen:
- Gameplay-Mechanik
- Story
- Story-Idee (also einfach nur z.B. "man ist ein Toaster der furzen kann")
- Charakter-Entwürfe, die was aussagen, aber nix fertiges
- Musik-Stil-Idee falls sie die Atmosphäre oder das Gameplay maßgeblich beeinflußt, aber nix fertiges
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Vermilion hat geschrieben: Das wäre einfacher und performanter mit OpenGL's GLU diese dämlichen Würfel zu machen und fertig.
Tja, wir sehen ja wie einfach so ein OpenGL-Würfel ist.
Keiner kann's, alle sagen nur, dass es geht und wie leicht es ist.
http://www.purebasic.fr/german/viewtopic.php?t=15807

Niemand postet einen Code, der ausführbar ist und einen texturierten 3D-Würfel zeigt und dann noch weiß, was der Code macht.

@RaVeN99
Ich kann auch mein eigene Projektleiter sein, mein Spiel selbst anfangen, meinen Willen durchsetzen und es so machen wie ich es für richtig halte. Da ich aber einen hohen Anspruch an mich selbst habe, würde ich auch nur sehr wenige Dinge aus der Hand geben.

Es bringt doch auch nichts hier Leute fest zu binden und zu verpflichten, wenn man eine Idee hat und die Leute überredet, alle ja sagen und am Ende doch keiner Zeit und Lust hat, weil einem das Spiel selbst nichts gibt oder man lieber etwas interessanteres machen wollte.

Ich warte auf den Tag, wo einer einfach Postet: Story ...
und dann kommt eine Geschichte. Ich sag's gleich, wenn ich mir den Aufwand selbst mache und eine Würfel-Engine gebastelt habe, dann male ich auch die Texturen selbst, und klimper ein bisschen auf dem Keyboard.

Aber dann ist es wieder kein Gemeinschaftsprojekt.

>>>>>>>>>>>>
Demokratie, wo sich nichts dreht oder Diktatur, wo der Großteil nicht mit einverstanden ist und deshalb schlampt.

Hättest auch gleich mal den Link posten können
http://www.purebasic.fr/german/viewtopi ... sc&start=0

Der Mensch will immer etwas gesagt bekommen, er wird nicht von sich aus aktiv. Das ist echt schlimm. Immer diese Trägheit. Lieber schreiben wir das Forum mit langen Beiträgen voll, als mal drei Tage nichts zu posten, aber dafür uns eine Geschichte für das Spiel auszudenken.

/:->
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Wie wär's mit "The Next Vincent Raven"? :mrgreen:


Naja im Ernst, dann fang ich jetzt halt mal an, euch irgendwas vorzuschlagen, vielleicht wird ja was draus. Wie wär's z.B. mit sowas:

- Das Geschehen spielt sich in einem Haus ab. Die Anordnung und evtl. sogar die Einrichtung der Räume wird jedesmal per Zufall erstellt, und man kann sich vor dem Spiel die Komplexität aussuchen.

- Man spielt einen interessanten Charakter, z.B. einen Gauner, den Hund, den Tod, oder vielleicht sogar einen Haushaltsgegenstand (wie wär's mit 'nem Bobbycar, oder mit der Waschmaschine).

- Was man tun muß ist jetzt natürlich mitunter stark vom Charakter abhängig, aber ich denke, man kann sich ja zu verschiedenen Charakteren eine mögliche Handlung ausdenken. Möglicherweise kann man auch ein 2-Spieler-Spiel basteln, wo beide einen völlig unterschiedlichen Charakter spielen, oder ein 1-Spieler-Spiel, bei dem man 2 Charaktere spielt, zwischen denen man jederzeit wechseln kann.
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

Da hast du deinen scheiß Würfel. Aber irgendwas stimmt mit dem Tiefenpuffer nicht, zumindest habe ich das leichte Gefühl. Vorführeffekt, ein anderer Code aus Triangles usw funktioniert seltsamerweise, wie alles andere. Falls du das nicht glaubst, poste ich den auch noch. Aber ich bin gerade faul so einen kleinen dämlichen Fehler zu suchen. Muss irgendwas vergessen haben wegen dem Tiefenpuffer, bestimmt. -.-°

Textur: http://www.thenameless.de/files/tex-brick0.tga

Code: Alles auswählen

;//////////////////////////////////////////////////////////////////////////////////////////////////
;
; INCLUDES
;
;//////////////////////////////////////////////////////////////////////////////////////////////////

IncludeFile "OpenGL.pbi"

;//////////////////////////////////////////////////////////////////////////////////////////////////
;
; DECLARATIONS
;
;//////////////////////////////////////////////////////////////////////////////////////////////////

EnableExplicit

Global Texture.l, Angle.l

;//////////////////////////////////////////////////////////////////////////////////////////////////
;
; OPEN SCREEN
;
;//////////////////////////////////////////////////////////////////////////////////////////////////

;{ Open Screen

Global WindowNumber.l, WindowHandle.l, hDC.l, pixformat.l, hrc.l
Global pfd.PIXELFORMATDESCRIPTOR

WindowNumber = OpenWindow(#PB_Any, 0, 0, 800, 600, "Plane", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

WindowHandle = WindowID(WindowNumber)

hDC = GetDC_(WindowHandle)

pfd\nSize = SizeOf(PIXELFORMATDESCRIPTOR)
pfd\nVersion = 1
pfd\dwFlags = #PFD_SUPPORT_OPENGL | #PFD_DOUBLEBUFFER | #PFD_DRAW_TO_WINDOW
pfd\iLayerType = #PFD_MAIN_PLANE
pfd\iPixelType = #PFD_TYPE_RGBA
pfd\cColorBits = 24
pfd\cDepthBits = 32

pixformat = ChoosePixelFormat_(hDC, pfd)
SetPixelFormat_(hDC, pixformat, pfd)

hrc = wglCreateContext_(hDC)
wglMakeCurrent_(hDC, hrc)

glShadeModel_(#GL_SMOOTH)
glClearDepth_(1.0)
glClearStencil_(0)
glEnable_(#GL_DEPTH_TEST)
glDepthFunc_(#GL_LEQUAL)
glHint_(#GL_PERSPECTIVE_CORRECTION_HINT, #GL_NICEST)
glEnable_(#GL_TEXTURE_2D)

;}

;//////////////////////////////////////////////////////////////////////////////////////////////////
;
; PROCEDURES
;
;//////////////////////////////////////////////////////////////////////////////////////////////////

ProcedureDLL.l LoadTargaImage(Filename.s)
  
  Protected Filenumber.l, Counter.l, Width.l, Height.l, Depth.l, Y.l, X.l, Result.l, R.b, G.b, B.b, A.b, *MemoryAddress.l, Pixelformat.l
  
  Filenumber = ReadFile(#PB_Any, Filename)
    
  If Filenumber
  
    ; Read unimportant stuff
    
    For Counter = 1 To 12
      ReadByte(Filenumber)
    Next
    
    Counter = 0
    
    ; Read important and not so important stuff
    
    Width  = ReadWord(Filenumber)
    Height = ReadWord(Filenumber)
    Depth  = ReadByte(Filenumber)
    ReadByte(Filenumber)
    
    ; Dimensionate temporally the ImageData array
    Protected Dim ImageData.b(Width * Height * 4)
    
    ; Put the values into the array
    
    For Y = 0 To Height-1
      For X = 0 To Width-1
        
        B = ReadCharacter(Filenumber)
        G = ReadCharacter(Filenumber)
        R = ReadCharacter(Filenumber)
        
        If Depth = 32
          A = ReadCharacter(Filenumber)
        EndIf
        
        ImageData(Counter) = R
        Counter + 1
        ImageData(Counter) = G
        Counter + 1
        ImageData(Counter) = B
        Counter + 1
        
        If Depth = 32
          ImageData(Counter) = A
          Counter + 1
        EndIf
        
      Next
    Next
    
  CloseFile(Filenumber)
  
  ; Now the OpenGL commands
  
  glGenTextures_(1, @Result)
  
  If Depth = 32
    Pixelformat = #GL_RGBA
  Else
    Pixelformat = #GL_RGB
  EndIf
  
  glBindTexture_(#GL_TEXTURE_2D, Result) 
  glTexParameteri_(#GL_TEXTURE_2D, #GL_TEXTURE_MAG_FILTER, #GL_NEAREST)
  glTexParameteri_(#GL_TEXTURE_2D, #GL_TEXTURE_MIN_FILTER, #GL_NEAREST)
  gluBuild2DMipmaps_(#GL_TEXTURE_2D, 4, Width, Height, Pixelformat, #GL_UNSIGNED_BYTE, @ImageData())
  
  ; Return
  ProcedureReturn Result
  
  Else
  
    ProcedureReturn #False
  
  EndIf
  
EndProcedure

;//////////////////////////////////////////////////////////////////////////////////////////////////
;
; MAIN LOOP
;
;//////////////////////////////////////////////////////////////////////////////////////////////////

Texture = LoadTargaImage("tex-brick0.tga")

Repeat

glClear_(#GL_COLOR_BUFFER_BIT | #GL_DEPTH_BUFFER_BIT)
glLoadIdentity_()
gluPerspective_(30.0, 640/480, 0.0, 100000.0)

glMatrixMode_(#GL_MODELVIEW)

Angle = Angle + 1

If Angle = 360 
  Angle = 0
EndIf

glTranslatef_(0.0, 0.0, -5)
glRotatef_(45.0, 0.0, 1.0, 0.0)
glRotatef_(Angle, 1.0, 0.0, 1.0)

glBindTexture_(#GL_TEXTURE_2D, Texture)

glBegin_(#GL_QUADS)
  
  ; Vorderseite
  
  glTexCoord2f_(0.0, 0.0)
  glVertex3f_(-0.5, -0.5, 0.5)
  
  glTexCoord2f_(0.0, 1.0)
  glVertex3f_(-0.5, 0.5, 0.5)
  
  glTexCoord2f_(1.0, 1.0)
  glVertex3f_(0.5, 0.5, 0.5)
  
  glTexCoord2f_(1.0, 0.0)
  glVertex3f_(0.5, -0.5, 0.5)
  
  ; Rückseite
  
  glTexCoord2f_(0.0, 0.0)
  glVertex3f_(-0.5, -0.5, -0.5)
  
  glTexCoord2f_(0.0, 1.0)
  glVertex3f_(-0.5, 0.5, -0.5)
  
  glTexCoord2f_(1.0, 1.0)
  glVertex3f_(0.5, 0.5, -0.5)
  
  glTexCoord2f_(1.0, 0.0)
  glVertex3f_(0.5, -0.5, -0.5)
  
  ; Links
  
  glTexCoord2f_(0.0, 0.0)
  glVertex3f_(-0.5, -0.5, 0.5)
  
  glTexCoord2f_(0.0, 1.0)
  glVertex3f_(-0.5, 0.5, 0.5)
  
  glTexCoord2f_(1.0, 1.0)
  glVertex3f_(-0.5, 0.5, -0.5)
  
  glTexCoord2f_(1.0, 0.0)
  glVertex3f_(-0.5, -0.5, -0.5)
  
  ; Rechts
  
  glTexCoord2f_(0.0, 0.0)
  glVertex3f_(0.5, -0.5, 0.5)
  
  glTexCoord2f_(0.0, 1.0)
  glVertex3f_(0.5, 0.5, 0.5)
  
  glTexCoord2f_(1.0, 1.0)
  glVertex3f_(0.5, 0.5, -0.5)
  
  glTexCoord2f_(1.0, 0.0)
  glVertex3f_(0.5, -0.5, -0.5)
  
  ; Oben
  
  glTexCoord2f_(0.0, 0.0)
  glVertex3f_(-0.5, 0.5, 0.5)
  
  glTexCoord2f_(0.0, 1.0)
  glVertex3f_(-0.5, 0.5, -0.5)
  
  glTexCoord2f_(1.0, 1.0)
  glVertex3f_(0.5, 0.5, -0.5)
  
  glTexCoord2f_(1.0, 0.0)
  glVertex3f_(0.5, 0.5, 0.5)
  
  ; Unten
  
  glTexCoord2f_(0.0, 0.0)
  glVertex3f_(-0.5, -0.5, 0.5)
  
  glTexCoord2f_(0.0, 1.0)
  glVertex3f_(-0.5, -0.5, -0.5)
  
  glTexCoord2f_(1.0, 1.0)
  glVertex3f_(0.5, -0.5, -0.5)
  
  glTexCoord2f_(1.0, 0.0)
  glVertex3f_(0.5, -0.5, 0.5)
  
glEnd_()

SwapBuffers_(hDC)

Until WindowEvent() = #PB_Event_CloseWindow
End
Dafür ist schon wieder mein Finnisch Kurs draufgegangen.

Edit: Ich verweise nochmal auf's Code Archiv, da ist auch ein Code drin, bei dem in 195 Zeilen ein paar Würfel mit Motion Blur gerendert werden. Habe ich gerade nochmal nachgeschaut, weil ich wissen wollte, wie der da rendert, und das sind ja eigentlich auch nur Quads... wayne.
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Mache ich was falsch, oder gibt es keinen Code, der funktioniert?

PureBasic
---------------------------
Zeile 51: glClearDepth_(): Incorrect number of parameters.
---------------------------
OK
---------------------------


---------------------------
PureBasic
---------------------------
Zeile 161: gluPerspective_(): Incorrect number of parameters.
---------------------------
OK
---------------------------

:(

Hab beide Befehle ausgeklammert, dann war nur ein schwarzer Bildschirm zu sehen. :allright: :allright: :allright:

Vermilion hat geschrieben: Ich verweise nochmal auf's Code Archiv
Wo ist denn dein Verweis?
Das ist so viel Wert wie wenn ich sage: Ich hab's aus dem Internet
Oder: Es stand in einem Buch.

>>>>> \CodeArchiv\Graphics\OpenGL\InsideTheCube\InsideTheCube.pb
Wieder ein Beispiel für einen nicht funktionierendem Code im CodeArchive ... traurig :(
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

@ZeHa ... Story

Man könnte ein Labyrinth machen, wo man bestimmte Emelente sammeln muss. Oder wie Lost Vinkings, da muss man alle drei Charaktere nutzen, um die Level zu schaffen. Bei Resident Evil soll ja die Handlung auch so sein, dass man mit verschiedenen Typen spielen muss und die dann die Story verfolständigen.

Man könnte so etwas machen wie diese Filme, wo alles mit einander in einem Zusammenhang steht. So wie Pulp Fiction oder auch ein bisschen wie "The Butterfly Effect"

Wo die Handlungen die man selbst macht Einfluss auf die Geschichte haben.

Interessant wären auch Spiele wie "Little Big Adventure 1 & 2" oder "Lomax im Lemming Land" wo man Elemente einsammeln muss wie Treppen, Gummiseile etc. und nur mit dem Einsatz von diesen Dingen an bestimmt stellen kommt.

Eine Art Rollenspiel wäre das ja dann. :)
Kinder an die Macht http://scratch.mit.edu/
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Xaby hat geschrieben:Zeile 51: glClearDepth_(): Incorrect number of parameters.

Zeile 161: gluPerspective_(): Incorrect number of parameters.
yup, bei mir auch.
das ist das alte 64bit-argument problem.

wieso funktioniert das denn bei dir, Vermilion?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Das hier funktioniert wenigstens
http://www.purebasic.fr/english/viewtop ... ehe+lesson

:shock:

Anfänger-Forum: Würfel ohne Ogre
http://www.purebasic.fr/german/viewtopi ... 7&start=20

Alternative kleine Engine:
http://www.purebasic.fr/german/viewtopic.php?t=15261

(Hat aber noch Darstellungsfehler, scheint aber für einfache Spiele genau richtig zu sein)
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

Liegt es vielleicht daran, dass du die falsche Include Datei hast? OpenGL.pbi ist nicht gleich OpenGL.pbi.

http://www.thenameless.de/files/oglpbi.html

Ich weiß gerade nicht (sitze in der Schule) wie es genau hieß, aber im Code Archiv nicht diese bei mir auch nicht funktionierende Demo "insist the cube" oder so, sondern Motion Blur. So hieß es meines Wissens.
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
RaVeN99
Beiträge: 310
Registriert: 29.08.2004 15:26
Wohnort: Weiden i.d.OPF
Kontaktdaten:

Beitrag von RaVeN99 »

@Xaby:
Die engine die du geposted hast - jene welche mit den
Darstellungsfehlern... Selbige hab ich doch auch vorgeschlagen und du
hast dabei nur rumgenölt dass ich den link doch gleich mitposten hätte
können... Muss man nicht verstehen...

Irgendwie finde ich allerdings auch, dass du die Sache mit der
Teamleitung etwas zu kritisch siehst - mit diktatur hat das nämlich rein
garnix zu tun, ausser man hat keinen ahn davon...
Es kann auch geordnet zugehen und trotzdem darf jeder seine Meinung
haben. Eben demokratisch - aber das bisher scheint eher anarchisch,
jeder bringt irgendwas ein, nix wird richtig weiterverfolgt, alles dreht sich
im Kreis und alles sollte am besten schon fertig sein...

Ich frage mich immernoch, warum es unbedingt n völlig neues game sein
muss, oder unbedingt story gebunden... Es gibt genügend games ohne
eine Art von story die einfach trotzdem gaudi machen...
Vor der story sollte das genre definiert werden - meine meinung.
Irgendwo scheints ja doch noch in richtung adventure zu tendieren, dann
aber wieder irgendwas in Richtung 3D mit Würfeln...

Was die Trägheit der Menschen angeht - stimmt, der Mensch braucht ne
gewisse Führung oder leitlinie, ohne gehts nicht. Hat sich halt so in den
Köpfen der Menschen festgesetzt: Irgendeiner sagt an, die anderen
machen (überspitzt ausgedrückt). Warum sonst wohl sind Menschen die
ihre eigene Kreativität nutzen (es noch können), wie zum Beispiel designer
so sehr gesucht, bzw. gut bezahlt?
Lieber schreiben wir das Forum mit langen Beiträgen voll, als mal drei Tage nichts zu posten, aber dafür uns eine Geschichte für das Spiel auszudenken.
Ich weiss ja nicht ob du das speziell auf mich bezogen hast, wenn ja finde
ich das echt daneben, zumal ich nur helfen wollte damit hier mal was
voran geht - was aber anscheinend nicht angekommen ist, oder nur zum
Teil. Wobei deine Beiträge stellenweise auch übertrieben lang sind und du
einfach nicht zum Punkt kommst.


Grüße
RaVeN
AMD Athlon64 3000+, 1024MB DDR-RAM, Geforce 8600GT, WinXP SP2, DirectX 9.0c, PureBasic 3.94
Antworten