Bei Clonk Netzwerk soll Clonk völlig neu erstellt werden. 3D-Welt/Welten, Netzwerkzugriff, Datenzugriff, Plugins, ... .
Jetzt möchte ich mal hier einfach ob es spezielle Wünsche an die Script Engine gibt:
Vorab:
- Objektbasierendes Script (JavaScript ähnlich)
- Referenzen
- Operatoren
(- Zeiger?)
- NULL
(- ERROR, kann aber nicht benützt werden)
- BOOL
- DOUBLE
- NUMBER
- OBJECT
- ARRAY
(- GLOBAL, kann aber nicht im Script benutzt werden)
(- ARRAY2D?)
(- ARRAY3D?)
Hab ich was verpasst? Was ist Clonk Netzwerk und wieso habe ich davon noch nix gehört?
mehrdimensionale Arrays sind schon was feines, aber wenn du die einführst dann bitte n-dimesional!
Normale Menschen würden die sich aber einfach aus Arrays selber bauen.
Was ist mit Strings/Texten? Chars?
btw. Referenzen=Zeiger
wird das performanter als Minecraft?
Falscher Ansatz. Clonk ist nicht als High-End-Produkt bekannt geworden. Clonk fing an mit einer sehr einfachen Skriptsyntax (ok, Rechnen war damit komplizierter als später) und auch recht einfachen Grafiken (d.h. jeder hatte ein Programm wie Paint auf dem PC und konnte ohne große Umschweife benutzt werden). Clonk war einfach. Dann kam irgendwie GWE, wo die schon erfahreren Clonker sich etwas zusammengeschustert haben, was alles verändert. Das ist natürlich nicht schlecht, man kann bessere Skripts und bessere Grafiken benutzen, aber die Anzahl der potentiellen Entwickler, die sich aus den existierenden und den neu anfangenden Clonkern zusammensetzt, wird dadurch verkleinert. Der Hauptteil der neuen Clonker sind Kinder, und die meisten können nicht programmieren und haben auch keine kommerzielle 3-D-Rendering- oder 2-D-Bildbearbeitungssoftware. [offtopic]Deswegen prophezeie ich mal ganze Frech das OpenClonk nie eine dem Orginalclonk ähnliche Community haben wird (in Größe aber vorallem in Zusammensetzung)[/offtopic]
Wenn du alleine oder mit nur sehr wenigen anderen Leuten an diesem Projekt arbeitest, hast du eigentlich nur zwei Möglichkeiten, die Masse als zukünftige Clonk-Netzwerk-Spieler und Clonk-Netzwerk-Entwickler zu rekrutieren:
1.) Du machst alles Recht einfach, dass heisst ein BASIC-like Ansatz, mit einfacher Syntax, klar erkennbaren Begriffen (d.h. man nehme englische Wörter als Schlüsselwörter) und benutzt gute einfache Windows-Bitmaps.
2.) Du entwickelst zusätzlich zu deinem "Clonk Netzwerk" eine passende Entwicklungsumgebung, die einfaches Editieren von Szenarien, Erstellen von sehr einfachen Skripts per Klicken (via check box/radio button oder weiß-der-Teufel-was), 2-D-Bildbearbeitung und 3-D-Modelling/Rendering ermöglicht.
[3.) Du schreibst ein Buch mit über 400 Seiten um den kleinen 12 und 13 jährigen Newbies vernünftiges Programmieren und Erstellen von Grafiken/3-D-Modellen beizubringen...]
Das mit dem Bitmap wird vermutlich gehen, solange das mit der Paint-Engine glatt läuft(also das Bild wird keine klare Farben haben)
1.) Über einen 2. integrierten Compilere können wir uns mahl austauschen ansonst halt ein Plugin
2.) Editor und Debuger, was wilst du denn sonst noch?
( 3.) Da war doch meine Idee doch nicht so schlecht ein Buch zu schreiben :D )
Ne frage am Rande:
Soll es zuletzt noch 2 bzw 3 Scripte geben(eins für die Anfänger(nicht sehr funktionsreich) und eins für die Profies(also HTML-Anfragen, Objekte, virtualle GameObjekte, ...))?
Moment, man soll alles schöne über Bord werfen( (h) Referenzen, Objekte, Functionen als Objekt, ... )???
Dafür ein extrem einfaches Basic benutzen o_O??? (wenn das wirklich dein ernst ist, mach ich ne abstimmung bein News(es soll ja Jeder gesehen haben!))
2.) Er sagt nicht, du musst das machen. Er empfiehlt es, wenn du viele neue Spieler haben willst die alle ihre kleinen Sachen EINFACH entwickeln können. Und nicht etwas total umfangreiches erschaffen, bei dem dann nur die Leute durchblicken die sich mit Scripts etc eh schon auskennen.
1.) Sollte aber getrennt bleiben, da es 2 verschiedene Sichtweisen sind
2.) ja trozdem stellt er mich vor ne EXTREM wichtige Frage und da muss sowas genau überlegt sein. Einfacheres Scripten mit weniger Funktionen oder komplizierteres Scripten mit mehr funktionen.
ich dachte mehr daran, dass public, protected und private functions mit ^ für C5Basic aufgelöst werden müssen!
Aber das mit der Sprachdefinition wäre villeicht gut bei funktionen :O
EDIT: (mahl sehen obs wieder geht)
ich versuchs mahl einbzubauen!
Paar fragen noch zu der BASIC basierten Scriptart:
- Soll Gros und Kleinschreibung egal sein?
- reichen NULL, BOOL, DOUBLE, STRING, ARRAY, C5ID(so wie ein String also "unbegrenzt") und C5OBJECT aus?
Meiner Meinung nach wäre eine es für Anfänger auf jeden Fall leichter wenn die Groß-klein-schreibung egal ist.
Die Typen passen, aber ich würde noch einen Ganzzahltyp wie Integer hinzufügen.
Nimm lieber JavaScript.
Das gibts in Form der V8 fertig runterzuladen und als Lib einzubinden, ist schnell und fehlerfrei implementiert.
Ansonsten würde mich mal euer Netzwerkmodus interessieren und wer alles mitmacht.
fägt diese Diskusion schon wieder an =( . Ich dachte das haben wir schon 5 mal durchgekaut!
Langsam machts den eindruck als möchtest du das ganse Projekt schlecht machen!
So, aber jetzt zu was anderem. Wie soll bitte schön V8 mit C5BASIC kompatibel sein? JavaScript ist schwerer als BASIC(ich mach ein Mix aus Q-BASIC, BASIC und C). Zudem wie soll V8 bitte schön für C5BASIC auflösen oder die entsprechende Werte returnen? WENN DU DENKST ICH ÜBERPRÜFE JEDEN WERT VON V8 UND TU ES DANN IN DAS BASIC OBJEKT UMWANDELN HAST DU DICH ABER GEWALTIG GESCHNITTEN!(Sorry hat raus müssen).
> Das gibts in Form der V8 fertig runterzuladen und als Lib einzubinden, ist schnell und fehlerfrei implementiert.
nichts ist fehlerfrei und am Ende möchte ich nicht tausende von Libs haben.
> Ansonsten würde mich mal euer Netzwerkmodus interessieren [...]
Es gibt einen objektsycronen(hier bestimmt der Host-PC was wo sich bewegt) und einen unsycronen(jeder Spieler(nicht Client) hat seinen eigenenes Spiel, das mit anderen überappten tut).
Der objktsycronisierende Modus überträgt positionen, ... von Objekten, Material und Partikel.
Vorteil: Bei alles bleibt alles gleich, keine seltsame ereignisse(z.B. Clonk läuft durch Material durch :O).
Nachteil: Jeden ist an jeden Gebunden. kein Spieler kann einfach die Welt verlassen und auf ne neue gehen ohne dabei die anderen nicht mitzunehmen :O
Der unsycroner ist wie der objektsycron Modus, nur dass das Script sagen kann, was nicht syncronisiert werden soll.
Vorteil:
- Was unsyncron ist kann eingestellt werden.
- Jeder Spieler kann die Welt anders haben(z.B. kann man dann gebäute machen in denen man rumläuft ohne dabei die anderen Spieler gegen die Wände laufen.
Nachteil:
- Bei schlechter anwendung kann es zu sycronisationslöchern kommen(werden dann aber mit der Crew-ID wieder ausgeglichen).