Fusion "A Duke3D multiplayer oriented port"
#1 Posted 15 March 2020 - 03:40 PM
github.com/Photonic-source/Fusion
A 32bit OpenGL port of Duke Nukem 3d focusing on peer to peer network stability and ease of use.
Fusion brings Duke3D Multiplayer to everybody. With a simple to use installer and URL protocol launching, you are just clicks away from a Dukematch with your friends over the internet or LAN.
To launch Fusion from your browser it's "fusion:-dir full -host 2" to host a 2 player multiplayer game.
Then "fusion:-dir full -join [HOST IP ADDRESS]"
eg. Here I've been playing a lot of LAN while testing.
player1 "fusion:-dir share -host 2"
player2 "fusion:-dir share -join 196.168.0.10"
This takes most of the legwork away from new users and lets hosts send links to their friends who can then just click to play. No thirdparty software or server needed. With that said this port is ready and waiting for a website to host chats and generate some buttons to start matches.
Instructions.
1. Download and run installer from the bin folder on github
2. Run game once in single player and setup your preferences
3. Click a link or make a shortcut and play.
*) Port-forwarding required to host games.
*) fusion.exe needs to be allowed past your firewall
#2 Posted 15 March 2020 - 04:01 PM
#3 Posted 15 March 2020 - 04:42 PM
Is hduke opengl polymost? This is.
Eduke con support is there.
Host join works with duke connector i think.
-f# parameter to lock all players into custom packet sending modes. See source
More to come
This post has been edited by Photonic: 15 March 2020 - 04:50 PM
#4 Posted 15 March 2020 - 04:59 PM
eg.
"fusion.exe fusion:-map e1l1"
And all the classic net args work still, -net -n0:4 for master slave, or the ip ip n1 ip style.
#5 Posted 15 March 2020 - 06:47 PM
it's not detecting modified con files. it just uses the internal defaults.
i'd really appreciate it if you would fix that. cause it's kinda annoying.
#6 Posted 15 March 2020 - 06:58 PM
Photonic, on 15 March 2020 - 03:31 PM, said:
Photonic, on 15 March 2020 - 04:42 PM, said:
That isn't really a feature. Yang just doesn't support Fusion.
Photonic, on 15 March 2020 - 04:42 PM, said:
URL links are just 1 step removed from a command line interface. This is not easier to use than a GUI program.
Photonic, on 15 March 2020 - 04:42 PM, said:
But you're using the old pasty-looking polymost renderer, and software mode isn't an option. (it also only recognizes 4:3 resolutions on my machine btw) Your renderer of choice is certainly not a feature at the moment.
If you really want to innovate in the area of game launchers, what Duke needs is an OPEN SOURCE GUI launcher that fully supports the latest source ports and their unique features. Basically, Yang only supports XDuke. A new launcher that fully supports XDuke, HDuke, NDuke, EDuke32 OldMP, Rednukem, and NBlood is severely needed at this point. I've always thought of creating one myself, but the thought of the ensuing client war dissuades me.
This post has been edited by RADAЯ: 15 March 2020 - 07:37 PM
#7 Posted 15 March 2020 - 08:52 PM
There's also NetLauncher, which makes direct IP connections and loading mods very simple. I plan on adding support for other ports to NetLauncher as well. Maybe URL support could be added to that. (Maybe netlaunch://<ip>, nothing else would be needed since map, player count, etc is already handled by the program itself.)
NetLauncher source: https://gitlab.com/mossj32/netlauncher
This post has been edited by Striker: 15 March 2020 - 08:58 PM
#8 Posted 15 March 2020 - 11:20 PM
Photonic, on 15 March 2020 - 04:42 PM, said:
Fusion brings Duke3D Multiplayer to everybody. With a simple to use installer and URL protocol launching, you are just clicks away from a Dukematch with your friends over the internet or LAN.
This takes most of the legwork away from new users and lets hosts send links to their friends who can then just click to play. No thirdparty software or server needed. With that said this port is ready and waiting for a website to host chats and generate some buttons to start matches.
More to come
All of this sounds like a very interesting WIP.
I think that waiting a lil bit for improvements won't hurt anyone, more alternatives the better imo
#9 Posted 16 March 2020 - 01:03 AM
RADAЯ, on 15 March 2020 - 06:58 PM, said:
Yes this, but not software, just a webpage.
Striker, on 15 March 2020 - 08:52 PM, said:
There's also NetLauncher, which makes direct IP connections and loading mods very simple. I plan on adding support for other ports to NetLauncher as well. Maybe URL support could be added to that. (Maybe netlaunch://<ip>, nothing else would be needed since map, player count, etc is already handled by the program itself.)
NetLauncher source: https://gitlab.com/mossj32/netlauncher
Please feel free to grab it. I have a folder in /rel/url_bat_scripts that has a wrapper for EDuke32-oldmp. The code is in winlayer.c in engine (it converts url encoded + and %20 into spaces for the command line.
Thanks for the feed back guys.
#10 Posted 16 March 2020 - 01:07 AM
Hollaback Duke (defiatron), on 15 March 2020 - 06:47 PM, said:
it's not detecting modified con files. it just uses the internal defaults.
i'd really appreciate it if you would fix that. cause it's kinda annoying.
Pack'em into the GRP file. Or stick with oldmp it's less picky on loose files.
Don't try autoload it's disabled, more harm than good when trying to start netgames with less experienced players.
#11 Posted 16 March 2020 - 07:10 AM
Photonic, on 16 March 2020 - 01:07 AM, said:
Worst advice ever. You should make it a priority to fix the loose file issue.
Also you should post some videos, showing off your port in action.
This post has been edited by icecoldduke: 16 March 2020 - 07:11 AM
#12 Posted 16 March 2020 - 07:59 AM
Photonic, on 16 March 2020 - 01:07 AM, said:
While i do not like that advice, it sounds like a good idea for me to pack my mod (Blood And Ice) into a GRP file once it's finished. Cause right now, the folder it's being developed in is a fucking mess.
Keep in mind, This is only a small part of the folder.
#14 Posted 16 March 2020 - 09:18 AM
#15 Posted 16 March 2020 - 10:20 AM
Hendricks266, on 16 March 2020 - 08:07 AM, said:
Pass.
Yes. This is definitely not something you would appreciate.
Radar-why?
Because that is the direction I am going. If you do write that open source network guide let me know though k.
About yang... I think i broke support for it by renaming game_dir to dir. I will fix that and make sure it works with yang tonight.
#16 Posted 16 March 2020 - 10:27 AM
Hollaback Duke (defiatron), on 16 March 2020 - 07:59 AM, said:
This reminds me about Lord Misfit's NR-IotDM mod...(v5.22 on my hard disk, not latest or even his latest github repo...just still updates on late of last year, but from the readme, still have to extract all files before try to running...)
(NR mod files + NR HRP pack)
That's not a good way to manage your mod with large amount of loose files...
(Sorry about offtopic, but loose files sometimes can be very...annoying.)
This post has been edited by Player Lin: 16 March 2020 - 10:28 AM
#17 Posted 16 March 2020 - 10:33 AM
1. Do not base it off of an old eduke version. (MOST IMPORTANT!)
2. Do not strip a bunch of features away. (Like some resolution options, software mode, etc.)
3. Make a multiplayer client to go along with your port. (Make something like meltdown, minus the malware.)
4. Support loose con files (Like the normal eduke.)
5. Have the URL launching as a part of the client.
Now, i'm not someone who programs source ports, but i'm sure these pieces of advice will help you along the way.
#18 Posted 16 March 2020 - 10:38 AM
Photonic, on 16 March 2020 - 10:20 AM, said:
Because that is the direction I am going. If you do write that open source network guide let me know though k.
What I mean is, do you think an http based launcher is superior to a GUI program? If so, why?
#19 Posted 16 March 2020 - 11:04 AM
RADAЯ, on 16 March 2020 - 10:38 AM, said:
I feel a bit more secure launching from private means myself. Portforwarding and advertising ips publicly is sketchy in my honest opinion.
I like the idea of something like build&shoot or qlstats for Duke. Obviously it would differ due to differences between c/s and p2p, actually thats the heart of the issue. I believe p2p netcode will prove to be superior to c/s in the end. Hell quake was built around c/s and ping wins everyday, i wont enter euro servers. P2P has its place, deterministic multiplayer ftw!
#20 Posted 16 March 2020 - 11:07 AM
Hollaback Duke (defiatron), on 16 March 2020 - 10:33 AM, said:
1. Do not base it off of an old eduke version. (MOST IMPORTANT!)
2. Do not strip a bunch of features away. (Like some resolution options, software mode, etc.)
3. Make a multiplayer client to go along with your port. (Make something like meltdown, minus the malware.)
4. Support loose con files (Like the normal eduke.)
5. Have the URL launching as a part of the client.
Now, i'm not someone who programs source ports, but i'm sure these pieces of advice will help you along the way.
EDuke 2.0 had solid net code. NAM over dialup was great... Damn i feel old.
#21 Posted 16 March 2020 - 11:15 AM
This post has been edited by Mark: 16 March 2020 - 11:17 AM
#22 Posted 16 March 2020 - 11:17 AM
No offense to Photonic, but this source port is worse than at least 5 other methods I could name.
#23 Posted 16 March 2020 - 11:38 AM
Photonic, on 16 March 2020 - 11:07 AM, said:
Yeah. but i don't think anyone even uses EDuke 2.0 anymore. what i meant to say was do not use old eduke32 versions as a base.
#24 Posted 16 March 2020 - 12:18 PM
Hollaback Duke (defiatron), on 16 March 2020 - 11:38 AM, said:
I can understand why you might say that, but I disagree, rancidmeat lacks much under the hood. The netcode looks fancy... I've got a few branches here that are wip using some of xdukes netcode changes, also a whole new pre_netready() where the host tells the joiners what's happening, basically they just need to -join [IP] and all the game specific variables are sent before the game starts (see zdoom netcode) Then "if and when it's done" I do have ideas for putting most of this stuff right into the main game single player launcher.
Bringing up -f# use it, set up packetrate values that are appropriate for your players ping. Don't expect miracles but cross country games here stay in sync (Ontario-BC, also Ontario-Brazil was solid)
#25 Posted 16 March 2020 - 12:24 PM
Photonic, on 16 March 2020 - 12:18 PM, said:
Bringing up -f# use it, set up packetrate values that are appropriate for your players ping. Don't expect miracles but cross country games here stay in sync (Ontario-BC, also Ontario-Brazil was solid)
Why not just spend the time and merge back the old netcode into the current codebase?
#26 Posted 16 March 2020 - 01:09 PM
icecoldduke, on 16 March 2020 - 12:24 PM, said:
The game code is too far gone to handle deterministic netgames.
This post has been edited by Photonic: 16 March 2020 - 01:10 PM
#27 Posted 16 March 2020 - 02:49 PM
Photonic, on 16 March 2020 - 01:09 PM, said:
How so? The game still uses pseudo random number generation right?
This post has been edited by icecoldduke: 16 March 2020 - 02:54 PM
#28 Posted 16 March 2020 - 03:11 PM
icecoldduke, on 16 March 2020 - 02:49 PM, said:
Why do i feel like photonic is coming up with excuses? something really seems off about him.
This post has been edited by Hollaback Duke (defiatron): 16 March 2020 - 03:12 PM
#29 Posted 16 March 2020 - 03:32 PM
icecoldduke, on 16 March 2020 - 02:49 PM, said:
Meh. Youre probably right, but was beyond the scope of my project, and ability too to be frank.
#30 Posted 16 March 2020 - 03:34 PM
Hollaback Duke (defiatron), on 16 March 2020 - 03:11 PM, said:
Hi. Who are you? Recent name change?