Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Mär 29, 2024 07:01

Foren-Übersicht » Sonstiges » Projekte
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: FreeBridge
BeitragVerfasst: Fr Feb 25, 2005 18:31 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
Einleitung

Nachdem ich vor einigen Jahren die Demo "Bridge Builder" gespielt hatte, hab ich mich sehr gefreut, als ich auf meiner CBS-DVD eine neue Demo fand - diesmal "Bridge It" betitelt. Von dieser Demo - vollmundig als komplett in 3d gelobt - war ich allerdings etwas enttäuscht: Die Entwurfsansicht war nur eine einfache 2d-Ansicht, wenn sie auch durch eine kleine Fluchtpunktkonstruktion nach 3d aussah. Man kann auch nur zweidimensional Brücken bauen. Und zum Testen der Brücke wird zwar 3d gerendert, aber man kann nur zoomen sowie sich auf die Lokomotive schnallen, die über die Brücke fährt. Ich dachte mir, das kann ich besser - und so wurde dieses Projekt geboren.

Ein paar Worte zum Spielprinzip: man baut zuerst eine Brücke aus den verschiedensten Materialien (Holz, Eisen, Stahl, Tragseile, Zugseile), wobei man immer aufs Budget schauen muss. Dann wird sie in der Testansicht simuliert und man lässt einen Zug(oder anderes) darüber fahren. Hält die Brücke, hat man das Level geschafft.


Projektname: "FreeBridge"

Projektplan:

1. Levels. STATUS: 2/3
a) Implementierung von Heightmaps (Graustufenbitmaps) - FERTIG
b) Implementierung von Texturierung - FERTIG
c) Lighting - KEINES

2. Brückenentwurf. STATUS: 0/3
a) Entwurf der materialien - Klassen bereits geschrieben, noch keine konkreten Materialien
b) Entwurf der Physik - in meinem kopf bereits vorhanden, wenn ichs nicht hinbring nehm ich newton ;)
c) Entwurf des Testmodus

3. Das ganze Zeug für den blöden Benutzer. STATUS: 0/2
a) Vermeidung von Falscheingaben - noch keine falschen Eingaben möglich ;)
b) Menüsystem, Leveldesign,usw. - einfaches menü bereits vorhanden.

4. Finishing STATUS: 0/1

Credits:

Sascha Willems(former known as Son of Satan) für sein OpenGL-1.5-VCL-Template
Lossy Ex, Blechwolf und Delphic für ihre Hilfe bei der Heightmap
Phobeus für seinen Webspace


Erster Screenshot:
Bild
Das Bild geht leider nicht mehr. wenn ich auf meiner hdd gefunden hab, lad ichs aber hoch.

Letzte Version:
freebridge.rar(280 kB)
Umfang: Exe, Mapdatei, Heightmap,Texturzuweisungs-bitmap,Level-Datei.
Version: 0.2.6

_________________
Bild

"User Error. Replace User and hit Continue."


Zuletzt geändert von luketheduke am Sa Apr 09, 2005 10:51, insgesamt 7-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 25, 2005 21:15 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
Wechsel auf interne version 0.1.2.1

ZU: 3/b - Menüsystem

Einfaches Menüsystem eingeführt(noch keine Funktionalität, deshalb noch nicht zum Download)

Screenshot: (Leider schlechte Qualität wg. JPEG)
EDIT:Screenshot durch PNG ersetzt(thx an Flo)
Bild

_________________
Bild

"User Error. Replace User and hit Continue."


Zuletzt geändert von luketheduke am Sa Mär 26, 2005 23:08, insgesamt 2-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 26, 2005 16:19 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
Update auf Version 0.2.1

- Navigation fast fertig (zentrieren auf brücke noch nicht möglich, mangels Brücke :twisted: )
- Menü erweitert

Download wie immer im ersten Post!

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 26, 2005 16:51 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
Update auf Version 0.2.2

- Navigation bereinigt(fehler bei der trigonometrie)
- menü verbessert

Downlaod wie immer im ersten Post

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 27, 2005 17:48 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
Update auf Version 0.2.3

-Texturierung des Terrains fertiggestellt.

Aus gegebenem Anlass einige Worte zur Texturierung:

Eine Szeneriedatei(*.map) besteht aus:
  • eine Zeile für die heightmap
  • eine zeile für die textur-zuordnungsdatei
  • der rest der datei die texturen


Die Heightmap ist ein Graustufenbitmap. Mehr muss ich da wohl nicht sagen.

Die Textur-Zuordnungs-Datei ist auch ein Graustufenbitmap, mit der selben Größe wie die Heightmap, aber nur so vielen Grautönen wie Texturen(macht höchstens 256 texturen pro Szenerie, sollte reichen, oder?)

Texturen: In jeder Zeile ein Dateiname für eine Bitmap. das erste Bitmap wird dem Wert 00 in der textur-zuordnungs-datei zugeordnet, die zweite dem wert 01 usw.

Die Texturen sollten im Format 2^n vorliegen.

Mein Renderpass im Moment:

Code:
  1.  
  2. procedure SceneRender(map:TMap);
  3. var i,k,l:integer;
  4.     width,height:integer;
  5.  
  6.     tex:integer;
  7.     qw,qh:single;
  8. begin
  9. qw:=1/map.HeightMap.Width;
  10. qh:=1/map.HeightMap.Height;
  11. iterations:=0;
  12. tex:=0;
  13. if not f_hm_loaded then
  14.  begin
  15.  setlength(HM,map.HeightMap.Width,map.HeightMap.Height); // Heightmap-Array initialisieren
  16.  for i:= 0 to map.HeightMap.Width-1 do
  17.   for k := 0 to map.HeightMap.Height-1 do
  18.    begin
  19.  
  20.    HM[i,k]:=getrvalue(map.HeightMap.Canvas.Pixels[i,k]);
  21.    
  22.       //^Rot-Wert wird zur Höhe^
  23.    end;
  24.  f_hm_loaded:=true;
  25.  end;
  26.  
  27. if not f_tm_loaded then
  28.  begin
  29.  setlength(TM,map.heightmap.Width,map.heightmap.Height); // Texturemap-Array initialisieren
  30.  for i:= 0 to map.TextureAssignment.Width-1 do
  31.   for k := 0 to map.TextureAssignment.Height-1 do
  32.    begin
  33.    TM[i,k]:=getrvalue(map.TextureAssignment.Canvas.Pixels[i,k]);
  34.      //^Rot-Wert wird zum Texturindex^
  35.    end;
  36.  f_tm_loaded:=true;
  37.  end;
  38.  
  39.  
  40. if not f_tex_loaded then
  41.  begin
  42.   for i:=0 to high(map.textures) do
  43.    begin
  44.     textures[i]:=TGLBitMap2d.Create;
  45.     textures[i].SetTextureWrap(GL_REPEAT, GL_REPEAT);
  46.     textures[i].SetFilter(GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR);
  47.     textures[i].loadfromfile(map.textures[i]);
  48.     textures[i].GenTexture;
  49.    end;
  50.   f_tex_loaded:=true;
  51.  end;
  52.  
  53.  width:=map.HeightMap.Width div 2;
  54.  height:=map.HeightMap.Height div 2;
  55.  
  56.  
  57.  
  58.  for l:= 0 to high(map.textures) do begin
  59.   textures[l].Bind();
  60.   glbegin(gl_triangles);
  61.   for k:= 0 to high(HM[0])-1 do
  62.    for i:= 0 to high(HM)-1 do
  63.     if l=TM[i,k] then
  64.      begin
  65.       gltexcoord2f(i*qw,i*qh);        glvertex3f(i-width,  HM[i,k],    k  -height);
  66.       gltexcoord2f(i*qw,(k+1)*qh);    glvertex3f(i-width,  HM[i,k+1],  k+1-height);
  67.       gltexcoord2f((i+1)*qw,(k+1)*qh);glvertex3f(i+1-width,HM[i+1,k+1],k+1-height);
  68.  
  69.       //EDIT: in version 0.2.4 dazugekommen:
  70.       gltexcoord2f(i*qw,k*qh);        glvertex3f(i-width,  HM[i,k],    k  -height);
  71.       gltexcoord2f((i+1)*qw,(k+1)*qh);glvertex3f(i+1-width,HM[i+1,k+1],k+1-height);
  72.       gltexcoord2f((i+1)*qw,k*qh);    glvertex3f(i+1-width,  HM[i+1,k],    k  -height);
  73.      end;
  74.   glend;
  75.  end;
  76.  
  77.  
  78. if f_show_lines then
  79.  begin
  80.  glbegin(GL_LINE_STRIP);
  81.    glcolor3f(0,1,0);
  82.    glvertex3i(0-width,HM[0,0],0-height);
  83.    glvertex3i(0-width,HM[0,1],1-height);
  84.    glvertex3i(1-width,HM[1,1],1-height);
  85.  
  86.   for k:= 0 to high(HM)-1 do
  87.    //if (k div 2)=(k / 2) then
  88.     for i:= 1 to high(HM[0])-1 do
  89.      begin
  90.       glcolor3f(0,0,1);
  91.       glvertex3i(i-width,hm[i,k],k-height);
  92.       glvertex3i(i+1-width,HM[i+1,k+1],k+1-height);
  93.      end;
  94.   glend;
  95.  end;
  96. end;
  97.  


Die flags sollten selbsterklärend sein. der rest vielleicht nicht :twisted: .

Download wie immer im ersten Post.

Noch ein Screenshot(einfach texturierte Berglandschaft):

EDIT: der code gilt auch für version 0.2.4(siehe kommentar!)

Bild

_________________
Bild

"User Error. Replace User and hit Continue."


Zuletzt geändert von luketheduke am Sa Mär 26, 2005 23:11, insgesamt 2-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 27, 2005 18:33 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
Update auf Version 0.2.4

im renderpass ein dreieck hinzugefügt, damit die texturierung komplett ist.

sieht doch besser aus, oder?

Bild

_________________
Bild

"User Error. Replace User and hit Continue."


Zuletzt geändert von luketheduke am Sa Mär 26, 2005 23:12, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mär 26, 2005 22:45 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
gerade gemerkt, dass der hoster down ist....

so ein mist. hoffentlich hab ich die screens alle noch auf platte.

wo sind wir denn gerade versionsmäßig?
ah ja....

Update auf Version 0.2.5

Changelog:

- levels eingeführt:

Code:
  1. type TLevel = record
  2.   name:string;
  3.   money:integer;
  4.   scenery:TMap;
  5.   Anchors: array[0..15] of array[0..2] of single;
  6.   materials:array of TBridgeMaterial;
  7.   path:array of array[0..2] of integer;      //the path vehicles are moved over the bridge
  8.   physics:array[0..1] of integer;           //the starting and ending index for physics
  9.  end;


es fehlen aber noch die 3d-objekte, die natürlich auch auf dem terrain platziert werden wollen.

download wie immer im ersten post(sobald ich das ganze auf ein neues hosting umgeschaufelt hab... delphigl.com sei dank)

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 09, 2005 10:47 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
Update auf Version 0.2.6 nightly

das nightly deswegen, weil das ding weder getestet noch kundenfreundlich ist - aber ich habe es endlich geschafft, die displaylisten erfolgreich einzubringen(hätte doch jemand neben mit gestanden und alle 5 Minuten gesagt "es gibt keine Displayliste mit dem Namen 0" :roll: ).

das komplette terrain läuft jetzt in der displayliste, was eine performancesteigerung von mehreren 100 Prozent ausmacht.

sobald das nightly rauskommt, gibts hier n bisschen code und vielleicht auch screens.

Download wie immer im ersten post!

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Foren-Übersicht » Sonstiges » Projekte


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 30 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.094s | 17 Queries | GZIP : On ]