ddnet / ddnet

DDraceNetwork, a free cooperative platformer game
https://ddnet.org
Other
589 stars 417 forks source link

Porting DDNet to TW 0.7 #1435

Closed def- closed 5 years ago

def- commented 5 years ago

Following discussion on #ddnet@quakenet / Discord #developer channel:

14:11 <+bridge> [ddnet] <Jupstar ✪> i think it's because tw doesn't use real ping, i have that too sometimes, if you 
                have real ping of 25 it's the same as if u have real ping of 10(ingame ping is the same)
14:52 <@deen> tw 0.7 fixed that I think
14:52 <@deen> someone should port the fix
14:57 <+bridge> [ddnet] <Jupstar ✪> we should just port to 0.7 :D:D:D
15:05 <+bridge> [ddnet] <archimede67> 😄
15:08 <+bridge> [ddnet] <jxsl13> let's port 0.7 to 0.6
15:08 <+bridge> [ddnet] <jxsl13> let's port 0.7 to 0.6.7
15:13 <+bridge> [ddnet] <lvl 99 Godfather> lets have 9999 ping again
15:13 <+bridge> [ddnet] <lvl 99 Godfather> not 1000
16:11 <+bridge> [ddnet] <mir> server don't shows my score after reconenct why?
16:11 <+bridge> [ddnet] <mir> there is no problem about save i can saw my score with /top5
16:34 <+bridge> [ddnet] <Learath2> I was pretty against porting to 0.7, but 0.7 seems to be getting constant 
                improvements and they don't seem to be hostile towards mods, maybe we should port sometime
16:41 <+bridge> [ddnet] <Jupstar ✪> yeah sometimes sound good
16:43 <+bridge> [ddnet] <archimede67> yeah
17:02 <@heinrich5991> also 0.7 has native 64 player support :)
17:02 <@deen> no physics problems for us?
17:03 <@deen> would be great to keep maps working
17:03 <@deen> and ranks same
17:03 <@deen> if that's ok, then I don't have anything against a port of DDNet to 0.7
17:03 <@deen> just sounds like a lot of work
17:07 <@deen> Would need to split it up into well-defined smaller tasks with some clear goals
edg-l commented 5 years ago
map things changed
u dont need to dilate
i guess that would break lot of maps
only looks tho
idk if physics changed
but i wouldnt start updating ddnet yet
it looks like they are still changing the protocol
ChillerDragon commented 5 years ago

I don't think physics changed but I encountered some mousesens issues -.- But a big yes for porting ddnet from my side.

As i mentioned many times already before trying to only update the networking code in the current code base. Or starting to rewrite it completly in 0.7 i suggest creating a very very simple version. Code a basic ddrace from scratch for 0.7 link it to the points system and create a few 0.7 server only with the maps that are supportet by the basic mod.

Then users can try 0.7 play on their favourite network and even collect points to their favoruite points system. Since 0.7 changed a lot stuff in the protocol and there were even rumors about 0.8 already I would chill with porting such a big project. But serving something basic to for users to test 0.7 and developers to test how to go on would be awesome imo.

duralakun commented 5 years ago

Instead split from tw. Make your own version, a mod friendly version that is compatible with 0.6 Why do you want to depend on the tw team? Much more people are using the ddnet client than the normal tw client. You can add all kinds of awsome features. Like moving tiles and client support for it.

If you stay with tw you will always be very restricted in the things you can do, and need to do a lot of work to keep up, which has nearly no benefits.

edg-l commented 5 years ago

Instead split from tw. Make your own version, a mod friendly version that is compatible with 0.6 Why do you want to depend on the tw team? Much more people are using the ddnet client than the normal tw client. You can add all kinds of awsome features. Like moving tiles and client support for it.

If you stay with tw you will always be very restricted in the things you can do, and need to do a lot of work to keep up, which has nearly no benefits.

I always tell this, but they seem to ignore it.

ChillerDragon commented 5 years ago

Instead split from tw. Make your own version, a mod friendly version that is compatible with 0.6 Why do you want to depend on the tw team? Much more people are using the ddnet client than the normal tw client. You can add all kinds of awsome features. Like moving tiles and client support for it.

If you stay with tw you will always be very restricted in the things you can do, and need to do a lot of work to keep up, which has nearly no benefits.

Teeworlds is pretty fine as it is. There are more than enough modding possiblity while keeping compability. It is really nice to have all tw mods/gametypes with one client and in one game. Moving tiles are also possible while keeping the vanilla compability.

EDIT: Also keep in mind that the playerbase is very small and a split would make it even worse.

duralakun commented 5 years ago

Teeworlds is pretty fine as it is. There are more than enough modding possiblity while keeping compability. It is really nice to have all tw mods/gametypes with one client and in one game. Moving tiles are also possible while keeping the vanilla compability.

EDIT: Also keep in mind that the playerbase is very small and a split would make it even worse.

But TW 0.7 is splitting players making all previous modes and maps incompatible. About the playerbase: It is decreasing over time, the only way to change this would be big improvements.

ChillerDragon commented 5 years ago

@duralakun why are maps incompatible? Didn't hear of that. And as far as i know modes should be portable as well. It is work surley but there are some motivated devs out there just waiting to reinvent the wheel. Many mods like city, fng, zCatch, DDrace and more are already in production or finished for 0.7. I think maps only need a formatter tool for doodads. It will take time to switch to 0.7 that is for sure. But it is the future. All new players coming from steam and teeworlds.com will start and stay with 0.7

Learath2 commented 5 years ago

DDRace was upgraded to thunk waay back, 0.7 is changed enough that I doubt it'd be a clean merge now.

I still maintain my position that not many people come from steam and teeworlds.com but I do think being on sync with vanilla has advantages. 0.7 seems to get constant development currently, we'd benefit from their changes with less hassle on our side to backport.

Either way the first order of business is to decide how to proceed and then make a proper plan. Both porting and a fork would take tremendous amounts of work and without a plan we'd quickly get lost. Especially given we have limited time to contribute.

duralakun commented 5 years ago

If you decide to port to 0.7 please make it so that the new client can join 0.6 and 0.7 servers. This would be awesome.

And as far as i know modes should be portable as well.

Not all modes can be ported. The 0.7 client doesnt allow skin updates while in game. This gives less options for gamemodes. Like infection type mods that require this function.

teoman002 commented 5 years ago

@Learath2 There has to be a list, which tells developers the following about 0.7:

That creates the basis of knowledge for the porting process.

It is sad, that the changelog of TW does not provide that information, so someone has to invest a lot of time to do that first. It's not just useful for one developer or DDnet, this "data base" will help everyone with their problems of how to port.

Are there already any volunteers for the porting process?

TeeSlayer commented 5 years ago

@duralakun From a user perspective, the server can only change the skins of others, but there are already discussions to fix that in 0.7.3. Currently the way to go for an infection modification is to simply use teams instead. I've ported Teetime's zCatch (2 public servers on 0.7) and made it so that I only send skin color updates to all players when necessary.

teoman002 commented 5 years ago

I used a tool called meld to find differences between 0.6.3 and 0.7.2.

I found out that that nearly everything from src/ was changed. This can be seen in DatabaseOfChangedFiles_063_to_072.txt

The zip file contains a database of all changed functions and variables from: src/game src/game/server src/game/server/entities

The following folders were not inspected by me but also have critical changes. src/base src/engine

PortTo072.zip

Learath2 commented 5 years ago

I don't think this really is a viable way of porting something of this size, what we end up with would be a mishmash. If we do port I'm very much for that coming with a proper rewrite.

def- commented 5 years ago

Alright, so I guess the way to go is to break compatibility with Vanilla 0.6 since it has become irrelevant now.