Developer Central
The purpose of this page is to give a link to all kinds of resources that contain information valuable to current and future developers of ScummVM.
Getting started
- The first thing you need to be able to do is compile ScummVM.
- Some hints on debugging ScummVM.
- Before you write/submit code, you must read about our Code Formatting Conventions. Patches which do not follow them will be rejected or at least delayed until they are cleaned up to comply to them.
- Also, please read and respect the Portability Guide.
- If you have write access to our repository, you are expect to have read and to comply to the Commit Guidelines.
- If you want to provide a new Engine for ScummVM, check out our Engines HOWTO.
- If you want to port ScummVM to a new platform, check out our Backends HOWTO.
- Our Doxygen source code documentation may help you to get the big picture about ScummVM.
- Also, you might want to check our list for current Platform Limitations
For Engine authors
- If you want to provide a new Engine for ScummVM, check out our Engines HOWTO.
- If you work on a game engine for ScummVM, consider implementing Advanced Engine Features.
- If your engine supports multiple games / game variants, properly detecting and differentiating them all can be a nuisance. Use the Advanced Detector to overcome this hurdle.
- Accessing files in a portable fashion is non-trivial. Read all about how to open files.
Projects, plans, things to do
- List of open tasks, with relatively detailed descriptions, and contact points. Some rather small ones, some bigger ones, take a look.
- Small Devices Backend -- this is under development as part of the GSoC, but additional help is welcome.
- Modular Backends -- partially implemented. More work needed.
- Keymapping Improvements -- still in the design stage. Help is welcome.
- Music drivers redesign -- in phase of discussion
TODO lists
New GUI
Release Management
- Our release guideline for ScummVM Release HOWTO
- Our release testing status for the latest stable release Release Testing
CVS/SVN statistics
Our commit logs are fed to several freely available statistics tools:
- FishEye SVN statistics
- FishEye CVS statistics prior to Feb 6th, 2006
- CIA SVN statistics, current development
- ohloh project analysis nice graphs and devs activity
- Koders statistics
Mailing Lists
Primary channel for important development-related discussion is scummvm-devel mailing list. All developers should subscribe to it.
The full set of public lists are:
- scummvm-devel -- development-related discussions
- scummvm-cvs-logs -- commit logs. Basically we're on SVN now, but the list name was not changed
- scummvm-tracker -- Notifications of all new bugs, patches and feature requests
There is one note about scummvm-cvs-logs. Consider it as a read-only list, i.e. if you have comments/questions on someone's commit, post your follow-up to scummvm-devel.
IRC
For all kinds of live discussions we use #scummvm @ freenode.net IRC channel. All ScummVM developers get an operator status there, so if you have some questions, talk to them. There are several notes about usage of this medium:
- IRC is not the best place for informing everyone about some important development conclusions. I.e. when you discussed something and came up with a solution, it's best to e-mail results to scummvm-devel. That is, don't expect everyone in the team to know that you uttered something at #scummvm.
- All developers who want to get operator status should register with NickServ. Assistance with registration is provided here.
- Most people on FreeNode have so-called anti-spam feature turned on. That is, you will not be able to PM them unless you registered with NickServ
We have several bots living there:
- LeChuck -- our own bot. It's primary usage is infobotting and logs.
- lisppaste -- paste bot. It notifies when ScummVM-related pastes are posted here
- CIA -- commit notification bot. It notifies on all commits. Further information could be found on CIA.vc site
- cmeme -- IRCbrowse log bot. Believed to be defunct, logs were available at here
IRC logs are stored at:
- logs.scummvm.org -- Not updated when LeChuck is down
Misc
- MIME types, useful for setting the svn:mime-type.
- Documentation on how we performed our CVS to Subversion conversion.