# GoldenEye: Source Forums

## Editing and Customization => General Discussion => Topic started by: illwieckz on December 14, 2014, 04:50:17 pm

Title: GoldenEye:Source and Perfect Dark:Source on same code base.
Post by: illwieckz on December 14, 2014, 04:50:17 pm
Hi, as you know, the Perfect Dark: Source (http://www.pdark-mod.com/) mod is dead since many years, and it's bad.  :-[

The client runs well today (even on wine on GNU/Linux), but it's not possible to host server: the Source SDK 2006 (AppId 205) does not ship linux binaries since many month (years?) and if the windows binaries are distributed, they seems to not be working at all: the server spawns, but clients can't connect only if VAC is not activated, and if VAC is not activated, the connection fails with some weird error. Also, the server browser does not list servers even if there is servers online.  :'(

But, there is many interesting things.

- Theres is already many works done: the pdark:source mod ships 3 characters and many weapon models and some maps.

- Some pdark:source maps were ported (http://forums.geshl2.com/index.php/topic,7766.0.html) to GE:S and run wells.

On my computer I have theses pdark maps on my GE:S map folder:

* grid
* felicity
* carrington institute (but many textures missings)
* ravine
* pipes

The pdark complex classic map is like the ge one, with different textures plus some fences, it would not be hard to modify the ge complex map to look like the pdark one.

It's not possible today to host a pdark:source server, but it's easy to host a GE:S server with only pdark map in map rotation list. The big problem is that we will not be able to play with pdark character, and the worst thing, we will not be able to play with pdark weapons!

I see also that the code of GE:S was opensourced (https://github.com/goldeneye-source/ges-code) and there is current work to port it to SDK 2013. I guess there is not many differences between pdark and gesource. Since some maps were ported from pdark to the current gesource, it will not to too hard to port them to SDK 2013, not more than ge maps. I don't know if it's easy to port characters and weapons, but if someone port them to gesource, it would be possible to have comple pdark experience with gesource engine.

The idea is not to create new pdark content, only to port them to the current gesource code base.

The idea is not to mixes both game, the idea is not to distribute GoldenEye release with Perfect Dark content, the idea is to port and maintain maps, characters and weapons from pdark to gesource engine, and if it is a success, run some pdark games with gesource based client and server.

GoldenEye: Source does not need to distribute these files, but it could be an addon pack (sort of mod of a mod) to allow people to have pdark experience using the gesource engine.

What do you think about that?  :)
Title: Re: GoldenEye:Source and Perfect Dark:Source on same code base.
Post by: markpeterjameslegg on December 14, 2014, 09:14:15 pm
So in a nutshell, you want to create a Perfect Dark Source server for Goldeneye Source with the Perfect Dark source content available. Not sure how you could do that without modifying GE:S itself, but it would be great to be able to play some Perfect Dark multilayer for sure, I too was very disappointed at the mods demise, so much hard work wasted and such a promising mod, but as I said, can't see how without combining both as weapon and character selects would have to be part of the menus... But then, maps are selectable via the menus. Hmm... I'm curious to see what devs will make of this idea.
Title: Re: GoldenEye:Source and Perfect Dark:Source on same code base.
Post by: Mangley on December 15, 2014, 05:27:54 am
PD:S maps were ported by the community and are already playable in GE:S.

Beyond that I would say that the two mods are incompatible and shouldn't be mixed. GE:S has it's own established set of mechanics, art style and game logic that's very different from PD:S. There's probably a homogeneous middle-ground that both could inhabit but only as a huge compromise in both for the sake of it, and for what? Bundling all the content together serves neither GE:S fans nor PD:S fans, it would just pollute both experiences.

If PD:S development team wanted to port their mod to a newer version of Source SDK there's nothing stopping them other than time and dedication.
Title: Re: GoldenEye:Source and Perfect Dark:Source on same code base.
Post by: kraid on December 15, 2014, 07:35:06 am
Only villa, felicity, ravin and complex were ported from PDS, the rest like Grid was developed by community members of GES directly for our mod.

For sure, lots of Goldeneye fans are also fans of Perfect Dark.
So you're not the first one who thought that combining the two mods would be an option.

Maps are not an issue, they just need all models and textures packed into the bsp and an entity edit.
If done right, they do not even need recompile to work with GES.

Playermodels, weapons & items and gameplay on the other hand are a real issue.

Thanks to how KM implemented the setup of characters in GES, it's not exactly hard to add a new playermodel to GES
Proof:
(https://imageshack.com/i/2sddguardprevj)

Also weapons and items wouldn't be a big issue if they could be shipped with the modfiles of GES.
But there's no way to add them as thirdparty content, unless you want to create model sweps that
would overwrite some GES models for clients that decide to install it permanently.

Something that i wouldn't recomend.

I've been interrested in an option to add custom models since i created the ge_stack_xmas last year, that was planned to have these:
(https://imageshack.com/i/7g8ncbj)

as well as that:
(http://cloud-4.steampowered.com/ugc/468671123753999604/9AAF616DF5B55E70A21A5A0E0A0F9671DA8F8029/)

But it turned out to be impossible to add them as thirdparty content in an online enviroment.
They were added to the bsp, which usually overwrites the external files temporary only on the map that includes them.
The issue: models just turned invisible when changing from a regular map to the xmas map, due to conflicts with the precached model data.

Nothing that can be done about that unless the mod itself supports custom models for players, weapons and items.
I'm not a programmer, but i guess it would take a seriouse ammount of code changes and testing to make something like this working.
Frankly, with the source 2013 porting there are some much more important tasks on the list right now.

Meanwhile you can still setup a GES server with only PD maps in rotation.
Title: Re: GoldenEye:Source and Perfect Dark:Source on same code base.
Post by: illwieckz on December 15, 2014, 08:48:14 am
In fact I have only discovered GE:S last year, and I loved it instantaneously, I showed GE:S to some of my friends and they were convinced too, I helped some of them to install GE:S on their computer and I have hosted some games on my own desktop computer through the internet. But it's not very convenient. Since I host some game on my private server (http://gg.illwieckz.net/), I worked to host GE:S too and it works. ;)

Some of my friends talked me about Perfect Dark (I have only played to GoldenEye when I was child), and playing to GoldenEye: Source together,  he expressed so much nostalgia about Perfect Dark. And yes, nostalgia is not a bad reason to play, and being able to play some Perfect Dark styled maps is nice to diversify the game.  ;)

Since the pdark client runs successfuly, I tried many ways to host pdark on my server but I failed, it's too old and too broken.

The first idea, and the easier one, was to run a second gesource server with only pdark maps in rotation list.

After that I thought "if there is autodownload for map, is it possible to have autodownload for weapons or models" too ? I don't know so much about the source engine, I am more familiar with the id techs engines, that's why I talk about this idea with you.

So, you said that unlike maps, source mods don't have an easy way to install alternative models/items/characters, unfortunately.

I was not thinking about modify gameplay yet. It's not good to be too greedy. :D

One thing at a time. It's good if I can host gesource server with pdark map rotation list, it's better if players can use pdark weapons, it's even better if players can use pdark characters, etc. But perhaps all of that is not possible.

If it is possible to install alternative weapons, it would be possible to use a custom weaponset with pdark weapons only. GE:S does not need to modify its own experience for that, only allowing to install third party weapons that are not needed to be visible in GE:S weaponsets, but available to custom weaponsets.

I don't want to overwrite something. I don't want to see gesource "bundling all pdark and gesource content together". I don't want to alterate gesource to find a compromise. Compromises are only on pdark side.

Simply, as I think that GE:S is the maintained game which is the closest to pdark, I want to try to go as far as possible with it.

So the first thing I will try to do, is to setup a gesource server with pdark map rotation list. :)

@kraid:
Your christmas set looks awesome. And yes, if there is some change to gesource to allow it to run custom set like your christmas set, it could benefit to pdark custom set and vice versa.

@all:
Thank you very much for all your detailed and nice answers.  :D

If you have some links to download latest version of pdark maps ported to GE:S it will be very nice. I found some of them but I don't know if they are the good ones, with latest version. For example I did not found at all the Villa map ported for GE:S.

Thanks a lot to each of you.
Title: Re: GoldenEye:Source and Perfect Dark:Source on same code base.
Post by: Graslu on December 16, 2014, 06:14:09 am
Depends of where you downloaded them. If you got them from the forums, Felicity is fullbright, Ravine has texture problems and no idea about complex. WNx server hosts Felicity, Complex and Villa, you can get them from playing there.
Anyways, there's no way to add new weapons so the people can download / have them unless you have access to the source files or create some kind of plugin to let you do that. But really, it's just 4 maps and 3 characters, wouldn't make much difference. 3 of those maps are already on GE:S, the characters doesn't *really* matter and the weapons is just really hard / impossible to add as custom content.

You can still make servers for PD:S, I don't know if they'll show on the list, but your friends can play perfectly on them, I played it not so long ago with a friend.
Title: Re: GoldenEye:Source and Perfect Dark:Source on same code base.
Post by: soupcan on December 16, 2014, 02:07:36 pm
I just gave it a quick try, and had no problem at all hosting a dedicated server. Just get appid 205 from SteamCMD (https://developer.valvesoftware.com/wiki/SteamCMD), and launch the server with something like:
Code: [Select]
srcds.exe -console -game "\path\to\pdark\folder\" +map felicity
Title: Re: GoldenEye:Source and Perfect Dark:Source on same code base.
Post by: illwieckz on December 16, 2014, 06:27:25 pm
I just gave it a quick try, and had no problem at all hosting a dedicated server. Just get appid 205 from SteamCMD (https://developer.valvesoftware.com/wiki/SteamCMD), and launch the server with something like:
Code: [Select]
srcds.exe -console -game "\path\to\pdark\folder\" +map felicity

Yes, I've done that, but the client failed to connect. That's the first words I wrote on this topic.

Also, the appid 205 only ships win32 binaries today, and I don't own any windows server. I've tried to run srcds.exe with wine, but using wine the server seems to work only when I launch it with gui, the -console arg failed, which is problematic on headless linux server.

I can run the built-in server from the pdark mod itself on my own desktop computer, but I don't want to do that.
Title: Re: GoldenEye:Source and Perfect Dark:Source on same code base.
Post by: soupcan on December 17, 2014, 02:58:35 am
Then there's nothing you could do about it, unless someone happens to still have an old srcds installation somewhere they'd be willing to upload. And modifying GE:S to be PD:S is really inadvisable and not worth your time.
Title: Re: GoldenEye:Source and Perfect Dark:Source on same code base.
Post by: killermonkey on December 19, 2014, 12:45:36 am
PDSOURCE could fork  the ges code base on github and apply the pd specific mechanics to the code. Then you ship those binaries with the pd ui theme and models, etc.

Would take a fair bit  of effort but you also gain python game modes, bots, and other ges goodies.
Title: Re: GoldenEye:Source and Perfect Dark:Source on same code base.
Post by: kraid on December 19, 2014, 04:57:59 am
I doubt that any of their former Devs is even trying to bring back PDS as a mod on Source.
New modders that are interrested in this ain't got their resources so they would either need to decompile all the stuff or start from scratch.

Their site is still reachable, but the forums were shut down.

Most members seem to have lost interrest (or ain't got time for it anymore).
Our last contact with on of their Devs was VGF, who also helped out with GES by visually improving our old weapon models and doing some translations.

Not sure if all of them abandoned PDS, or if some are waiting for an oportunity to bring it back.

Using the GES open source code is the best oportunity to do it though.
The hardest part would be finding a coder who's able to combine the two code bases to something new.

If you know someone who could do it, feel free to contact the former PDS team members for the required resources (if they still have them).

Belive me i've tried, with little success.
Title: Re: GoldenEye:Source and Perfect Dark:Source on same code base.
Post by: RogerMooreSucks on February 07, 2015, 01:20:09 pm
Does anyone know why Perfect Dark: Source is dead? I would of loved to play it with people. Did the developers just give up or something?
Title: Re: GoldenEye:Source and Perfect Dark:Source on same code base.
Post by: kraid on February 08, 2015, 03:58:49 am
That's a question which is not exactly easy to answer.
There are several factors that had an impact.

But from my experience with mods that are abadoned at some point, there are a few main reasons like:
the developers lost interrest in further developing the mod due to lack of community support, more real life duties and other personal reasons.
Not enough new developers could be brought in to compensate for the inactive ones or the ones brought in lack the skills or dedication it takes to go on.

I know that even though the last official release was something like 1.732, they started working on the 2.0 version.
Since it was the time of source 2007, i guess they might have tried an engine switch as well.

My last contact with them was a german translation of their language file and one of their former artists named VGF has been somewhat active in the GES community too by helping with a translation and enhancing detail for some of our weapon models.

Not sure if it's still possible to play PD:S online, because Valve might have changed a few things for Source 2006 engine games as well with an update. I only can say for sure that you need a fix for source 2007 mods (steam.inf) that were not updated since the big Orangebox server update.

You might find out by asking someone at The Gravel Pit, since they hosted a PDS server much longer then anyone else.
Title: Re: GoldenEye:Source and Perfect Dark:Source on same code base.
Post by: soupcan on February 08, 2015, 06:13:52 am
You can still host a PD:S server, but the server browser no longer functions. You can only connect to them by IP.
Title: Re: GoldenEye:Source and Perfect Dark:Source on same code base.
Post by: illwieckz on May 16, 2015, 03:06:40 am
Hi, yesterday I tried again to run the pdark server on my server (http://gg.illwieckz.net/), it is very tricky and is very unstable but it works. So I'm now able to play to pdark with friends and family.  ;)

It's tricky because the srcds 2006 is not distributed for linux anymore (https://github.com/ValveSoftware/Source-1-Games/issues/1614), so I must use wine to run the windows version, and because the -console srcds's arg does not work with wine, I must run the graphical version inside an headless X11 server then script some clicks to validate some forms to automatize the start process…  :-X

Do you know if it's easy to backport maps from GE:S to pdark ? It could be good to be able to play grid, pipes and carringtoninstitute maps on this pdark server !  ;D

If you want to play, the server adress is gg.illwieckz.net:27016.
Title: Re: GoldenEye:Source and Perfect Dark:Source on same code base.
Post by: kraid on May 16, 2015, 08:46:33 am
I don't think porting of maps compiled for a newer engine version will work unless you recompile them from vmfs in the old engine version.
Title: Re: GoldenEye:Source and Perfect Dark:Source on same code base.
Post by: illwieckz on May 17, 2015, 03:53:50 am
Hi, thank you for your answer. Too bad if it's not easy, the format is that different between 2006 and 2007 sdk?

I admit I don't know yet the source bsp format (I'm more used to manipulate idtech derivatives (https://github.com/illwieckz/grtoolbox/)). But it's not a priority to port map, my priority is to have a functionnal server.

I finally managed to start srcds.exe in console mode using wine, it still needs an headless X11 server but it does not need to script the gui handling, so the server starts faster.

Unfortunately I face an annoying problem : the server shutdowns itself automatically exactly 20 minutes after the first player join.

The server can wait indefinitely the first player, but as soon as at least one player joins the server, there is an invisible time bomb triggered, even if the players quit or not, whatever the map played. I noticed it happens only when mp_timelimit is set, and whatever the timelimit value, for example with a 20min timelimit, the server will end at the game end, with 10min timelimit, the server will end at the second game end. With 1min timelimit, 20 game will run before the server shutdowns.

To workaround that I'm trying to externalize the maprotation logic like that:

Code: [Select]
for map in complex felicity ravine villado	rcon say current game ends in 15min, next level is $map sleep 10m rcon say current game ends in 5min, next level is$map	sleep 4m	rcon say current game ends in 1min, next level is $map sleep 1m rcon end_game sleep 30s rcon changelevel$mapdone

But I don't found the command to end the game (the end_game placeholder in my code above), is there a server command to force the end of the game ?
Title: Re: GoldenEye:Source and Perfect Dark:Source on same code base.
Post by: illwieckz on May 17, 2015, 11:28:20 pm
I answer to myself, cvarlist gives me 1159 commands but no one triggers the end of the game, so I set a negative score/fraglimit to trigger it (then restore them to 0 right after that to disable the score/fraglimit for the next game).

I do something like that and it works well:

Code: [Select]
while truedo	rcon "say welcome to gg.illwieckz.net { le frag courtois }"	rcon "say game will end in 15 minutes"	sleep 10m	rcon "say game will end in 5 minutes"	sleep 4m	rcon "say game will end in 1 minutes"	sleep 50s	rcon "say game will end in 10 seconds"	sleep 10s	rcon "say 5…"	sleep 1s	rcon "say 5, 4…"	sleep 1s	rcon "say 5, 4, 3…"	sleep 1s	rcon "say 5, 4, 3, 2…"	sleep 1s	rcon "say 5, 4, 3, 2, 1…"	sleep 1s	rcon "say game over"	rcon "mp_fraglimit -100"	rcon "mp_scorelimit -100"	rcon "mp_fraglimit 0"	rcon "mp_scorelimit 0"	sleep 1m	# let the next level loadsdone

Currently it's a script loaded externally on the server (using shell script and rcon), but perhaps the same behavior can be achieved ingame using wait commands if there is a way to exec a script at map load.

Setting frag/scorelimit to 1 means a single player alone without point does not trigger the end of the game, setting frag/scorelimit to negative value means even a single player alone without point triggers the end of the game (and I put -100 to be sure a the player have more than -100 even with a suicide). At the end I sleep 1 minute to let the mp_chattime runs (30 seconds here) and wait 30 seconds more to let the server reload the map, so my 15 minute countdown start approximatively some seconds after the next level load. Since the end of the game is triggered by a score/fraglimit, the map rotation is done by the engine itself.

For information with timelimit, the server shutdown/freeze happens after 20 min with these messages:

Code: [Select]
utlrbtree.h (514) : Assertion Failed: i != InvalidIndex()utlrbtree.h (767) : Assertion Failed: IsValid()utlrbtree.h (767) : Assertion Failed: IsValid()utlrbtree.h (767) : Assertion Failed: IsValid()

utlrbtree.h is a file from the source sdk but the bug seems to be in the mod itself.

Without timelimit, these messages prints after 20 min (and never ends to print, so if you log them and don't filter them, you will fill some gigabytes in some minutes) but the server never shutdown or freeze.

So I have now a pdark source server running with a functionnal timelimit rotation map. There is plenty of ugly workarounds, but it works. :-)