[GSTNet] just another network plugin based on enet

Posted By: nfs42

[GSTNet] just another network plugin based on enet - 06/04/07 20:33

Hi, lostclimate gave me a push.

I made a little test (chat) application for GSTNet, my new network plugin for 3DGS based on enet.

Download

Works local, I've a server up and running on gstools.gameserver.com or 84.159.58.129.

usage:
start GSTNet.exe as server with
GSTNet.exe -d srv

start GSTNet.exe as server+client with
GSTNet.exe -d srv -cl ClientName

start GSTNet.exe as client with
GSTNet.exe -d srv -ip gstools.gameserver.com -cl ClientName
Posted By: nfs42

[GSTNet] 0.2 beta released - 06/05/07 18:26

download see first post.
server up and running 84.159.21.23 or gstools.gameserver.com

----------------------------------------------------------------------------------
^: Bugfix
x: changed feature
+: added feature
-: deleted feature
*************************************************
2007-06-05 Release 0.2 public beta
-------------------------------------------------
^ fixed Memory leak with iterative str_create's
x GSTNet_ClientSend, GSTNet_ServerSendall
now always reliable
Posted By: nfs42

Re: [GSTNet] 0.3 beta released - 06/07/07 21:03

download see first post.
server up and running 84.159.8.30 or gstools.gameserver.com
----------------------------------------------------------------------------------
^: Bugfix
x: changed feature
+: added feature
-: deleted feature
*************************************************
2007-06-06 Release 0.3 public beta
-------------------------------------------------
x new thin framework
+ send user defined strings
send script objects: vars, strings

function GSTNet_StartClient(ip, port, intervall)
function GSTNet_StartServer(port, intervall) {
dllfunction GSTNet_Exit();
dllfunction GSTNet_ClientSend(sMessage);
dllfunction GSTNet_ServerSend(sMessage);
dllfunction GSTNet_SendVar(name);
dllfunction GSTNet_SendString(name);
dllfunction GSTNet_ClientId();
Posted By: BoH_Havoc

Re: [GSTNet] 0.3 beta released - 06/07/07 23:44

I'm really looking forward to this! Please don't abandon it like the other network dlls posted in the forums. Keep it up!
Posted By: Puppeteer

Re: [GSTNet] 0.3 beta released - 06/08/07 12:24

I can't download the file correctly i only get 1.8Mb... but it's bigger...
Posted By: nfs42

Re: [GSTNet] 0.3 beta released - 06/08/07 13:24

sorry, but that's possibly a problem with MS Internet explorer.
no problem with other browsers or download managers.
Posted By: Puppeteer

Re: [GSTNet] 0.3 beta released - 06/09/07 19:32

Is there any other way to get it?
Posted By: BoH_Havoc

Re: [GSTNet] 0.3 beta released - 06/09/07 23:33

here you go

http://project-havoc.com/upload/GSTNet_0.3beta.zip
Posted By: Puppeteer

Re: [GSTNet] 0.3 beta released - 06/10/07 12:08

thx
Posted By: nfs42

[GSTNet] 0.4 beta released - 06/26/07 16:51

Some updates: tested with 6.50.6, up to 16 clients

global entities: GSTNet_ent_create, GSTNet_ent_remove

GSTNet_TrackEntity(my,GSTNet_TrackPos); //send only changed entities
define GSTNet_TrackPos = 1;
define GSTNet_TrackAngle = 2;
define GSTNet_TrackScale = 4;
define GSTNet_TrackFlags = 8;
define GSTNet_TrackFrame = 16;
define GSTNet_TrackSkin = 32;
define GSTNet_TrackAmbient = 64;
define GSTNet_TrackAlbedo = 128;
define GSTNet_TrackAlpha = 256;
define GSTNet_TrackLightrange = 512;
define GSTNet_TrackColor = 1024;
define GSTNet_Trackemask = 2048;
define GSTNet_Trackeflags = 4096;

global effects: GSTNet_effect


more to come ...
Posted By: nfs42

[GSTNet] Pong Demo - 06/27/07 18:22

Here is a small demo application based on Pong from AUM26 Download (930 kB)



Posted By: Samb

Re: [GSTNet] Pong Demo - 06/28/07 00:06

thats cool!
going to try it out if I get some free time.
Posted By: BoH_Havoc

Re: [GSTNet] Pong Demo - 06/28/07 14:20

works like a charm
I'll definately use this plugin in my project in the not to distant future

keep up the great work
Posted By: nfs42

Re: [GSTNet] Pong Demo - 06/28/07 16:14

Great if it works for you.
It's still beta, I have to test more.
If you have any suggestions or bug report post it her or better on Trackers on my website.
Posted By: Samb

Re: [GSTNet] Pong Demo - 06/28/07 18:41

heyho,
hoffe ich kann in deutsch posten, da es in englisch zu unverständlich von mir wäre
die pong demo klappt nur in der exe version, wenn man es aus WED startet, gibt es beim clienten ein empty pointer für "my" in den actplayer functionen. was aber unwichtig ist, da es wohl eher ein c-script problem ist

nächste sache: du verwendest ja mein funktionen übermitteln skript. du solltest noch dringend einbauen, das er den string nach nem "&" zeichen untersucht und dann dieses zeichen kodieren. in einer chat funktion würde es dann fehler geben wenn man "&" schreibt.

als nächtes paar wünsche
- ich weiß nicht ob client_send und server_send es schon machen, aber es wird eine funktion benötigt, womit man als client nur an den server eine nachricht schicken kann und als server einen bestimmten clienten eine nachricht.
- eine function, welche den ping anzeigen lässt, welchen man zum server hat, wäre gut.
- eine disconnect funktion um andere zu kicken (wobei man das mit "server zu bestimmten client" funktion selber machen könnte)
- ganz wichtig: CreatorId, wenn du das z.b. auf eine anderere spielerfigur anwendest, bekommst du dadurch die ID des anderen spielers raus? wenn ja wäre eine funktion gut, um zu schauen ob der spieler mit der ID noch existiert. so könnte man schreiben "du gehörst zu dieser spielerID, jedoch ist der spieler mit der ID offline, also lösche dich"
- ein event, welches ausgelöst wird sobald ein neuer spieler den server betritt. das ist wirklich EXTREM wichtig. weil populace diese funktion nicht hatte, musste ich tausende von alternativen einbauen, nur damit z.b. die namen über den spieler stehen etc.
- eine funktion, welche eine bestimmte sache sofort aktualisiert. sprich, das die position neu übertragen wird etc. denkemal es wird so sein, das die entitys, wenn du dich neu einloggst, nicht ihre echte position haben werden. in der kombination mit dem "neuer spieler event" könnte man allen spielerfiguren sagen, sie sollen ihre position nochmal senden.

so, ich glaub das wärs erstmal
sobald du die skills drin hast, werde ich mein altes bomberman spiel mal auf dein plugin umproggen.
Posted By: nfs42

Re: [GSTNet] Pong Demo - 06/28/07 22:02

Quote:

heyho,
hoffe ich kann in deutsch posten, da es in englisch zu unverständlich von mir wäre




mein englisch ist auch nicht besser

Quote:


die pong demo klappt nur in der exe version, wenn man es aus WED startet, gibt es beim clienten ein empty pointer für "my" in den actplayer functionen. was aber unwichtig ist, da es wohl eher ein c-script problem ist




Wie ist deine WED version? ich starte aus GST-Builder

Quote:


nächste sache: du verwendest ja mein funktionen übermitteln skript. du solltest noch dringend einbauen, das er den string nach nem "&" zeichen untersucht und dann dieses zeichen kodieren. in einer chat funktion würde es dann fehler geben wenn man "&" schreibt.




ist ja komplett c-skript, kannst Du auch anpassen ;-)

Quote:


als nächtes paar wünsche
- ich weiß nicht ob client_send und server_send es schon machen, aber es wird eine funktion benötigt, womit man als client nur an den server eine nachricht schicken kann und als server einen bestimmten clienten eine nachricht.




der erste Parameter der beiden Funktionen sollte der Receiver sein =GSTNet_ClientId oder 0=server

Quote:


- eine function, welche den ping anzeigen lässt, welchen man zum server hat, wäre gut.




gute idee
Quote:


- eine disconnect funktion um andere zu kicken (wobei man das mit "server zu bestimmten client" funktion selber machen könnte)




dito
Quote:


- ganz wichtig: CreatorId, wenn du das z.b. auf eine anderere spielerfigur anwendest, bekommst du dadurch die ID des anderen spielers raus?




ist korrekt :-)

Quote:


wenn ja wäre eine funktion gut, um zu schauen ob der spieler mit der ID noch existiert. so könnte man schreiben "du gehörst zu dieser spielerID, jedoch ist der spieler mit der ID offline, also lösche dich"





müsste mit o.g. send funktionen in c-script machbar sein

Quote:


- ein event, welches ausgelöst wird sobald ein neuer spieler den server betritt. das ist wirklich EXTREM wichtig. weil populace diese funktion nicht hatte, musste ich tausende von alternativen einbauen, nur damit z.b. die namen über den spieler stehen etc.





funktioniert in der neuen 0.4.1 beta Download erstes Post.

Quote:


- eine funktion, welche eine bestimmte sache sofort aktualisiert. sprich, das die position neu übertragen wird etc. denkemal es wird so sein, das die entitys, wenn du dich neu einloggst, nicht ihre echte position haben werden. in der kombination mit dem "neuer spieler event" könnte man allen spielerfiguren sagen, sie sollen ihre position nochmal senden.





auch in der neuen 0.4.1 ;-))
GSTNet_UpdateEntity(ent,GSTNet_TrackAll)
GSTNet_UpdateSkills(ent,1,100)
Posted By: Samb

Re: [GSTNet] Pong Demo - 06/29/07 17:09

paar bugs:
- die create funktion crasht, wenn man den nullvector angibt oder eine var als vector. ebenso scheint es zu crashen, wenn man keine aktion angibt.
- position wird nicht neu übertragen. habe ein levelerstellung script, welches nach dem createn die entity auf seinen platz setzt. normalerweise sollte ja das position tracken das erledigen. tut es nicht. habe es versucht es zwanghaft zu verschieben:
Code:
 ifdef srv;
wait(-3);
GSTNet_UpdateEntity(my, GSTNet_TrackPos);
endif;



klappte auch nicht.
removen klappt jedoch.
- wenn ich mehr als 102 multiplayer entities werden, crasht client_poll.

eine sache die ich bemerkte: wenn ein client disconnectet und wieder neu joint, werden die ganzen entites nicht neu übertragen, sprich sein level ist leer. ich denkemal das kommt noch?

p.s.: hab dich in icq geaddet. falls du meine nachricht nicht bekamst
Posted By: nfs42

Re: [GSTNet] Pong Demo - 06/29/07 18:36

Quote:

paar bugs:
- die create funktion crasht, wenn man den nullvector angibt oder eine var als vector. ebenso scheint es zu crashen, wenn man keine aktion angibt.





nullvector fixed
no action fixed

Quote:


- position wird nicht neu übertragen. habe ein levelerstellung script, welches nach dem createn die entity auf seinen platz setzt. normalerweise sollte ja das position tracken das erledigen. tut es nicht. habe es versucht es zwanghaft zu verschieben:
Code:
 ifdef srv;
wait(-3);
GSTNet_UpdateEntity(my, GSTNet_TrackPos);
endif;



klappte auch nicht.





muß ich testen und vielleicht ein beispiel dazu machen

Quote:


- wenn ich mehr als 102 multiplayer entities werden, crasht client_poll.





im Moment max 100 Entities

Quote:


eine sache die ich bemerkte: wenn ein client disconnectet und wieder neu joint, werden die ganzen entites nicht neu übertragen, sprich sein level ist leer. ich denkemal das kommt noch?





tbd release 0.5
ist nicht ganz so einfach
Posted By: nfs42

Re: [GSTNet] Pong Demo - 06/30/07 08:02

Quote:


- position wird nicht neu übertragen. habe ein levelerstellung script, welches nach dem createn die entity auf seinen platz setzt. normalerweise sollte ja das position tracken das erledigen. tut es nicht. habe es versucht es zwanghaft zu verschieben:
Code:
 ifdef srv;
wait(-3);
GSTNet_UpdateEntity(my, GSTNet_TrackPos);
endif;



klappte auch nicht.





GSTNet_UpdateSkills, GSTNet_UpdateEntity gefixed

Quote:


- wenn ich mehr als 102 multiplayer entities werden, crasht client_poll.





im Moment max 1000 Entities


Download 0.4.2 im ersten Post
Posted By: Samb

Re: [GSTNet] Pong Demo - 06/30/07 12:21

sobald ich mehr als 116 multiplayer entities habe, crash GSTNet_ent_create und gibt als grund eine wait funktion an, in der action der entitie.
wenn man die wait funktionen löscht, crasht es, ohne den grund anzugeben.

Code:
action funtest()
{

GSTNet_TrackEntity(my, GSTNet_TrackPos);
wait(-3);

ifdef srv;
wait(-3);
GSTNet_UpdateEntity(my, GSTNet_TrackPos);
endif;

}



der crash: Crash in GSTNet_ent_create: wait(-3)

ansonsten läuft createn und updaten der position perfekt!
(101 entities werden im gleichen frame erzeugt und 5 frames später auf allen clienten richtig gesetzt, ohne probleme)
Posted By: nfs42

Re: [GSTNet] Pong Demo - 06/30/07 13:29

Hast die neue dll (30.6.07) ?

GSTNet_TrackEntity(my, GSTNet_TrackPos);
client: nur für die eigenen globalen enitities: plugin versendet die def. Eigenschaften jeden Frame an den server
server: nur alle globalen enitities: system versendet die def. Eigenschaften jeden Frame an alle clients (wird nicht auf dem Erzeuger-Client geändert)

sinnvoller einsatz
jeweils zu beginn der globalen action in client UND server
Code:
action ent_action(){
wait(1); //is needed
GSTNet_TrackEntity(my, GSTNet_TrackPos);
while(1){
wait(1);
}
}



GSTNet_UpdateEntity(my, GSTNet_TrackPos);

wie GSTNet_TrackEntity(my, GSTNet_TrackPos);
Unterschied:
die Daten werden sofort und nur bei diesem Aufruf einmal verschickt
Posted By: Samb

Re: [GSTNet] Pong Demo - 06/30/07 13:52

eine aktuellere als die 29.06.2007 gibt es nicht zum runterladen.

und was genau meinst mit nur eigenen globaen entities?
heißt das, das ein client nicht die entities verändern kann, wenn sie ein anderer client erstellt hat?
Posted By: nfs42

Re: [GSTNet] Pong Demo - 06/30/07 16:40

zu viele Änderungen in kurzer Zeit

ich bin noch nicht ganz so fit in mp-Anwendungen

globale entities laufen auf allen clients und server und müssen
durch den server verwaltet werden. der server kann auch alle alle globalen entities ändern.

jeder client kann lokale und eigene globale entities ändern.
z.b. die eigene player figur reagiert sofort auf eingaben.

werden durch den programm flow andere globale enities verändert,
muß dies auf dem server passieren, dieser nimmt die änderungen vor und schickt
diese an alle clients.

theoretisch könnte ich diese prüfung auf dem client herausnehmen.

im pong besipiel läuft die ball action nur auf dem server,
die player action auf dem zugehörigen client.
änderungen der player passieren auf dem zugehörigen client und
werden an den server und durch den an alle clients geschickt.

änderungen die dadurch im server am ball passieren werden ebenfalls an alle clients geschickt.

du kannst mir auch mal deinen code schicken webmaster at gstools dot de.
Posted By: Samb

Re: [GSTNet] Pong Demo - 06/30/07 17:19

mein code besteht noch aus tests
bin noch dabei, dass das level geladen wird ohne probleme. danach konvertiere ich den player script von populace zu GSTNet.
war mir nur unschlüssig ob es überhaupt nicht geht, das jemand anders einfluss auf "fremde" entities hat.

sprich durch:
if(player==me)
{
GSTNet_TrackEntity(my, GSTNet_TrackPos);
}
könnte nur der spieler selbst die position ändern. sollte ein anderer die position ändern, wird diese natürlich überschrieben, sobald sich der spieler bewegt.

wenn es jedoch ohne IF ist, und nun ein anderer client die entity bewegt, müsste dies position auch wirklich geändert werden und zwar auf allen clienten.

mein test sieht so aus:
Code:
 action funtest()
{
wait(1);
GSTNet_TrackEntity(my, GSTNet_TrackPos);
while(1)
{
if(player==me)
{
if(key_cur==1)
{
my.x+=1;
}
}
wait(1);
}
}

action funtest2()
{
wait(1);
if(player==me){GSTNet_TrackEntity(my, GSTNet_TrackPos);}
while(1)
{
if(player==me)
{

if(key_cur==1)
{
my.x+=1;
}
}
wait(1);
}
}



client eins erzeugt einen entity, welche der player ist mit der funktion funtest()
diese sollte jeder verändern können, in der position, da ja auf jeden clienten GSTNet_TrackEntity(my, GSTNet_TrackPos); aufgerufen wird.

der zweite client ruft funtest2() als funktion für seine player entity auf. dieser sollte nur er ändern können, laut code.

jedoch kann client2 nicht die position von der entity von client1 manipulieren.

empfinde es als wichtig entscheiden zu können, ob alle etwas verändern dürfen oder nicht.
beim bomberman spiel wurden z.b. die figuren vom spieler auf ihre startplätze gesetzt. das würde nun nicht gehn, da man die entities nicht verändern kann.


edit:
ich verändere die position der anderen entity mit mouse_ent.x-=100
nur falls die frage aufkommen sollte, wie ich denn die entity des anderen clienten bewegen kann
Posted By: nfs42

Re: [GSTNet] Pong Demo - 06/30/07 20:23

die update funktionen können jetzt durch jeden für alle globalen entities verwendet werden. Diese müssen jedoch periodisch aufgerufen werden.

die track funktionen laufen zyklisch im hintergrund, da diese recht heikel zu nutzen sind (auf allen clients die gleiche action!). sie müßten wie in deinem fall immer ein- und ausgeschaltet werden je nach nutzung. sie gelten
GSTNet.dll+GSTNet.wdl sind als separater download zur verfügung
Posted By: Samb

Re: [GSTNet] Pong Demo - 07/01/07 16:10

crasht nun bei mehr als 103 mp-entities

achja, ein GSTNet_ent_morph befehl wäre noch gut
Posted By: nfs42

Re: [GSTNet] Pong Demo - 07/02/07 17:55

update: 0.4.3
+ var GSTNet_Connections()
1 = server
2 = client
3 = clientserver
replaces ifdef srv;
+ var GST_ent_morph(entity, filename)

bis zu 1000 globale entities

Download
Posted By: Samb

Re: [GSTNet] Pong Demo - 07/02/07 19:25

ok, level laden klappt nun tadelos

nur das alle clienten alles beeinflussen können, bekomem ich noch nicht hin.
es ist ein bomberman clon. wenn man eine bombe legt, tracet sie in 4 richtungen und wenn ien block da ist, wird sein skill auf 1 gesetzt und an alle anderen clienten übertragen.
wenn der skill auf 1 ist, geht es halt weiter in der funktion (erscheint ein item oder geht er nur kaputt etc.).
aber momentan kann halt nur der ersteller die skills und positions sachen verändern. nicht mal der server hat kontrolle über sie.
da alle clienten die gleiche funktion aufrufen und auch allen clienten gesagt wird "trackt diesen skill", sollten auch alle clienten ihn verändern dürfen, so das er auch gesendet wird.
ansonsten lassen sich viele sachen nur über umwege realisieren. wie eben das mit den blöcken.

achja
untrack funktion ist nicht inner WDL und wird auch nicht in der DLL gefunden, wenn man es selber einträgt.
Posted By: nfs42

Re: [GSTNet] Pong Demo - 07/02/07 20:40

die prüfung habe ich bei TrackEntity herausgenommen, mach was draus
UntrackEntity() ist jetzt als dllfunction definiert und funktioniert
Posted By: Samb

Re: [GSTNet] Pong Demo - 07/02/07 20:46

hmpf, wenn mans downloaden will, kommt "You must login and be authorized to access documents."
habe mich sogar extra registriert aaaber das komtm immer noch

sollte dann alles klappen, werde ich wohl ne kleine 3D chatanwendung proggen.
hab noch andere sachen zu machen, daher nur etwas kleines
Posted By: nfs42

Re: [GSTNet] Pong Demo - 07/02/07 20:55

du hast eine pm
Posted By: Samb

Re: [GSTNet] Pong Demo - 07/03/07 15:39

du auch (hoffe ich zumindest )
Posted By: Anonymous

Re: [GSTNet] Pong Demo - 07/03/07 17:29

hi.hab mal ne frage.muss ich dann gs auch mit command line -cl oder -sv starten oder wie geht das?
Posted By: nfs42

Re: [GSTNet] Pong Demo - 07/03/07 17:59

ho, siehe ersten post.

im gegensatz zu dem ab der com eingebauten multiplayer kann innerhalb des programmes festgelegt werden, ob es als server, serverclient oder nur als client laufen soll.
Posted By: Anonymous

Re: [GSTNet] Pong Demo - 07/03/07 18:59

ok thx und wenn ich es über lan verbinden möchte?
Posted By: nfs42

Re: [GSTNet] Pong Demo - 07/03/07 19:05

gilt das gleiche >> cmdline parameter -ip der clients auf die ip des servers einstellen im lan i.d.r. 192.168.0.xxx
du kannst auch 4 clients auf dem server-pc starten mit -ip 127.0.0.1 (nicht gerade sinnvoll, aber zum testen ganz praktisch)
Posted By: Anonymous

Re: [GSTNet] Pong Demo - 07/04/07 14:49

ok thx.hab noch ne frage.muss ich die dll irgentwie einbinden.bei mir kommt nämlich GSTNet_ServerInit(2300); not found in DLL
Posted By: Anonymous

Re: [GSTNet] Pong Demo - 07/04/07 15:14

ok hab es jetzt hinbekommen.hab vergessen die DLL in acknex_plugins zu kopieren.aber wie initalisiere ich es jetzt richtig.
ich hab das so gemacht:
level_load (level_wmb);
wait (2);
connect = GSTNet_Connection();
if(connect == 3)
{
GSTNet_ServerInit(2300);
}
if(connect == 2)
{
GSTNet_ClientInit(server_name,2300);
}
Posted By: nfs42

Re: [GSTNet] Pong Demo - 07/04/07 15:35

schaue dir die beiden demos an für GSTNet_Connection() habe ich noch kein beispiel.
GSTNet_Connection() gibt wie connection der acknex engine den zustand der mp engine zurück.
d.h. du initialisert den server mit GSTNet_ServerInit(2300);
und nach kurzer zeit gibt GSTNet_Connection() statt 0 eine 1 zurück

Quote:


level_load (level_wmb);
wait (3);
GSTNet_ServerInit(2300);
while (GSTNet_Connection()==0) {wait(1);} // warten auf initialisierung des servers

// GSTNet_ClientInit(server_name,2300);
// while (GSTNet_Connection()<=2) {wait(1);} // warten auf initialisierung des clients




Posted By: Anonymous

Re: [GSTNet] Pong Demo - 07/04/07 15:58

also ich hab das jetzt so:
ifdef srv;
GSTNet_ServerInit(2300);
endif;
GSTNet_ClientInit(server_name,2300);
ich starte den server mit -d srv -ip 127.0.0.1 -pl admin
und den client mit -pl client2 -ip 127.0.0.1
so wie in dem pong beispiel aber es funktioniert nicht.

ps: du hast ne pm.
Posted By: Anonymous

Re: [GSTNet] Pong Demo - 07/06/07 17:15

wird GSNET auch mit A7 gehen?

Ps: nfs42: kanns du in icq gehen?
Posted By: Anonymous

Re: [GSTNet] Pong Demo - 07/09/07 15:46

ok es funktioniert jetzt.

ps: du hast ne pm.
Posted By: nfs42

[GSTNet] 0.5 released - 07/09/07 19:53

I've got some giant steps (for me) with this plugin.
Register and track WED created entities.
synchronize a client with server (create global entities, remove removed wed entities)
Global handles functions

Start here:
TestChat Application : Download
DLL: Download

Now I start with documentation and some examples


----------------------------------------------------------------------------------
^: Bugfix
x: changed feature
+: added feature
-: deleted feature
*************************************************
2007-07-09 Release 0.5.0 public beta
-------------------------------------------------
+ GSTNet_Disconnect(); // exit server/client engine
+ GSTNet_TrackVar(name); // tracks a var on server and send it every frame to all clients if changed
+ GSTNet_Synchronize(); // sync client with server
+ GSTNet_RegisterEntity(entity); //register a wed entity on server
- GSTNet_Exit(); // replaced with GST_Disconnect()
*************************************************
2007-07-02 Release 0.4.4 public beta
-------------------------------------------------
+ GSTNet_Handle(entity) //returns global handle
+ GSTNet_PtrForHandle(handle) //returns entity from global handle
+ GSTNet_Connection()
1 = server
2 = client
3 = clientserver
replaces ifdef srv;
+ GST_ent_morph(entity, filename)
*************************************************
2007-06-30 Release 0.4.3 public beta
-------------------------------------------------
+ GST_Connection() same behaviour as 3DGS
replaces the ifdef srv; method
*************************************************
2007-06-28 Release 0.4.2 public beta
-------------------------------------------------
+ GSTNet_Ping() get the smoothed roundTriptime

^ GSTNet_UpdateEntity,GSTNet_UpdateSkills
*************************************************
2007-06-28 Release 0.4.1 public beta
-------------------------------------------------
x New functions:
GSTNet_UntrackEntity(entity, properties) don't send these properties every frame
GSTNet_UpdateEntity(entity, properties) send the defined properties immediate from any entity on any client or server to all
+ GSTNet_TrackSkills(entity, from, to) don't send these skills every frame
+ GSTNet_UpdateSkills(entity, from, to) send the defined skills immediate from any entity on any client or server to all
- GSTNet_ent_update
*************************************************
2007-06-24 Release 0.4 public beta
-------------------------------------------------
+ New functions:
GSTNet_ent_create
GSTNet_ent_remove
GSTNet_ent_update
GSTNet_TrackEntity(entity, properties) send these properties every frame
tracked properties are only sent if any are changed
GSTNet_effect
*************************************************
2007-06-06 Release 0.3 public beta
-------------------------------------------------
x new framework
+ send user defined strings
send script objects: vars, strings
*************************************************
2007-06-05 Release 0.2 public beta
-------------------------------------------------
^ fixed Memory leak with iterative str_create's
x GSTNet_ClientSend, GSTNet_ServerSendall
now always reliable
*************************************************
2007-06-04 Release 0.1 public beta
-------------------------------------------------
Posted By: Samb

Re: [GSTNet] 0.5 released - 07/11/07 19:49

das nachträglich joinen klappt bei meinem levelersteller sehr gut, alle sachen werden mit den richtigen skills erstellt, wenn man den server betritt.

nur, wie ich dir schon in icq schrieb, das mit den handlen klappt noch nicht so.

ansonsten an alle: schaut es euch unbedingt mal an
Posted By: nfs42

Re: [GSTNet] 0.5 released - 07/11/07 22:17

ich mach dir mal ein beispiel, wie du 'fremde' entities manipulieren kannst. 'never trust a client'
Posted By: nfs42

Re: [GSTNet] 0.5 released - 07/12/07 19:39

documentation is now online
Posted By: nfs42

[GSTNet] 0.5.1 released - 07/15/07 14:37

ändern von 'fremden' entities geht jetzt mit GSTNet_SendEntity()
siehe chat demo

key_l key_r verschiebt alle entities
key_shift + mouse_left färbt entities ein
Posted By: Damocles

Re: [GSTNet] 0.5.1 released - 07/16/07 09:15

Hi, can I send arrays as vars?
such as:

var data[100];
...
GSTNet_SendVar("data");
Posted By: nfs42

Re: [GSTNet] 0.5.1 released - 07/16/07 09:26

atm: no
could be implemented as GSTNet_SendArray(varname, size)
Posted By: Damocles

Re: [GSTNet] 0.5.1 released - 07/16/07 10:33

That would be great
Posted By: Samb

Re: [GSTNet] 0.5.1 released - 07/16/07 11:45

möchte auch noch mal hier draufhinweisen, das sendskills genau wie die alte funktion "updateskills" nicht alle clienten verwenden können. sprich sendentity funktioniert und jeder kann nun die entities bewegen, nur sendskills geht wieder nur vom server, was interessanterweise auch als kommentar daneben steht. hoffe das wir noch eingebaut
Posted By: nfs42

Re: [GSTNet] 0.5.1 released - 07/16/07 12:42

ich habe nur die 'normalen' properties (sendentity) getestet
die sendskills hatte ich entsprechend geändert, aber anscheinend nicht ganz
wird natürlich gefixed
Posted By: nfs42

[GSTNet] 0.5.1 sendskill fixed - 07/16/07 21:19

sendskills ist gefixed
in der Demo GSTNet_TestChat wird im client skill50 mit key_shift und mouse_left dekrementiert.
und in der action die auf allen clients läuft wird alpha gleich skill gesetzt.


Code:
//----------------------------------------------------------------------------------------
// function: entity action
// purpose: change position on creator client
// change angle and scale on server
//------------------------------------------------------------------
action ent_action1() {
wait(3);
GSTNet_RegisterEntity(my);
my.enable_click = on;
my.transparent = on;
my.alpha = 100;
my.skill50 = my.alpha;
// on_click = mouseremove;
// while(GSTNet_Handle(my)==0){wait(1);}
my.skill2 = GSTNet_Handle(my);
GSTNet_TrackEntity(my, GSTNet_TrackPos); // client+server
while(1){
my.alpha = my.skill50;
wait(1);
}
}
...
//----------------------------------------------------------------------------------------
// function: mousemove
// purpose: moves a global entity
//------------------------------------------------------------------
function mousemove()
{
while(key_shift)
{
mouse_mode = 2;
mouse_pointer = 2;
mouse_pos.x = pointer.x; // move the mouse pointer
mouse_pos.y = pointer.y;
if(mouse_ent!=null) {
mouse_ent.light = on;
if (GSTNet_Connection() == 3){
mouse_ent.red = 255;
mouse_ent.green = 0;
mouse_ent.blue = 0;
}
if (GSTNet_Connection() == 2){
mouse_ent.red = 0;
mouse_ent.green = 255;
mouse_ent.blue = 0;
}

diag("\nLIGHT");
GSTNet_SendEntity(mouse_ent,GSTNet_TrackFlags+GSTNet_TrackColor); // set entity to debug
mouse_ent.skill50 = mouse_ent.alpha - 1;
GSTNet_SendSkills(mouse_ent,50,50); // set entity to debug
}
wait(1);
}
}
on_click=mousemove;


Posted By: nfs42

[GSTNet] SendArray implemented - 07/18/07 21:30

version 0.5.3 released

Code:
GSTNet_SendArray(sName, vFrom, vTo)




Description: server+client: sends a part of a global var array immediately


Parameter:
STRING* varname name of the global var array
var vFrom first index
var vTo last index

max. 250 entries at one time 0.249 or 10100..10349

Example:

var Array[500];
function evServer(vType, sData)
{
diag("\nReceive server event:");
if (vType == GSTNet_EvTypeConnect ) {
diag("\nNew client connected. ClientId:");
diag(sData);
GSTNet_SendVar("StartClients");
GSTNet_SendArray("Array",0,250); // send array immediately after client connect
}
}

function main() {
ifdef srv;
GSTNet_StartServer(2300,1);
GSTNet_Events(GSTNet_EventServer, "evServer");
//start a function, which demonstrates global vars
Array[0]=200; // only server sets the array values
Array[1]=200;
Array[2]=400;
Array[249]=300;
endif;

// start client if srv is set in commandline
GSTNet_StartClient(server_name,2300,1); //server event connect is fired
GSTNet_Events(GSTNet_EventClient, "evClient");
while(GSTNetId==0) {wait(1);} // client rceives from server the array values
GSTNet_Synchronize();
wait(-0.5);
test();
GSTNet_TrackVar("Counter");
draw_red_rect(Array[0],Array[1],Array[2],Array[249]); //array values are updated from server array on connected client
}



Downloads on my website
Posted By: Damocles

Re: [GSTNet] SendArray implemented - 07/18/07 22:02

Great, I will do some tests now,
to check everything out.
If all the funtionalities work correctly, it is a perfect basis to
make some serious Multiplayer apps, that dont require the limite native 3dGS features.
Posted By: Samb

Re: [GSTNet] SendArray implemented - 07/19/07 11:43

in die main muss GSTNet_Events(GSTNet_EventFunction,"Parse_Function");
sonst geht die send_function funktion nicht.

wenn if (str_stri(sGSTNetTemp1, "GSTNet") == 0) { return; } in Parse_Function steht, funktioniert es nicht.

Parse_Function hat normalerweise nur (str) muss aber (vtype,str) sein. sonst denkt er, er würde eine var verwenden.

GSTNet_ClientSend scheint immer nur aufm server ausgeführt zu werden. vReceiver auf 0,1 oder 2 ergibt kein unterschied. nur der server löst die funktion aus.
Posted By: nfs42

Re: [GSTNet] SendArray implemented - 07/19/07 15:56

Quote:

in die main muss GSTNet_Events(GSTNet_EventFunction,"Parse_Function");
sonst geht die send_function funktion nicht.



ist in der test applikation in GSTNet_Chat versteckt:
Code:

starter GSTNet_ChatActivate()
{
var temp_str;
wait(-1);
GSTNet_Events(GSTNet_EventFunction, "evFunction"); //register event function


die evFunction ist in GSTNet.wdl muß ich wohl noch aufräumen

Code:

function evFunction(vTyp, sMsg)
{

GSTNet_ServerSend(0, vTyp, sMsg); // broadcast this
Parse_Function(sMsg); // parse and execute ...

}


USER events werden nicht automatisch, sondern müssen von hand weitergesendet werden wie siehe oben

Quote:

wenn if (str_stri(sGSTNetTemp1, "GSTNet") == 0) { return; } in Parse_Function steht, funktioniert es nicht.




wieso funktioniert der chat dann in der test app ?!
Quote:

Parse_Function hat normalerweise nur (str) muss aber (vtype,str) sein. sonst denkt er, er würde eine var verwenden.




s. evFunction

Quote:

GSTNet_ClientSend scheint immer nur aufm server ausgeführt zu werden. vReceiver auf 0,1 oder 2 ergibt kein unterschied. nur der server löst die funktion aus.



bitte beispielcode
Posted By: Samb

Re: [GSTNet] SendArray implemented - 07/19/07 18:36

evFunction fehlte.
trotzdem komm ich mit der send_function nicht so zurecht, daher versuche ich es mit eigenen events ^^

es gibt aber ein problem:

eventfunktion:
Quote:

function Server_Login_Event(vTyp, sMsg)
{
str_cpy(debugtext1.string[4], "test");
if(GSTNet_Connection()==3)
{
beep;
GSTNet_ServerSend(3, vTyp, sMsg); //sende an client 2
}
}




auslöser
Quote:


GSTNet_Events(11,"Server_Login_Event");
if(key_a==1)
{
GSTNet_ClientSend(1, 11, "leer"); //sende an den server
break;
}




erklärung:
durch das drücken von A,wird das server event "Server_Login_Event" ausgelöst. das klappt ohne probleme und nur der server führt es aus. es beept einmal und beim server erscheint der debugtext.
nun soll er das weiterschicken an den clienten mit der ID=3.
dabei soll der nur den debugtext befüllen.

so, nun passiert folgendes:
egal wo A gedrückt wird, alle clienten haben den string nun mit "test" gefüllt. der server steckt in einer endlosschleife und "beept" ununterbrochen.

warum?
selbst wenn das beepen ist, sollte zumidnest client2 nicht den text bekommen.
Posted By: nfs42

Re: [GSTNet] SendArray implemented - 07/19/07 21:37

ist gefixed. ich teste es aber noch.
Posted By: Samb

Re: [GSTNet] SendArray implemented - 07/21/07 19:12

sorry das ich schon nerve aber: gibts neuigkeiten?
Posted By: nfs42

Re: [GSTNet] SendArray implemented - 07/22/07 08:18

ich habe (hoffentlich) nur ein kleines problem mit meiner website.
hier der fix zum download 0.5.3
GSTNet_Events() hat jetzt zwei zusätzliche Parameter:
var vSender: sender of this event as unique client id retrieved with GSTNet_ClientId() on any client

var vReceiver: receiver for this event as unique client id retrieved with GSTNet_ClientId() on any client

Code:
//------------------------------------------------------------------

// function for event: receivechatmessage

//------------------------------------------------------------------

function evFunction(vTyp, sMsg, vSender, vReceiver)

{

if(GSTNet_Connection() == 2 || GSTNet_Connection() == 3 ) { //I am a client

Parse_Function(sMsg); // parse and execute ...

}

if(vSender>0){GSTNet_ServerSend(vSender-1, vTyp, sMsg);} // send the message to the preceeding clientid

}


Posted By: Samb

Re: [GSTNet] SendArray implemented - 07/22/07 12:32

funktioniert super!
vorallem vSender ist eine sache, die ich mir vorher selber zurechtwurschteln musste. nimmt mir sehr viel arbeit ab

vielen dank

werd mal schauen, ob ich nun mein account system damit hinbekomme
Posted By: Damocles

Re: [GSTNet] SendArray implemented - 07/22/07 13:24

Nice, got my first client server connection running,

Sending arrays works fine,
(I dont need any of the entity functions anyhow, only the String and
var related funtions)

Now I will do some further tests.


----

All basic requirements that I need work nice.
This is the first dll, that actually works the way I need it for multiplayer.
Nice Job.
No need for the native 3dGS multiplayer functions anymore
Posted By: Damocles

Re: [GSTNet] SendArray implemented - 07/22/07 14:56

But what I need is also a server function:

GSTNet_Disconnect(clientID);

to remove a client from the List, and
also prohibiting the client to send any data to the server.
(not accepting the data from this clientID)

This is needed for securely kicking off fraudulent clients,
such that the client can not send spam-data to the server.
Posted By: nfs42

Re: [GSTNet] SendArray implemented - 07/22/07 17:16

GSTools is online again: update 0.5.5

*************************************************
2007-07-22 Release 0.5.5 public beta
-------------------------------------------------
x GSTNet_Disconnect(vId) kick a client from server
with his unique clientid

Code:
//----------------------------------------------------------------------------------------
// function: disconnect
// purpose: disconnect client from server
//------------------------------------------------------------------
function disconnect() {
GSTNet_Disconnect(2);
}
on_d=disconnect;

//----------------------------------------------------------------------------------------
// function: kick
// purpose: kick a client from server (only server)
//------------------------------------------------------------------
function kick() {
GSTNet_Disconnect(2);
}
on_k=kick;


Posted By: Damocles

Re: [GSTNet] SendArray implemented - 07/22/07 17:20

Thanks, very good:

one thought on security.
A fraudulent client could log onto the server several thousant times.
Could this client stop the server from giving Client IDs, if the ID runs over the index-bounds?,
or are old client IDs used ?
Posted By: Damocles

Re: [GSTNet] SendArray implemented - 07/22/07 17:49

Another Idea, wich is not so important at the moment:

GSTNet_SendArrayTo(ClientID, .... )

Sending Variables, Arrays and Strings only to a specific client.
(currently and a String message can be send)

This way, the server could choose wich gamedata to send to
wich client.
Especially in a MMORPG, or RPG. The server does not want to send
the same data to every client. (for example, data on visible objects for that player)
Posted By: nfs42

[GSTNet] Send to clientid implemented - 07/27/07 21:47

a hard week is over and now I've got some time to program:
Download GSTNet 0.5.6

*************************************************
2007-07-27 Release 0.5.6 public beta
-------------------------------------------------
x GSTNet_SendString, GSTNet_Sendvar, GSTNet_SendArray
got a new first parameter = vReceiver
to send only to the client with his unique clientid

only tested with GSTNet_SendString but should work with the other functions
Posted By: Damocles

Re: [GSTNet] Send to clientid implemented - 07/27/07 22:10

thanks very much nfs42
Posted By: Samb

Re: [GSTNet] Send to clientid implemented - 07/28/07 01:11

clienten die nachträglich joinen, werden zwar alle alten entities ü+bertragen und deren position (nicht den pan), können jedoch keine neue informationen empfangen.
sprich eine andere player figur ist an der richtigen position beim starten des clienten, jedoch bewegt sie sich nicht mehr, sprich ist vollkommen tot als hätte sie nicht den richtigen MPhandle oder sonstiges...
Posted By: Damocles

Re: [GSTNet] Send to clientid implemented - 07/28/07 06:31

Hab die dll noch nicht getestet,
aber emfangen diese clients variablen, die an ihre ID gesendet werden?
(für meine Zwecke verwende ich die entity funktionen nicht)
Posted By: nfs42

Re: [GSTNet] Send to clientid implemented - 07/28/07 11:23

@samb: stimmt, ich schaue es mir an
@Damocles: ja, die werte der strings, vars, array werden (ohne event zu feuern) auf dem angegebenen receiver client sofort geändert.
Posted By: nfs42

Re: [GSTNet] Send to clientid implemented - 07/29/07 20:49

new download: 0.5.7
the bugs after adding the new receiver parameter for several functions should be fixed

*************************************************
2007-07-29 Release 0.5.7 public beta
-------------------------------------------------
^ GSTNet_SendString, GSTNet_Sendvar, GSTNet_SendArray
+ TrackString(sName)
Posted By: Damocles

Re: [GSTNet] Send to clientid implemented - 07/29/07 22:52

Thanks, I just love that dll!
so much more useful than other 3dgs multiplayer sollutions.

Planning my MMORPG right now
Posted By: Damocles

Re: [GSTNet] Send to clientid implemented - 07/31/07 10:59

Hier ein einfacher Chatserver, realisiert mit der GSTNet dll.

Man kann 4 Clients (es gehen mehr, aber das ist ja nur ein Test)
zu dem Server Verbinden.
Jeder kann seinen Chatnamen eingeben, und dann (drück Enter)
seinen Text loslassen.

Der Eingabetext ist etwas zu kurz, also entsprechend anpassen wenn nötig.


GSTNet_chatserver.zip

2.1 MB



Das schöne ist, das man Ohne bat Dateien, oder start-parameter an die Engine
auskommt. Alles kann schön innerhalb der Engine gelöst werden.
Man kann also auch mit der com Edition beliebig als Server oder Client innerhalb
des Programmes starten.
Auch der ganze overhead der nativen 3dgs Funktionen fällt weg.
Posted By: nfs42

Re: [GSTNet] Send to clientid implemented - 07/31/07 13:01

Hi Damocles,

sieht ja gut aus
Heute komme ich leider nicht zum testen, da ich länger im Büro bin.
Posted By: Damocles

Re: [GSTNet] Send to clientid implemented - 07/31/07 13:05

Und danke für die Bugfixes so spät gestern Abend.
Posted By: Damocles

Re: [GSTNet] Send to clientid implemented - 07/31/07 22:25

Ok, in ca 4 Mins ist ne neue Version oben.

Bitte den Server runterladen und dann neu starten!
Posted By: molotov

Re: [GSTNet] Send to clientid implemented - 08/01/07 14:19

Hey nfs42, when I go to your site, www.gstools.de and try to download the gstnet plug-in, I get a error;

"The document is being edited/updated by an user and is unavailable at this moment."

Now I've been getting this error for 2 days already, so I was wondering when will the download be available again. I really like to try it.

Thanks anyway,
Molotov.
Posted By: nfs42

Re: [GSTNet] Send to clientid implemented - 08/01/07 14:22

Sometimes I forget to approve the new upload, but now it's working.
Posted By: Slin

Re: [GSTNet] Send to clientid implemented - 08/01/07 17:32

The download still doesn´t work for me -.-
I would love to try it out because what I saw so far looks very good and easy to use.
Thanks for the great work
Posted By: molotov

Re: [GSTNet] Send to clientid implemented - 08/01/07 17:40

Same goes for me, still unable to download. And I agree with Slin, it looks good and easy to use.

Molotov
Posted By: Damocles

Re: [GSTNet] Send to clientid implemented - 08/01/07 18:16

You can have a look at my chatserver,
the dll, and a script operating it are included,
So you can make some tests, until your download from gstools works.

you have to copy the dll to your acknex_plugins folder, so acknex finds it.
Posted By: Slin

Re: [GSTNet] Send to clientid implemented - 08/01/07 18:19

@Damocles: I already had a look at that and what you proposed is exactly what I plan to do if I have some more time later this evening. Btw, the chat works very good but your way to manage the clients is really bad for many clients...^^ But you know that so it is okay
Posted By: nfs42

Re: [GSTNet] Send to clientid implemented - 08/01/07 19:23

sorry guys for the inconvenience, but the download has been blocked by the system.
normally you see this directly.
but now i've tested the download as guest.
download
Posted By: molotov

Re: [GSTNet] Send to clientid implemented - 08/02/07 07:35

Heynfs42, Thanks for fixing the link I can download it now. But when I've downloaded and starts to unpack, I get a error that says; "unknown format or file is damaged."
Posted By: nfs42

Re: [GSTNet] Send to clientid implemented - 08/02/07 07:58

there are known issues with iexplorer. use a downloadmanager or another and better browser like firefox

downloads work also with iexplorer 7.0
Posted By: Raven75

Re: [GSTNet] Send to clientid implemented - 08/03/07 10:04

hi nfs42,

nice net dll, runs very solid.
Just one thing, for new A7extra users like me, I needed to add plugindir "."
to the wdl, in the chatserver from Damocles. Are there any plans too convert c-script version to c-lite in the future? I trying to convert the dll to lite-c, but since i haven´t used s-script before und my c knowlege are limited used it last 8years ago it will take some time. If this is planned, i can spend the time on learning the engine,
greets
Posted By: Slin

Re: [GSTNet] Send to clientid implemented - 08/03/07 11:09

Works great. Thanks again for your awsome work.
Some things wich came up during my playing around with your plugin were, that it gives a crash if I send an empty string, the client sometimes crashes randomly with a "Problembericht senden?"-Message and I´m not ably to create more then thousand global entities. Even if the server deletes all, when there are more than 800. The client gives the error message "GSTNet: more than 1000 global entities"
after creating 1000 entities. If I restart the client I can create again 1000 entities and then I´ll get the error message again.

The server executes this function since gamestart:
Code:

entity* Temp_ent;
function RemoveLine()
{
while(1)
{
if(num_entities > 500)
{
you = ent_next(null);
while(you)
{
temp_ent = you;
you = ent_next(you);

GSTNet_ent_remove(temp_ent);
}
}
wait(1);
}
}



Here is a picture of my application running over the internet. The screenshot was made from the server. (Thanks to rvL_eXile for testing it with me )

Posted By: nfs42

Re: [GSTNet] Send to clientid implemented - 08/03/07 11:14

hi raven75,

i'm still stuck on A6, no time to do the upgrade (not Acknex but scripts). i think there are more and better abilities on A7, but there are whole bunch of users still on A6. i will look into it this weekend.

btw my last c project was in 1991. a bord computer for the commercial prototype of the solar boat 'Korona I' developed by the Fachhochschule Konstanz.
Posted By: rvL_eXile

Re: [GSTNet] Send to clientid implemented - 08/03/07 11:23

Slin du Sau Mein schönes Bild

cYa Sebastian
Posted By: Raven75

Re: [GSTNet] Send to clientid implemented - 08/03/07 11:33

Die gleiche FH habe ich 6 Jahre später auch besucht , allerdings nicht in Informatik sondern Nachrichtentechnik. Werd dann auch mir mal c-script dann mal anschauen, da sonst die konvertierung der Examples recht umständlich ist.
Posted By: nfs42

Re: [GSTNet] Send to clientid implemented - 08/03/07 11:41

hi slin,
thank you for beta testing
empty string crash is fixed empty packets are not sent anymore
ent_remove: there was an error with freeing removed entities: still fixing/testing
how much entities do you need ?!
Posted By: Slin

Re: [GSTNet] Send to clientid implemented - 08/03/07 11:58

1000 Entities should usually be enough if they can be removed. Though it would be best if I could set the number myself from within the script. On the other side, what are the disadvantages if you set the number very high?
Posted By: nfs42

Re: [GSTNet] Send to clientid implemented - 08/03/07 12:05

atm I'm allocting the whole memory at startup, no dynamic allocation
Posted By: Damocles

Re: [GSTNet] Send to clientid implemented - 08/03/07 12:24

If is is possible, you could insert a starting parameter, that
manages the memeory allocation. I for example dont need entities to be managed,
and only need Strings, var, and arrays for the communication.

so a parameter: maximum_managed_entities(x); would be good
Posted By: nfs42

[GSTNet] 0.5.9 released - 08/03/07 17:39

*************************************************

2007-08-03 Release 0.5.9 public beta

-------------------------------------------------

^ empty packets were sent > no send

^ _SendArray fixed pointer arithmetic

x GSTNet_ent_remove only on server now

entities pool is available again

+ GSTNet_Debug(vMode)

enables/disables logging

download
Posted By: Damocles

Re: [GSTNet] 0.5.9 released - 08/03/07 20:19

Very nice, now the send_array works correctly.

This dll is progressing very well!
Posted By: Slin

Re: [GSTNet] 0.5.9 released - 08/06/07 13:16

Thanks for the update

Quote:


x GSTNet_ent_remove only on server now
entities pool is available again




This works only, when the GSTNet_ent_create function was called on the server.
this means that weather both can only be called on the server or you have to look into this some more
Posted By: nfs42

Re: [GSTNet] 0.5.9 released - 08/06/07 16:41

you can GST_ent_create on any client or server, but GSTNet_ent_remove only works on the server.
Posted By: Slin

Re: [GSTNet] 0.5.9 released - 08/06/07 19:49

Yeah I can create entities on any client or on the server, but even if I remove them on the server and I create more than 1000, I get a crash on the client saying that there are too many global entities. This doesn´t happen when I create them on the server.
Posted By: Damocles

Re: [GSTNet] 0.5.9 released - 08/06/07 20:06

Hm, If you let your application handle 1000 Entities, there
is something wrong with your approach.
You should only handle entities, that are relevant to the gameplay and!
are not static, and cant be predicted by the client.

So controlling an NPC that can attack players is ok, controlling a "lightingbolt" model
over the net is not ok.

A lot of entities can be purely controlled by the client. Every entity that does not move, and
every entity that will not interact with the player/s (like a bird circling in the air).
Posted By: Slin

Re: [GSTNet] 0.5.9 released - 08/06/07 20:12

Yeah I know Damocles but this small game is just for testing and playing around with the dll. As you can see two pages before, this is a painting programm with chat. The painting works through creating sprites at the mouse position...
Posted By: Damocles

Re: [GSTNet] 0.5.9 released - 08/06/07 20:21

I understand, you want to see what the dll is capable of handeling...
Always good, to check the funtionality and post probable bugs.
Posted By: nfs42

Re: [GSTNet] 0.5.9 released - 08/06/07 22:29

hi slin,

i cannot confirm that with 0.5.9. but there's still some other issue with GSTNet_ent_remove, so i have a closer look.
Posted By: Samb

Re: [GSTNet] 0.5.9 released - 08/09/07 21:22

wurde eigentlich in einem der letzten updates das problem mit dem nachträglich server betreten behoben? also das die figuren zwar erstellt werden aber nicht mehr auf veränderungen reagieren?
Posted By: nfs42

Re: [GSTNet] 0.5.9 released - 08/09/07 22:14

funktioniert in 0.5.9
Posted By: Samb

Re: [GSTNet] 0.5.9 released - 08/09/07 22:44

sehr gut
werde dann ungefähr ab dem 20.august mal für paar tage etwas damit machen. zur entspannung von den stressigen deadlines momentan ^^
Posted By: Slin

Re: [GSTNet] 0.5.9 released - 08/09/07 22:50

Da du (nfs42) mich darum batest ihn zu posten:
Code:

var video_mode = 6;
var video_screen = 2;

var fps_max = 60;

font Arial = "arial",1,20;

bmap Mauszeiger = <Mouse.tga>;
bmap = DrawPart_bmap = <PointGelb.tga>;

var TempPos[3];

string Temp_str1[100];
string Client_Nick[100];
string ConnectedNicks;

string Chat_input[100];
string Chat_send_str;
string Chat_str1;
string Chat_str2;
string Chat_str3;
string Chat_str4;
string Chat_str5;
string Chat_str6;
string Chat_str7;
text ChatDisplay
{
red = 0;
green = 0;
blue = 0;
font = Arial;
strings = 8;
string = Chat_str1,Chat_str2,Chat_str3,Chat_str4,Chat_str5,Chat_str6,Chat_str7,Chat_input;
}

plugindir = ".";
include <GSTNet.wdl>;

function main()
{
vec_set(screen_color,vector(255,255,255));
vec_set(sky_color,vector(255,255,255));

Menu();
level_load("");
}


function NewClient_event(vType,sMessage)
{
str_cat(ConnectedNicks,sMessage);
str_cat(ConnectedNicks,"\n");
GSTNet_SendString(0,"ConnectedNicks");
}

function LeaveClient_event(vType,sMessage)
{
var Pos1;
var Length1 = 1;
Length1 += str_len(sMessage);

Pos1 = str_stri(ConnectedNicks,sMessage)-1;
str_cpy(Temp_str1,ConnectedNicks);
str_trunc(ConnectedNicks,str_len(ConnectedNicks)-Pos1);
str_clip(Temp_str1,Pos1+Length1);
str_cat(ConnectedNicks,Temp_str1);
GSTNet_SendString(0,"ConnectedNicks");
}

function endless_part_event()
{
my.lifespan = 1;
}
function DrawnPointPart_func()
{
my.bmap = DrawPart_bmap;
my.function = endless_part_event;
}
function ClientDraw_event(vType,sMessage)
{
effect(DrawnPointPart_func,1,TempPos.x,NULL);
}


function EnterString(str)
{
inkey(str);
}

function Chat_update()
{
while(1)
{
if(!str_cmp(ChatDisplay.string[6],Chat_send_str))
{
str_cpy(ChatDisplay.string[0],ChatDisplay.string[1]);
str_cpy(ChatDisplay.string[1],ChatDisplay.string[2]);
str_cpy(ChatDisplay.string[2],ChatDisplay.string[3]);
str_cpy(ChatDisplay.string[3],ChatDisplay.string[4]);
str_cpy(ChatDisplay.string[4],ChatDisplay.string[5]);
str_cpy(ChatDisplay.string[5],ChatDisplay.string[6]);
str_cpy(ChatDisplay.string[6],Chat_send_str);
}

wait(1);
}
}

function Chat()
{
inkey(Chat_input);

if(GSTNet_Connection() == 1)
{
str_cpy(Chat_send_str,"Server");
}else
{
str_cpy(Chat_send_str,Client_Nick);
}
str_cat(Chat_send_str,": ");
str_cat(Chat_send_str,Chat_input);
str_cpy(Chat_input,"");
GSTNet_SendString(0,"Chat_send_str");
}

function ClientDraw()
{
mouse_map = Mauszeiger;
mouse_mode = 2;
while(1)
{
vec_set(mouse_pos,mouse_cursor);

if(mouse_left)
{
vec_set(temp.x,mouse_pos);
temp.z = 100;
vec_for_screen(temp.x,camera);
vec_set(TempPos.x,temp.x);
ClientDraw_event(0,0);
GSTNet_SendArray(0,"TempPos",0,2);
GSTNet_ClientSend(0,13,"");
}

wait(1);
}
}

entity* Temp_ent;
function RemoveLine()
{
while(1)
{
if(num_entities > 990)
{
you = ent_next(null);
while(you)
{
temp_ent = you;
you = ent_next(you);

GSTNet_ent_remove(temp_ent);
}
}
wait(1);
}
}

function Menu()
{
while(!key_1 && !key_2)
{
draw_text("To start as a server press 1, \nto start as a client press 2.",10,10,nullvector);
wait(1);
}
if(key_1)
{
GSTNet_StartServer(2300,1);
str_cat(ConnectedNicks,"Server\n");

GSTNet_Events(11,"NewClient_event");
GSTNet_Events(12,"LeaveClient_event");
}else
{
if(key_2)
{
EnterString(Temp_str1);
while(!key_enter)
{
draw_text("Enter the server IP-adress:",10,10,nullvector);
draw_text(Temp_str1,300,10,nullvector);
wait(1);
}
GSTNet_StartClient(Temp_str1,2300,1);
str_cpy(Temp_str1,"");

while(key_enter || GSTNet_Connection() == 0 || GSTNetId == 0){wait(1);}

EnterString(Client_Nick);
while(!key_enter)
{
draw_text("Enter a Nickname:",10,10,nullvector);
draw_text(Client_Nick,300,10,nullvector);
wait(1);
}
GSTNet_ClientSend(0,11,Client_Nick);

ClientDraw();
}
}

GSTNet_Events(13,"ClientDraw_event");

ChatDisplay.visible = on;
on_enter = Chat;
Chat_update();

while(1)
{
draw_text(ConnectedNicks,300,10,nullvector);
wait(1);
}
}


function Quit()
{
GSTNet_ClientSend(0,12,Client_Nick);
wait(-1);
sys_exit("");
}
on_esc = Quit;


Posted By: nfs42

Re: [GSTNet] 0.5.9 released - 08/10/07 07:33

Hi Slin,

event functions has changed, there are two new parameters

Code:

// set this in main();

GSTNet_Events(21,"receivechatmessage");




//------------------------------------------------------------------

// function for event: receivechatmessage

//------------------------------------------------------------------

function evFunction(vTyp, sMsg, vSender, vReceiver)

{

if(GSTNet_Connection() == 2 || GSTNet_Connection() == 3 ) { //I am a client

Parse_Function(sMsg); // parse and execute ...

}

if(vSender>0){GSTNet_ServerSend(vSender-1, vTyp, sMsg);} // send the message to the preceeding clientid

}




GSTNet_ClientSend(0,21,"chatmessage");

GSTNet_ClientSend(1,21,"whisperchatmessage");






Code:

GSTNet_SendArray(0,"TempPos",0,2); GSTNet_ClientSend(0,13,"");


Posted By: Samb

Re: [GSTNet] 0.5.9 released - 08/11/07 00:44

hab ne feature anfrage
die möglichkeit positions, skill etc. angaben nur bestimmten usern zu schicken.
möchte später ein server für mehrere sessions verwenden und es wäre gut wenn dann nur die spieler die daten von den spielern bekommen, mit denen man spielt.
ebenso für MMO spiele könnte man es so machen, das nur die spieler die positionsdaten bekommen, welche um einen stehen.
Posted By: nfs42

Re: [GSTNet] 0.5.9 released - 08/11/07 07:55

Area Of Interest - RegionController sind auf der Roadmap.
Allerdings in 2.0.
Posted By: Captain_Kiyaku

Re: [GSTNet] 0.5.9 released - 08/15/07 06:29

Danke für dieses super plugin Nur hab ich ein Problem - In euren Beispielen wird immer auf alle Spieler gewartet und dann, wenn alle da sind, die Entities created.

Wie geht das aber, wenn das Spiel schon läuft und ein neuer Spieler connected, wie kann dieser dann die bereits erstellten Entities sehen?
Posted By: Captain_Kiyaku

Re: [GSTNet] 0.5.9 released - 08/15/07 11:09

Hm okay das ich die Entities sehe geht jetzt.

Jetzt hab ich nur noch das Problem, das wenn 2 Clients connecten, die Steuerung falsch ist.

Muss ich irgendwie die Entities den client fest zuweisen? Jetzt kann ich mit einem Client 2 Entities steuern, mit dem anderen nur eine und der Server kann auch beide steuern.

Code:

include <GSTNet.wdl>;

var iID;

entity* pModel;

function main()
{
level_load("gsnet.wmb");
wait(3);


ifdef srv;
GSTNet_StartServer(2300, 1);
endif;

GSTNet_StartClient(server_name, 2300, 1);

while(GSTNet_Connection()==0) {wait(1);}

while (GSTNet_ClientId() <= 0)
{
wait(1);
}

iID = GSTNet_ClientId();


wait(-2);

ifndef srv;
GSTNet_ent_create("warlock.mdl", nullvector, "actPlayer");
endif;
}


action actPlayer
{
wait(1);

GSTNet_TrackEntity(my, GSTNet_TrackPos);

while(1)
{
if(key_cuu)
{
my.z += 0.1;
}
wait(1);
}
}


Posted By: Samb

Re: [GSTNet] 0.5.9 released - 08/15/07 12:34

@kiyaku
typischer denkfehler bei multiplayer spielen
du musst dir IMMER vor augen halten, das alle clienten die exakt selbe aktion ausführen.
du machst server auf, spieler wird erstellt.
er hat die aktion actPlayer.
ein client connectet, erstmal wird nun die entity des servers nacherstellt, diese hat nun die action actPlayer.
der client erstellt eine eigene entity, und diese hat auch actplayer.
beide spielerfiguren reagieren folglich immer auf eine tasteneingabe, da ja beide auf eine cursor down anweisung warten. beide haben ja die selbe aktion.
wie löst man das nun?
die main function ist 100%ig lokal. alles was du da vorbereitest ist sozusagen für den bestimmten clienten.

also folgendes in die main():
player = GSTNet_ent_create("warlock.mdl", nullvector, "actPlayer");

es wird eine entity erstellt, mit dem pointer player. der player pointer kennt aber nur dein spiel. folglich ist player dann IMMER deine figur.
nun kannst du in den spieler aktionen herausbekommen, ob diese entity überhaupt deine figur ist.

action actPlayer
{
wait(1);

GSTNet_TrackEntity(my, GSTNet_TrackPos);
if(player==me)
{
while(1)
{
if(key_cuu)
{
player.z += 0.1; //sicherheitshalber "player" angeben.
}
wait(1);
}
}
else
{
// hier kommt alles hin was die anderen clienten machen. z.b. eine funktion welche lokal nun diese entity animiert etc.
}
}

dann müsste es funktionieren
Posted By: Captain_Kiyaku

Re: [GSTNet] 0.5.9 released - 08/15/07 13:15

Aha Du bist mein Held. So funktionierts perfekt. Netzwerkkonzepte sind verwirrend D8.

Nun bleibt nur noch mein Problem, das ich auf dem 2. Client nicht sehe, wenn der 1. Client sich bewegt (seine Entity sieht man aber nicht seine Bewegung nachdem der 2. Client dazu kam).

Habs mit nem TrackEntity nochmal beim bewegen probiert, was leider nicht ging, hmm. Kenne die GST Befehle noch nicht so genau :/
Posted By: Samb

Re: [GSTNet] 0.5.9 released - 08/15/07 13:29

haste die neuste version des plugins?
laut nfs sollte das problem behoben sein, das wenn jemand nachträgliche das spiel betritt, die entities trotzdem reagieren.
Posted By: Captain_Kiyaku

Re: [GSTNet] 0.5.9 released - 08/15/07 13:34

03.08.2007 die DLL und 01.08.2007 die wdl. Scheint die neuste zu sein, oder Irre ich mich?
Posted By: nfs42

Re: [GSTNet] 0.5.9 released - 08/16/07 21:02

füge mal als erstes in der player action folgendes ein
Code:
while(GSTNet_Handle(my)==0){wait(1);} 


Posted By: Captain_Kiyaku

Re: [GSTNet] 0.5.9 released - 08/16/07 22:02

Ändert leider auch nichts.
Posted By: Captain_Kiyaku

Re: [GSTNet] 0.5.9 released - 08/17/07 06:44

könnte einer vielleicht ne kleine testumgebung bauen wo clients joinen und ein spieler bewegen können (zb einfach nach oben) und das auch nachträgliche clients die bewegung sehen können? vielleicht hab ich irgendwo nen anderen fehler.
Posted By: nfs42

Re: [GSTNet] 0.5.9 released - 08/17/07 06:44

poste oder pm den code,
ich werde die demo aktualisieren, die aktuelle demo basiert noch auf einer älteren dll version.
Posted By: Captain_Kiyaku

Re: [GSTNet] 0.5.9 released - 08/17/07 07:39

Don't mind the mess, just put stuff from older projects together so i can test the DLL:

Code:

include <GSTNet.wdl>;


string strTemp;
string strTemp2;
string strUserID;

var strUserNick[100];
var start_game = 0;

string strNick[20];

include <scr_chat.wdl>;


function fncCreateStrings()
{
var iTemp = 0;
while(iTemp < 100)
{
strUserNick[iTemp] = str_create("#200");
iTemp += 1;
}
}


function fncEnterName()
{
while(!key_enter)
{
draw_text("Please enter your Nickname: ", 100, 100, vector(255,255,255));
draw_text(strNick, 250, 100, vector(255,255,255));
wait(1);
}
}

function main()
{
level_load("gsnet.wmb");
wait(3);

fnc_show_chat();
fncCreateStrings();

fps_max = 60;

ifdef srv;

GSTNet_StartServer(80, 1);

while(GSTNet_Connection()==0)
{
draw_text("trying to connect...", 20, 20, vector(255,255,255));
wait(1);
}


chat_entry();
fncSortChat();


while(1)
{
if(key_e)
{
start_game = 1;
GSTNet_SendVar(0, "start_game");
}
str_cpy(strTemp, "Server connected!\nOnline Users: ");
str_for_num(strTemp2, GSTNet_ClientsConnected());
str_cat(strTemp, strTemp2);

draw_text(strTemp, 20, 20, vector(255,255,255));
wait(1);
}

endif;

ifndef srv;

fncEnterName();
while(!key_enter)
{
inkey(strNick);
wait(1);
}

wait(-1);

var iID;

chat_entry();
fncSortChat();


GSTNet_StartClient("132.176.66.141", 80, 1);


while(GSTNet_Connection()==0)
{
draw_text("trying to connect...", 20, 20, vector(255,255,255));
wait(1);
}

wait(-0.5);

iID = GSTNet_ClientId();

str_cpy(strTemp, "Nickname: ");
str_cat(strTemp, strNick);

wait(-0.5);

str_cpy(strUserNick[iID], strNick);

player = GSTNet_ent_create("warlock.mdl", nullvector, "actPlayer");

while(1)
{
draw_text(strUserNick[iID], 20, 20, vector(255,255,255));
wait(1);
}

endif;
}



var vWorld_Pos;

function fnc_mouse_pos()
{
var vVector_From;
var vVector_To;

while(1)
{
vVector_From.x = mouse_pos.x;
vVector_From.y = mouse_pos.y;
vVector_From.z = 5;

vVector_To.x = mouse_pos.x;
vVector_To.y = mouse_pos.y;
vVector_To.z = 40000;

vec_for_screen(vVector_From, camera);
vec_for_screen(vVector_To, camera);

c_trace(vVector_From, vVector_To,ignore_passable + scan_texture + ignore_models);

if(trace_hit != 0 && mouse_left)
{
vec_set(vWorld_Pos, target);
}

wait(1);
}
}



function fnc_mouse()
{
//mouse_map = bmp_mouse_normal;
mouse_range = 40000;

while(1)
{
mouse_mode = 2;
mouse_pos.x = pointer.x;
mouse_pos.y = pointer.y;
wait(1);
}
}



action actPlayer
{
wait(1);
GSTNet_TrackEntity(my, 1+2);

if(player == me)
{
chat_entry();
var vNext_Pos;
var vTemp;
var vMove_Me;
vMove_Me.x = 15;

vec_set(vNext_Pos, player.x);

fnc_mouse();
fnc_mouse_pos();
while (1)
{
if(mouse_left && vec_dist(player.x, vWorld_Pos) >= 50)
{
vec_set(vNext_Pos, vWorld_Pos);
}

if(vec_dist(player.x, vNext_Pos) >= 10)
{
vNext_Pos.z = player.z;

vec_set(vTemp, vNext_Pos);
vec_sub(vTemp, player.x);
vec_to_angle(player.pan, vTemp);

move_mode = ignore_me + ignore_passable + glide;
ent_move(vMove_Me, nullvector);
}
if(key_cuu)
{
player.z += time_step;
}
wait(1);
}
}
}




Posted By: nfs42

Re: [GSTNet] 0.5.9 released - 08/17/07 08:21

dedicated server habe ich noch nicht wirklich getestet.
kommentiere die ifndef srv; einmal aus
Posted By: Captain_Kiyaku

Re: [GSTNet] 0.5.9 released - 08/17/07 09:40

Hm wenn ich den Server auch noch als Client starte, sehe ich die Figuren, aber keiner sieht die bewegung des anderen. Nur die Positionen wenn er joint.
Posted By: nfs42

[GSTNet] 0.5.10 released - 08/19/07 16:18

Download
Manual

*************************************************
2007-08-19 Release 0.5.10 public beta
-------------------------------------------------
+ _CryptString() _CryptFile()
+ _HTTPGet() _HTTPGetFile() non-blocking
+ _HTTPBusy()
x logging is off by default

Code:
//----------------------------------------------------------------------------------------
// function: httprequest
// purpose: demo http request
//------------------------------------------------------------------
function http() {
var sResult;
diag("\nHTTPGetFile:www.gstools.de\n:");
while(GSTNet_HTTPBusy()){wait(1);}
GSTNet_HTTPGetFile("www.gstools.de","/dmdocuments/GSTNet.zip","GSTNettest.zip");
beep;
while(GSTNet_HTTPBusy()){wait(1);}
sResult = str_create("#100000");
GSTNet_HTTPGet("www.gstools.de","/index.php",sResult);
while(GSTNet_HTTPBusy()){wait(1);}
beep;
diag(sResult);
str_remove(sResult);
}
on_h=http;

//----------------------------------------------------------------------------------------
// function: crypt
// purpose: demo crypt
//------------------------------------------------------------------
function crypt() {

diag("\nCryptString:");
GSTNet_CryptString("www.gstools.de",sGSTNetTemp);
diag(sGSTNetTemp);
diag(":");

GSTNet_CryptString(sGSTNetTemp,sGSTNetTemp);
beep;
diag(sGSTNetTemp);
}
on_c=crypt;


Posted By: nfs42

Re: [GSTNet] 0.5.9 released - 08/19/07 20:42

Hi Kiyaku,

füge folgendes am anfang der action actPlayer ein:

Code:

action actPlayer() {
wait(1);
my.enable_click = on;
...


ist nur ein workaround. muß ich mir noch genauer anschauen.
Posted By: Captain_Kiyaku

Re: [GSTNet] 0.5.9 released - 08/20/07 21:48

Hi,

das mit dem enable_click hat in der Tat geholfen Jetzt sieht jeder jede Bewegung. Danke!
Posted By: Captain_Kiyaku

Re: [GSTNet] 0.5.9 released - 08/21/07 07:35

Hab direkt eine weitere Frage

Wird bei dem Tracking dauerhaft Daten übermittelt oder nur wenn die Entity sich bewegt, bzw sich die werte, die sie überwachen soll, sich ändern?

Habs gerade mal übers Internet mit nem Freund ausprobiert und es hat ziemlich gelaggt. Tracken tu ich 1+2 (xyz und pantiltroll).
Posted By: nfs42

Re: [GSTNet] 0.5.9 released - 08/21/07 08:43

gesendet nach aufruf der GSTNet_Start(..,intervall) funktionen 1x per intervall und nur bei geänderten Werten ->

entweder fps_max begrenzen oder
das intervall für das versenden erhöhen, damit nicht bei jedem frame gesendet wird.

atm ist kein client movement predeiction implementiert !

mit GSTNet_Ping() kannst du die durchschnittliche roundtriptime ermitteln
Posted By: picoder

Re: [GSTNet] 0.5.9 released - 08/22/07 14:06

Thanks nfs42 for plugin!

GSTNet works great on local network.
Does it work on internet connection? For example, by GSTnet, can users connect my dedicated server on internet?
Posted By: nfs42

Re: [GSTNet] 0.5.9 released - 08/22/07 14:13

no problem, it works
try Damocles demo apps
http://www.coniserver.net/ubbthreads/showflat.php/Cat/0/Number/773828/an/0/page/1#Post773828
or
http://www.coniserver.net/ubbthreads/showflat.php/Cat/0/Number/775246/an/0/page/1#Post775246

or the demos from my website.

atm there's no client movement prediction.
so you have to script your own code to defeat lag.
but it is on the roadmap.
Posted By: picoder

Re: [GSTNet] 0.5.9 released - 08/22/07 14:34

Thanks for yor answer.
Posted By: picoder

Re: [GSTNet] 0.5.9 released - 08/23/07 13:37

Hi nfs42,

I have downloaded GSTNet 0.5.10 version from www.gstools.de
But when I run my project, engine didn't load GSTNet.dll
If I replace GSTNet.dll(0.5.9), engine can load GSTNet.dll
I tried on different computers, but they normally run the GSTNet 0.5.10 version

I don't know why didn't acknex load GSTNet.dll(0.5.10) on my computer.
you think, what's the problem?
Does GSTNet 0.5.10 version need any additional program like .net?


If I use GSTNet.dll(0.5.9 version), diag text file is that:

Log of A7 Engine 7.05.4 run at Thu Aug 23 16:04:40 2007
Inzar on Windows NT/2000/XP version 5.1 Build 2600
Options -diag

App C:\Program Files\GStudio7\demo2.cd\demo2.exe in C:\Program Files\GStudio7\demo2.cd\
MM mixer opened
DSOUND device opened
DI interface opened
Start Window opened
(c)Conitec . Dieburg . San Diego . www.3dgamestudio.com
A7 Engine - Pro Edition V7.05.4 - Aug 14 2007

Mouse found
Realtek AC97 Audio opened
NVIDIA GeForce FX 5700 Ultra pure T&L device 1ff9 detected
D3D device NVIDIA GeForce FX 5700 Ultra 1ff9 selected
Opening 7 resources in DEMO2.WDL....
PATH C:\Program Files\GStudio7\demo2.cd\code\..

GSTNet.dll opened
Running DEMO2.WDL
4 objects
D3D_Init Window: 640x480x1244820 -> Window: 1x640x480x32
Video memory found: 237 MB
Main started
Main loop.........ok
1st frame - 242688K.. ok
Normal exit
Close level,DLL,objects
Free input,funcs,panels,defs,syns,views,strings,vars..ok
Free sounds,bmaps,fonts,hash,defs1,script..ok
Close dx,multimedia,D3D,engine,physics,nexus..ok
A7 Engine - Pro Edition V7.05.4 - Aug 14 2007
(c)Conitec . Dieburg . San Diego . www.3dgamestudio.com
Close window



If I use GSTNet.dll(0.5.10 version), diag text file is that:

Log of A7 Engine 7.05.4 run at Thu Aug 23 16:31:11 2007
Inzar on Windows NT/2000/XP version 5.1 Build 2600
Options -diag

App C:\Program Files\GStudio7\demo2.cd\demo2.exe in C:\Program Files\GStudio7\demo2.cd\
MM mixer opened
DSOUND device opened
DI interface opened
Start Window opened
(c)Conitec . Dieburg . San Diego . www.3dgamestudio.com
A7 Engine - Pro Edition V7.05.4 - Aug 14 2007

Mouse found
Realtek AC97 Audio opened
NVIDIA GeForce FX 5700 Ultra pure T&L device 1ff9 detected
D3D device NVIDIA GeForce FX 5700 Ultra 1ff9 selected
Opening 7 resources in DEMO2.WDL....
PATH C:\Program Files\GStudio7\demo2.cd\code\..
Running DEMO2.WDL
4 objects
D3D_Init Window: 640x480x1244820 -> Window: 1x640x480x32
Video memory found: 237 MB
Main started
Main loop.........ok
1st frame - 242688K.. ok
Normal exit
Close level,DLL,objects
Free input,funcs,panels,defs,syns,views,strings,vars..ok
Free sounds,bmaps,fonts,hash,defs1,script..ok
Close dx,multimedia,D3D,engine,physics,nexus..ok
A7 Engine - Pro Edition V7.05.4 - Aug 14 2007
(c)Conitec . Dieburg . San Diego . www.3dgamestudio.com


Thanks
Posted By: nfs42

Re: [GSTNet] 0.5.9 released - 08/23/07 14:11

There should be no 'new' dependencies.
Has anyone else this problem ??
Posted By: picoder

Re: [GSTNet] 0.5.9 released - 08/23/07 14:42

I have found a topic about same problem. I think, they found a solution.

http://www.coniserver.net/ubbthreads/sho...true#Post761669
Posted By: nfs42

Re: [GSTNet] 0.5.9 released - 08/23/07 15:05

I think this is not the problem/solution. I'm using MingW !
Posted By: picoder

Re: [GSTNet] 0.5.9 released - 08/23/07 15:42

I have tested GSTNet.dll(0.5.10 version) on another two computer. On one of them, plugin is worked but on other one, it didn't work.
Posted By: Samb

Re: [GSTNet] 0.5.9 released - 08/23/07 16:10

do they don't work in both run and publish version or only in the run version of the engine?
Posted By: picoder

Re: [GSTNet] 0.5.9 released - 08/23/07 16:36

I used publish version.
In addition, GSTNet 0.5.9 version works great on both of them.
Posted By: nfs42

[GSTNet] 0.5.11 released - 08/23/07 17:38

download on my website same location

@picoder: there was propably an outdated header
please try and report here, thanks for testing


*************************************************
2007-08-21 Release 0.5.10 public beta
-------------------------------------------------
+ _Version(sVersion) returns dll version
+ _ClientIP(vClient, sIP) returns client ip
+ _MyIP(sIP1, sIP2, sIP3, sIP4) returns own ip
Posted By: picoder

Re: [GSTNet] 0.5.11 released - 08/23/07 18:06

I have tested GSTNet 0.5.11 version but unfortunately the engine still can't load GSTNet.dll
Posted By: Samb

[GSTNet] 0.5.11 released - 08/23/07 18:13

Quote:

wurde eigentlich in einem der letzten updates das problem mit dem nachträglich server betreten behoben? also das die figuren zwar erstellt werden aber nicht mehr auf veränderungen reagieren?




Quote:

funktioniert in 0.5.9




nope, funktioniert nicht :/
gleiches problem wie vorher, figur wird zwar erstellt, reagiert aber nicht mehr auf änderungen.
Posted By: nfs42

Re: [GSTNet] 0.5.11 released - 08/23/07 18:22

hast du das ausprobiert ?
Quote:


füge folgendes am anfang der action actPlayer ein:

Code:


action actPlayer() {
wait(1);
my.enable_click = on;
...


ist nur ein workaround. muß ich mir noch genauer anschauen.




Posted By: Samb

Re: [GSTNet] 0.5.11 released - 08/23/07 18:27

ah sorry, hatte es übersehn.
ja so klappts
Posted By: nfs42

[GSTNet] new posts on "Third Party Tools" - 08/23/07 18:43

please post questions, bug reports and other feedback on
forum " Third Party Tools " starting with [GSTNet] to keep the whole thing clear.
thanks

neue beiträge bitte im forum " Third Party Tools " mit dem zusatz [GSTNet] posten,
damit das ganze übersichtlich bleibt.
merci
Posted By: MMike

Re: [GSTNet] new posts on "Third Party Tools" - 08/19/08 21:50

the file is always currupted, damm.
Posted By: chrisp1

Re: [GSTNet] new posts on "Third Party Tools" - 11/09/10 15:18

Könntet ihr mir vielleicht mal erklären wie das mit dem Server Funktioniert ? Also ich beschäftige mich jetzt schon einige Zeit damit und habe immer noch nicht so ganz begriffen was ich machen muss damit ich beispielsweiße als Server ein Objekt kreire das andere Spieler dann sehen können.
Und warum gibt es keine erklärung für die Kommandos GSTNet_Start_client und GSTNet_Start_Server , denn das sind ja schließlich die wichtigsten.

Posted By: Rackscha

Re: [GSTNet] new posts on "Third Party Tools" - 11/09/10 16:19

Wenn du genau hingucken würdest, bestehen Start_Client/Server aus Routinen die Dokumentiert sind. Wenn man sich deren bedeutung durchliest, und mal freiwillig nen Blick in den Header wirft, erlkärt es sich wink.

Außerdem würdest du beim sorgfältigen lesen der Dokumentation festellen, das GSTNet_ent_create zum erstellen von MP Entities dient wink
Posted By: chrisp1

Re: [GSTNet] new posts on "Third Party Tools" - 11/09/10 17:31

Danke dass du dich so schnell gemeldet hast Rackscha .
Also dass GSTNet_ent_create zum erstellen von Entitys dient das war mir schon bewusst. Mittlerweile habe ich die Infos aus dem Header auch schon verstanden. Aber 1 Sache ist da noch. Ich verstehe nicht ganz welche IP ich bei der Funktion GSTNet_StartClient eingeben soll. Ist da die Ip der Person die den Server hat gemeint ? Ach ja und das mit GSTNet_ent_create hab ich mittlerweile auch hinbekommen.Es lag nur daran das es nicht funktionierte , weil ich nicht _str("x.mdl") sondern nur "x.mdl" geschrieben habe laugh.

Edit : Ok ich habe das Problem gelöst. Ich habs jetzt zum glück endlich geschafft einen server mit dem client zu verbinden cool . Trotzdem danke
Posted By: chrisp1

Re: [GSTNet] new posts on "Third Party Tools" - 11/14/10 14:39

Also ich hätte da nochmal eine Frage: Der Client benötigt ja die Ip Adresse des Servers um ihm beizutreten. Gibt es eine variable oder funktion mit der der Server seine eigene IP sehen kann ?

English: I have another question. Is there a function or var that the server can see his own Ip?
Posted By: nfs42

Re: [GSTNet] new posts on "Third Party Tools" - 11/14/10 22:15

GSTNet_MyIP(sIP1,sIP2,sIP3,sIP4)


Code:
//----------------------------------------------------------------------------------------

// function: ip

// purpose:  demo get ip

//------------------------------------------------------------------

function getip() {

 

  diag("\nGETIP:");

  if (GSTNet_ClientIP(1,sGSTNetTemp)){

    diag(sGSTNetTemp);

  }

  beep;

  GSTNet_MyIP(sGSTNetTemp1, sGSTNetTemp2, sGSTNetTemp3, sGSTNetTemp4);

  diag("\nIP1:"); diag(sGSTNetTemp1);

  diag("\nIP2:"); diag(sGSTNetTemp2);

  diag("\nIP3:"); diag(sGSTNetTemp3);

  diag("\nIP4:"); diag(sGSTNetTemp4);

  }

on_i=getip;


Posted By: chrisp1

Re: [GSTNet] new posts on "Third Party Tools" - 11/16/10 15:34

Danke nfs42. Außerdem muss ich noch hinzufügen , dass dir das Plugin super gelungen ist laugh
Posted By: chrisp1

Re: [GSTNet] new posts on "Third Party Tools" - 11/16/10 15:59

Diese Funktion findet die lokale ip. Benötigt man nicht die globale ip um den client mit dem Server zu verbinden ????
Posted By: WretchedSid

Re: [GSTNet] new posts on "Third Party Tools" - 11/16/10 18:27

Schreib dir n PHP Skript und lass dir "$_SERVER['REMOTE_ADDR']" zurückgeben.
Code:
<?php
    echo($_SERVER['REMOTE_ADDR']);
?>



Einfach ein HTTP GET request auf das PHP Skript ausführen und die Rückgabe nutzen. Fertig.
Oder www.wieistmeineip.de
Posted By: PrenceOfDarkness

Re: [GSTNet] new posts on "Third Party Tools" - 11/25/10 12:42

is the 16 client limit hard coded in or is it advised?
Posted By: nfs42

Re: [GSTNet] new posts on "Third Party Tools" - 11/25/10 18:26

for now its limited to 64 clients and 1000 global concurrent entities
Posted By: chrisp1

Re: [GSTNet] new posts on "Third Party Tools" - 12/16/10 16:07

So hier post ich auch nochmal meinen server und client code . Also könnte mir bitte jemand sagen was ich falsch gemacht habe ?
Der Server funktioniert aber ich kann mit dem Client den Server nicht finden . Hier der ausschnitt :
Code:
function startserver()
{
serverstatus = 2;
GSTNet_StartServer(2030,1);
while(GSTNet_Connection() ==0)
{
wait(1);
}
reset(hostnumber,VISIBLE);
setString (strInstructions,"You logged in as server. Press s to spawn");
setString (strServerStatus ,"Server status : Connected");
while(joined == 0)
{
if(key_s)
{
joined = 1;
//GSTNet_SendString(0,"gm");
setString (strServerStatus ,"Server status : Connected transfering data.");
wait(-0.5);
setString (strServerStatus ,"Server status : Connected transfering data..");
wait(-0.5);
setString (strServerStatus ,"Server status : Connected transfering data...");
wait(-0.5);
setString (strServerStatus ,"Server status : Connected transfering data..");
wait(-0.5);
setString (strServerStatus ,"Server status : Connected transfering data.");
wait(-0.2);
//GSTNet_SendVar(0,_str("serverstatus"));
setString (strServerStatus ,"Server status : Connected and data transfered");
setString (strInstructions ,"Succesfully spawned");
joined = 1;
ent = GSTNet_ent_create(_str("submarine.mdl"),vector(1000,0,-100),_str("submarineonline"));
wait(1);
diag("\n prepare to start");
}
wait(1);
}
}


function startclient()
{
serverstatus = 1;
GSTNet_StartClient(serverip,2300,1); // _str("255.255.255.255")
wait(1);
setString (strClientStatus,"Client status : Searching for connection");
wait(-1);
if (GSTNet_Connection() ==0)
{
setString (strClientStatus,"Client status : No server found");
setString (strInstructions,"Please try again or search for another server");
inkey(serverip);
joined = 0;
while(joined == 0)
{
if(key_enter)
{
joined = 1;
startclient();
}
wait(1);
}
}

while((GSTNet_ClientId() == 0)||(GSTNet_Connection == 0))//wait for the connection to be established and the ID given by the server to proceed
{
wait(1);
}
setString(strInstructions, "You logged in as client");
setString(strClientStatus, "Client status : Connected");
gamenumber = str_stri(gm,"c");
wait(1);
if (gamenumber == 1) mode_capturethefish_client();
}


function host()
{
setString(strServerStatus,"Server status: Prepare to start ");
setString(strInstructions,"Choose your gamemode to start");
getip();
serverstatus = 10;
level_load("3dgs2.wmb");
wait(1);
set (host_panel,SHOW);
}

function join()
{
joined = 0;
setString(strClientStatus,"Client status: Prepare to start ");
setString(strInstructions,"Type in the ip number you want to join");
serverstatus = 10;
level_load("3dgs2.wmb");
wait(1);
set(join_panel,SHOW);
inkey(serverip);
while(joined == 0)
{
if(key_enter)
{
joined = 1;
startclient();
}
wait(1);
}

}


Posted By: chrisp1

Re: [GSTNet] new posts on "Third Party Tools" - 02/06/11 11:17

I have created a php file at www.littlesubmarine.bplaced.net/test.php

But if I try GSTNet_HTTPGet("www.littlesubmarine.bplaced.net","/test.php",serveripserver);

i only get : GSTERROR unable to resolve host!

Any ideas why this happens?
Posted By: WretchedSid

Re: [GSTNet] new posts on "Third Party Tools" - 02/06/11 11:21

add a http:// in fron so that the protocol is known to GSTNet. (Just a guess, but its a common error that it doesn't defaults to http)
Posted By: chrisp1

Re: [GSTNet] new posts on "Third Party Tools" - 02/06/11 13:07

But if i write : GSTNet_HTTPGet("http://www.littlesubmarine.bplaced.net","/test.php",serveripserver);

the standard ipnumber(000.000.000.000) doesnt change to the servers ip and the game chrashes
Posted By: SchokoKeks

Re: [GSTNet] new posts on "Third Party Tools" - 02/06/11 14:51

Have you tried "littlesubmarine.bplaced.net" ? the www doesn't really have a meaning.
Posted By: Dark_samurai

Re: [GSTNet] new posts on "Third Party Tools" - 02/06/11 19:24

SchokoKeks is right! It should be "http://littlesubmarine.bplaced.net"
Posted By: nfs42

Re: [GSTNet] new posts on "Third Party Tools" - 02/06/11 22:32

for lite-c use
GSTNet_HTTPGet(_str("littlesubmarine.bplaced.net"),_str("/test.php"),sResult);

for c-script use
GSTNet_HTTPGet("littlesubmarine.bplaced.net","/test.php",sResult);
Posted By: chrisp1

Re: [GSTNet] new posts on "Third Party Tools" - 02/07/11 13:46

thanks nfs 42 laugh

P.S. What do i have to write that the client sends its position to the server and the server sends it to the other clients. I used GSTNet_TrackEntity(player,1+2); Something wrong or do I have to add more lines of code ?
Posted By: Arrovs

Re: [GSTNet] new posts on "Third Party Tools" - 05/25/11 14:59

Hello.
I have question.
Why i cant join server in local network with external IP.
Im not tested it from other networks, but dont sounds too nice.
Posted By: chrisp1

Re: [GSTNet] new posts on "Third Party Tools" - 05/25/11 16:14

Is the port open ? (portforwarding)
Posted By: nfs42

Re: [GSTNet] new posts on "Third Party Tools" - 05/25/11 18:17

try http://portforward.com/ if you doesn't know how forwarding works with your router.
you have to open the chosen UDP port.
Posted By: Arrovs

Re: [GSTNet] new posts on "Third Party Tools" - 05/26/11 02:12

ou. True true it could be my problem. I will check it.
© 2024 lite-C Forums