[RIOT] Puzzletube


jaja, mit Turbo Pascal könnte ich das zur Not auch noch hinbekommen.
Code:
program Hello_World;
 
begin
  WriteLn('Hallo Welt!');
end.
Aber darüber hinaus wirds schon verdammt eng! :-D
 
Könnten wir von euren Programmiererfahrungen wieder back to topic kommen? ;)

Btw: Es ist mir klar, dass die Idee Dinge nach dem Haussperling zu benennen nicht neu ist...
 
so, ich nerv trotz deiner anmerkung das du uns auf dem laufenden hältst mal nach: wie gehts vorran?
 
So, damit das Gerücht, dass in diesem Forum nichts los sei, außer dem Gerücht, dass nicht los sei, nicht bestätigt wird, gibt es mal wieder ein winziges Update.

Ich war für eine Woche im Urlaub und auf der Hin- und der Rückfahrt, habe ich mit ein wenig durch den Assemblercode gewuselt und mich doch sehr gewundert, was der Compiler da scheinbar für einen Mist zusammengeschustert hat und dachte mir: "Hey, das kann ich auch selbst effizienter!" Lange Rede, kurzer Sinn: Konnte ich nicht. Aber ich bekam einen Einblick in einige unterschätzte Probleme. Wo der Compiler z.B. nicht "mitdenken" kann, weil er z.B. nicht weiß, wie ich einen Datentyp nutze. So gab es massig sinnlose Konvertierungen von 16 Bit zu 32 Bit Zahlen und zurück. Nun nutze ich soweit möglich nur 32 Bit Zahlen. Das "Mehr" an Speicher bewegt sich in Größenordnungen, die nicht mal meinen GP2X mit seinen 32 MB RAM erschüttern. Selbst unter DOS mit seinen 640 KB RAM hätte mir das egal sein können...
Außerdem konnte ich einige Überprüfungen rausschmeißen, die sich nur auf das Lesen bezogen. Entweder lässt man nun an Rändern Müll oder man wählt Texturierungen intelliegenter. Zweiteres ist schnell gemacht, fällt keinem auf und läuft sehr flink. Bei der Multiplikation der Farben konnte ich auch ein bisschen optimieren. Sieht nun auch um Längen hübscher aus. Außerdem habe ich ein wenig mit #define rumgespielt. KA, ob es schneller ist als inline, aber kommt immer mal cool im Code. Langsamer ist es nicht. Im Gegenteil, mindestens 20% Geschwindigkeitsgewinn insgesamt.

Aber apropros inline. Ich habe auch ein wenig mit Compiler Optimierungen rumgespielt, um ernüchternd festzustellen, dass meine momentanen Parammeter (-O3, -ffast-math) scheinbar schon optimal sind. -Os bringt massive Einbußen. Auch static statt inline (sodass der Compiler selbst entscheided, wo inline und wo nicht), macht es nur langsamer. Hat jemand von euch noch Ideen, was man so lustiges an Parametern übergeben kann?

Aber genug von der Optimierung. Ich habe heute auf dem Weg nach Hause was neues implementiert. Das Blitten von Surfaces. Ohne z-Test ist das trivial, aber bei einem z-Test pro Pixel, muss man "von Hand" blitten (statt über SDL). Das tue ich nun und das sieht man auch auf dem kurzen Video. Man sieht dort das alte Beispiel mit meinem Kater und darüber eine sich drehende Paprika als Surface. Sie wird richtig sortiert gezeichnet und auch das "Aufflippen" der anderen Seite ist so gewollt, denn in dem Punkt "springt" die Fläche um. Was nun fehlt, was man gut sieht, ist Transparenz. Die ist als nächstes auf der ToDo.
[youtube]CWf7xU1jIiU[/youtube]

LG Ziz
 
Nice, da sag noch einer, optimieren lohnt sich nicht. :D
Schön, dass es voran geht und dass man aus der Engine noch so einiges raus quetschen kann, wenn man mal etwas "entrümpelt". Wer weiß, was du in den tiefen des Codes noch so vorfinden wirst, vllt. Reste einer uralten Zivilisation? ;)
 
Fusion_Power said:
Nice, da sag noch einer, optimieren lohnt sich nicht. :D
Schön, dass es voran geht und dass man aus der Engine noch so einiges raus quetschen kann, wenn man mal etwas "entrümpelt". Wer weiß, was du in den tiefen des Codes noch so vorfinden wirst, vllt. Reste einer uralten Zivilisation? ;)
Naja, viel ist da nicht mehr zu holen. Nicht mit vertretbaren Aufwand und meinen Skills. Aber es wird reichen. :)

Nachtrag:
Ich hatte in der Vorlesung ein bisschen Zeit und habe wieder was an der Engine gefrickelt. Zum einen habe ich Alphatests (aber ohne Unterstufung, nur an oder aus) implementiert und zum anderen mit Schriftimplementierung begonnen.

Dabei lade ich jeden Buchstaben, den man will (z.B. willl man A-Z,a-z,die deutschen Umlaute und ß) in einen AVL-Baum und in diesem wird dann bei der Textausgabe gesucht. Die Suche in so einem Baum kostet nur ld(n) (mit n die Anzahl der Buchstaben, also meist sowas um die 64, also ld(64) = 6) und so kann ich auch beliebige andere Unicodezeichen später hinzufügen. :D
Es gibt auch wieder ein kleines Video. Wenn TextOut fertig ist, könnte ich sogar das bisherige Puzzletube mal reimplementieren. Mal schauen, wie gut das auf Anhieb klappt, habe ein paar Dinge verbessert, wodurch es aber zu Anpassungen kommen muss.
[youtube]0ls3ZE18U4w[/youtube]

Neuer Post:
Parallel zu der gp2x.de-Untergangsdebatte möchte ich euch heute wieder ein paar Fortschritte bei meinem Crosshandheldprojekt "Puzzletube" bzw. der dahinter stehenden Engine "Sparrow3D" zeigen.
Ich denke, die Details werden euch langweilen, deshalb direkt ein Video:
[flash=800,572]http://www.youtube.com/v/1Ev7EMaFeQA?version=3&hl=de_DE"[/flash]
Wie man sieht, ist vieles gleich, einiges neu, das meiste irgendwie besser (hoffe ich). Nun zu den blanken Zahlen. Bei 280 Mhz lassen sich alle 3 Darstellungsmodi auf dem GP2X spielen, bei 200 Mhz flüssig nur der einfarbige ohne Rahmen.

Auf der Pandora sieht es ähnlich aus. Foxblock hat für mich getestet und folgende Werte bei 600 Mhz ermittelt:
  • Flat: 39 FPS im Durschnitt, 35 Negativpeak
  • Border: 30 FPS im Durschnitt, 27 Negativpeak
  • Texture: 24 FPS im Durschnitt, 20 Negativpeak, merkbar ruckelig
Laut foxblocks Aussage, gefällt aber die flache Version eh schon, weshalb es u.U. gar kein merkbarer Nachteil ist. Ansonsten gilt halt übertakten oder ich optimiere nochmal. Aber meine Grenzen sind bald erreicht, viel ist nicht mehr zu erwarten.

Auf Caanoo, Dingoo und Wiz sollte es stets flüssig laufen. Die drei sind zwar schwächer als die Pandora, aber haben dafür auch nur 1/5 der Auflösung. ;-)

Eine Testversion für alle gibt es, wenn ich die Highscore und einen neuen Hintergrund implementiert habe. ;-)

LG Ziz
 
Da ich fürchte, dass ich an der aktuellen Untergangsstimmung in diesem Forum nicht ganz unbeteiligt bin, möchte ich mich bei dir, Ziz, ganz persönlich bedanken, dass du jeden Fortschritt an deinen Projekten hier zeitnah veröffentlichst.
Wenn das jeder Entwickler so handhaben würde, wäre die ganze Diskussion wahrscheinlich obsolet.
 
Es gibt keine Untergangsstimmung.

Schönes Video aber irgend wie ist mein einziger Kritikpunkt immer noch im Spiel: die Selektion. Bitte nicht mehr dieses kuriose "trail" dingens, das hat mich verrückt gemacht im Spiel. Man ist nur mit navigieren beschäftigt und kommt kaum zum puzzeln. Ich dachte, du wolltest ne simple Steuerung einbauen, einfach 2 Steine switchen, halt wie bei Too Keeper oder dergleichen. Alles andere finde ich grausam und einen riesen Spaß Killer. ^^"
Und wegen dem speed: wenns langsamer läuft als vorher machts ja keinen Sinn. Spielt die Auflösung bei der Geschwindigkeit ne Rolle dann kann man doch eigentlich auch auf der Pandora ne niedrige Auflösung wählen, derHardware Scaler übernimmt dann das Grobe. Das Game muss sicher nicht in nativer 800x480er Auflösung laufen. ;)
 
Interessante Idee mit dem Hardware Scaler...

Spieltechnisch habe ich bisher GAR NICHTS getan, also gemach, die Steuerung ist als nächstes dran neben anderen Dingen, die den Spielspaß steigern sollen. :-D
 
Meine erste äußerung als die texturen kamen: geil!

zur steuerung: ich mag das steuerprinzip immernoch, vllt sollten wir die ganzen ideen dafür nochmal zusammentragen
 
Ich denke, ich werde demnächst einfach den Thread nach den bisherigen Ideen durchgrabben und sie in meine ToDo machen. Ich habe auch in privaten Konversationen Anregungen bekommen.
Wenn ich demnächst™ eine neue Version rausbringe mit der neuen (und der alten) Steuerung, könnt ihr ja sehen, was da ist, und dann nochmal euren Senf dazugeben. ;-)

Ansonsten danke fürs Feedback :)

New Post:
[youtube]8cggcnFdAn0[/youtube]
Und mal wieder ein neues Video. Was ist neu?
  • Neuer Sternenhimmel
  • Neue Statusanzeige links
  • Neue Steuerungart. Man bewegt sich an eine Stelle auf dem Zylinder und kann dann zwei beliebige, angrenzende Steine tauschen. Die Tasten, die dafür gedrückt werden müssen, sind angegeben.
  • Bugfixes, Design, Ergonomie, etc.

LG Ziz
 
Es sieht wirklich so aus, als würde hier eine echte Perle entstehen. Die erste Version hat mir schon gefallen und es scheint noch besser zu werden, da solltest du dir vielleicht mal Gedanken über einen iOS/Android-Port machen. Reputation in dem Bereich mag später mal hilfreich sein. Egal was man grade macht, eine Präsenz in einem großen Downloadportal wird deiner beruflichen Zukunft sicher nicht im Wege stehen. Initiative im kreativen Bereich wird immer gerne gesehen.
 
Ich habe mir sogar schonmal aktiv Gedanken gemacht, wie ich Touchscreen only devices einbinden kann mit möglichst geringen Anpassungen.

Einzig SDL ist und bleibt Grundvorraussetung, darum ist alles gehäkelt.

Aber das ist alles Zukunftsmusik. Darf GPL/MPL Software überhaupt in den Appstore? ^^
 
Ich denke mal, dass Puzzletube auch auf einem Touchscreen-Smartphone/Pad sehr gut spielbar wäre.
Frag mich bitte nicht nach irgendwelchen Lizenzschwierigkeiten, geschweige denn den Möglichkeiten einer technischen Anpassung.
Mein Gedanke war eher:
Du bist in einem Vorstellungsgespräch und der Personalchef fragt dich, was du so in deiner Freizeit machst. Deine Antwort wäre: Ich habe ganz alleine ein Spiel programmiert, dass schon ?-tausendmal heruntergeladen wurde. Das macht mal Eindruck.
 
Ziz said:
Und mal wieder ein neues Video. Was ist neu?
  • Neuer Sternenhimmel
  • Neue Statusanzeige links
  • Neue Steuerungart. Man bewegt sich an eine Stelle auf dem Zylinder und kann dann zwei beliebige, angrenzende Steine tauschen. Die Tasten, die dafür gedrückt werden müssen, sind angegeben.
  • Bugfixes, Design, Ergonomie, etc.
LG Ziz
Sieht gut aus, ist das GP2X Auflösung? So bunt brauch ich das Game nicht einmal wie es da ist, schon fast zuviel des Guten. :D
Aber die Steuerung kann man viel effektiver lösen, mit nur einer einzigen Taste: Du lockst nen beliebigen Stein per Tastendruck ein und tauschst ihn mitm D-Pad. Cursor ist nach dem Tausch automatisch wieder frei gegeben. So gehen auch die Diagonalen. Das ist zwar etwas anders als wenn man gegenüber liegende Steine um einen mittleren tauscht aber vom Prinzip her sollte es keine Nachteile im Gameplay geben. ^^

Ach, für zukünftige Gameplay Verbesserungen: mir war das Zeitlimit bei Puzzletube immer zu knapp. Nice wären vorgegeben Zeitfenster, z.B. so viel Punkte wie möglich machen in 5 oder wahlweise 10 Minuten etc... :)
 
Fusion_Power said:
Ach, für zukünftige Gameplay Verbesserungen: mir war das Zeitlimit bei Puzzletube immer zu knapp. Nice wären vorgegeben Zeitfenster, z.B. so viel Punkte wie möglich machen in 5 oder wahlweise 10 Minuten etc... :)
Naja, genau so funktioniert einer der Modi (Points) bisher ja, nur dass es halt nicht 5 Minuten sind, sondern weniger.
So viel Zeit macht auch keinen Sinn, wenn man mal den "Time Stole" Modus lange genug spielt sind die Steine irgendwann so gut durchgemischt (da man alle größeren Matches gemacht hat), dass jede Kombi entsprechend schwer zu machen ist - das macht imo nicht wirklich viel Spaß. Und das wird bei mehr Farben natürlich noch extremer.
3 Minuten würde ich da für ein sinnvolles Maximum halten.
 
Fusion_Power said:
Sieht gut aus, ist das GP2X Auflösung? So bunt brauch ich das Game nicht einmal wie es da ist, schon fast zuviel des Guten. :D
Ja. Es ist die Auflösung der meisten Geräte. Die Pandora ist ne Nische. ;-)
Aber die Steuerung kann man viel effektiver lösen, mit nur einer einzigen Taste: Du lockst nen beliebigen Stein per Tastendruck ein und tauschst ihn mitm D-Pad. Cursor ist nach dem Tausch automatisch wieder frei gegeben. So gehen auch die Diagonalen. Das ist zwar etwas anders als wenn man gegenüber liegende Steine um einen mittleren tauscht aber vom Prinzip her sollte es keine Nachteile im Gameplay geben. ^^
Ich werde es als 3. Steuermöglichkeit implementieren und euch ausprobieren lassen. ;-)
Ach, für zukünftige Gameplay Verbesserungen: mir war das Zeitlimit bei Puzzletube immer zu knapp. Nice wären vorgegeben Zeitfenster, z.B. so viel Punkte wie möglich machen in 5 oder wahlweise 10 Minuten etc... :)
Ich will nicht zu sehr ins Detail gehen - es wird eine Vereinfachung des gesamten Schwierigkeits- und Spielmodikomplexes geben. ;-) Eine ist ein ein Modus, der indirekt sehr für das Üben geeignet ist, denn das Ziel ist, in möglichst wenig Zeit eine gewisse Punktzahl zu erreichen. ;-)

Neuer Post:
Ich komme gut vorran. Um genau zu sein, bin ich sogar fertig. Auf der Pandora wurde getestet, die Dingoo-Tests sind fast abgeschlossen, ich werde mir demnächst noch Caanoo & Wiz Tester suchen. Wenn die Beta Tests durch sind und keine großen, neuen Fehler aufgetreten sind, gibt es als demnächst™ ein Release. ;-)

Besonders freut mich, dass von einer externen Person Puzzletube sogar auf das N900 geportet wurde:
[youtube]3zLTerG2Nho[/youtube]

Deshalb rockt Open Source. ;)

greetings, Ziz
 
Ziz said:
ich werde mir demnächst noch Caanoo [...] Tester suchen.
Ich habe zwar keine aktuellen Kenntnisse mehr über Programmiersprachen (vor vielen Jahren mal Delphi und HTML gelernt und wieder vergessen) und libs,
bin aber nicht gänzlich unbedarft.
Kann ich da helfen?

Mit meinem Caanoo wird recht viel gepuzzled, nicht nur von mir.
 
Back
Top