Open main menu

Difference between revisions of "HOWTO-Engine Inclusion"

Grammar and added requirement about the linear history.
(Clarify ScummVM scope)
(Grammar and added requirement about the linear history.)
Line 15: Line 15:
* Your code should reflect the fact that you know our Coding Conventions and have tried to implement them in your code. If you have questions about specifics, you are free to ask us.
* Your code should reflect the fact that you know our Coding Conventions and have tried to implement them in your code. If you have questions about specifics, you are free to ask us.
* Your engine needs to be on github.
* Your engine needs to be on github.
* The git history of your engine is linear and based on tip of the ScummVM master.
* The engine development history should not change/add common code and/or modify backend related code, without discussing it with us first.
* The engine development history should not change/add common code and/or modify backend related code, without discussing it with us first.
* Your code compiles with g++.
* Your code compiles with g++, C++11.


Furthermore we require a bit more from you, which isn't basic anymore:
Furthermore, we require a bit more from you, which isn't basic anymore:


* You will be becoming the maintainer for the engine. That gives you the possibility to work on your engine in our master development branch. But it also comes with responsibilities. You should be able to spend some time handling incoming bugs for your engine, especially in release phases. Furthermore we need you to be contactable, so we can discuss issues in your engine or backend/middleware changes with you, so either we or you can adapt your engine to these.
* You will be becoming the maintainer for the engine. That gives you the possibility to work on your engine in our master development branch. But it also comes with responsibilities. You should be able to spend some time handling incoming bugs for your engine, especially in release phases. Furthermore, we need you to be contactable, so we can discuss issues in your engine or backend/middleware changes with you, so either we or you can adapt your engine to these.
* Your code needs to be in a maintainable state. It should be written in such a way that we (as C++ coders) can maintain/port/fix the input/graphics/sound code, and that we can at least understand the game logic (i.e. not too many unknown fields, commented where necessary, not depending on asm files or an IDB or etc to be readable)
* Your code needs to be in a maintainable state. It should be written in such a way that we (as C++ coders) can maintain/port/fix the input/graphics/sound code and that we can at least understand the game logic (i.e. not too many unknown fields, comments where necessary, not depending on asm files or an IDB or etc to be readable)
* The game supported by your engine needs to be completable on at least i386/amd64. You need to have time to adapt your code so it will work on as much platforms as we support (and is feasible) OR help our porters or other developers with it.
* The game supported by your engine needs to be completable or close to completion on at least x86/amd64. You need to have time to adapt your code so it will work on as many platforms as we support (and is feasible) OR help our porters or other developers with it.
* Your engine needs to be in a state that we can easily include it in the next release - or, at latest, in the one afterwards.
* Your engine needs to be in a state that we can easily include in the next release - or, at the latest, in the one afterwards.


==How you ask for inclusion in ScummVM==
==How you ask for inclusion in ScummVM==