rtcwPro
catacomb_ii-64k
rtcwPro | catacomb_ii-64k | |
---|---|---|
1 | 1 | |
26 | 3 | |
- | - | |
8.2 | 10.0 | |
2 days ago | over 1 year ago | |
C | C | |
GNU General Public License v3.0 only | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
rtcwPro
-
Beach Invasion server with no bots?
there was RTCW community LAN in belgium last weekend https://www.rtcw.events/home these people play gathers daily. The rtcwpro is actively developed: https://github.com/rtcwmp-com/rtcwPro
catacomb_ii-64k
-
Emitting Safer Rust with C2Rust
Conditional to your definition of "serious", I did: https://github.com/64kramsystem/catacomb_ii-64k. I essentially don't do technical writing anymore (and I had the impression that this topic isn't generally considered interesting), however, my considerations are:
1. there are three levels of refactoring: removing the extensive (unbearable, to be honest) boilerplate that C2Rust introduces; converting the design from C to safe Rust; convert the design from unidiomatic Rust to idiomatic
2. as another poster pointed out, for non-trivial projects, writing refactoring tooling is a must (to remove the C2Rust boilerplate), in order to perform step 1
3. design refactoring (step 3) difficulty depends on the source code design; the code I worked with was hard to refactor, as it was old (school), in particular, lots of globals; the difficulty was not caused by the conversion C<>Rust, rather, the typical freedoms that C gives and Rust doesn't (in other words, the very obvious design differences between C and Rust)
4. regarding the code understanding, if one performs the translation in the three-steps mentioned in point 1, at the end of step 2, one has effectively a safe Rust codebase, "just" unidiomatic
5. beside a few steps, I was able to perform a conversion in self-contained steps, which is very good news for this type of work. Even better, it's possible (but that's a niche case) to port an SDL project by using at the same time the C library and the Rust one!
6. however, I can imagine projects like Wolfenstein 3d to be very hard, since it's hard to port memory allocators and similar
99. most important of all: just converting to Rust will quickly (even immediately) find bugs in the source; I've found approximately four bugs in the source code, including one by Carmack!
All in all, I find this tool great, but somebody needs to work on refactoring tools, and C2Rust's output must be improved in order to be found usable by the public.
What are some alternatives?
crispy-doom - Crispy Doom is a limit-removing enhanced-resolution Doom source port based on Chocolate Doom.
openjpeg - Official repository of the OpenJPEG project
doomretro - The classic, refined DOOM source port. For Windows PC.