20-06-16, 11:27 | #1921 | |
Member
Joined: May 2010
Posts: 256
|
Quote:
|
|
20-06-16, 11:40 | #1922 | |
Member
Joined: Dec 2010
Posts: 2,773
|
Quote:
(opentomb/OpenTomb) Is a partially refactored version of the old engine. (TeslaRus/OpenTomb) is based off an old (opentomb/OpenTomb) commit before the code refactoring began. With new features and bug fixes. (stohrendorf/EdisonEngine) began as a continuation of (opentomb/OpenTomb) refactoring process (to allow development without disrupting the project). === (TeslaRus/OpenTomb) changes aren't in the master repo because the team split. Last I heard, TeslaRus wanted to review the old engine and see what really needed to be refactored. However, there was never an update as to which repository is being used for the team. Last edited by Gh0stBlade; 20-06-16 at 11:41. |
|
20-06-16, 11:57 | #1923 |
Member
Joined: Jul 2015
Posts: 145
|
Personally, I'd really like to see people helping TeslaRus, because the current state of the refactored "OpenTomb" repository feels like a failed experiment to me. Rename the master branch of the "official" repository to have a backup, grab TeslaRus' code, force-push it to the master, and get TeslaRus back on track. Let the Phoenix raise from the ashes, so to speak. I have my own little pet fork to play with
|
20-06-16, 16:10 | #1924 | ||||
Member
Joined: Jun 2015
Posts: 138
|
Quote:
Quote:
Quote:
Quote:
Last edited by vvsgh; 20-06-16 at 16:12. |
||||
20-06-16, 17:43 | #1925 | |
Member
Joined: Jul 2006
Posts: 380
|
Quote:
Master Opentomb branch was mainly developed by TeslaRus, he was doing most of the work, the source code using was plain "C" language; then new guys came into the project and starts contributing with some code, however these new guys said that the project would be so improved and benefical if code is switched from plain "C" to object oriented C++. TeslaRus was not comfortable with the idea but he have to accept the switch cos majority say c++ would be great. So master branch was refactored to C++ languaje, the source was broken for some time until finally it can compile and run again. However since then, seem these new guys have not done much in the main branch with the improved C++ code. TeslaRus opted to continue his main work in another branch with the original plain "C" source wich is the languaje he is comfortable to code; and cos he is the main developer the master branch looks abandoned now. I have the sense that the new guys expected TeslaRus continue doing the main work in C++ so they will add some code here and there...using the language they like most; however this dosent work like that; never accept drastic changes coming from new people which are enthusiastic when they joined the project, but after few months the enthusiastic is gone. |
|
20-06-16, 18:17 | #1926 | ||||
Member
Joined: Jun 2015
Posts: 138
|
Not exactly correct. It never was plain C. It was C++ mixed with C99.
I'd say from old C++ to C++11, eliminating C99. Quote:
Quote:
But it's true that no new development happened in the main since then. Quote:
Quote:
Also, I should add that most conflict was about breaking the build system and making it very difficult to build the project on non-Linux platforms. Last edited by vvsgh; 20-06-16 at 18:35. |
||||
20-06-16, 18:52 | #1927 |
Golden
Joined: Apr 2006
Posts: 16,751
|
C99 would have been great. It's actually closer to C89, what with declaring every variable at the start of the function. But every file is declared as a C++ file, generally for no apparent reason, which makes it technically whatever version of C++ the compiler defaults to (C++03 or higher). My guess is that this was to use the vt loader code, which was from a different open source project and had always been C++. So it's a bit confusing. And then there's things like the three-thousand-line switch statement from hell in anim_state_control.cpp, which still gives me nightmares. It's quite a fascinating sight to behold.
I don't mean to mock any of this; what TeslaRus did has been consistently amazing. But in terms of style, this is really not an easy codebase to get the hang of if you're not TeslaRus yourself. I'm not sure anyone's actually managed to understand all or most yet; my guess is Lwmte and stohrendorf might. Getting this thing cleaned up was and remains a very important effort. It's not that important whether it's C++ or C99 or whatever (but not Java. And I'm saying this as a professional Java developer), as long as it clearly separates concerns, splits things into their own files with clear interfaces, and gets rid of all the duplication in so many parts of the code. In retrospect, that's probably where we should have started, not with porting everything to "C++ style" and then trying to clean it up. But going with "really good C++" everywhere seemed like the "obvious" place to start. It certainly did to me; I started my own branch like that, but never finished or published it because I was too lazy. So I supported the effort to turn everything C++, and then became one of the developers who was for C++ but never did anything with the C++ code, because it hadn't solved any of the original problems, just introduced new ones (including merge conflicts and the whole build system thing). Sorry about that. Anyway: The language that TeslaRus works in is essentially C89, but run through a C++ compiler (so technically C++03) to get access to some C++ headers, and of course some of the standard extensions (the two slashes comment syntax). Last edited by Cochrane; 20-06-16 at 18:54. |
20-06-16, 19:25 | #1928 | ||||
Member
Joined: Jun 2015
Posts: 138
|
Quote:
Another reason is that nobody understands the mathematics which is required to work with that code base. Quote:
Quote:
Quote:
Actually every developer had his own reasons but everyone was embittered and lost incentives to work on the project. And Lwmte did a very good job to raise an interest by rapidly adding new features to scripts. |
||||
20-06-16, 20:23 | #1929 | ||
Member
Joined: Jan 2013
Posts: 195
|
Quote:
Quote:
From my side: expectation / reality: I expect more architecture / refactoring / renaming changes, but C++ features adding vas not a big architectural change, it vas C++ features adding; (Yes, architecture changes was expected from me. When I trying to do architecture changes it always prevent to merging conflicts (+I was too lazy to study how to correctly resolve that)). Yes, in some places I had create architecture and code, that I see now with bloody tears; In my repo I was trying to use SOLID principle (without fanaticism), encapsulation (I hide many thing inside modules, or private parts of classes), reduce dependencies + made some functions with a single responsibility principle and fix modules names and its content. In most of cases I did not use C++ features because I have no seen reason to use it (P.S. at work I use std::map, std::vector a.t.c...). |
||
20-06-16, 20:42 | #1930 |
Member
Joined: Jun 2015
Posts: 138
|
TeslaRus
So, to rephrase stohrendorf: what about moving your code to opentomb repository? You could continue hacking there instead of your own. That wouldn't constrain you in any way but it would allow others to contribute as well. We can rename current master, or it can be different branch. My personal opinion is that it would be a pity to lost current changes in master. But it's better than losing everything. |
Thread Tools | |
|
|