1,079
edits
m (→Many tasks with AGI engine: -- fix df's nick) |
|||
Line 26: | Line 26: | ||
Besides this, optimizing code for speed and memory usage benefits all our targets, and in particular these "small devices". Hence doing this is a worthy goal on its own. | Besides this, optimizing code for speed and memory usage benefits all our targets, and in particular these "small devices". Hence doing this is a worthy goal on its own. | ||
== | == Enhance FilesystemNode system == | ||
''Technical Contact'': [[User:Fingolfin|Max Horn]] | ''Technical Contact'': [[User:Fingolfin|Max Horn]] | ||
ScummVM run on a great variety of platforms, ranging from full-blown personal computers running Windows, Linux, Mac OS X, etc., to game consoles, smart phones and PDAs (sorry, no support for toasters yet :). | |||
To achieve that, we have to provide abstract APIs for many things, like audio and graphics, user input, and general I/O. One particular area that needs to be covered are filesystems -- great differences exist with regards to this between the platforms we support. In fact, some of them don't even have such a thing as a filesystem. | |||
Still, we need to access files: We have to find and load the game data, GUI themes, savestates, config files and more (and also have to store savestates, obviously). To compensate for the differences between our target systems, we introduced the FilesystemNode API. | |||
engines | |||
In its present state, it fulfills our absolute minimal requirements. However, the abstraction level it provides is flawed and likely should be overhauled / redesigned. Also, not all parts of ScummVM strictly use this API; there are still many parts of ScummVM which try to work with "paths" to access file data. | |||
To work on this, you should be familiar with at least Windows and Unix, ideally more, and be willing to learn about the differences between file systems on many different platforms (our team will be happy to help you with this). You will have to design a revised FilesystemNode API, and implement it, based on the needs of ScummVM engines and infrastructure code (requiring close communication with the rest of the team). | |||
== GUI == | == GUI == |
edits