meine "Engine"

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

meine “Engine”
so wie fast jeder grafik-programmier-begeisterter, probier ich mich auch an meiner eigenen “engine” :wink:

tüftle da jetzt schon ein 3/4 jahr rum, und wollte euch auch mal ein paar screens zeigen:

das war eines der ersten nachdem ich eine terraingenerator geschrieben hatte… (statische schatten + texturgenerierung,wasserspiegelung,und einfach terrain collisions abfrage)

man sieht auch das das ganze noch net soo schnell lief :wink: (50-100fps)

nach vielen optmierungen:

collisions-abfrage mit vegetaion(VRML datei loader), stufen etc. specular highlighting…

bin ich heute auf diesem stand:

minimap, console, viele viele bugs beseitigt…

mal schaun was noch daraus wird…


Schaut ja schon sehr interessant und vielversprechend aus!

Wieso benutzt du VRML?

Der cody hat auch eine Engine in der Mache, die allerdings nur als ActiveX-Plugin des Internet Explorers funktioniert. Aber er hat schönere Lens Flares.


auch wenn es Ford Prefect nicht wahrhaben will:
sämtliche namhafte next-generation-engines werden in zukunft die ActiveX technologie verwenden.

aber jetzt ma zu den screenshots:
-die lensflares sind eindeutig geklaut, wie ich später noch belegen werde. :smiley:

-warum vrml? ich hab schon zig 3d-formate benutzt, aber vrml war irgendwie nie eine option. wäre mir garnicht in den sinn gekommen, ich habs mir nichtmal angeschaut. was kann man da alles drin speichern?

-wie groß sind deine maps?

-wie renderst du den himmel?

-wie funktioniert die kollisionserkennung? ich hatte damit immer probleme, wenn ich kompliziertere objekte mit der landschaft kollidieren wollte.

jetzt werd ich mal paar bilder von meiner landschaft suchen.


danke :slight_smile:

hehe keine angst , die hab ich eh wieder entfernt, da es ja lensflares nur bei kameras gibt…? (auch wenns ein lustiger effekt ist) und ich ja in der Ich-perspektive spiele…

hehe, ja das war so, ich hab vor jahren da mal nen loader für geschrieben, und hab das format genommen, weil es halt direkt lesbar ist
(ascii) und cinema4d (mit dem in modelle) das exportieren kann…
und dann war ich zu faul was neues zu schreiben…

an sich werd ich wahrscheinlich bald zu nem anderen format wechseln…

das hat indexierte vertex (recht gut fuer vertex arrays etc.)
texturen, transfomationen… halt das nötigste…

bis jetzt 256 * 256 (in grau oder farbe… mit farbe sind dann detailreichere maps möglich ) an sich kann man beliebig grosse nehmen, aber zum nachladen sind 256 * 256 ganz gut… hatte mal eine 1024*1024 , das hat a weng lang gedauert…

man kann aber die orientierung, der maps im raum angeben, und er macht dann verbindungspunkte… somit kann man maps zusammenhaengen…

der himmel ist ne kugel, aber dieser wird nicht riesig gross gemacht, sondern klein gerendert aber nur im tiefenbereich von 0.9999 und 1.0 somit ist es immer hinter allen objekten (weil diese nur von 0 bis 0.9999 gemapped werden)

naja ich hab bis jetzt nur kollision des spieler mit landschaften / objekten…
sprich einfache ray-polygon intersection :slight_smile:

bin gespannt :wink:


also meine landschaft hat weder bäume noch reflektionen, aber das ist eh spielerei. :smiley:
lensflares hingegen sind ein absolutes muss.

mein renderer war eher auf geschwindigkeit als auf gut aussehen getrimmt. und ich glaub es ist schwierig, was schnelleres zu programmieren. :smiley:
dafür braucht der aber recht viel speicher, weil immer die höchste detailstufe geladen werden muss, auch wenn nur wenig details gerbaucht werden.
ich wollte den renderer aus grapa für ein spiel benutzen, aber das war mir dann letztendlich zuviel aufwand.





hier dann ein ingame-video:
http://fch.selfkill.com/videos/game-20050227-1.avi

und hier das spiel nach dem rausschmeissen der landschaft und vereinfachung auf 2d-gameplay.(3d is irgendwie um einiges aufwändiger…)
http://fch.selfkill.com/cody/spacewar2006/videos/spacewar2006-06.avi


wow coole landschaft… hast da mal ne höhenmap?? würd die gern mal ausprobieren…

auch das cubemapping? am schiff ist schön…

und so wenig mem verbrauch… ich sollte doch mal das was ich grad net brauch ausm speicher nehmen G hab jetzt schon 150 mb… wobei ich denke bis 512 sollte ja eh jeder haben :slight_smile:

was du ändern solltest, stell mal das texture mapping deines cubeskys auf folgendes:

#define GL_CLAMP_TO_EDGE 0x812F
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

dann hast die dummen ecken nimmer…
wobei ich zu skydomes (spheres) übergegangen bin, da ich in echtzeit wolken drüber fliegen lassen will, und das mit sphere viel einfach ist… einen wolken generator hab ich schon gemacht, aber in echtzeit läuft der leider noch nicht :frowning:

achso wie funkt dein LOD? geometric mipmapping, oder reduktionsalgo?


hier gibts die map:
http://www.cc.gatech.edu/projects/large_models/ps.html

das am schiff ist nichtmal cubemapping, sondern billiges spheremapping, aber wie man sieht, tuts das auch. :smiley:

danke für den tip für die ränder, ich hab den code zwischen 2 programmen ausgetauscht, und bei dem einen hatte ich die scheiss ränder, hat mich leicht genervt.

ich benutz geomipmapping bei dem ich alle detailstufen vorberechne, das kommt ziemlich gut, weil danach für das rendering sogut wie keine berechnungen mehr notwendig sind.

und wie bitte verbrauchst du 150mb bei einer 256x256 map? :smiley:


danke :slight_smile: gleich mal testen…

hehe nicht bei einer… sondern bei 4, aber das ist garnicht das was den speicher frisst… hinzukommt , texture map für das terrain + detail texturen + objekte + kollisionsstrucktur + die ganzen bäume + displaylisten + vertex arrays…

also vorallem viel VRam verbrauch ich… muss mal testen, wie schnell sich displaylisten nachladen lassen…


ok, ich muss jetzt hier mal meine fortschritte melden.

ich hab den grafikteil mächtig aufgebohrt mittels allerlei shader spielereien, mit dem nebeneffekt, dass man jetzt eine ziemliche dicke grafikkarte braucht. :smiley:

desweiteren habe ich html gelernt und eine tolle homepage gemacht:
http://fch.selfkill.com/cody/spacewar2006/
oben links kann man auf videos und pics klicken → eine tolle sache!


Ich frag mich warum du überhaupt studierst, mit deinen HTML Skills wirst du doch von jeder Agentur von der Straße weggekauft …


Ahhhh! Augenkrebs! Validatorkrebs (Failed validation, 22 errors)!
Aber ansonsten nette Bildchen :smiley:


ach, solang das im brauser angezeigt wird, kanns nicht falsch sein. :smiley:

hab hier auch ein neues video, diesmal sogar ingame(“fetzt!”):
http://fch.selfkill.com/cody/page/spacewar2006-videos/spacewar2006-24-lq.avi

leider sind die computergegner strunzdumm und fliegen gerne kamikazemanöver. KI anyone??


wow, sehr schön, vorallem die partikel? effekte gefallen mir, die hab ich noch net so hinbekommen…

bin grad dabei auch ein menu , fenster, buttons einzubauen…

p.s. wir suchen noch modeller, falls da wer interesse hätte…


na dann viel spass, menüs sind verdammt eklig zu programmieren!

p.s. ich suche auch einen modeller, aber ich ich glaube, dass es hier keinen gibt, da sich alle lieber an den den eiern spielen.(die damen ausgenommen)
da könnte ich genauso gut im giga forum fragen…(ok, da würden sich wahrscheinlich viele melden, die es aber garnicht können.)


ja buttons hab ich schonmal ,verschieben kann man die auch… nur wenn sie übereinanderliegen wirds eklig…

du meinst : http://www.youtube.com/watch?v=yCCC9unFErM&feature=Views&page=1&t=t&f=b


warum das format wechseln, wenns tut?
gibts irgendwo ein survey paper dass die diversen formate gegenüberstellt?


falls du mich damit meinst, naja ersten ist vrml in ascii… also braucht recht viel platz im gegensatz zu binär und ist aufwendiger zu laden… derweil bietet es nicht alles was ich brauche, aber ich werd wahrscheinlich eh ein eigenes machen, dass dann genau auf das zugeschnitten ist…

und weil ich gern immer alles mal selbstgemacht hab, muss da auch mal ein 3d dateiformat her G


naja
parser zu basteln ist net so arg spannend :wink:

Update!
so, ich war wieder ziemlich aktiv und hab viel code gehackt.
alle freiwilligen können sich das spiel hier runterladen:
http://fch.selfkill.com/cody/page/spacewar2006-files/spacewar2006-20060411.zip

es ist zwar nicht fertig, aber man kann es allein gegen bots und im lan/internet spielen.
der singleplayer mode ist allerdings nur ein hack, eigentlich hatte ich nicht vor, sowas überhaupt einzubauen.
aber da mono so extrem lahm ist, und ich deswegen keinen internet server hosten kann, hab ichs mal eingebaut.
der server lastet halt einen 3ghz rechner zu 80% aus, das geht mal garnicht, während mit .net unter windows die auslastung 10% beträgt.

achja, und wer zu faul ist, es auszuprobieren, muss mir einen trifftigen grund nennen!

p.s.: mit tab kann man die spielerliste einblenden, und mit esc raumschiff und team wechseln. mit 1-3 kann man waffen wechseln. space zoomt.