Sie sind nicht angemeldet.

Liebe Gäste,

wir sind umgezogen. Das neue Forum könnt ihr hier erreichen.
https://strafkolonie-online.net/forum/board/

Lieber Besucher, herzlich willkommen bei: Strafkolonie Online. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Lagotas

Verurteilter Gefangener

  • »Lagotas« wurde gesperrt
  • »Lagotas« ist der Autor dieses Themas

Beiträge: 566

Serverbeitritt: 9. August 2015

  • Nachricht senden

1

Freitag, 27. November 2015, 15:52

Neue Gothic Multiplayer Software in Entwicklung

Interessiert ja sicher viele hier und ist übrigens keine Fremdwerbung, da es nicht um einen Server, sondern quasi einen neuen GMP geht. Es wird gerade daran gearbeitet und es scheint stetig Fortschritte zu geben. Einer der Entwickler, Bimbol, schrieb im Forum auch, dass er deutsche Tastaturunterstützung einbauen würde, sollte ihm jemand dabei helfen. :thumbsup:


Das meiste in dem Forum wird natürlich auf polnisch diskutiert, aber es gibt auch eine Sektion für Deutsch und Englisch, wo man Dinge fragen kann etc.

Bin jedenfalls gespannt und hoffe, dass sobald deren Version bugfrei läuft, man sie ebenfalls für SKO benutzen kann. Sicher wär die Umsetzung viel Arbeit für Latro und Co, aber hey, allein schon für die deutsche Tastatur wird es sich lohnen. 8o

Wer das Projekt verfolgen möchte, der klickt einmal hier.


Sabrosa

Registrierter Benutzer

Beiträge: 753

Nickname: Sabrosa

Serverbeitritt: 22. Dezember 2014

  • Nachricht senden

2

Freitag, 27. November 2015, 18:42

Deutsches Tastenlayout? Nichts da. Dann beenden wir Fragesätze wieder mit einem "_". Außerdem besitzt das englische Tastenlayout für GMP-Nutzer durchaus Vorteile. Der wohl wichtigste Vorteil ist die Lage der Taste "/". Ich möchte jedenfalls nicht immer Shift + 7 drücken, wenn ich einen Emote tätige, da ist die Taste "-" viel komfortabler.

Lagotas

Verurteilter Gefangener

  • »Lagotas« wurde gesperrt
  • »Lagotas« ist der Autor dieses Themas

Beiträge: 566

Serverbeitritt: 9. August 2015

  • Nachricht senden

3

Freitag, 27. November 2015, 18:58

Man kann das ja dann selbst einstellen. Mit Shift + ALT kann man das Windows Tastaturlayout ändern, somit bliebe einem dann wenigstens die Wahl.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Lagotas« (27. November 2015, 19:03)


Baratar

Katastrophe

  • »Baratar« wurde gesperrt

Beiträge: 542

Nickname: Baratar (Katastrophe), Terion

Serverbeitritt: 23. Dezember 2014

  • Nachricht senden

4

Freitag, 27. November 2015, 19:09

Damit wären die Scripts für den GMPA ohnehin nicht kompatibel, wie ich das sehe.

5

Freitag, 27. November 2015, 23:07

Deutsches Tastenlayout? Nichts da. Dann beenden wir Fragesätze wieder mit einem "_". Außerdem besitzt das englische Tastenlayout für GMP-Nutzer durchaus Vorteile. Der wohl wichtigste Vorteil ist die Lage der Taste "/". Ich möchte jedenfalls nicht immer Shift + 7 drücken, wenn ich einen Emote tätige, da ist die Taste "-" viel komfortabler.


Dafür muss man sich nicht extra für ein Spiel auf ein anderes Tastaturlayout umgewöhnen. Was ist an Zusatzfeatures eigentlich immer so zu verteufeln? Es geht ja nichts verloren, sondern es kommt nur Neues dazu. Die einzige Gruppe wo ich das als Argument durchgehen lasse sind die Kerle, die das programmieren/möglich machen müssen, weils ne Zusatzarbeit ist. Für alle anderen ist das kein Argument.

Finde die Idee aber auch gut, vielleicht klappt das mit den Monstern dann besser und sie buggen nicht so stark wie im GMP. :thumbsup:

PS: Am Handy geschrieben

Baratar

Katastrophe

  • »Baratar« wurde gesperrt

Beiträge: 542

Nickname: Baratar (Katastrophe), Terion

Serverbeitritt: 23. Dezember 2014

  • Nachricht senden

6

Freitag, 27. November 2015, 23:38

Viel Spaß an Latro, bis zum Reset sämtliche Scripts neuzuschreiben :D Sind ja bestimmt nur einige tausend Zeilen, deren Inhalt zu großen Teilen wieder eingebaut werden will (Und ein AI-Framework darf man sich bisher auch erstmal komplett von 0 selbst schreiben, sonst sehen da keine Monster besser aus, sondern sie sehen einfach mal gar nicht aus. Die kommen beim GMPA auch nicht einfach mit [zumindest deren Verhalten]).

Ich würde erstmal abwarten, was damit noch passiert. Vielleicht wird's den Sprung irgendwann wert sein, aber bisher steht der Aufwand im Falle von SKO in keinem Verhältnis zu dem geringen Nutzen.

Thane

Verurteilter Gefangener

Beiträge: 1 257

Nickname: Thane (Pre-Reset), Daro (Post-Reset)

Serverbeitritt: 19. Dezember 2014

  • Nachricht senden

7

Samstag, 28. November 2015, 00:07

Viel Spaß an Latro, bis zum Reset sämtliche Scripts neuzuschreiben :D Sind ja bestimmt nur einige tausend Zeilen, deren Inhalt zu großen Teilen wieder eingebaut werden will
STRG + C danach STRG + V 8o

8

Samstag, 28. November 2015, 00:17

Ich habe Baratars Worten in dem Fall nicht mehr das Geringste hinzuzufügen. Denn genau das sind meine Gedanken dazu.


Zitat

"Ich weiß nicht wofür die ganze Scheiße da ist, ich lass besser alles so wie es ist."
- Gotha 2018, Programmierer

Baratar

Katastrophe

  • »Baratar« wurde gesperrt

Beiträge: 542

Nickname: Baratar (Katastrophe), Terion

Serverbeitritt: 23. Dezember 2014

  • Nachricht senden

9

Samstag, 28. November 2015, 00:19

Wenn die Scripts weiter über Lua laufen, dazu die komplette Bibliothek der des GMPA nachempfunden wurde und zusätzlich die Abkopplung von Server und Client was diverse Aufgaben angeht komplett optional sind (Also auch alles komplett serverseitig ablaufen kann), dann wäre das denkbar. Bezweifle ich aber mal stark.

10

Samstag, 28. November 2015, 01:10

Pfff.... Deutsche tastaturen werden überbewertet

Lagotas

Verurteilter Gefangener

  • »Lagotas« wurde gesperrt
  • »Lagotas« ist der Autor dieses Themas

Beiträge: 566

Serverbeitritt: 9. August 2015

  • Nachricht senden

11

Samstag, 28. November 2015, 09:23

Viel Spaß an Latro, bis zum Reset sämtliche Scripts neuzuschreiben
Hat ja niemand davon geredet, dass es in nächster Zeit passieren muss. Der Multiplayer ist ja wie gesagt noch in Entwicklung und sicher wird er das noch einige Monate sein. Einfach abwarten und beobachten was draus wird. Für mich sieht es allerdings vielversprechend aus, da die Entwickler sich ziemliche Mühe geben und täglich an Bugs etc. arbeiten.

Programmiersprache ist Squirrel

Spoiler Spoiler

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
local table = {	a = "10"
	subtable = {
		array = [1,2,3]
	},
	[10 + 123] = "expression index"
}
 
local array=[ 1, 2, 3, { a = 10, b = "string" } ];
 
foreach (i,val in array)
{
	::print("the type of val is"+typeof val);
}
 
/////////////////////////////////////////////
 
class Entity
{	
	constructor(etype,entityname)
	{
		name = entityname;
		type = etype;
	}
									
	x = 0;
	y = 0;
	z = 0;
	name = null;
	type = null;
}
 
function Entity::MoveTo(newx,newy,newz)
{
	x = newx;
	y = newy;
	z = newz;
}
 
class Player extends Entity {
	constructor(entityname)
	{
		base.constructor("Player",entityname)
	}
	function DoDomething()
	{
		::print("something");
	}
	
}
 
local newplayer = Player("da playar");
  newplayer.MoveTo(100,200,300);

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Lagotas« (28. November 2015, 09:49)


12

Samstag, 28. November 2015, 13:50

In welcher Sprache die Software geschrieben wird, ist mir herzlich egal. Relevant für mich und andere Betreiber von GMP-Projekten ist, welche Sprache die Serverscripte verwenden und wie es mit der Kompatibilität zu den vom GMPA verwendeten Funktionen aussieht. Umstiegsfreundlich wäre zum Beispiel, wenn sämtliche GMPA-Funktionen genutzt werden könnten. Dafür reicht es ja, wenn der Funktionsaufruf der GMPA-Funktionen die Argumente an entsprechende Funktionen der neuen Software weiterleitet. Sprich so etwas wie (da leicht lesbar an dieser Stelle in LUA-Syntax):

Quellcode

1
2
3
function GetDistance3D(x1,y1,z1,x2,y2,z2) -- GMPA
Get3DDistance(x1,x2,y1,y2,z1,z2); -- Neue Software mit anderer Parameterreihenfolge und anderem Funktionsnamen
end


Schlecht wird es, wenn dieselben Funktionsnamen für eine anders arbeitende Funktion genutzt wird. Dann heißt es in der Tat "viel Spaß dabei, alles anzupassen". Nicht, dass ich davon ausgehen würde, dass selbst mit Kompatibilität auch nur ansatzweise alles reibungslos funktionieren würde, das tut es schließlich nie. Aber es wäre ein Schritt in Richtung Entlastung.


Zitat

"Ich weiß nicht wofür die ganze Scheiße da ist, ich lass besser alles so wie es ist."
- Gotha 2018, Programmierer

Baratar

Katastrophe

  • »Baratar« wurde gesperrt

Beiträge: 542

Nickname: Baratar (Katastrophe), Terion

Serverbeitritt: 23. Dezember 2014

  • Nachricht senden

13

Samstag, 28. November 2015, 14:28

Squirrel ist die Scriptsprache, meinte Lagotas, wie ich das sehe. Die Bibliothek hat teils Ähnlichkeit zur GMPA-Bibliothek, viele der Methoden heißen sogar identisch, oder teils nur ein wenig anders. Einige Funktionen kann man vermutlich annähernd übernehmen, andere Dinge funktionieren vollkommen anders. Mal davon abgesehen, dass die Methoden jetzt aufgeteilt sind in Serverseitig und Clientseitig, was auch noch ein riesiges Problem werden koennte, je nachdem wie strikt die Unterscheidung hier ist.

Aber immerhin wissen die Entwickler hier, wie man Return-Werte verwendet... Das ist schonmal ein gutes Zeichen im Gegensatz zum GMP (Siehe HasItem() ).

Lagotas

Verurteilter Gefangener

  • »Lagotas« wurde gesperrt
  • »Lagotas« ist der Autor dieses Themas

Beiträge: 566

Serverbeitritt: 9. August 2015

  • Nachricht senden

14

Samstag, 28. November 2015, 14:33

Sktiptsprache ist Squirrel, ja.

Bimbol schrieb mir, nachdem ich versucht habe deinen Text halbwegs gut zu übersetzen dies:

Zitat


This is exactly what I thinking about.
For example:

function SetPlayerPosition(pid, x, y, z)
{
callClientFunc(pid, "setPosition", x, y, z);
}

This is a ported function from GMPA for position to G2O."
Außerdem sagte er, wenn er an den Code vom GMP R10 rankommt, was gut möglich ist, wird er uns die deutsche Tastatur einbauen. Kommunikation ist DAS Mittel. :thumbsup:


Baratar

Katastrophe

  • »Baratar« wurde gesperrt

Beiträge: 542

Nickname: Baratar (Katastrophe), Terion

Serverbeitritt: 23. Dezember 2014

  • Nachricht senden

15

Samstag, 28. November 2015, 14:37

Die callClientFunc()-Funktion ist allerdings interessant. Sofern die Funktionalitäten alle zumindest in abgewandelter Form wieder existiert, sollte man damit gute Chancen haben, die komplette GMP-Blibliothek nachzubauen.

16

Samstag, 28. November 2015, 15:10

Funktions aufrufe umschreiben frisst auf Zeit Performance. Wenn ich mich nicht täusche ist das auch wieder unnötiger speicher für jeden Aufruf (Da man eine Funktion hat die nichts anderes macht, außer eine Funktion aufzurufen.)

Baratar

Katastrophe

  • »Baratar« wurde gesperrt

Beiträge: 542

Nickname: Baratar (Katastrophe), Terion

Serverbeitritt: 23. Dezember 2014

  • Nachricht senden

17

Samstag, 28. November 2015, 15:22

Was die Performance angeht dürfte der Unterschied so winzig sein, dass er verkraftbar ist (ein weiterer Sprung zu einer Funktion) Und Speicher sollte dafür eigentlich keiner dauerhaft reserviert werden. Sobald die Funktion durchgelaufen ist, sind die Parameter und die Rücksprungadresse wieder aus dem Speicher raus (Mal davon abgesehen, dass wir wirklich von winzigsten Datenmengen sprechen, und so high-level wie man hier skriptet fällt das nicht im geringsten in's Gewicht). Wir sprechen hier ja nicht von einem Array mit 10000 reservierten Plätzen, das wir aus irgendeinem Grund per Call-by-Value übergeben wollen xD (Was ohnehin hirnrissig ist, und vermutlich gar nicht moeglich), sondern von ein paar normalen Parametern von ganz normalen Datentypen.

Aber da hätte man schon gern C++ und seine inline-Funktionen. Dann bräuchte man sich darüber keine Gedanken zu machen.

18

Samstag, 28. November 2015, 15:36

Die Funktionen werden ja nicht nur 1 mal pro Minut aufgerufen. Teilweise werden regelmäßig über 100 Funktionen im Abstand von wenigen Millisekunden abgerufen. Wird man wohl nur ordentlich sagen können, sobald man es getestet hat. In Lua und diesem GMP, merkt man den unterschied garantiert.

Lagotas

Verurteilter Gefangener

  • »Lagotas« wurde gesperrt
  • »Lagotas« ist der Autor dieses Themas

Beiträge: 566

Serverbeitritt: 9. August 2015

  • Nachricht senden

19

Samstag, 28. November 2015, 16:32

GMPA Port Prototyp:


Spoiler Spoiler



Zitat


/*

GMPA port prototype

*/

local data = {
draws = {}, // Slimar to lua table

// Indexes
drawIndex = 0,
}

// Functions
function Ban(pid)
{
if (isPlayerConnected(pid))
ban(pid);
}

function ClearInventory(pid)
{
if (isPlayerConnected(pid))
callClientFunc(pid, "clearInventory");
}

function CloseInventory(pid)
{
if (isPlayerConnected(pid))
callClientFunc(pid, "closeInventory");
}

function CompleteHeal(pid)
{
if (isPlayerConnected(pid))
callClientFunc(pid, "completeHeal");
}

function CreateDraw(x, y, text, font, red, green, blue)
{
data.draws[drawIndex] <- { x = x, y = y, text = text.tostring(), font = font.tostring(), r = red, g = green, blue = blue };
// And send to all connected players here ;p
return drawIndex++;
}


Achja, hier übrigens Changelogs und Bugtracker des G2O-Projekts.

Die neueste Version läuft stabil und würde laut Bimbol 'nen Server mit 100 Leuten theoretisch schon packen, wurde aber bis jetzt nicht mit mehr als 12 Leuten getestet.

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Lagotas« (28. November 2015, 17:01)


20

Samstag, 28. November 2015, 17:29

Könnten wir ja glattweg als Testkaninchen herhalten 8o

@Lagotas: Da mir Squirrel noch nicht bekannt war/ist, bin ich davon ausgegangen, dass du mit Programmiersprache die Sprache meintest, in der die Entwickler ihre Software entwickeln. Aber das, was du da von Bimbol zitiert hast, ist exakt das, worauf ich hinaus wollte. Definitiv einen Daumen hoch dafür, dass er die Funktionen portiert.
Dann bleibt aber ein weiterer Punkt, der mich in großer Skepsis lässt: Clientseitige und Serverseitige Funktionen. Da würde ich gern mehr Details zu haben, vorallem hinsichtlich des enormen Ausnutzungspotentials des GMPAs durch Clientmodifizierung. Viele GMPA-Funktionen sind leider anfällig dafür, dass sie zu viele clientseitigen Informationen nutzen, weshalb gefühlt die Hälfte aller Serverscripte nur darin besteht, alle Möglichen regelwidrigen Änderungen zu erkennen und entsprechende Maßnahmen einzuleiten. Beim GMPA wünsche ich mir immer wieder, dass diverse Dinge serverseitig berechnet werden würden anstatt clientseitig, um sicherzustellen, dass jeder Spieler auch tatsächlich dieselben Berechnungsgrundlagen verwendet und keine Möglichkeit hat, diese zu seinem Vorteil zu modifizieren.

Der portierungsbedingte Funktionsaufruf aus den Funktionen heraus dürfte aber tatsächlich mehrere tausend zusätzliche Funktionsaufrufe pro Sekunde bedeuten. Allein das Updaten der AI schon.


Zitat

"Ich weiß nicht wofür die ganze Scheiße da ist, ich lass besser alles so wie es ist."
- Gotha 2018, Programmierer

Ähnliche Themen

"Gothic", "Xardas" und "Piranha Bytes" sind eingetragene Warenzeichen der Pluto 13 GmbH Ruhrallee 63, 45138 Essen