Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
27.08.2002, 17:31
Gnomo



Hi!
Wie baut ihr eure Engines auf? Ich habe damit immer Probleme und alles artet in ein durcheinander aus.

--

zum Seitenanfang zum Seitenende Profil || Suche
001
27.08.2002, 17:43
Hanky



ich starte damit, ein leeres fesnter zu machen, dazu gehört:

die winmain und zubehörklassen, welche alle nachrichten wie tastendrücke abfabgen, etwas drauss machen.

dann nitialisiere ich die openGL Pixelformate und meine grundeinstellungen, sofern diese nicht bereitz von den Winmapn sachen durch eine optiosfesnter eingestellt werden.

dann lasse ich ein dreieck rendern, wenn es funzt, mache ich mehr draus.

das wäre jetzt meine schlichte version für eine GRAFIK engine.
zu eine Engine wie HL, *, *II oder *]|[ gehört noch wesentlich mehr.

edit:
so sieht u.b. eine std datei bei mir aus.. (nicht lachen plz. :D)
Quellcode:

#include <windows.h>  
#include <gl\gl.h>    
#include <gl\glu.h>
#include "main.h"    
#include "resource.h"
Application my_app;
C_WinMain my_winmain;

/*
===============================
init() -
===============================
*/
void C_WinMain::init()
{
    my_app.hDC            = NULL;
    my_app.hRC            = NULL;
    my_app.hWnd            =NULL;
    my_app.active        =true;
//das hier war ma länger..aber mein geniales startupo menue ersetzt alles..muharharh aha
}

/*
===============================
ReSizeGLScene(GLsizei width,GLsizei height) - ===============================
*/
GLvoid C_WinMain::ReSizeGLScene(GLsizei width,GLsizei height)
{
    if(!height)
    height=1;
    
    glViewport(0,0,width, height);                    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();                            gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();    
}                    }
/*
===============================
InitGL(GLvoid) -
===============================
*/
int C_WinMain::InitGL(GLvoid)
{
    glShadeModel(GL_SMOOTH);    
    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
    glClearDepth(1.0f);                            glEnable(GL_DEPTH_TEST);    
    glDepthFunc(GL_LEQUAL);                
    glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
    return TRUE;
}
/*
===============================
DrawGLScene(GLvoid)
===============================
*/
int C_WinMain::DrawGLScene(GLvoid)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);        glLoadIdentity();
    return TRUE;
}

die letze fu ist dafür zuständig, was im bildschirm is!

edit2: warum der code hier so komisch ist weiss ich nit

--

hankYs Page


Dieser Beitrag wurde am 27.08.2002 um 17:50 von Hanky bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
27.08.2002, 17:45
Gnomo



Wie benennst du die Datein, Ordner; Klassen, Strukturen, Funktionen u.s.w. Der Code soll ja übersichtlich werden.

--

zum Seitenanfang zum Seitenende Profil || Suche
003
27.08.2002, 17:49
Hanky



main.h+mein.cpp : dua basissachen, winmain, opengl init etc.

dann habe ich auch oft:
Kamera.h, Kamera.cpp

lese ich ein bestimmtes Dateiformat ein, z.b. mein eigenes c4m format:
c4mfile.h+c4mfile.cpp
oder:
bspfile.h + bspfile.cpp

dann halt..
input, sound, feature#1, feature#2 etc <- nicht immer ist eine eigene header datei von nöten

header+cpp datei haben dabei den selben namen.
ich arbei immer mit klassen uns strukturen etc.

daten.. im root habe ich oft: /textures, /maps,/models und /sounds

--

hankYs Page


Dieser Beitrag wurde am 27.08.2002 um 17:50 von Hanky bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
27.08.2002, 17:50
GameBase



*ä*
Hanky war schneller

--


Dieser Beitrag wurde am 27.08.2002 um 17:51 von GameBase bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
28.08.2002, 07:11
Hanky



lool!

dafür habe nur ich hornhaut an den fingerkuppen :D (das war nur spass ladys..)

--

hankYs Page


Dieser Beitrag wurde am 28.08.2002 um 09:48 von Hanky bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
006
01.09.2002, 22:21
math.h



Ich bennene meine daten immer z.b. bump.cpp
oder test.cpp
und am liebsten mache ich alles in einer datei :)
ansonsten macheich komentare da ich des öfterem was vergesse :(
aber eine zeile vergesseich zum glück nicht
#include <math.h>
ggrr ^_^
das beste system hat hanky!
aber ich komm mit meinem schon zurecht °-°

--

Uncanny-Visit Engine/Game Seite jetzt online, zumindest hoffe ich das sie online ist :) Old Name " NewbZ " (musste ich sagen)

zum Seitenanfang zum Seitenende Profil || Suche
007
02.09.2002, 21:03
Prefect



Praktische Beispiele von mir (wenn auch nicht 3D): http://www.rtts.org/ und http://www.sourceforge.net/projects/widelands

Letzteres hab ich zwar nicht angefangen und einige Teile davon gefallen mir ehrlich gesagt nicht (besonders eigentlich der Grafikteil *g*), aber mein Einfluß auf den Quellcode dürfte recht deutlich durchscheinen.

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
008
03.09.2002, 00:08
Diablo_bth



falls hier auch mein laienhafter Kommentar erwünscht sein sollte hier mein system:

zunächst eine main.cpp oder programmname.cpp
in ist dann entweder main oder WinMain implementiert, welche ledilglich
das hier machen:
Quellcode:
int __stdcall WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, char *IpCmdLine, int nShowCmd )
{
    gl_app *app = new gl_app;
    time_t    stime;
    tm        *ltime;

    sout.SetLogFile( UTIL_FullPath( "dbspview.log", NULL ) );

    stime = time( NULL );
    ltime = localtime( &stime );

    sout << logonly << "dbspview.log - "
         << ltime->tm_hour << ':' << ltime->tm_min << ' '
         << ltime->tm_mday << '.' << ltime->tm_mon+1 << '.' << ltime->tm_year+1900
         << endl;

    sout << "dbspview.exe " << VERSION_STRING << " (" << __DATE__ << ") by Diablo_bth (diablo_bth@web.de)" << endl;
    sout << "--- dbspview ---\n" << endl;

    app->init();
    app->run();
    app->shutdown();

    delete app;

#if defined( _DEBUG ) && defined( FIND_MEM_LEAKS )
    SearchUnFreed();                                // mein krasser Speicher-Manager!
#endif /* _DEBUG FIND_MEM_LEAKS */

    return 0;
}

die Klasse gl_app wird dann in gl_app.h und .cpp implementiert. Diese ist für das Window-handling, Input und Device-Context etc. zuständig. Eine weitere Klasse gl_render ist für das Initialisieren von ogl , das Laden der map-daten und extensions etc.. zuständig.

--

zum Seitenanfang zum Seitenende Profil || Suche
009
03.09.2002, 13:26
math.h



dein system gefällt mir!
mhh denoch sieht der code etwas wie ein opengl render prog aus
undnicht wie ne engine
na gut ist ja auch egal
ne log
Das versteh ich net, ist operation black thunder nicht ne mod?
Wieso nimmste nicht deine Engine dafür, dann kannste geld verdienen, denn nen puplisher findet ihr doch! Denn die engine scheintnicht schlecht zu sein

--

Uncanny-Visit Engine/Game Seite jetzt online, zumindest hoffe ich das sie online ist :) Old Name " NewbZ " (musste ich sagen)

zum Seitenanfang zum Seitenende Profil || Suche
010
15.09.2002, 17:09
gerk



verwendet ihr eigentlich bsp-/octrees in euren engines?

--

„Und da wir uns ja seit heute etwas näher gekommen sind, kann ich nur sagen: Mir hilft da immer Norther volle Lautstärke (so wie jetzt), sodass die ganzen unrasierten, Wasserpfeife rauchenden, alternativen Wichsstudenten aus ihren, aus Bananenschalen und Abfall gebastelten, Sitzkissen fliegen.“

zum Seitenanfang zum Seitenende Profil || Suche
011
15.09.2002, 17:17
[RMen]OneStone



Octree ist besser für Outdoor -> ich verwende ausschließlich Octree.

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
012
16.09.2002, 11:19
gerk



Gibts für den Octree auch irgendwas Festes, zum Angreifen. Ein Stück Nicht-Pseudo-Code?

Irgendwie kann ich Octree-Tuts zwar mehr oder weniger nachvollziehen, habe aber keinen Ansatz zur Implementierung.

--

„Und da wir uns ja seit heute etwas näher gekommen sind, kann ich nur sagen: Mir hilft da immer Norther volle Lautstärke (so wie jetzt), sodass die ganzen unrasierten, Wasserpfeife rauchenden, alternativen Wichsstudenten aus ihren, aus Bananenschalen und Abfall gebastelten, Sitzkissen fliegen.“

zum Seitenanfang zum Seitenende Profil || Suche
013
16.09.2002, 14:50
[RMen]OneStone



gametutorials.com -> tutorials -> open gl -> page 4

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
014
16.09.2002, 18:50
Diablo_bth



würde mich an dieser Stelle interssieren ob es irgend jemand einmal geglückt ist BSP und Octree zu kombinieren? Also perfekter Schattenwurf und Sichtbarkeitsberechnung in indoor-Leveln und große landscape- bzw. Außewelten - Wäre sicherlich mal ein interessanten Ansatz. Aber wenn man eben auf Schatten, Physik und korrekte Lichtberechnung setzt ist BSP nicht zu toppen. Deswegen steckt auch in Doom3 (!) immer noch BSP-Technik.

Mich würde aber z.B. mal die technick in Unreal [incl. der neuesten Version] doch sehr interessieren. Ich habe da bereits was von einer Art portaltechnik gehört - konnte jedoch nie genaueres erfahren. Hat da zufällig jemand eine Idee oder Quelle?

--

zum Seitenanfang zum Seitenende Profil || Suche
015
16.09.2002, 20:11
gerk



danke, black.

es war übrigens auf page 5.

--

„Und da wir uns ja seit heute etwas näher gekommen sind, kann ich nur sagen: Mir hilft da immer Norther volle Lautstärke (so wie jetzt), sodass die ganzen unrasierten, Wasserpfeife rauchenden, alternativen Wichsstudenten aus ihren, aus Bananenschalen und Abfall gebastelten, Sitzkissen fliegen.“

zum Seitenanfang zum Seitenende Profil || Suche
016
16.09.2002, 22:36
schlomo



das goile an bsp ist halt auch die performace...
bei Unreal zum beispiel braucht man n recht fixen prozessor, da so ziemlich alles immer gerendert wird...
bsp berechnet für dich nicht sichtbare bereiche garnicht mit...
eben bsp-tree....ne baumstruktur von wo was sichtbar ist und was somit weggelassen werden kann....
bei outdoor dann halt scheiße, weil er auf großen flächen sachen weglässt, die sichtbar sein müssen....
aber dafür schön fix :>

--

zum Seitenanfang zum Seitenende Profil || Suche
017
16.09.2002, 23:05
Tron



@Diablo_bth:
hae? octree und bsp kombinieren? ein octree IST ein bsp-baum.
und zwar sind die hyperebenen, die den raum teilen, einfach ein einem regulaeren gitter angeordnet.

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
018
17.09.2002, 14:10
Prefect



Unreal Tournament verwendet BSP-Trees. Deswegen muß man ja auch im Editor die Lichter und Visibility immer wieder neu berechnen lassen. Man kann allerdings für schnelle Previews an der Architektur einfach nur ins Spiel gehen, und zum Teil übernimmt er dann die alten Lichtberechnungen auch (die allerdings eben oft nicht mehr richtig sind).

Und Tron hat natürlich recht, ein Octree ist ein Spezialfall von einem BSP-Tree. In manchen Situationen macht es durchaus mehr Sinn, den Spezialfall zu verwenden, weil man halt manche Dinge besser optimieren kann. Aber naja...

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
019
17.09.2002, 20:07
BlueDog



ist es tuts wo so eine reicht auch 2d engine von anfang an beschrieben wir wie man anfäng und wie man des dan zu ende macht lso auch für newbs so zum einlernen damit man nicht nur bahnhof versteht???

--

member by Black Hawk Down : The second Operation[ Modler ]
member by DNA - HL mod *einfachgeil* [ Webmaster ]
----- privat Hompage ------

zum Seitenanfang zum Seitenende Profil || Suche
020
18.09.2002, 13:51
Onkel Dittmeyer



Zitat:
BlueDog postete
ist es tuts wo so eine reicht auch 2d engine von anfang an beschrieben wir wie man anfäng und wie man des dan zu ende macht lso auch für newbs so zum einlernen damit man nicht nur bahnhof versteht???

Wer selber nur Bahnhof schreibt wirds doch verstehen oder net?

--

zum Seitenanfang zum Seitenende Profil || Suche
021
20.09.2002, 14:44
Hanky



ROFL!!

Diablo..wir haben ja och fast des selbe system. mit meinem habe ich auch damals....als ich jung...och wie schön wars.... den oGL kram in andrenndatein gehabt..

nur was ich noch nie getippt habe:int __stdcall WinMain

ich hasse WinAPI :)

--

hankYs Page

zum Seitenanfang zum Seitenende Profil || Suche