I am a hobbyist game developer currently involved in the development of a free and open source game engine. As the engine and it's first game are nearing completion, I'm planning to reuse this engine to remake a classic 1980's computer game. Of course, I will not be copying any assets or code from the original game.
The first half of this project will require the development of some additional C++ engine plugin modules to represent the elements of the game - simple objects such as moving platforms, enemies, terrain, etc. as well as modules to generate simple assets such as textures, sprites, etc. All assets of the game are sufficiently simple that I don't need to load them from external files.
I believe that these C++ modules can be designed and constructed in a generic reusable way that does not imply any relationship to the remake that I will be using them in. For this reason, I strongly believe that the C++ code on its own cannot lead to any risks of infringement.
The second half of this project will require that I use my engine tools to load the C++ modules and instantiate objects from them into a configuration that mimics the mechanics, layout, rules, assets, etc. of the game that I want to remake. The resulting deliverable of this work will be an XML file that can be read by my game engine in order to generate and run the final game.
This is where things become murky. It's hard for me to see how either half - the C++ code and the XML project file - can be infringing on its own. As stated already, I'm certain that the C++ modules will be too generic to be infringing.
The XML file may be a little more questionable. Technically, it will represent a description of the game, but will be written in a custom format that is only understood by my engine and the required plugin modules. The XML file is therefore meaningless outside the context of my engine and the modules that interpret its contents into a playable game.
As such, it seems to me that only a combination package of both the engine containing the necessary C++ modules and the game XML file together can possibly be deemed to be infringing.
So here are my questions:
At what point exactly does infringement occur?
Assuming that neither half can infringe on its own, can I distribute the engine and the game XML as two separate non-infringing packages?
Assuming this isn't possible, can I distribute the XML without explicitly stating it's intention to be used in conjunction with the game engine and let users figure it out for themselves?
In the case scenario above, can I give the XML file a custom file extension that also happens by co-incidence to be associated with the engine executable, making it easy for players to run simply by double clicking the game XML file? Would this change the situation?
In case this would still considered an infringement, then where is the line drawn?
If I create an XML file that mimics the game mechanics, but using different sprites, textures, sounds and map layout, is the project still an infringement? How about just using a different map layout?
It may be worth mentioning that the engine is distributed with the same editing tools that I use to build the game XML file and is designed to facilitate and encourage user generated content.
As a consequence, this means that players can build their own map layouts based on existing project mechanics or even create games themselves from scratch.
Assuming I can safely include a project with matching mechanics of the game but not with the same map layout, then it will be fairly trivial for any user to rebuild the original map layout of the game in question using my project as a basis. Would the inclusion of this capability make the infringement problem any more difficult to deal with?
I haven't found much information pertaining to remakes composed of multiple dependent parts, so any advice on this would be much appreciated.