Seite 1 von 3
threadgespräch(lachen erlaubt)
Verfasst: 16.10.2006 20:26
von DW
1. Post:
> spielt hier einer warcraft 3?also nit wow sonder warcraft...
>
> NW
Manchmal spiele ich Warcraft 1 das ist lustig weil das auf Rechner speep basiert dann sind die menschen zu schnell ^^ dann muss ich meinen Rechner immer runter takten
aber viel besser als Warcraft ist das kultspiel starcraft =D das spiele ich manchmal
2. Post
Rechner speed basiert?? lol. Denkst du, dieprogrammieren das extra so, dass es auf schnellen Rechnern schnell läuf(Quatsch)?
Wenn man kein frameunabhängiges Programmieren kann, kommt da natürlich sowas wie Warcraft 1 rauß.
Frameunabhängiges Programmieren: Egal wie schnell die Schleifengeschwindigkeit ist, der Speed wird automatisch den Schleifendurchgängen angepasst.
Bei zu großem FPS(Frames per Second, Schleifendurchgänge per Sekunde), wird der speed runtergerappelt.
3. Post:
du weißt das die übersicht deswegen in A ist und keiner was davon versteht (komischerweise auch ich irgendwie nicht, obwohl ich schon einigermaßen java kann)?
hängt vielleicht von der sogenannten übersicht und dokumentation -.-
4. Post:
Oder von der Erfahrung. Also, man prüft am Schleifenanfang die Windowsstartzeit. Nehmen wie, stime=2000 (Millisekunden)
So, am Ende der Schleife ist sie logischer Weise mehr. Sagen wir 7000.
Dann ist time=7000-2000
Also 5000.
Wäre der Schleifendurchgang länger(CPU langsamer, logischer Weise), wäre die Schleifenendzeit 10000, also 10000-2000, was 8000 ergeben würde. Der speed wäre also größer.
Bei nem schnellen CPU wäre die Schleifenendzeit z.B 4000, also wäre speed nur 2000, also würde sich die Position des Bildes um a*2000 Pixeln ändern.
Müsstest du jetzt verstanden haben.
Verfasst: 16.10.2006 20:29
von DW
5. Post:
verstehen muss ich es nicht ^^ ich nehme programmiersprachen, wo zeit sowieso nichts zu bedeuten hat : Java
roflroflrofl
Später:
> > >von was redet ihr da eigentlich? mich interessiert nicht wirklich ob sich die Position des Bildes um a*2000 Pixeln ändert xD
> >
> > Meinen ja nicht nur Bild. Kann jede mögliche Addition/Subtraktion/Multiplikation und Division bei einer Variable sein. Und überhaupt alle Ausführungen der Befehle/Funktionen/Prozeduren.
>
gehts dir noch gut? hast du jemals in deinem leben ein aktuelles computerspiel gesehen? nein? dann laber hier net ^^
gut das du das erwähnst, die aktuellen spiele haben bestimmt keine funktionen und prozeduren :-P wollt ich mal nur so andeuten ....
Später:
Bestimmt wurde das nicht in "Assembler umgesetzt" sondern das durch eine SDK oder mit einem Framework für Windows bzw Linux.. weil assembler eigentlich nur durch das betriebsystem benutzt wird.. der rest wird dadruch gemacht..
Nächste Post:
> > Euch ist aber schon klar, dass ihr beide anscheinend keine Ahnung habt und dass das Meiste, was ihr hier von euch gegeben hat, vollkommener Blödsinn ist?
>
> das kommt immer bei raus, wenn man 3d spiele programmieren will...
>
> ich sags ja, macht minispiele
>
> PS: hat einer interesse an einem buttonspiel?
NEIN
Später:
> >was ihr hier von euch gegeben hat, vollkommener Blödsinn ist?
> So, was denn?
zB:
> Meiiiiine Fresse. Fast jedes Befehl ist eine zusammengepackte Funktion(In einigen Programmiersprachen). C++ hat sowas natürlich nicht.
Die Frage ist hier, was du unter Funktionen verstehst. Wenn du Funktionen im Sinne des funktionalen Paradigmas, wie es reine funktionale Sprache (zB Haskell) implementieren, dann hat C++ keine Funktionen. Wenn du Funktionen im Sinne der Prozeduren des imperativen Paradigmas hast (die in C/C++ Funktionen genannt werden), dann hat C++ Funtionen.
> Da muss man solche Grafik Motoren selber proggen.
C++ an sich kennt keine Grafik, ja.
Aber: Da kann man seine eigene Engine schreiben, in dem man zB DirectX benutzt (oder OpenGL, offen, frei und portabel), oder man nimmt eine der vielen freien Engines, wie zB OGRE, Irrlicht oder Sauerbraten. (Frei ist hier jeweils sowol im Sinn von "Freibier", als auch "Freie Rede" gemeint, also kostenlos und du kannst damit machen, was du willst).
> UE hat natürlich keine Funktionen.
Jein, siehe oben.
> Die haben das alle gezeichnet und eine Maschine hat das für sie selber in Assembler umgesetzt.
"gezeichnet"?
Und wie das genau kompiliert wurde, ist da vollkommen egal. Der Prozessor an sich kennt überhaupt keine Funktionen (im funktionalen Sinne), sondern nur Prozeduren (im imperativen Sinne), call (= push Adresse auf den Stack und jump) und return (= pop Adresse aus dem Stack und jump)... Im Endeffek muss also jeder Code einer Sprache, die ausgeführt wird, "umgewandelt" werden, Funktionen sind nur eine Abstraktion...
Und auch der Rest, besonders was du von Threads und Frames gesagt hast, zeugt von massivem Halbwissen...
Verfasst: 16.10.2006 20:33
von DW
Später:
> Och man, jetzt habe ich noch was vergessen. Sinan, wenn du Spiele programmieren willst, empfehle ich dir C++. Mittlerweile gilt Java als die lahmste Sprache.
Java ist zwar langsamer, als echt kompilierte Sprache, aber die langsamste ist sie noch lange nicht. Da gibt es nämlich noch BASIC, Python, Haskell, ...
> Was is Java nochmal? Compiler oder Interpreter?
Ein Mittelding, es wird in einen optimierten Bytecode kompiliert, der zur Laufzeit interpretiert wird.
Später:
> >
> > Und auch der Rest, besonders was du von Threads und Frames gesagt hast, zeugt von massivem Halbwissen...
>
> So, das, was du geschrieben hast waren eigentlich nur weitere Erklärungen.
...die du nötig hast.
> Zum FPS: Ich weiß ja wohl, was das ist. Und wenn du meinst, dass ich nicht weiß, was threads und frames..
Wissen, was etwas ist und wie man es benutzt/realisiert sind zwei paar Schuhe...
> sind, dann haben wohl alle anderen in Programmierer boards auch keine Ahnung.
Naja, da sich in Programmiererboards meistens viele Anfänger und 1-2 "Betreuer" rumtreiben...
Später:
> Eben nicht. Wer hat denn gesagt, mein lieber Sven das das in C++ geschrieben ist?
Dann hast du doch sicher nichts dagegen, den Quellcode mal öffentlich zu machen?
> lollolollol, welches BASIC meinst du?
Fast jedes BASIC wird interpretiert und ist somit elend lahm.
> Sieht schon etwas kompliziert aus. Aber das ist im Vergleich zu richtigen Motoren nichts.
Habe ich auch nicht behauptet.
> Oh, zu Funktionen: Ich meine Prozeduren. (lol). Weißt schon, denen man Werte liefern kann.
Ok, dann lagst du in einigen Punkten falsch: C++ hat Funktionen, ebenso wie die Unreal Engine, die ja AFAIK in C++ geschrieben wurde...
Ich für meinen Teil würde davon abraten, rein DirectX zu benutzen, es ist nicht portabel...
Verfasst: 16.10.2006 20:34
von DW
In welcher Post steckt der meiste Müll? Was verhandeln wir?
Verfasst: 16.10.2006 23:28
von Kaeru Gaman
sowas kommt eben dabei raus, wenn kleine kinder über spiele reden, die älter sind als sie selbst.
früher war das tatsächlich so, dass spiele keinen zeitcheck für zu schnelles laufen besaßen.
viele besaßen einen check gegen zu langsames laufen.
manche checks waren so eingerichtet,
dass am anfang eine festgelegte schleife lief, deren dauer geprüft wurde.
wenn das so bemessen war, dass das spiel ermitteln konnte ob es auf 33 oder auf 100 MHz läuft,
dann war natürlich nach oben offen. wenn die schleife zu schnell durch ist,
kann das spiel nicht ermitteln, ob es auf 100 oder 2000 MHz läuft.
damals hat halt niemand dran gedacht, seine games für 50-100mal schnellere rechner sicher zu machen.
ich hab hier auf nem 100er Pentium noch Frontier,
dem muss ich da schon ne kleine bremse verpassen.
optimal läuft es bei 33-50 MHz.
Verfasst: 17.10.2006 00:40
von DW
Man, Gaman, so geht das:
Code: Alles auswählen
repeat
stime=millisecs()
speed#=millisecs()-stime
forever
Blitz3D example
Java ist zwar langsamer, als echt kompilierte Sprache, aber die langsamste ist sie noch lange nicht. Da gibt es nämlich noch BASIC, Python, Haskell, ...
Is doch nicht sein Ernst, oder?
Verfasst: 17.10.2006 05:41
von MVXA
> Man, Gaman, so geht das...
Damals waren die Programmierer halt zu blöde für sowas

...
Verfasst: 17.10.2006 07:57
von ZeHa
Is doch nicht sein Ernst, oder?
Naja anscheinend schon

Verfasst: 17.10.2006 08:48
von Froggerprogger
Spielehits wie Stargoose und andere hatten auch keine Framebegrenzung. Neulich habe ich Stargoose auf einem 3GHZ-Rechner gespielt. Innerhalb dem Bruchteil einer Sekunde waren sämtliche Leben verbraucht, obwohl das Raumschiff für das Auge noch nichteinmal losgeflogen war...
Dann gab es da so tolle Programme wie z.B. moslow, damit konnte man den Rechner für ein Programm langsamer erscheinen lassen (weiss aber nicht, wie das funktioniert).
Aber schließlich gelang es, mit DosBox und MoSlow Stargoose in vernünftiger (und sogar einstellbarer...) Geschwindigkeit zu spielen.
Auch andere Spiele hatten das Problem. Manchmal funktionieren auch nur Teile des Spiels in korrekter Zeit, z.B. Eingangsanimationen, aber der Rest dann nicht.
Eine Mini-Anmerkung zum Beitrag Thema Java: Java kompiliert zunächst in Bytecode, den es dann zunächst interpretiert, aber seit den JIT-Compilern dann auch Stück für Stück in nativen Maschinencode compiliert und dabei einige weitere Laufzeitoptimierungen vornehmen kann.
Verfasst: 17.10.2006 13:11
von Thorium
Also auf meinem Athlon XP 3200+ läuft Warcraft I ohne Probleme. Nix von zu schnell. Habs letztes erst wieder hervorgekramt.