Guild icon
Teeworlds
discord.gg/teeworlds / development
For discussions around the development of the official Teeworlds
Between 2025-10-04 00:00 and 2025-10-05 00:00
Avatar
Tommy tomorrow 2025-10-04 07:22
Hi! Is there a specific thread i could ask a question as a fan of the game?
07:22
Or is this it?
07:26
Its about the development. I was just. Wondering if there was development for teeworlds to be capable to play on iphone.
Avatar
Avatar
Tommy tomorrow
Its about the development. I was just. Wondering if there was development for teeworlds to be capable to play on iphone.
there is currently no active development of Teeworlds. Even the pretty actively developed fork DDNet has no plans of introducing iOS as a platform, as far as I know. So you can be close to 100% certain that there will be no iOS version in the forseeable future. You might follow DDNet https://ddnet.org/discord as there is a slightly higher chance of an iOS version, but it's still close to 0%.
Check out the DDraceNetwork community on Discord - hang out with 26659 other members and enjoy free voice and text chat.
Avatar
GitHub BOT 2025-10-04 10:13
This helps admin config their servers more easily. New RCON Commands: # Adds a map to the specified rotation group. If the group does not exist, it will be automatically created. add_maprotation s[group] r[map] # Activates the specified map rotation group. If the group does not exist, an error message is returned. active_maprotation_group s[group] Remove this: sv_maprotation Implementation Notes: A hash table is required in the base system to efficiently manage map rotatio...
Avatar
Avatar
Tommy tomorrow
Its about the development. I was just. Wondering if there was development for teeworlds to be capable to play on iphone.
we don't have any plans for this, no. like jxsl said, I don't know of any forks with plans for it
Avatar
we had once a playable Android teeworld version if I remember
Avatar
I don't think there will be an open-source fork that covers the Apple Developer Program fee.
10:46
(as it costs at least $99/year)
10:47
And I think we don't have many players who need to play on iOS either.
Avatar
the fee is not the main problem.
Avatar
That wouldn't be impossible to cover with donations, but you also need Apple hardware to begin with
Avatar
Avatar
visitOP
we had once a playable Android teeworld version if I remember
I remember playing it!
10:48
Around... 10 years ago
Avatar
Mac mini, e.g. M2 is the cheapest development hardware, for anyone playing with the thought.
Avatar
Avatar
visitOP
we had once a playable Android teeworld version if I remember
You can play Teeworlds on Android with the DDNet client
Avatar
We can also play teeworlds 0.7 on Android by using DDNet-based client.
11:03
Hm.
11:03
I wonder if there is a plan for teeworlds to use HTTP mastersrv like DDNet? (edited)
Avatar
there was one just after 0.7.0 yes
11:04
heinrich was working on it but never ended up finishing it
11:11
My fork of teeworlds - if you're looking for something specific I already created, pm me, I usually keep stuff. - GitHub - heinrich5991/teeworlds at http_master7
11:11
Does it refer to this?
Avatar
Probably, but that looks really outdated or is only a proof of concept, as it doesn't appear to use curl. I think it would be easier to start over if you wanted to port the HTTP masterserver support from DDNet: 1. Mostly copy the HTTP engine component and libcurl integration 2. Add server registering via HTTP 3. Add serverlist fetching via HTTP
Avatar
I have implemented your suggestion in my fork, but it results in a mix of C-style and C++ STL code. I tried to make it more C-like, but some C++ STL elements have remained.
11:24
I don't know that could we use C++ 11 features in the teeworlds, so I was worried about that.
Avatar
Teeworlds should just use the STL types as well
👎 1
Avatar
Oops
11:26
I didn't express that clearly.
11:28
🤔
11:29
What I meant was something like this.
11:29
Hm
11:30
I don't know why I can't upload this screenshot
11:30
auto &pRequest = *apNewRequests.begin();
11:30
(So that is the code line in the screenshot.)
11:32
I didn't find any C++ features like this using in the teeworlds
Avatar
Teeworlds is written with a very OOP light mindset
11:32
use abstractions sparingly
11:33
it reduces overhead and makes it more legible
Avatar
That doesn't mean that new code has to reinvent the wheel and be harder to maintain. I don't mean that all old code should be rewritten.
Avatar
agreed. I don't think things should be rewritten with the usual modern C++ fluff just because
11:34
the STL (or boost for the matter) is a massive overhead and should be used sparingly
Avatar
Avatar
Bamcane
auto &pRequest = *apNewRequests.begin();
I don't understand the issue here. The DDNet code uses std::deque<std::shared_ptr<CHttpRequest>> m_PendingRequests which clearly describes what it is and handles the memory management for you.
Avatar
Avatar
Dune
the STL (or boost for the matter) is a massive overhead and should be used sparingly
In many cases it's not an overhead. I assume those implementing the standard took great care to implement them. There's a difference between performance critical code like gameplay and less important code like HTTP requests or editor file browsers. Having an std::vector<CSomeListItem> is definitely better than writing the same abstraction yourself.
Avatar
I couldn't upload any file for some reasons.
11:37
array<CHttpRequest *> apNewRequests; apNewRequests.clear(); m_pLock->take(); apNewRequests = std::move(m_PendingRequests); m_PendingRequests.clear(); m_pLock->release(); // Process pending requests while(apNewRequests.size() > 0) { auto &pRequest = *apNewRequests.begin(); m_pLock->release();
Avatar
yes, in some cases it is clearly the better option
Avatar
But this is the full code like.
Avatar
Avatar
Bamcane
array<CHttpRequest *> apNewRequests; apNewRequests.clear(); m_pLock->take(); apNewRequests = std::move(m_PendingRequests); m_PendingRequests.clear(); m_pLock->release(); // Process pending requests while(apNewRequests.size() > 0) { auto &pRequest = *apNewRequests.begin(); m_pLock->release();
I'd just use std::vector or std::deque here. I think Teeworlds array type is the same thing but worse, so it should be phased out. (edited)
Avatar
see the Teeworlds code base as C with some added C++ stuff for convenience, that's how it was written
Avatar
I think so.
Avatar
Avatar
Bamcane
array<CHttpRequest *> apNewRequests; apNewRequests.clear(); m_pLock->take(); apNewRequests = std::move(m_PendingRequests); m_PendingRequests.clear(); m_pLock->release(); // Process pending requests while(apNewRequests.size() > 0) { auto &pRequest = *apNewRequests.begin(); m_pLock->release();
The auto can be avoided if that's not Teeworlds style. Sending code as text is better anyway 🙂
11:41
Either you didn't implement the std::move correctly, or the m_PendingRequests.clear() should be unnecessary
Avatar
I found that seems I can remove the std::move
Avatar
Then you copy the entire array
11:43
If this was a properly implemented container then you could move the contents with very little cost (edited)
Avatar
Hm.
11:45
🤔
Avatar
isn't ddnet master server written in rust?
Avatar
The master server is, but the C++ client uses libcurl to communicate with it
Avatar
right, I confused myself... I have a related question, if I remember correctly in the past was discussed about the capability of downloading the map necessary to join a game from a third location (for example a cdn) instead of from the server is going to connect for play
19:29
another use case for libcurl. Does ddnet already allow to host maps somewhere else on the internet? (edited)
Avatar
Yes, maps on DDNet servers are downloaded from https://maps.ddnet.org/
👍 1
Avatar
heinrich5991 2025-10-04 20:06
also, ddnet allows game servers to specify a HTTPS URL where the map can be downloaded
👍 1
Exported 68 message(s)
Timezone: UTC+0