HTML5 Spiele

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

Abrexxes

Betreff: HTML5 Spiele

BeitragMo, Nov 29, 2010 17:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Für alle die mal über denn Horizont gucken wollen.

Ich habe mich die letzten Tage mal mit Games unter HTML5 beschäftigt. Dabei stellt HTML5 ein "Canvas" zur Verfügung das unter Javascript genutzt werden kann.....ich war begeistert. Selbst auf einem schwachen Netbook ist einiges möglich.

Leider ist der IE hier ausgeschlossen (als einziger). IE9 wird dieses Problem aber lösen, und selbst bei IE8 gibts abhilfe....einlesen Wink.

So habe ich einen Code unter allen PCs (Windows,OS-X,Linux) sowie unter Android und iPhone/pad zum laufen gebracht (wenn auch da als Demo ohne Touch,was aber an mir lag). [Also das was Marc mit bmax2 vorhat]

Ohne Hilfe geht das natürlich nicht, ich empfehle:

Notepad++ : http://notepad-plus-plus.org/
Für Anfänger dazu noch : http://www.chip.de/downloads/J...50105.html

Als Doku und Demo wäre anzuraten:
SelfHtml: http://de.selfhtml.org/ (Fast perfekt)
Canvasdemos: http://www.canvasdemos.com/ (Tuts, Demos,etc)

Insbesonderem bei letzterem gibts einiges zu bestaunen was man zb mit Firefox oder Opera OnTheFly ausprobieren kann (je nach Tut).

have fun

Lord Stweccys

BeitragMo, Nov 29, 2010 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Nebenbei kann ich als JavaScript-IDE das Aptana-Studio nur empfehlen.
Es hat alles, was man braucht, baut auf der guten Eclipse-IDE auf und ist schön übersichtlich,
trotzdem voll mit nützlichem Zusatzwerk.
Very Happy
mfg LordSt

Abrexxes

BeitragMo, Nov 29, 2010 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Aptana? *Extremanschauing* Smile

Farbfinsternis

BeitragMo, Nov 29, 2010 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
... und als Framework kann ich meines empfehlen Wink

https://www.blitzforum.de/foru...hp?t=35693
Farbfinsternis.tv

Lord Stweccys

BeitragMo, Nov 29, 2010 19:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey es gibt das ganze jetzt sogar 3 mal Shocked :
-sedm.de/beezy/
-sedm.de/jmax/
-sedm.de/jbb/

Jder Name kriegt wohl ne eigene Homepage Very Happy

Farbfinsternis

BeitragMo, Nov 29, 2010 19:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, das Richtige ist http://www.sedm.de/jbb ... aber da ist die Doku noch nicht übertragen. Aber das FW ist ja noch nicht komprimiert und im Source dokumentiert.
Farbfinsternis.tv

Abrexxes

BeitragMo, Nov 29, 2010 20:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey, freue mich das es Interessenten gibt.

Ok, mein Plan.

Parser von BB zu( JS(KanvasHtml)mit HTML5)

Konkret: Entwickeln in BB, Ausführen in BB,Parsen zu HTML5.

Wer hat interesse*? Wink

cu

*melden per PN, minimale Kenntnisse in B3D/B+ erwünscht. VS Kenntnisse.......ach...wen kümmerts. !

PS: Egal was ich tue, eine Lizenz von B3D oder B+ ist pflicht!

Lord Stweccys

BeitragDi, Nov 30, 2010 16:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Sehr nette Idee, werde es auf jeden Fall verfolgen, hab aber leider immo anderes zu tun ;D

Farbfinsternis

BeitragDi, Feb 01, 2011 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Zumindest die Möglichkeit Bilder außerhalb der Initialisierungsfunktion zu laden und den Status zu prüfen habe ich hinzugefügt (für Sounds, Shader, Models etc. adde ich das noch). Problem bei einem Converter ist es immer noch den Initialisierungsteil vom eigentlichen Programm zu trennen. Programme die mit Subroutines (Goto, Gosub) arbeiten sind ein weiteres Problem da JavaScript dies nicht unterstützt. Desweiteren habe ich die Funktion "ResizeCanvas()" implementiert so dass man ein Canvas auf die Parameter des "BB Graphics()" anpassen oder gar neu erzeugen kann.

Ganz naiv könnte man ein Programm 1:1 übersetzen und dann manuell die Problemzonen beseitigen. Dies würde allerdings voraussetzen dass sich der Programmierer gut bis sehr gut mit JavaScript auskennt.

Folgendes Programm ....
Code: [AUSKLAPPEN]

Graphics(800, 600)

SetBuffer BackBuffer()

Repeat
  Cls()

  Flip()
Forever

...müsste in folgendes Programm übersetzt werden:
Code: [AUSKLAPPEN]

<!DOCTYPE html>
<html>
<head>
   <script type="text/javascript">
      function init(){
         ResizeCanvas("bbConverted", 800, 600);
         Graphics("bbConverted", main, 30);
      }
      
      function main(){
         Cls();
         
         Flip();
      }
   </script>
</head>
<body onLoad="init();">
   <canvas id="bbConverted">
      Dein Browser unterst&uuml;tzt das HTML5 Canvas Element nicht.
   </canvas>
</body>
</html>

Ich selbst wüsste auf die Husche nicht wie das zu lösen wäre, außer mit massivem Brutforce. Aber es gibt bestimmt einen Weg und ich bin gespannt ob jemand eine Lösung kennt Smile
Farbfinsternis.tv

ToeB

BeitragMi, Feb 02, 2011 0:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja so ganz schwer wirds doch nicht sein ? Ich denke man kann es so machen das man die vorhandene Syntax in Java-Syntax umschreibt, also einen semikolon hinter jeden Befehl, stat If - EndIf If (bla==blubb) { } (und auch vergleiche wie <> in != und = in ==). Variablen, die müssen im BB Code mit Global oder Local deffiniert sein, dann werden sie beim Parsen zwischengespeichert (auch Funktionen) und wenn ein Begriff nicht auf eine Variable oder eine Funktion zupasst ist es ein Befehl und wird abgeglichen mit dem Vorhandenen Befehlssatz der jBB. Wenn nichts gefunden wurde, Fehler.

Ich denke, so schwer wäre das nicht, nur ein wenig arbeit ^^

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!
 

feider

ehemals "Decelion"

BeitragMi, Feb 02, 2011 8:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Canvas.. zu dem Thema kann ich diese Website empfehlen:
http://canvas.quaese.de

Farbfinsternis

BeitragMi, Feb 02, 2011 21:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Ganz so einfach ist es nicht ToeB, es sind wesentlich mehr Dinge zu beachten als einfach nur stumpf die Zeilen einer Textdatei zu interpretieren.

Aber ich habe da eine Idee ... man nimmt ein Template und ersetzt in diesem Platzhalter durch essentielle Daten die unbedingt vorhanden sein müssen. Ein Converter könnte diese Daten teilweise selbst heraus finden (AppTitle, Breite und Höhe des Fensters, etc.) und fehlende Werte per GUI erfragen. Ein Template müsste etwa so aussehen:
Code: [AUSKLAPPEN]

<!DOCTYPE html>
<html>
<head>
   <title>[#APPTITLE#]</title>
   <script type="text/javascript" src="[#JBBSOURCE#]"></script>
   <script type="text/javascript">
      function initJBB(){
         ResizeCanvas("jBBGame", [#CANVAS_WIDTH#], [#CANVAS_HEIGHT#]);
         Graphics("jBBGame", jBBGame, [#FPS#]);
      }
      
      function jBBGame(){
         
      }
   </script>
</head>
<body onload="initJBB()">
<canvas id="jBBGame">
   Dein Browser unterst&uuml;tzt das HTML5 Element &quot;&lt;canvas&gt;&quot; nicht.
</canvas>
</body>
</html>

der Platzhalter [#JBBSOURCE#] müsste erfragt werden da man diese Info ja schwerlich in einem BB Programm findet. die Platzhalter [#CANVAS_WIDTH#] und [#CANVAS_WIDTH#] kann man der BB Funktion "Graphics()" entnehmen, ebenso den Apptitle etc.
Schwierig wird es die Hauptroutine zu erkennen, diese müsste dann in den Rumpf der JavaScript Funktion "jBBGame()". Weitere Funktionen und Subroutines des BB Originals müssten dann ebenfalls in JS Funktionen umgewandelt werden. Data-Blöcke müssten in JSON Objekte umgewandelt werden usw. usf. .... "Einfach mal eben" ein BB Programm nach JS konvertieren läuft also nicht, da muss man schon eine Menge Grips investieren Wink
Farbfinsternis.tv

Silver_Knee

BeitragMi, Feb 02, 2011 23:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hauptschleife ist die Schleife in der Flip ausgeführt wird. Gibt es mehrere Flips, gibt es auch mehrere Hauptschleifen.

Farbfinsternis

BeitragMi, Feb 02, 2011 23:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja ... tolle Info ... aber praktisch herauszufinden welche Routine die "main()" ist, ist nicht so einfach. Zudem müssen immer noch alle Resourcen in der Initialisierungsfunktion geladen werden. Klar kann man im Mainloop "ImageLoaded()" verwenden und das Image-Objekt auf Null testen, aber das passiert ja im BB Source nicht und muss somit hinzugefügt werden. Man könnte natürlich den kompletten Source nach "LoadImage()" und anderen Funktionen durchsuchen und diese in die Init packen, aber man muss dann auch parsen wie die Var heißt in die das Image geladen wurde und wo diese verwendet wird. Diese Details machen die Sache extra schwierig!

Prinzipiell müsste man sich mit Compiler-Bau befassen um dieses Problem zu lösen. Klar ist das interessant, aber JS ist nicht so kompliziert als dass man jBB (oder vergleichbare Frameworks) nicht direkt nutzen könnte. Erst heute habe ich das zweite jBB Tutorial unter http://sedm.de/jmax/ veröffentlicht.
Farbfinsternis.tv

ToeB

BeitragMi, Feb 02, 2011 23:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja es soll ja auch nicht jedes X-Beliebige Blitzbasic-Programm damit geparst werden. Man legt einfach von dem Parser fest, Das man z.B. die Haubtschleife mit einem Kommentar versehen soll (z.B. ;[MAIN] )

Ich versteh da wirklich nicht deine Komplizierten Gedankengänge Wink

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Farbfinsternis

BeitragMi, Feb 02, 2011 23:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Es geht aber direkt darum dass man BB Programme konvertieren kann ohne dass der Autor zuvor spezielle Maßnahmen ergriffen hat.
Farbfinsternis.tv

ToeB

BeitragDo, Feb 03, 2011 0:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Deshalb sage ich ja : Entweder du bestimmst die Hauptschleife über das Flip / Cls bzw. Until Keyhit(. Ist aber nicht sehr Komfortabel da man auch vorher z.B. Laderoutinen mit Flip/Cls belegen kann (ich weiß, das macht so gut wie keiner, aber man kann es nicht ausschließen). Dann im Parser nach einer Repeat/Until oder While/Wend schleife Filtern, dann gucken ob die Austritsbedingung einer Taste zu grunde liegt (Keyhit/KeyDown) und dann in der Schleife prüfen ob dort Flip / Cls benutz wird (und zusätzlich noch ein Timer, dann isses zu 99.99% eine Hauptschleife), dann soll er den teil in der Schleife Parsen. Oder du einfügst einen Kommentar hinzu, es wäre eine Arbeit von gut 2 Sekunden, das wird wohl jeder hinbekommen, wäre für dich im Parser auch nur eine kleine Arbeit und alles ist nicht so Dramatisch Wink

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Farbfinsternis

BeitragDo, Feb 03, 2011 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Es ist nicht nur das Suchen nach dem MainLoop. Es müssen auch alle Stellen gefunden, analysiert und umgebaut werden an denen Resourcen geladen werden. In jBB sollte man Resourcen in der Initialisierungsfunktion laden und die Handles in globale Variablen legen. Ein jBB Programm wird nunmal nicht synchron durchlaufen wie ein BB Programm. Desweiteren müsste der Converter ein Profiling vornehmen und eine Ordner/Daten-Struktur vorschlagen die auf dem Webserver eingerichtet werden muss.

So einen Converter schreibt man nicht mal eben an einem freien Nachmittag, da ist wesentlich mehr Aufwand dahinter.
Farbfinsternis.tv

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group