View Single Post
Old 04-05-14, 11:28 AM   #53
GlobalExplorer
Admiral
 
Join Date: May 2005
Location: Berlin
Posts: 2,015
Downloads: 165
Uploads: 0
Default

I have to agree. After ca 5 years trying to figure out SH4 I think it is a non-deterministic mess. Of course the game has nice data driven structures that theoretically give the greatest flexibility in creating almost anything. The modder sees this, goes through the cfg files, models exactly after the blueprint of the original data, makes sure that everything is correctly referenced, loads up the game and expects to have made another breakthrough. Only to find out the game does not give damn. Possibly the data is already cached somewhere, variables got defined in multiple places, are just completely unused, etc.

I often wondered if SH4 is written in C++ at all or just plain ANSI C, and if the persons designing it learned coding before the advent of OO programming. Take for example, the crew files which are just an overcomplicated way of initializing an array, resulting from most primitive text readers (basically ReadPrivateProfileString in the WinAPI or something equivalent). Everyone who understands ini files knows that lists of elements require special features, and that the tricks used in SH3/SH4 are basically just the same hacks you might have used before discovering proper ways to do it.

Another example is the use of exception handlers, or lack of it. Have you noticed how often the application would result in a black screen, only because a single reference was wrong? Have you ever seen a window like "could not load data xy", with the application still working afterwards?? No? Me neither. My guess is that they simple left out exception handling, and rather made sure the data is hundred percent correct, completely forgetting the plight of others (us).

My feeling is that there could have been too little control over the programmers. They created a great program all the same, but several of the concepts seem ancient. This resulted in the onion layer strategy of programming, which becomes a real nightmare when too many layers are added by to many people, and makes everyone just yearn to start over eventually.

The minimal, incomplete and often confusing comments are no real help either. But this is not the problem. Logically organized files, with verbose names can be reverse engineered easily, but only if there was little or no confusion on the part of the programmers themselves. And if I look at the data in SH4 I think programmers were often as confused as us. But at least they could change the source code or scrutinize it to understand what needs to be done. We can't.

That all could be the reason lurker eventually gave up, that no one else has taken up the ATO side, and people are either staying with SHIII forever (which was a lot less confused), or moved on the other battlefield that is SHV. He did many incredibly feats with his mods, but Operation Monsun introduces some strange bugs that are not his fault, simply could not be tracked down. He may have simply trown in the towel when he realized that it cannot be made to work, at least not with normal human effort. When you have booted the game several hundred or thousand times to see if your mod works if you change X or Y or perhaps rather Z, only to be denied a complete, predictable result most of the time .. you will understand how he must have felt.

The only long term solution I see would be to clean up this game first. Someone should strip it down to a bare minimum so that mods can start with a basically empty game. A minimal modding platform. I always wanted to try this first, but the amount of work scares me, and the small achievement from it ..

Because it is sad, when SH4 is working it is imo the best of the three games. It has all the features and athmosphere of SHIII, plus better graphics, better weather, native resolution support, many new features and fast loading times through a much better organized campaign. If it just were not so damn unpredictable and glitchy ..
__________________


Last edited by GlobalExplorer; 04-05-14 at 11:48 AM.
GlobalExplorer is offline   Reply With Quote