orc wrote:Hey krugman good luck with your project!
I do not have a lot of experience with development in any field, but if you want a non-invasive multiplayer addon, what if you created mod loader of some sort which will disable the single-player characteristics and loads ones that will not restrict co-op gameplay?
At this point, unless I learn something new that will change my mind, I am planning on creating new multiplayer classes that inherit and override the regular OpenMW classes. That way I am not changing any of the OpenMW source code, but just extending current functionality.
While I am here, here's an update thus far. Last week I spent the entire weekend getting everything set up. I have Linux,Windows and Mac OS to test on but I am going to be doing all of the development in Ubuntu. I would like to eventually get the source successfully compiling on Windows so I can debug over there if I so choose, but it's not a top priority right now.
I have the osg branch compiling on my Ubuntu now. I have zero experience with the libraries used in OpenMW and I haven't used C++ for about 5 years so I have a little bit of a curve to overcome before I really start moving fast with this. I have already begun adding a little bit of GUI to create a separate multiplayer interface, and have begin developing the ENet sandbox applications. According to the list below I am just getting going on phase 1 of this little project. I will describe in detail all of the phases of development below.
Phases are separated out based on how they affect the the OMW engine. I see that as outside of the engine, the visual part of the engine and finally the Morrowind specific in-game mechanics.
Phase 1:Non OMW Testing - External sandbox applications are developed to test MP features what will be eventually added to OMW.
Phase 2: Partial OMW Network Intigration - Features will begin being added to OMW and functionality of the features in OMW will be tested against already build and tested external sandbox applications. This phase includes the minimal amount of GUI and non networking related modification to test MP features.
Phase 3:Full OMW Network Intigration - All networking based features will be implemented into OMW and all features will be tested against other OMW instances.
Phase 4:In Game Modification - This is the last phase with could be broken down into a lot of smaller phases but this will include any changes required for the game to operate successfully with having more than 1 main player. This itself will be implemented in phases such as simply getting multiple character models in the same instance, handling character to character and character to NPC interaction, saved games, mods, etc. At this point this phase is not really on my radar at all. We will cross this bridge when we get here
My action steps moving forward are as follows...
Phase 1:Non OMW Testing
- Create a simple ENet client connection to an ENet server using console application that implements full functionality that will be seen in OpenMW implementation
Phase 2: Partial OMW Network Intigration
- Add server functionality into a single player M1orrowind game
- Connect ENet client console application to Morrowind Server and send all Morrowind in-game activity to client console application.
- Connect multiple ENet console clients to ENet OpenMW Server, send information to all peers and have peers send information back to the host, ensure events are triggering on both ends and information is transferring correctly
Phase 3:Full OMW Network Intigration
- Begin inheriting and overriding MW classes to introduce a mutliplayer game instance that supports multiplayer client/server functionality.
- Test OpenMW client to OpenMW server connetivity. All clients will simply be viewing the hosts player as a passive client.
- Finish gui's for launching a multiplayer instance and joining another players multiplayer instance
Phase 4... we'll cross that bridge when we get there