Platform/Sprache für 3D Applikationen im Web

Einstiegsfragen, Mathematik, Physik, künstliche Intelligenz, Engine Design
Antworten
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Platform/Sprache für 3D Applikationen im Web

Beitrag von Artificial Mind »

Hallo,

wir sind auf der Suche nach einer Sprache/Technologie/Platform, die man mit möglichst wenig Aufwand und möglichst hoher Verbreitung direkt aus dem Web heraus starten kann. Dabei ist es wichtig, dass OpenGL 3 unterstützt wird und es nicht allzu unperformant sein sollte (z. B. für prozedurale Generierung von Texturen). Außerdem wäre es nett, wenn man angenehm in der Sprache programmieren kann.

Folgendes haben wir schon in Betracht gezogen:
  • Google Web-Toolkit (und generell WebGL + JS)
    - nur WebGL (und damit OGL 2 äquivalent)
  • Java Webstart
    - man muss sich die Anwendung trotzdem runterladen und ausführen, was schon ein Klick zu viel ist (bzw. da Download-Fenster eine zu große Hürde)
  • Java Applets
    - scheinen deprecated zu sein, bzw. überall im Internet "gebasht" zu werden. Weiß da jemand vielleicht näheres über die Verwendbarkeit?
  • Chrome Native Extensions
    - nur Chrome
  • Flash/ActionScript
    - noch langsamer als JavaScript
  • Silverlight/Moonlight
    - zu wenig Verbreitung/Unterstützung in den Browsern
  • Unity Player
    - es muss zuerst der Player installiert werden
Hat jemand gute Alternativen bzw. habe ich mich bei irgendwelchen Punkten geirrt?
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4256
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Platform/Sprache für 3D Applikationen im Web

Beitrag von Chromanoid »

Artificial Mind hat geschrieben:
  • Flash/ActionScript
    - noch langsamer als JavaScript
Ich würde sagen, darin hast du dich geirrt. Also man muss da wirklich aufpassen, wer was wann getestet hat und wie. Ich kann mir jedenfalls nicht vorstellen, dass Stage3D da langfristig im Nachteil ist. Unreal Engine, Unity usw. laufen bald bzw. laufen bereits in Flash. Hier mal ein Beispiel: http://www.unrealengine.com/flash/
WebGL läuft zu dem nicht im IE...

Zu Java: Wenn dich ein langes Laden beim Webstart stört, kannst du die Anwendung auch dynamisch nachladen. Man kann das auch mischen. Ich denke Applets sind zwar unbeliebt funktionieren dennoch ganz gut. Sprial Knights und RuneScape fahren glaube ich ganz gut damit. Bei Java muss man aber immer mit einer gewissen Technologie-Hürde rechnen. Sprial Knights nutzt einen Applet übrigens vor allem als Loader, damit das Runterladen nicht in einem Dialog wie beim WS passiert.

Flash sollte für 3D zumindest in einiger Zeit wohl die Variante sein, die am meisten Benutzer nutzen können.

Hier mal eine Tabelle, so wie ich die Technologien für ein Cross-Platform-3D-Spiel, das auf dem Desktop PC im Browser läuft, einschätze (Ich habe Ränge vergeben):
ImportanceJava/Java Applet/WSGWT WebGL/HTML5 with Java/Java Applet/WS fallback(GWT) HTML5/WebGLUnityFlash
Ease of 2D content creation133231
Ease of 3D content creation123312
Ease of GUI creation134241
iOS Support233-12
Android Support211322
In-Browser availability221231
Performance212.5312
Pricing311132
Technology lifetime312 (Google support?)12 (one vendor)3
Java server compatibility413 (WebSocket)3 (WebSocket)22
Commercial support533312
Zuletzt geändert von Chromanoid am 04.07.2012, 15:40, insgesamt 5-mal geändert.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: Platform/Sprache für 3D Applikationen im Web

Beitrag von Artificial Mind »

Danke für die schnelle und ausführliche Antwort.

Wenn Unreal und Unity Stage3D-Varianten ihrer Engine rausbringen, dann ist Flash wahrscheinlich doch nicht mehr auf dem absteigenden Ast (eine Aussage, die ich von verschiedenen Leuten über Mundpropaganda gehört habe. Selbst weiß ich das nicht)

Ich war gerade mal auf der Adobe Seite zu Stage3D:
Adobe hat geschrieben:This means that when you are coding in Stage3D you'll run across some limitations that you wouldn't encounter on higher end hardware. For example, the number of Shader registers available using a shading language such as AGAL are quite limited. You can use a maximum of 8 temporary registers, instead of the 4096 available when coding registers in GLSL, with Shader Model 4.0.

Stage3D Shaders length can only contain a maximum of 200 OpCodes, while Shader Model 4.0 supports 4096. And Stage3D Shaders do not support conditional operations or loops, while Shader Model 3.0 and 4.0 do.
Ich muss das nochmal mit dem Assistenten hier klären, aber das ist eigentlich ein Ausschlusskriterium.
Außerdem ist Flash und Linux so ein Problem.

In Java Applets hat man OpenGL 3.2 wenn die Grafikkarte das unterstützt, oder?
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4256
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Platform/Sprache für 3D Applikationen im Web

Beitrag von Chromanoid »

In Java Applets hast du alles was du in C++ auch hast, wenn du entsprechende JNI-Bibliotheken zur Verfügung hast.
Ich würde dir die LWJGL http://lwjgl.org/ empfehlen.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: Platform/Sprache für 3D Applikationen im Web

Beitrag von Artificial Mind »

Gut, danke. LWJGL kannte ich vom Namen her und war hier glaube ich auch mal im Gespräch. Dann könnten wir auch wieder Scala verwenden, was eigentlich ganz angenehm ist.

Kann man eigentlich solche Entwicklungsumgebungen wie z. B. NetBeans in ein Applet packen? (Also ich meine das SDK, welches einem erlaubt, eigene IDEs zu schreiben) Oder gibt es bei Applets irgendwelche GUI-Einschränkungen im Vergleich zu nativen Java-Sachen?
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4256
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Platform/Sprache für 3D Applikationen im Web

Beitrag von Chromanoid »

Mmh Applets haben Sicherheitseinschränkungen. Ich bin mir nicht sicher, aber das sollte schwierig werden. Warum nicht WS, bei sowas dickem sollte ein Applet ziemlich nervig sein. Man könnte auch GWT und Applets kombinieren um 3D in einer Webanwendung anzuzeigen.

Schau dir auf jeden Fall mal http://java.sun.com/developer/technical ... ewapplets/ an

das sieht ganz interessant aus: http://stackoverflow.com/questions/3043 ... -an-applet
Evt. bekommt man damit auch Netbeans zum laufen.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: Platform/Sprache für 3D Applikationen im Web

Beitrag von Artificial Mind »

Also die Idee ist halt eine IDE für 3D-Kram im Browser, die möglichst viele Leute (Windows und Linux und wahrscheinlich Mac) möglichst einfach nutzen können.

Mischung aus GWT und Applets klingt gut, die Applets sind dann nur für die 3D-Anzeige da und man hätte die eigentliche IDE dann für maximale Portabilität mit dem GWT. Ist eine two-way-communication zwischen Applets und GWT einfach/möglich?

Die neuen Applets mit nativem JLNP Support klingen zwar gut, sind aber wahrscheinlich noch nicht sehr weit verbreitet, nehme ich an. Diese NASA Demo kriegt jedenfalls bei mir einen Error wegen einer "unsigned resource" im Webstart.

Eclipse RAP sieht gut aus, das werde ich mir auch mal näher angucken.

Es ist echt nicht einfach, vernünftigen 3D Support im Browser für möglichst viele Leute zu bekommen *seufz*
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4256
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Platform/Sprache für 3D Applikationen im Web

Beitrag von Chromanoid »

Jo. Evt. könntet ihr eure 3D GWT Komponente auch in WebGL bauen und ein Java Fallback dazu. LibGDX wäre afaik dazu geeignet: http://www.badlogicgames.com/wordpress/?p=2308
Für Applet-GWT-Kommunikation gibts vielleicht ne Bibliothek ansonsten müsstest du was mit dem GWT JSNI bauen.
Für JavaScript Applet Kommunikation hier eine kurze Erklärung: http://blog.danieldee.com/2009/07/javas ... ation.html
Antworten