WiP - Work in Progress - Part XV
Übersicht

Gehe zu Seite Zurück 1, 2, 3 ... 16, 17, 18, 19, 20 Weiter
![]() |
PSY |
![]() Antworten mit Zitat ![]() |
---|---|---|
Casiopaya hat Folgendes geschrieben: EDIT: Ah das fällt mir ein: Ich hab vor Jahren einmal ein QBasic-Programm geschrieben, dass sich ganz genau so verhielt wie der "format c:" - Befehl aus DOS-Zeiten. Das hab ich dann auf den PC meiner Kumpels gestartet. Ein sinnloses Lesen auf der Festplatte hat sogar noch den Formatierungsprozess simuliert und ein Timer steuerte die % - Anzeige. Beim 1. Mal hab ich natürlich nicht verraten, dass da nicht das echte format c: ausgeführt wird... Unbezahlbar ![]() ![]() ![]() hrhr, sowas kenn ich. ich hab damals mal nen prog in turbo pascal geschrieben. das hat nen HD speedcheck simuliert und in wahrheit in jedem ordner und unterordner auf der HD sinnlose ordner und dateien angelegt. am ende stand dann da: "MUAHAHAHAHAHAHA. PSY WAS HERE". mein kumpel hat mich fast erschlagen. hatte natürlich auch das gegenmittel ![]() |
||
PSY LABS Games
Coders don't die, they just gosub without return |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich möchte euch ein paar Fortschritte von meinem Projekt vorstellen.
"Star Wars - Era of War" nennt sich das Projekt seit einiger Zeit und besitzt ein Forum dessen Community langsam wächst. (Bei Interesse siehe Signatur) Die Erste Neuerung sind kleine Nachrichtenfenster für Missionen oder ähnliches. Sie können in 2 verschiedenen Modi gestartet werden: Einer für Nachrichten die nur per Bestätigung mit der Leertaste "weiterblättern bzw. abschalten" und der 2. Modi für zeitlich begrenzte Nachrichten. Im 2. Modi kann für die schnellen Leser auch per Leertaste sofort weitergeblättert werden noch bevor die Zeit abläuft. ![]() Wie für alle Aktionen in dem Projekt werden für die Nachrichtenfenster auch Functions genutzt: Code: [AUSKLAPPEN] M2_ShowMessage(ID,Anzeigezeit,Modi)
Die Übergebene ID ist ein Identifikator dafür welcher Text angezeigt werden soll. Alle Nachrichtentexte die im Spiel auftreten können werden extern geladen und erst wenn sie gebraucht werden aus einer Typliste entnommen um beispielsweise diesen Text anzuzeigen. Hier wurde nun zum 3. Mal eine Überarbeitung der Explosionseffekte vorgenommen. Da vielleicht einigen der vorherige Effekt besser gefiel möchte ich eventuell im fertigen Spiel 2 Effektpackete anbieten. Einmal mit plastischeren Effekten (voluminös) oder eben mit diesen stark leuchtenden stilisierten. ![]() Einige Schiffe bekamen auch nun endlich Texturen: ![]() Und es gibt jetzt eine Systemkarte: ![]() Hier sieht man alle Planeten des Coruscant Systems größer dargestellt um eine bessere Übersicht zu verschaffen. Die Planeten sind so texturiert dass ihre Oberfläche glaubwürdig im Verhältnis zu ihrer Nähe zur Sonne erscheint. Diese befindet sich in etwa der Richtung aus der wir die Karte hier betrachten. Hier ein Planet in mittlerer Entfernung zur Sonne, jedoch zu nah um Temperaturen zu schaffen bei denen Wasser flüssig ist ("Vandor-2") ![]() ![]() Und "Platoril", ein kleiner Planet der am zweit-nächsten an der Sonne ist und eine schwefelhaltige und weiche (bzw. geschmolzene) Oberfläche besitzt. Hier sieht man auch, dass sich die Größe der stilisierten Sonnenstrahlen bzw. Überblendung der Sonne im Vergleich zur Position bei Coruscant verändert hat. Sie scheint nun viel intensiver. Vielleicht ist es euch auch schon aufgefallen: Die Informationsfenster können nun bis zu 3 Seiten voll mit Infos über das Ziel beinhalten. Derartig umfangreichen Informationen zu einem Ziel sollen den interessierten StarWars Fans nebenbei die Möglichkeit bieten das Spiel als eine Art "3D Star Wars Lexikon" zu sehen bei dem sie nicht nur einfache Bilder wie im Internet sehen, sondern ihr Objekt für das sie sich interessieren in 3D betrachten können. ![]() Das ist nur ein Testtext über eine Golan-Kampfstation, nicht über Coruscant so wie es hier gezeigt wird. Außerdem verfügt das Spiel nun über ein Bündnissystem was vor allem für den Multiplayer eine wichtige Rolle spielen soll, da es dynamisch und veränderbar ist. Hier kann man sehen wer Freund und Feind ist. ![]() Um euch nun ein wenig vom Lesen zu entlasten ab jetzt nur noch kurze Beschreibungen ![]() Ein Blick in den Navigationscomputer während eines Hyperraumfluges. Der Spieler ist die rote Kugel, so kann man verfolgen wo man sich gerade befindet und wie lange es noch dauert bis man ankommt. (Übrigens muss während des Spieles nicht nachgeladen werden, es gibt nur einen unauffälligen Ruckler für paar ms bevor man im System kommt) ![]() Die 2 Sonnen von Tatooine mit einem Firespray Fighter im Schatten. ![]() Die Explosion einer seizmischen Bombe. (Extrem tödlich wenn man in den Strahl/Welle von ihr kommt!) ![]() Neben den Bomben haben nun auch Raketen und Torpedos den Weg ins Spiel gefunden. So, Bilderflut beendet. ![]() MfG. NightPhoenix |
||
- Zuletzt bearbeitet von NightPhoenix am Sa, Jul 04, 2009 15:37, insgesamt 5-mal bearbeitet
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sieht super aus, NightPhoenix.
Ich freu mich riesig auf ne Demo ![]() MFG |
||
tobias12 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
genial
*einensehrgrossentempelbauennebenava* mach weiter so, und bring bitte mal eine demo raus:) mlg |
||
Mein Projekteforum |
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Grafik ist toll, der Gameplay wird wohl auch gut sein ![]() etwas ganz tolles find ich die Infos, also den Text über Coruscant usw! mfg ozzi |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
vanjolo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wahnsinns Arbeit!
Was soll man mehr dazu sagen. ![]() |
||
***************************
in Entwicklung: Tank Battles - Panzeraction Pacific Battles - Rundenstrategie abgeschlossenes Projekt: Harrier Assault |
aletes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
einfach geil gemacht ![]() es erinnert mich ein wenig an X2/X3, nur mit StarWars-Schiffen und Planeten, aber richtig gut gemacht, mach weiter so ![]() |
||
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke vielmals für all das Lob ![]() Zitat: es erinnert mich ein wenig an X2/X3 Ich glaube so ziemlich jedes Weltraumspiel erinnert gewissermaßen an ein anderes der Sorte ![]() Zitat: bring bitte mal eine demo raus:) Ich will nichts versprechen, aber ich arbeite bereits fieberhaft an einer "rundum" Version (wohlbemerkt Alpha Status) ohne zu große Lücken, die man endlich mal der Öffentlichkeit präsentieren kann.
|
||
- Zuletzt bearbeitet von NightPhoenix am Sa, Jul 04, 2009 18:14, insgesamt 2-mal bearbeitet
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
In den vergangenen zwei Wochen habe ich mich nach Lektüre von Wirths Buch über Compilerbau mal an eine kleine Scriptsprache gemacht.
Nicht gleich die Augen verdrehen ("NOCH eine Scriptsprache"), sie ist keineswegs zur tatsächlichen Verwendung gedacht, sondern ist nur ein kleines Lernprojekt meinerseits, um die Funktionsweise von Compilern besser zu verstehen ![]() Die Syntax ist sehr nahe an der von BlitzBasic/BlitzMax gehalten, da mir diese Syntax eben gefällt und sie zudem leicht zu implementieren ist. Einziger Unterschied bisher liegt darin, dass Variablen vor ihrer Verwendung zwangsweise deklariert werden müssen und dass ein If - Statement immer mit einem EndIf abgeschlossen werden muss, auch wenn es nur eine Zeile lang ist. Funktionen müssen ausserdem immer mit Klammern aufgerufen werden (Print "Hello World" wie in BB geht also nicht, das müsste Print( "Hello World" ) heissen). Die Sprache beherrscht bisher Variablentypen Int und Float, die Kontrollstrukturen If-ElseIf-Else-EndIf/Repeat-Until/While-Wend/For-Next/GoTo, kann beliebige mathematische Ausdrücke berechnen und kann Funktionen aufrufen, die man vorher in BMax registriert hat (natürlich mit Parametern und Rückgabewerten). Strings funktionieren vorerst noch nicht, ausserdem kann man in der Scriptsprache selbst noch keine Funktionen definieren - baue ich vielleicht noch ein, falls ich Lust dazu habe. Zusätzlich zur BB - Syntax habe ich eingebaut, dass Funktionsaufrufe auf beliebig viele Zeilen verteilt werden können. In BMax kann man das mit .. erreichen, als kleine Erleichterung gehts in der Scriptsprache auch ohne. Desweiteren kann man mit einem ; automatisch einen Zeilenumbruch einleiten. Der Parser übersetzt das als Zeilenumbruch, womit man beliebig viele Befehle in einer Zeile schreiben kann (wahlweise auch das ganze Programm). In BB konnte man mit : zwar mehrere Befehle in eine Zeile schreiben, das funktionierte aber auch nicht mit allen Konstrukten. Um die momentanen Fähigkeiten der Sprache auszutesten, habe ich ein kleines (62 Zeilen) Pong darin geschrieben, das dann vom Parser ausgeführt wird. Script Code: [AUSKLAPPEN] var GWIDTH:int = 800
var GHEIGHT:int = 600 var PlayerX:int = 30 var PlayerY:float = GHEIGHT/2 - 50 var PlayerPoints:int var ComputerX:int = 740 var ComputerY:float = PlayerY var ComputerPoints:int var BallX:float = GWIDTH/2 var BallY:float = GHEIGHT/2 var BallYSpeed:float = Rnd( -1.5, 1.5 ) var BallXSpeed:float = Rnd( -1.5, 1.5 ) Graphics( GWIDTH, GHEIGHT ) While KeyHit( 27 ) = 0 var Timespan:int = Millisecs() Cls() DrawRect( PlayerX, PlayerY, 30, 100 ) DrawRect( ComputerX, ComputerY, 30, 100 ) DrawOval( BallX, BallY, 30, 30 ) DrawText( 100, 0, PlayerPoints ) DrawText( 700, 0, ComputerPoints ) If RectsOverlap( PlayerX, PlayerY, 30, 100, BallX, BallY, 30, 30 ) And BallXSpeed < 0 Then BallXSpeed = -BallXSpeed + Rnd( 0, 0.1 ) ElseIf RectsOverlap( ComputerX, ComputerY, 30, 100, BallX, BallY, 30, 30 ) And BallXSpeed > 0 Then BallXSpeed = -BallXSpeed - Rnd( 0, 0.1 ) EndIf If BallY < 0 Or BallY + 30 > GHEIGHT Then BallYSpeed = -BallYSpeed EndIf If BallX < 0 Or BallX + 30 > GWIDTH Then If BallX < 0 Then ComputerPoints = ComputerPoints + 1 Else PlayerPoints = PlayerPoints + 1 EndIf BallX = GWIDTH/2 BallY = GHEIGHT/2 BallYSpeed = Rnd( 0, 3 ) - 1.5 BallXSpeed = Rnd( 0, 3 ) - 1.5 Delay( 1000 ) EndIf BallX = BallX + BallXSpeed BallY = BallY + BallYSpeed PlayerY = PlayerY + ( KeyDown( 40 ) - KeyDown( 38 ) )*0.5 If BallY < ComputerY + 50 Then ComputerY = ComputerY - 0.5 Else ComputerY = ComputerY + 0.5 EndIf If PlayerY < 0 Then PlayerY = 0 ElseIf PlayerY + 100 > GHEIGHT Then PlayerY = GHEIGHT - 100 EndIf If ComputerY < 0 Then ComputerY = 0 ElseIf ComputerY + 100 > GHEIGHT Then ComputerY = GHEIGHT - 100 EndIf DrawText( 0, 0, Millisecs() - Timespan ) Flip( 0 ) Wend End() Screenshot (verkleinert): ![]() Download Gesteuert wird mit den Pfeiltasten, die Punkte werden Mitte links bzw. Mitte rechts angezeigt. In der linken oberen Ecke steht ausserdem die Ausführzeit der Hauptschleife. Nichts spektakuläres, aber ist ja nur ein Test. Der Code des Parsers liegt bei, falls jemand am Aufbau interessiert ist (aber bitte nicht schlagen, der Code ist noch relativ unaufgeräumt ![]() |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
![]() |
ComNik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eins der besten Bücher die ich kenne.
Aber: Da scheint was (ausnahmsweise) nicht zu funktionieren. Der Ball springt hin und her wie verrückt und bleibt ab und zu stehen. ![]() Der Computer kriegt dauernd punkte weil ich den Ball nicht erreiche, da das spiel stehen bleibt. lg ComNik |
||
WIP: Vorx.Engine |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Noobody, so wie ich das verstehe wird das ganze aber noch nicht als .exe oder ähnliches kompiliert, sondern einfach nur von deinem Programm interpretiert.
NOCH eine Scriptsprache ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
ComNik hat Folgendes geschrieben: Aber: Da scheint was (ausnahmsweise) nicht zu funktionieren. Der Ball springt hin und her wie verrückt und bleibt ab und zu stehen.
![]() Der Computer kriegt dauernd punkte weil ich den Ball nicht erreiche, da das spiel stehen bleibt. *hust* Da hatte ich wohl vergessen, dass das Ding ohne Timer läuft - je nach Rechenleistung des Computers läuft es halt irre schnell oder sehr langsam. Anfängerfehler, sorry ![]() Eine neue Version mit angepassten Werten ist oben, hier nochmals der Link Tankbuster hat Folgendes geschrieben: Noobody, so wie ich das verstehe wird das ganze aber noch nicht als .exe oder ähnliches kompiliert, sondern einfach nur von deinem Programm interpretiert.
Ja? Ich schrieb doch hin, dass es eine kleine Scriptsprache ist ![]() |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: sie ist keineswegs zur tatsächlichen Verwendung gedacht, sondern ist nur ein kleines Lernprojekt meinerseits, um die Funktionsweise von Compilern besser zu verstehen
Das hat sich ehr so angehört, als ob du das geschrieben hättest, um zu testen, wie ein Compiler funktioniert. Was bedeuten würde, dass du schon einen kleinen geschrieben hättest, und... ja ^^ Also willst du nur testen, ob du das mit den Schleifen und so gut hinbekommst. Na dann ![]() Bei dir kann man nie wissen, was du tolles machst, wenn dir langweilig ist. ^^ Vielleicht ein Draw3D-Klon, eine Physik-Lib, einen Matheparser, einen Rasterizer oder mal eben einen Compiler ![]() ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tankbuster hat Folgendes geschrieben: Das hat sich ehr so angehört, als ob du das geschrieben hättest, um zu testen, wie ein Compiler funktioniert. Was bedeuten würde, dass du schon einen kleinen geschrieben hättest, und... ja ^^
Es ist ja ein Compiler - einfach einer, der nicht in Maschinencode übersetzt, sondern in einen simpleren Code, der dann von meinem Parser verstanden und ausgeführt wird. Ein Compiler ist nicht zwingend ein Programm, das .exes erstellt, sondern einfach ein Programm, welches eine Programmiersprache in eine andere übersetzt. Tankbuster hat Folgendes geschrieben: Bei dir kann man nie wissen, was du tolles machst, wenn dir langweilig ist. ^^
Vielleicht ein Draw3D-Klon, eine Physik-Lib, einen Matheparser, einen Rasterizer oder mal eben einen Compiler ![]() ![]() Naja, das hat nicht immer mit Langeweile zu tun, sondern einfach, weil mich so Zeug interessiert ![]() Dafür lass ichs dann einfach irgendwann liegen, wenn das Interesse nachlässt. |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Ein Screenshot vom dritten Demo-Level. ![]() Es ist halt alles noch nicht ganz perfekt, aber im Groben bin ich schon sehr zufrieden! ![]() ( Diese Karte hat allerdings ein ganz schlimmes Problem, für das ich in meinem Trash-Code bisher noch keinen Lösungsansatz gefunden habe ![]() ![]() |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Noobody:
Stimmt eigentlich. Es gibt da einfach zuviele verschiedene Sachen. Programme, die der Prozessor direkt ausführen kann (Binärdatei) Programme, die erst vom Betriebssystem irgendwie Interpretiert werden müssen. (.exe) Programme, die von anderen Programmen auf einem Betriebssystem für dieses Interpretiert werden (irgendein Script.) (Interpretieren ist ein schönes Wort, in diesem Fall, finde ich) Ein Compiler ist für mich ein Programm, dass zum Beispiel ein Script zu einer .exe umwandelt. Also einen Code, für den man vorher ein Programm auf einem Betriebssystem gebraucht hätte, einfach so umschreiben, dass das Script direkt vom Betriebssystem ausgeführt werden kann. Ohne ein zusätzliches Programm. Eigentlich hast du Recht, dass ein Compiler nur von einer in die andere Sprache übersetzen soll, aber in der Praxis ist es so, dass entweder von einer "höheren" Sprache in eine Basis-Sprache übersetzt wird, oder von einer höheren in eine andere höhere. (Es ist doch sinnlos, ein Programm welches auf einem Betriebssystem läuft in eine Sprache zu übersetzen, für die das Betriebssystem erst ein anderes Programm benötigt, dass diese Sprache wieder "zurückübersetzt") Also dein Script bleibt ja noch unverändert und wird nur von deinem Programm Interpretiert. Daher ist es eigentlich kein Compiler, aber irgendwie doch, da dein Code ja vom PC ausgeführt werden muss.. njaa ich geh schlafen, hab keine Lust mir über das jetzt den Kopf zu zerbrechen. ^^ @Ava: Es gibt ja auch Tunnel, die unter einem Fluss hindurchführen. Das würd ich natürlich nur im äußersten Notfall verwenden, wenn du alles neu machen müsstest, oder so, weils mit Brücke einfach schöner aussieht ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tankbuster hat Folgendes geschrieben: Also dein Script bleibt ja noch unverändert und wird nur von deinem Programm Interpretiert. Daher ist es eigentlich kein Compiler
Doch, da vor dem Parsen aus dem ursprünglichen Script ein eher lowlevliger Zwischencode erzeugt (=kompiliert) wird. Nur dieser Zwischencode wird schlussendlich interpretiert - beim Ausführen ist vom ursprünglichen Script nichts mehr übrig. Diesen Zwischencode könnte man natürlich auch zwischenspeichern, damit man das Script nicht ständig wieder neu kompilieren muss, wenn man es ausführen will; dann würde so etwas ähnliches entstehen wie die Kompilate von Java (nur nicht so komplex, versteht sich ![]() |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
![]() |
Casiopaya |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
Tankbuster hat Folgendes geschrieben: Eigentlich hast du Recht, dass ein Compiler nur von einer in die andere Sprache übersetzen soll Tatsächlich ist genau das die Definition eines Compilers. Die Zielsprache muss nicht direkt von Hardware verarbeitbar sein sondern kann irgendetwas sein. |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oki, ich gebe mich geschlagen ^^ | ||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
mas93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Ava: Und die Berge hast du echt mit dem Relief Filter gemacht?
Könntest du etwas genauer erklären wie du die so toll hinbekommen hast? Weil die sehen echt genial aus ![]() |
||
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau] |
Gehe zu Seite Zurück 1, 2, 3 ... 16, 17, 18, 19, 20 Weiter
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group