Comments (4)
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.
from max.
Sounds good! "Years away" is a bit disheartening, but we've waited up to now, what's a few more years :P .
Don't forget to get help from other active M.A.X. projects like MAX Reloaded and MAX Touch for peripheral stuff like decoding the game's video format (I believe maxr in particular got that specific part down) - I guess you like the reverse engineering challenge, but on the other hand it could save you months of work.
from max.
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.
from max.
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).
from max.
Related Issues (12)
- [Bug] Keyboard modifiers stick HOT 1
- Demo support? HOT 4
- [Bug] HOT 7
- [Bug] fade to black when pressing the files button to save HOT 84
- 4k doesn't work [Bug] HOT 9
- Use the SR framework for binary recompilation and SDL support HOT 1
- Mechanized Assault & eXploration Reloaded HOT 1
- Link dead HOT 4
- [Bug] Moving mouse pointer to close to border leaves the game HOT 5
- [Appreciation] Amazing job! HOT 1
- MAX Community HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from max.