I am seeking help programming a component of a game project. The game is called "Fimbulvetr: War of the Great Winter", combines aspects of the real-time strategy and fighting genres, and is primarily played by exactly two players over a network connection.
A demonstration video of the game can be seen here: [login to view URL]
The video does not describe the project or the game very well, and the commentary assumes some prior knowledge of it. Nevertheless, it is the best overall look of the game as it stands presently.
As seen in the video, netplay exists presently, but it uses a simplistic peer-based TCP/IP system designed by myself that is completely unoptimized. The speeds shown in the video are only obtainable on a LAN, and play over the Internet, while free of dropped packets, run horrendously slow.
The program is written almost exclusively in Python - it is preferred, but not required, that the section of code in question be coded in Python as well. It is possible to write the section of code in question in a different language, such as C++ or Java, and allow it to interface with the Python code. It will likely be necessary to understand and work with the pre-existing codeset, of which I will offer assistance as needed to the best of my ability.
Both speed and accuracy, often opposing forces, are a must in this system. The ideal netplay will allow for both minimalized lag (or appearance of lag) and guaranteed accurate gamestates, and may use common modern approaches such as requiring a server that hosts games, prediction and rollback, and others. Popular commercial products that have achieved excellence in this area include Capcom's Ultimate Marvel vs. Capcom 3, Street Fighter x Tekken, Marvel vs Capcom Origins. Although success of this level is not expected, these can be a good place to look for ideas.
The netplay may also work differently for several different areas of the game. Both a "Map Mode" and a "Battle Mode" exist within the game, and may behave differently. Other networked areas like the initial connection, the pre-game setup, and the after-game scoreboard may also require varying implementations. More advanced features, such as server-stored accounts and a matchmaking service, are not part of the original design, but may be expanded to include if you believe you can handle it.
I intend to work closely with the programmer through e-mail, chat services such as Skype, or telephone in order to help them understand the pre-existing codebase and express my vision of the project in more detail.