[Scummvm-devel] Preparing GSoC 2012
Johannes Schickel
lordhoto at gmail.com
Tue Feb 7 16:58:45 CET 2012
On 02/07/2012 04:23 PM, Willem Jan Palenstijn wrote:
> On Sun, Feb 05, 2012 at 10:28:41AM +0100, Sven Hesse wrote:
>> On 2012-02-01 11:25:10 +0100, Arnaud Boutonné wrote:
>>> Google Summer of Code 2012 has not been announced yet, but based on the
>>> previous years' schedule it should occur really soon.
>> It's been announced now:
>> <http://google-opensource.blogspot.com/2012/02/google-summer-of-code-2012-is-on.html>
> Let's try to create a set of cool tasks this year.
> Some random considerations:
>
>
> Support for touchscreen devices has the potential for quite a few tasks.
> I'm not saying any or all of these would be good, but just throwing some ideas
> out there:
> * improve the input code of a number of engines to work better on
> touchscreens. (Which engines would be suitable for this?)
> * create a custom theme/layout for the existing GUI code, and add small
> improvements to the code without any full rewriting
> (Higher resolution, 32bpp support in the launcher, better cursor
> behaviour, force (vibration) feedback, ...?)
> * implement a new-and-improved custom cross-platform GUI
> * implement a custom native ios and/or android GUI (after refactoring
> the existing GUI to move all logic out of it, which might admittedly be
> a rather annoying hurdle to start with)
> * ...?
I would also like to say some tool to actually create themes. Currently
it is rather annoying to adapt the theme file by hand and then run
ScummVM to check whether the dialogs really fit the screen in the
various resolutions we need to support. Maybe we can get some task
description here.
> I think engine refactoring/objectification tasks are not very motivating, since
> it's very hard to determine progress, and you don't build any new "shiny"
> things.
Agreed.
>
> Does anyone have any good ideas for tasks that would draw students into actual
> engine development somehow? ("Reverse engineer this entire new game" is
> probably too big...)
Maybe we can get some people, who are into RE, into the SCI engine by
having tasks about reversing audio outputs (SCI0 CMS comes to mind),
that could get us people who can then use it as a base to fix more of
the audio subsystem of SCI, which is as far as I got told in the past
still needing some work.
Another task would be to RE graphics modes, i.e. EGA dithering for later
VGA games, Grayscale output mode, implementing the original scaler used
for in-game graphics scaling etc. That could make help people to get
interested in the graphics code and might turn out that people would
also get interested in later SCI version then.
Frankly both require(?) RE skills, so might not be that a good idea for
GSoC.
> What is the state of the decompilation tasks that were done in previous years?
Well the implemented things work good-enough, I think. A task here would
be to look into getting other bytecodes to be supported and adapt the
framework accordingly. Maybe an extension to cover register based
machines would be worth an idea too.
> More random ideas:
> * Can certain engines' scripts be JIT-ified with LLVM?
Not sure what you mean by that, maybe you can explain it a bit.
> * 32bpp scalers? (Is that interesting or boring?)
The biggest problem is our scaler infrastructure => refactoring.
> * Any more OpenGL things worth doing? (Again, is the remaining work interesting
> or boring?)
The biggest remaining "issue" is to refactor the code to avoid the
inter-dependancy between the OpenGL "base" code and the SDL+OpenGL code.
I don't think it's that interesting. But that said after that has been
done, people could work into various directions, for example add custom
scaler support via GLSL programs etc. (might be worth to check the
format emulators out there support and implement support for that).
> Any other suggestions? Any tasks on the current opentasks lists that you feel
> are still cool and relevant? Or that we should remove?
Probably the Apple II sound support for SCUMM and the XMIDI parser
should be gone. The former is already in master as far as I can tell and
the latter really isn't that much work and related/remaining work would
be just another big refactoring task. I am also not sure what fun the
"Small Devices Backend" task is, most of it is also just a refactoring task.
I also don't think we need that "Improve the build support" task anymore
and if we want to keep it I'm rather strongly against CMake or the like.
A related task here might be to rewrite (yeah not so fun) create_project
in a language which is better suited for these tasks, i.e. python etc.
and/or make sure the created project files actually work well on the
target systems (i.e. have the Code::Blocks files work for both
Win/Linux, without any hassle for the user of these etc.). As far as I
know right now only the MSVC project files are in a somewhat usable
state. So all in all, we can probably drop this one too or move it to a
separate section for not-so-interesting tasks ;-).
Apart I am not happy by the "workload" bits on our OpenTasks page. I
don't really think it's easy to say whether it's a full GSoC task or
not. I would also like if we could group the tasks into what the
required skil level for the tasks is (like beginner, advanced, etc.).
Seeing that our TODO lists are rather not-so up-to-date it might be
worth pointing that out clearly on the OpenTasks page.
// Johannes
PS: Someone into wiki could really create a forward from "Open Tasks" to
"OpenTasks", it's pretty annoying that one always has to search for
"OpenTasks"...
More information about the Scummvm-devel
mailing list