736
edits
(adding engines with work-in-progress support) |
(Fixed typos, updated URLs.) |
||
Line 1: | Line 1: | ||
The ScummVM development team is contacted fairly regularly by users asking about how to create games to run within ScummVM. This HOWTO is a response to this Frequently Asked Question and covers writing a game for engines supported by ScummVM. | The ScummVM development team is contacted fairly regularly by users asking about how to create games to run within ScummVM. This HOWTO is a response to this Frequently Asked Question and covers writing a game for engines supported by ScummVM. | ||
Initial Points: | Initial Points: | ||
Line 7: | Line 7: | ||
* However, if fans of point and click games are motivated to create new games for ScummVM, this is something which we don't want to discourage. | * However, if fans of point and click games are motivated to create new games for ScummVM, this is something which we don't want to discourage. | ||
** Note "new" in the above. Writing a game based on existing characters or story, a sequel or prequel to a supported game without permission from the rights holder can cause legal issues and should be avoided.<br> See [http://en.wikipedia.org/wiki/Fan_fiction#Legality Fan Fiction(Legality)] which has very similar issues.<br> The team may offer some advice if asked, but this should not be considered as binding legal opinion (We Are Not Lawyers).<br> | ** Note "new" in the above. Writing a game based on existing characters or story, a sequel or prequel to a supported game without permission from the rights holder can cause legal issues and should be avoided.<br> See [http://en.wikipedia.org/wiki/Fan_fiction#Legality Fan Fiction (Legality)] which has very similar issues.<br> The team may offer some advice if asked, but this should not be considered as binding legal opinion (We Are Not Lawyers).<br> | ||
** Also, we highly discourage writing fangames for the SCUMM engine. As is indicated by the preceding fan-fiction link, LucasArts Legal have a history of pursuing any unauthorised use of their characters, stories etc. by fans. | ** Also, we highly discourage writing fangames for the SCUMM engine. As is indicated by the preceding fan-fiction link, LucasArts Legal have a history of pursuing any unauthorised use of their characters, stories etc. by fans. | ||
** Especially | ** Especially reusing any significant amount of artwork, animation, sound or music extracted (even with modifications) from an existing game (without permission from the rights holder) is likely to cause issues. This should be noted as it applies to most of the (fan)games which have been released as freeware, unless their README/LICENSE states otherwise (Public Domain, derivative works allowed etc.). | ||
There are two ways to do this with ScummVM:<br> | There are two ways to do this with ScummVM:<br> | ||
1. Code a new game engine targeted to ScummVM OSystem, then write a game targeted for this engine. | 1. Code a new game engine targeted to ScummVM OSystem, then write a game targeted for this engine. | ||
: This is not recommended.<br>It does allow complete flexibility of design, but it doubles the workload as the engine and game will both need developing in parallel. It also means that your game will not run with the standard ScummVM release binaries.<br> However, if your engine is complete and the game is finished, then you should approach the ScummVM team about adding the stable engine to the main source code tree to allow ongoing support.<br>This has occurred with at least one engine so far: [[Sword25]]<br>Otherwise, you will personally need to distribute a modified ScummVM with your engine code added. This has the side effect of requiring your engine code to be released under the same license as ScummVM i.e. GPL, though this does not affect your rights to your game data i.e. that is not GPL, so you can still sell your game if desired. | : This is not recommended.<br>It does allow complete flexibility of design, but it doubles the workload as the engine and game will both need developing in parallel. It also means that your game will not run with the standard ScummVM release binaries.<br> However, if your engine is complete and the game is finished, then you should approach the ScummVM team about adding the stable engine to the main source code tree to allow ongoing support.<br>This has occurred with at least one engine so far: [[Sword25]].<br>Otherwise, you will personally need to distribute a modified ScummVM with your engine code added. This has the side effect of requiring your engine code to be released under the same license as ScummVM i.e. GPL, though this does not affect your rights to your game data i.e. that is not GPL, so you can still sell your game if desired. | ||
2. Write a game targeted for an existing engine. | 2. Write a game targeted for an existing engine. | ||
: This is recommended, however:<br> Only a few of the engines have publicly available authoring tools.<br>Developing for any other engine would require the author to develop their own tools, which is not a trivial task as a full understanding or specification for the engine would be needed.<br>This approach has the advantage that it will work with the standard | : This is recommended, however:<br> Only a few of the engines have publicly available authoring tools.<br>Developing for any other engine would require the author to develop their own tools, which is not a trivial task as a full understanding or specification for the engine would be needed.<br>This approach has the advantage that it will work with the standard ScummVM release binaries with no issues around developing or adding new engine code. The engines which are known to support authoring tools and thus currently have a number of "fangames" also have detectors which will detect and add entries for unknown games, though upon game completion contacting the ScummVM team will allow a full detection entry to be added of the stable final version. | ||
== Point and Click Engines with Publicly Available Authoring Tools == | == Point and Click Engines with Publicly Available Authoring Tools == | ||
* Engines supported by ScummVM | * Engines supported by ScummVM | ||
** [[AGI]]: [[AGI/Development]] , [[AGI/Fan_Games]], [ | ** [[AGI]]: [[AGI/Development]], [[AGI/Fan_Games]], [https://forums.scummvm.org/viewforum.php?f=19 AGI/SCI Fangame Creation (Forum)] | ||
** [[SCI]]: [[SCI/Development]] , [[SCI/Fan_Games]], [ | ** [[SCI]]: [[SCI/Development]], [[SCI/Fan_Games]], [https://forums.scummvm.org/viewforum.php?f=19 AGI/SCI Fangame Creation (Forum)] | ||
** [[SCUMM]]: [[SCUMM/Fan_Games]], [https://github.com/AlbanBedel/scummc/wiki ScummC] [ | ** [[SCUMM]]: [[SCUMM/Fan_Games]], [https://github.com/AlbanBedel/scummc/wiki ScummC] [https://code.google.com/p/scummgen/ ScummGEN] | ||
** [[Wintermute]]: [[Wintermute/Development]], [http://dead-code.org Wintermute Engine Development Kit] | ** [[Wintermute]]: [[Wintermute/Development]], [http://dead-code.org Wintermute Engine Development Kit] | ||
* Engines with work-in-progress support in the ScummVM Git repository | * Engines with work-in-progress support in the ScummVM Git repository | ||
** [[SLUDGE]]: [[SLUDGE/Development]], [ | ** [[SLUDGE]]: [[SLUDGE/Development]], [https://opensludge.github.io/ SLUDGE Development Kit] | ||
** [[WAGE]]: [[WAGE/Development]], [ | ** [[WAGE]]: [[WAGE/Development]], [https://en.wikipedia.org/wiki/World_Builder World Builder] | ||
* Non-ScummVM | * Non-ScummVM game engines | ||
** [ | ** [https://en.wikipedia.org/wiki/Adventure_Game_Studio AGS (Adventure Game Studio)] | ||
** [https://godotengine.org/ Godot], for example with the [https://godotengine.org/article/our-point-click-framework-finally-out Escoria framework] | ** [https://godotengine.org/ Godot], for example with the [https://godotengine.org/article/our-point-click-framework-finally-out Escoria framework] | ||
== Game Creation Tips == | == Game Creation Tips == | ||
Creating a game is closer to writing than programming, though both skills are required. For a good game, the characters, story and dialogue should come first. It is suggested to write the game in a text adventure system such as [ | Creating a game is closer to writing than programming, though both skills are required. For a good game, the characters, story and dialogue should come first. It is suggested to write the game in a text adventure system such as [https://en.wikipedia.org/wiki/Inform Inform (Z Machine, Glulx)] as a prototype, '''before''' you commit to drawing artwork and creating game scripts for the graphical point and click version. Since point and click interfaces are basically implicit "Verb-Noun" interface i.e. (Open) (Door), this should map fairly easily. | ||
should map fairly easily. |
edits