OpenWolf


(ailmanki) #181

om nom nom GLSL nice!!

Now that allows for some crazy stuff…


(Dushan) #182

Well guys I have added several new things (some of them long time ago, just never posted info):

[ol]
[li]Sharing admin.dat/shrubbot.cfg accross multiple servers
[/li][li]2048-bit RSA authentication system (instead of old GUID system)
[/li][li]Master server list fallback
[/li][/ol]

1. Sharing admin.dat/shrubbot.cfg accross multiple servers

Server owner share his admin.dat (or shrubbot.cfg - call it how you wish) across multiple servers on the same computer (127.0.0.1). It is creating second file called “admin_shared.dat”, in which a part of the normal admin.dat entries will be put. When the file is changed, the server which changed the file will send a !readconfig to all other servers through rcon.
Server admins can share bans, admins, levels.

2. 2048-bit RSA authentication system


Example of admin.dat:
[admin]
name = ETPlayer
guid = 4FDE7EE8394E1EBFB6E113FD54C8433E
level = 5
flags =

pubkey = c7fbfdf5b380b6f70b7e9d9a4c1efb096b8495118d02ac7dcd cb1c6107ea678c326dec823bf41e33797f619cd17b64022ee5 80da9869bbe7cf591357de7b39cf4b4ddc18c1a291efd38766 cefb288e13d39f4be8e9d6f4705dc512aee9038e75d6b34071 06a22c6c37bdd57fbb3e2a0a77ad39a206588783a8009ba012 fdda1b1b9b2f9df60169812f523c90eced902fb1681cff8332 6a71f22b0d38f5f69bba01d6e1f556a855b3f8dcbeeeb96265 9d25e1fb14174c5b95107d910646535894b6d2c4d909ccf996 af6f43aaec86db1890448952a7f3c9c0ea0fe5415dda8a5f00 3368690d4b5a8c12c57df26db9f51fc05aeeb0a32969404b2f 01ebd1009457

msg = aecc8db1cd2aab2f9f4299ede828b43acbc7a32b5a9b49bdba 0f86bc7e15861d42ad45c41a6cd401324d8f594f223271d4ef 84bca8c0b361ee4ac77350f5a82865345d67843d22b048f09b cf858b9687ee19ab5d35565169fe8982502633c18503f6387a c88fd6fabf145d7d52bf8c5e7f14bbcbc19b3a5fb530dd9f32 3904dcafe24564a4425048a7a621596c906c37d88ed13efddf 9459bf3af3a9ebfa15efea0cb5febb67b05cfc158b1fbf4356 881354b35c6bc0986328669eeb20e31b8e956193d13c5355f5 6f48d6ec8662e53e07033e99d33e46d0722ede3050fbe281bd 8af11bf0d12d99cd4c15aae3521304a1318d3762b8e91e0c77 74ee67ef6967

where is :

  • pubkey: The client’s RSA public key
  • msg: The random string encrypted with the public key (Encrypt that with the client’s public key (msg))

This is part of my generated RSA key and read in ETMAIN :slight_smile:

(11:private-key(3:rsa(1:n257: Èhââ¥xĸ¶Óìù²–¬.¸c/Ùúáûú«k ÇNu ±õº‡B˜_…Ìój³lãô´i¯=ñås+ÔCt kq)ËgO_ Ïm áVY ÷e|–{Ú8ÿ1꾿!øÒ8 ÷: ¡à *
õXó_~˜¤Æ+ 'Ë-
ÕHar;DŽ$ ìm)(1:e3: )(1:d256: •WQu B2CfÁP=«%„û›)Óæñ$ô íŠL)n V úA•4;0Rü‹D|q[õQÌ\’®F-+Mª
@\éM“f¶§ hêyú¬¢C¨ U´Ì ¥
¶»~ 4œXµ’øì(³ðTÍ,Çú˜îéT`N ²¹ ¶Öéi 7*@Á)(1:p129: ¡OZ ™Î %>ÏÁÑ-å¸LÆÊ1# ™1)§Ò4¶GÔ’¨•$ÿÀ²íª•aβÝ/~—žáŽ¹€”ºQñmèØÛý)(1:q129: ¶@oÝÁîõ´ !oš;”>§û¢4é$Gr:Ë šŠh¿yn’ç|ÞGsé›ÂÄ?ÏZ@¾•bö‘;?65.gôÌé7\1)(1:a128: IzQÁ E Æ Bã¹ý÷› 7ƒÇ²KÜWNìo3Í–ý• µAÊô±ò%uñ” ó
ÆÓŒÖ[°
Ö õo )(1:b128: Ë€E«Ò³
˜ 6¤ÒGñ»²=Ÿ š•ÝSyܾ**Ó»$ïuž‘
{Ø ¶2k?ÅÇ‚¡6ø~ˆîî9„w ñ G’1)(1:c128: <4 ™r_Ýh>« !lgÚS1.ë

¨SÏt²„/Û…<²tÎpÐÓvö ÂPüô^æ®Ëx|Hݳ 1Çöò
ƒ50Å)))

3. Master server list fallback

I have read problems on forum about dropping master server for Wolfenstein Enemy Territory, so I have added my own master server software.
Because of problems with hosting master server in one location, so I have asked others about possibility to host master server on multiple locations, just in case if one location is offline for unknown reason, engine will read data from other place (up to 5).
Server hoster can specify address and port himself.
Also I have semi finished PHP support for Master Server :slight_smile:



(lamps) #183

Nice work right there, waiting for a first release. :slight_smile:


(Shownie) #184

The good keeps coming here, I like that!

Keep up the good work!


(Dushan) #185

Thanks :slight_smile:

One more update :slight_smile:
I have created more accurate info about missing OpenGL extensions.
Now if client have problems with missing extensions he will get more detail error message and little info what he is supposed to do in case of that.

Currently I am thinking about adding automatically failback to ET Vanilla renderer in case of missing OpenGL 3.x extensions. But I am not sure about that because at this moment shaders between ET Vanilla and XreaL aren’t compatible.

I really believe that this is more user friendly solution then what was practice before (at least in ET world) :slight_smile:



I am sorry for bad resolution of saved pictures.


(Mateos) #186

Nice feature :slight_smile: And no worry about screens res, the windows text can be read :slight_smile:


(Dushan) #187

OK :slight_smile:

Forgot to show brand new ingame console (based on console from XreaL) and new dedicated console. :slight_smile:
Whole console system is controlled via cvars, so you can customize it how you wish. Ofc, for people who like old console there is scr_conUseOld and scr_conUseShader for loading old ET console and console shaders :slight_smile:

Pictures say more then 1000 words :slight_smile:



Added two more photos (Old console without console shader loaded and ones again dedicated console)




(Runeforce) #188

Where can I download? (And a source link would be appriciated…if you are planning on publishing.)


(Indloon) #189

Nice work Dushan :slight_smile:

However,you should add user cvar to use what ever color in concole background.

Something like: concolebg “1 1 1 1”


void AFunc_SetBackgroundColor(vec4_t Background){ // AntiWolf func taken from aw_main.c
	char	*values;
	float	veccolors[4];
	char	color[16];
	int		count;

	Q_strncpyz( color, concolebg.string, sizeof(concolebg.string) ); // Lets BUF IT!

	if (!Q_stricmp( color, "indloon" )) {
		Vector4Set(Background, 0.8f, 0.8f, 0.8f, 0.8); // Like it!:D
		return;
	} else {
		values = strtok(color, " ");

		for (count = 0; count < 4 && values; ++count) {
			veccolors[count]	= atof(values);
			values		        = strtok(NULL, " ,");
		}
	}
	Vector4Set(Background, veccolors[0], veccolors[1], veccolors[2], veccolors[3]);
}

One question:
How did you rand characters?
With array and rand?

I have being trying to make code which creates unique UUID like Java does,but in C.


(Dushan) #190

Currently you need to use your Google dark magic to find source :slight_smile:
When I finish MySQL stuff I will provide testing build and source code (or some part of it =])
Currently I have some problems with shaders and sound system. In favor of compatibility with Tremulous I have broke sound system in ET, so some sounds is missing :slight_smile:
And because I have keep vanilla renderer for compatibility with older systems, I have changed XReaL to use materials folder and .mtr files instead of scripts folder and .shader files. Because of that I have some shader problems.

[QUOTE=Indloon;392548]Nice work Dushan :slight_smile:

However,you should add user cvar to use what ever color in concole background.

Something like: concolebg “1 1 1 1”[/QUOTE]

Thanks thanks

Well Indloon :slight_smile: I like more your previous (pre edit) :slight_smile: message :smiley:

Like I told before. console is fully customized so you can do wonders with it :slight_smile:

After playing with cvars you can get something like …



You can change also old console to have new and fresh look :slight_smile:


Ofc if console shader isnt loaded :slight_smile:

I have separated cvar for every color (RGBA), even bar under console is configurable :slight_smile:


(Indloon) #191

Exellent! :smiley:

Yeah,pre message was a piece of C :smiley:

Idea for you,however it can done in cg_view,anyway,make sky to transform from night to day!:smiley:
E:Way better,use shader! And transform! :open_mouth:

But what about megatextures?

Do they load long time?

I noticed in MW2 on friends Xbox,that the textures are very,very ugly at game start,but later they transform to HQ!

So why not to buffer textures same way ! :smiley:

E:Btw,the font looks ***ed :smiley:

Same thing happened here while converting Bank Gothic to Q3 friendly :z

Only way out was rage quit:D


(Dushan) #192

Fonts :smiley:
Fonts look like crap because I have left font images (ariblk…tga and courbd…tga) and used real fonts .ttf (ariblk.ttf and courbd.ttf). Just I didn’t imagine that will look so bad after doing that. So at least for me, whole main menu must and will be rewritten.


(Shownie) #193

I really like the new console!

Great work Dushan!


(Indloon) #194

[QUOTE=Dushan;392567]Fonts :smiley:
Fonts look like crap because I have left font images (ariblk…tga and courbd…tga) and used real fonts .ttf (ariblk.ttf and courbd.ttf). Just I didn’t imagine that will look so bad after doing that. So at least for me, whole main menu must and will be rewritten.[/QUOTE]

Making RTCW stylish UI code to Q3 one,but the Flash one could be better and no freaking server paks anymore!
Its pretty easy,delete UI code,add Q3_ui,prof it!:---------D


(Dragonji) #195

[QUOTE=Dushan;392567]Fonts :smiley:
So at least for me, whole main menu must and will be rewritten.[/QUOTE]
Agree on that! Old UI needs some fresh ideas :slight_smile:


(Dushan) #196

Well interesting :slight_smile: we will see what can be done.

btw, like I told in post number #121
Semi working PHP Master server

Engine is already sending heartbeat to two server list. One master server (IPv4, IPv6 - regular) and other brand new PHP based master server.


Problem with protocol what is shown in attached picture is because of badly written PHP. Engine is sending “heartbeat=%s&port=%d”, HEARTBEAT_GAME, net_port->integer) to heartbeat.php.
I have created OpenWolf to be protocol free, so you can change protocol version “on the fly” with /protocol cvar. :slight_smile:

But that can be fixed :slight_smile:

#Edit : More info
Engine is already capable to have up to 5 regular master servers, sv_master[MAX_MASTER_SERVERS]; and same PHP based master servers sv_httpmaster[MAX_MASTER_SERVERS];
So if one them really went down for unknown reason. You will always have one as failsafe (backup) :slight_smile:


(Indloon) #197

Dushan! You shouldn’t use PHP for that kind systems.

It is way way safer to use Python web script.PHP isn’t for that kind stuff.It is aimed to give info from database,not for inserting them :stuck_out_tongue:


(Dushan) #198

[QUOTE=Indloon;392708]Dushan! You shouldn’t use PHP for that kind systems.

It is way way safer to use Python web script.PHP isn’t for that kind stuff.It is aimed to give info from database,not for inserting them :P[/QUOTE]

Well PHP is capable to insert data into MySQL, that is point of having master server based on PHP. With having PHP, you can have much more then just simple read/write stuff :slight_smile:


(Indloon) #199

Yes,PHP is easier to use and it IS capable to insert data into MySQL,but my previous post aimed

at security,using URL parameters to insert data to database is risky and reserves high watching on the clients

connecting with the server.

Python has great tricks to prevent that.

Know that,the Battlefield 3 servers data comes via Python,which I read from one DICE developers article.

However,I think you will be still at PHP side,so tip for you…

You should run handlers on script :slight_smile:

(As did the Splatterlader trackercore code (: )


(lamps) #200

[QUOTE=Indloon;392776]Yes,PHP is easier to use and it IS capable to insert data into MySQL,but my previous post aimed

at security,using URL parameters to insert data to database is risky and reserves high watching on the clients

connecting with the server.

Python has great tricks to prevent that.

Know that,the Battlefield 3 servers data comes via Python,which I read from one DICE developers article.

However,I think you will be still at PHP side,so tip for you…

You should run handlers on script :)[/QUOTE]

Facebook is written in PHP. Now, what’s your next argument?