ElOscuro, a Rise of the Triad fork

ElOscuro, a Rise of the Triad fork

Postby grrk-bzzt » 05 Feb 2014, 21:39

Image

Hello everyone,

A few month ago I started a fork of "Rise of the Triad... for Linux!" named ElOscuro.
Rise of the Triad: Dark War is an old FPS made by Apogee Software. The engine is based on Wolfenstein 3D's source code.
If you never heard of that video game, please go see this review by LazyGameReviews!

The goal I have in mind is to apply Yamagi Quake II's philosophy to the Rise of the Triad source code, which includes having a very clean, modern and understandable codebase, fixing bugs, refactoring ugly code and leave the gameplay untouched.

While some of you may feel this is a very boring project, it's actually quite interesting to dig into 20yrs old C code and see what can be easily improved or fixed.

Unfortunately, I've been running this project all alone for a few month and I'm getting bored of it.
Therefore, if you are C programmer, even if you're not very talented, I invite you to take a look at the source code and (why not) participate to the project.
Any commit will be appreciated.

ElOscuro is also looking for ideas and suggestions from you. Don't hesitate to post anything that comes accross your mind here.

The project is hosted at GitHub:
https://github.com/grrk-bzzt/ElOscuro

:!: Important information
ElOscuro only work with the Site Licence version or Rise of the Triad. The Shareware version or any other version is not and won't be supported.
You can buy a Site Licence copy of Rise of the Triad at GOG.com for $6.
http://www.gog.com/game/rise_of_the_triad__dark_war
Last edited by grrk-bzzt on 06 Feb 2014, 11:22, edited 1 time in total.
User avatar
grrk-bzzt
 
Posts: 23
Joined: 05 Feb 2014, 19:52

Re: ElOscuro, a Rise of the Triad fork

Postby c_xong » 06 Feb 2014, 05:09

grrk-bzzt {l Wrote}:it's actually quite interesting to dig into 20yrs old C code and see what can be easily improved or fixed.

Hey, that's me! ;) (I've been doing the same with C-Dogs in the past year.)

A lot of the coding practices seem quite quaint by today's standards - global variables everywhere, very weak sense of modules, lookup tables, manual blitting, palettes etc.

Good luck. What changes have you made so far?
User avatar
c_xong
 
Posts: 234
Joined: 06 Sep 2013, 04:33

Re: ElOscuro, a Rise of the Triad fork

Postby grrk-bzzt » 06 Feb 2014, 11:16

c_xong {l Wrote}:A lot of the coding practices seem quite quaint by today's standards - global variables everywhere, very weak sense of modules, lookup tables, manual blitting, palettes etc.


You nailed it.

c_xong {l Wrote}:Good luck. What changes have you made so far?


I've been fixing warnings mostly, still some of the warning would need a lot more work than just casting variables.
My greatest achievement so far was to replace a function translated from ASM to C by a function from the libmath.

Rise of the Triad uses square root to calculate the display of some characters on screen.
But back in 1994, not all computer had an FPU and using floats was apparently having a big impact on performances.
Therefore they coded a function by hand in assembly which give the square root of a number times 256 and cast it into an int.
As you guessed, I replaced it by (int)(sqrt(x) * 256);

I also removed a lot of useless and commented code, but there's a lot more to remove.
User avatar
grrk-bzzt
 
Posts: 23
Joined: 05 Feb 2014, 19:52

Re: ElOscuro, a Rise of the Triad fork

Postby c_xong » 25 Mar 2014, 11:52

Hmm, why did you delete your repo?

Anyway I managed to make a fork before it died, it's here for anyone interested: https://github.com/cxong/ElOscuro
User avatar
c_xong
 
Posts: 234
Joined: 06 Sep 2013, 04:33

Re: ElOscuro, a Rise of the Triad fork

Postby grrk-bzzt » 21 Apr 2014, 21:51

Wow! I'm very surprised you were interested about it.

I got depressed a few weeks ago and I thought it wasn't worth it because no one seemed to give a shit about my project.
I made a backup and deleted the repo.

A few days ago I thought I should just restard from scratch and work differently on ElOscuro, that is forgetting about the coding style dans focus solely on fixing warnings for instance.

The goal of ElOscuro is to have the same quality as Yamagi Quake 2. That is a clean, modern and portable code.

So you can delete your fork and start working on the new one. I'll be very happy to review you commits.
User avatar
grrk-bzzt
 
Posts: 23
Joined: 05 Feb 2014, 19:52

Who is online

Users browsing this forum: No registered users and 1 guest

cron