26.02.2012, 12:08 | #25 (permalink) |
Registriert seit: 03.01.2008
Alter: 84
Beiträge: 6.552
|
Nachdem jetzt die erste Java Implementation in TOH drin ist kann ich nur sagen, darauf hätte man getrost verzichten können.
Um ein Hint auszugeben ist das Overkill. Der Debugger und simpelste Ausgaben ist alles was geht. Es ist noch nichtmals möglich Klassen Instanzen zu erstellen und Methoden und Felder eben dieser anzusprechen, es funktionieren nur statische Methoden die auch noch exakt immer die gleichen Paameter und Rückgabewerte haben müssen (mal davon abgesehen das eine Rückgabe an die Engine mit return exakt gar nichts tut). Der Versuch die anderen Spiele Objekte anzusprechen funktioniert entweder gar nicht oder endet zu 99% in CTDs. Summa sumarum: Eventuell hätte man sich mal professionelle Hilfe an Bord nehmen sollen (und eventuell nicht Java weil es einfach nicht für sowas gemacht ist). Setzen, 6 Xeno
__________________
In arma everything is made of refined explodium, armored with wet paper towels. |
26.02.2012, 13:15 | #27 (permalink) |
Registriert seit: 06.02.2008
Beiträge: 1.789
|
Vielleicht finden sie ja noch jemanden der bereit ist mit glühenden A3 Steinchen + Förmchen zu jonglieren? Es ist doch noch sooooooo viel Zeit bis zum Release!! Ob dann alles konsistent ist und paßt steht auf einer (oder mehreren) anderen Seite des Buches mit den BIS Siegeln.
|
26.02.2012, 16:22 | #29 (permalink) |
Registriert seit: 16.11.2006
Ort: Paris-Rom-Erkner
Alter: 53
Beiträge: 6.205
|
Wie kann sich eine neue Methode durchsetzen wenn sie nicht im ersten Wurf 99% des bestehenden Umfanges ersetzt?
__________________
|
27.02.2012, 09:06 | #30 (permalink) |
Registriert seit: 26.11.2006
Ort: Kiel, S-H
Alter: 57
Beiträge: 3.013
|
@Xeno
wie schaut es dann mit einer sauberen bidirektionalen Schnittstelle nach "Draußen" a la Datei Ein-/Ausgaben aus ? Gibt es da jetzt via Java bessere Möglichkeiten oder wird man weiterhin mit glühenden Nadeln gestrickte System nutzen müssen die "von hinten durch die Brust ins Auge" arbeiten ?
__________________
Nur ein Beispiel das zeigt wie BI "support" definiert: https://feedback.bistudio.com/T75547 Geändert von Lester (27.02.2012 um 09:10 Uhr). |
27.02.2012, 10:01 | #32 (permalink) |
Registriert seit: 03.01.2008
Alter: 84
Beiträge: 6.552
|
Hab das leider nicht ausprobiert, sehe aber ehrlich gesagt keinen Grund warum das nicht gehen sollte (aufgrund des fehlenden Zugriffs auf den Source der Java VM kann BIS Datei Operationen dieser nicht unterbinden, wobei ich nicht gecheckt habe ob sie irgendwelche Java VM IO Dateien gelöscht haben; das einzige was sie selbst in der BIS jni jar machen ist den Zugriff auf class Files auf das Spiele-, Missions- und User-Directory zu beschränken, das Ganze ist in Java geschrieben, also sollte IO für alles andere auch noch möglich sein). Die Oracle JRE 7 ist übrigens Bestandteil des TOH Beta Patches und liegt in dem Verzeichnis jre im Beta Folder. Nur wenn man selbst was entwickeln möchte mit Eclipse/whatever Editor braucht man auch eine JDK Installation. Ehrlich gesagt, es gibt im Moment noch nicht mal ansatzweise einen Grund irgendwas mit Java zu machen, die Implementation des Ganzen ist momentan einfach nur grottig schlecht. Bessere Möglichkeiten, niente. Was man jetzt hat ist eine schlecht gemachte Bridge zu den Scripting Befehlen im Spiel, Beispiele (ausm Kopf geschrieben): Code:
RVEngine.sideChat(RVEngine.player(), String.valueOf(irgendeineintegervar)); Code:
public static Object getAliveUnits(Object[] args) { if (args.Length == 0) return null; if (!(args[0] instanceof RVEngine.GameGroup)) return null; int result = 0; for (Object unit: RVEngine.units((RVEngine.GameGroup)args[0])) { if (RVEngine.alive((RVEngine.GameObject)unit)) result++; } RVEngine.hint(String.valueOf(result)); // Edit: return null hier weil man nix an den aufrufenden jCall Scripting Befehl // zurückliefern kann, geht einfach nicht return null; } Spiele Objekte, egal welche, werden per Java Serialzation hin und her übertragen (in Java geschrieben mit Zugriff auf native). Das kostet mit Sicherheit a. Performance und b. klappt das vorne und hinten nicht. Kannst noch nicht mal in Java ein GameObject erstellen wie z.B. eine neue Gruppe (sofortiger CTD ohne irgendeine Fehlermeldung und keine Crash Dumps). Was komplett fehlt ist das was man von Scripting Engines in anderen Spielen kennt, nämlich das Spiele Objekte als richtige Klassen darstellbar sind, also richtiges OO, und auch so vom Spiel an die Scripting Engine und zurück ins Spiel übertragen werden können (und ich bezweifle das sich das wegen fehlendem Zugriff auf den Java VM Source auch bewerkstelligen lässt). Es gibt zwar die sogenannten gameXXX Klassen, diese sind aber durchweg alle von NativeObject abgeleitet welches eben nur die o.a. Serialisation zur Verfügung stellt und für alle Game Objekte, egal ob Units, Gruppen, Vehikel, etc, gleich sind. Ein Ableiten von diesen Klassen funktioniert zwar aber man kann exakt gar nichts damit anfangen da es halt kein wirkliches game Objekt in diesem Moment ist sondern nur eine Java Klasse die nix im Spiel erzeugt und Du auch keinen Bezug auf das entsprechende Objekt innerhalb von NativeObject hast. Also sowas wie: Code:
player().getDamage() Was noch in der BIS jni jar drin ist sind Klassen für die GUI (Java AWT) und FSM, aber keine Ahnung ob und wie das funktioniert. Man braucht für die GUI JPanel und die FSM Geschichte scheint daraufhin hinauszulaufen das die States und Conditions in Linked Lists von Java Code abgearbeitet werden. Desweiteren funktionieren natürlich Eventhandler nicht und die ganze Java Kiste ist auf Missionen und Kampagnen limitiert, also man kann Java nicht in Addons benutzen und halt die Limitierung das man wirklich nur static Methoden der Klassen mittels jCall aufrufen kann. Ein Aufruf sieht so aus: Code:
The_Class = jLoad "MeinClassFile"; Ist_sowieso_immer_null = The_Class jCall ["Meine_statische_Methode", [irgendwelche_Parameter]]; Xeno
__________________
In arma everything is made of refined explodium, armored with wet paper towels. Geändert von Xeno (27.02.2012 um 10:18 Uhr). |
27.02.2012, 11:33 | #34 (permalink) |
Registriert seit: 03.01.2008
Alter: 84
Beiträge: 6.552
|
"Nutzlos" passt am besten (man merkt mir schon an das ich ziemlich enttäuscht bin ) Xeno
__________________
In arma everything is made of refined explodium, armored with wet paper towels. |
27.02.2012, 17:18 | #36 (permalink) |
Registriert seit: 14.10.2010
Ort: NRW
Alter: 29
Beiträge: 347
|
Ich hab mal gelesen das die ihre vorhandene scriptsprache komplett durch Java ersetzen wollen.
Deshalb denk ich mal werden die noch "etwas" arbeiten darein stecken.^^ Quelle werd ich mal versuchen rauszusuchen. Edit: OK komplett doch nicht, aber ich kann mir nicht vorstellen das die sowas nutzloses einbauen und als tolles neues Feature verkaufen... Sind ja nicht EA.^^ Hieraus hatte ich das: Arma 3 to release ?Community Alpha,? posts new screenshots, exclusive Q&A with the devs, seriously just come read this | PC Gamer Geändert von AyzOn (27.02.2012 um 17:29 Uhr). |
03.03.2012, 16:19 | #37 (permalink) |
Registriert seit: 03.01.2008
Alter: 84
Beiträge: 6.552
|
Richrig, BIS ist nicht EA. EA hat sich vorher z.B. für Sims 3 die Mühe gemacht und abgechckt was Sinn macht als Scripting Engine zu benutzen und ist bei Mono gelandet. BIS benutzt lieber als einziger was das niemals für eine solche Anwendung designed wurde und liefert etwas ab was immer crashed. Aber, der Debugger geht, nicht so wichtig das der Rest unbenutzbar ist. Xeno
__________________
In arma everything is made of refined explodium, armored with wet paper towels. |
Stichworte |
alles neu in a-dreu, skriptverfahrenstechnik |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Editing und Scripting (pre Alpha Sammelthread) | Sol.LrMartyn | Editing & Scripting | 124 | 20.08.2013 13:27 |
Lua Scripting Bücher und Einführung gesucht | JoeJoe87577 | Hilfe | 3 | 22.08.2011 01:22 |
Arma 2 Scripting frage | Samie | Editing | 4 | 05.11.2010 15:00 |