Replies: 4 comments
-
Hello @gab , I totally agree with you. Alliances was a highly requested feature also for M.A.X. 2 which was delivered several months after the initial release of the 2nd game in the last v1.4 patch by the developers but at that time the dedicated servers were already empty and not much later the game was abandoned by Interplay. Playing against the AI, a much more sophisticated AI, with a team would be incredibly fun. I also want to see it happen. Changing the architecture will become possible only after most of the game modules got reengineered. Architecturally the network code of M.A.X. 1 is not fit for Internet play and alliances are also not supported by the AI, but none of that matters, these changes could be made as soon as we have a working baseline. Adding more players will also not be difficult with a more flexible GUI that can visualize more players than four. The only bad news is that all this is years away considering the amount of research that is required to rewrite the complex C++ class hierarchies of the game. By the way it is quite interesting that the AI modules of M.A.X. 2 and the platform library used by M.A.X. 2 is basically the same one that M.A.X. 1 had. It is already confirmed by Interplay that the M.A.X. 1 source code is lost, but there is no information about M.A.X. 2. Who knows, maybe we will get lucky and the research could be done faster. |
Beta Was this translation helpful? Give feedback.
-
Sounds good! "Years away" is a bit disheartening, but we've waited up to now, what's a few more years :P . |
Beta Was this translation helpful? Give feedback.
-
I look into existing sources of design and solutions of course. But now that most if not all game specific formats and format parsers are known, even though color animations is a gray zone still, the true challenge is to understand the game logic itself which is very specific to the way the game organizes data which goes along with the original software architecture. E.g. to understand the AI we have to understand first what data the AI processes. The other still running projects took the liberty to create their own architectures and try to mimic the game aspects that are observable and whenever they see fit they even change aspects of the game design and the way they use game data. The AI is something they cannot easily observe even if the game has disabled, but built in logging services for the AI task manager component. Any ways coming back to the format parsing, MAX:R in particular uses an MVE decoder that has a copy left GNU GPL 3 license which is not compatible with this project's MIT license and the original decoder differs architecturally from all the copycats. I know about five different decoders, all of them have copy left licenses. But the video decoding algorithms are well documented in articles as well, I am not afraid of this topic and videos already render well for x86 targets any ways except for audio for which I also found integration examples, although quite sloppy ones. Another interesting aspect is that none of the existing decoders support the original solution's frame dropping, audio synchronization or closed caption rendering features which is sad. I want these useful features in. Captions would be especially useful for languages that were not supported by the original game. When I forecast years of work to come I refer to the C++ part of the game actually which is simply time consuming to understand and replicate. M.A.X. has 5704 functions. Out of that about 1700 functions are system and platform libraries that are already sufficiently understood or even fully replicated. The rest of the functions, the majority of them, are polymorphic C++ class hierarchies and those implement most of the actual game specific features. From the ~4000 C++ functions only about 1500 are partly or fully understood and way less is reimplemented as on this architectural level everything is tightly coupled to the rest of the subsystems. The sound manager was the last C++ class which was somewhat independent from all the rest. I am in constant search for resources that might aid the engineering work, but even if I can find relevant people most of them ignore my pleas. Some even promise to help, but then again most of them just forget their promises a moment later. I can understand them though, life goes on... M.A.X. is just history and M.A.X. 2 is probably a very bad memory nobody likes to remember. Even though M.A.X. 2 has now the biggest potential. Did you know that M.A.X. 2 had a closed beta test? There were 831 beta testers. The early beta builds had top to down rendered units in 16-bit color and probably those builds had debug services that later builds did not have. I want to get my hands on such an early beta build. |
Beta Was this translation helpful? Give feedback.
-
Thanks for all the details, great writeup. I have to revisit MAX 2 at some point to see if it was that bad (besides the bugs of course). |
Beta Was this translation helpful? Give feedback.
-
I used to play hotseat games in coop vs AI with my buddies. Now that we're spread out geographically we'd like to do it through the internet for nostalgia's sake, but M.A.X. doesn't support adding AI players to network games.
I'm thinking that perhaps, since you're rewriting whole swathes of the code anyways, allowing this in some basic form wouldn't be a big hassle (even if say, you have to parameterize the game through a config file or command line arguments to avoid having to modify the GUI).
Along the same lines, unless there's some hard technical limitation, it would be nice to uncap the number of players so we can play 4 humans vs 4 AI, and so on.
Good luck with your project, it's always nice to see more love for M.A.X !
Beta Was this translation helpful? Give feedback.
All reactions