Season of Docs/GSoD Ideas

From ScummVM :: Wiki
Jump to navigation Jump to search

If you'd like to get involved in ScummVM - or one of our sister projects, such as ResidualVM - we'd love to help you get started!

We've had a lot of successful student projects as part of Google's Summer of Code in previous years -- we hope to carry that success into Google's Season of Docs and inspire you to work with us and (hopefully) add your own success.

You should come to our Discord Server or IRC Channel and introduce yourself! We're friendly, and it's often the easiest way to ask questions about the tasks and the org in general. The channel is the main form of everyday communication for the project, and there will almost always be developers there who can discuss your project ideas, answer questions and help out.

You can find more information about what we expect from you before you apply at GSoD Application.

Introduction

ScummVM is a program which allows you to run certain classic graphical point-and-click adventure games and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed!

ScummVM supports a huge library of adventures with over 250 games in total. It supports many classics published by legendary studios like LucasArts, Sierra On-Line, Revolution Software, Cyan, Inc. and Westwood Studios. Next to ground-breaking titles like the Monkey Island series, Broken Sword, Myst, Blade Runner and countless other games you will find some really obscure adventures and truly hidden gems to explore.

You can find a full list with details on which games are supported and how well on the compatibility page. ScummVM is continually improving, so check back often. Among the systems on which you can play those games are Windows, Linux, macOS, iOS, Android, PS Vita, Switch, Dreamcast, AmigaOS, Atari/FreeMiNT, RISC OS, Haiku, PSP, PS3, Maemo, GCW Zero and many more.

Tasks

General contacts: Our Discord server, IRC channel, our mailing list, or contact sev, Mataniko, Strangerke, criezy

The ideas here are meant to be just that - ideas. We hope they help inspire your proposals, but you should also consider suggesting your own completely new project ideas. Pick something you really want to see improved/fixed, and come and talk to us about it!

If you're looking for more inspiration for ideas, beware of our TODO (and the other TODO lists linked from there) and our OpenTasks pages. Many of the tasks listed there might be incomplete or outdated, or too difficult for a new developer. The best thing to do is to come and talk to us!

Launch a Documentation Portal

Technical contacts: mataniko

Difficulty level: Medium-hard. Might require some basic development skills if we opt in for something like Docusaurus

This task would collect the various pieces of information from the README, Wiki, and ports and help organize them in a new portal. The new portal can be based on either Markdown or ReStructuredText and will allow us having versioned manuals for ScummVM in a format that's easy to edit and distribute

As part of of this task, you and your mentors will work on:

  • Launching a new documentation portal (Docusaurus or readthedocs.io)
  • Consolidate existing documentation efforts
  • Define user journeys, document ScummVM's features, and create relevant manuals and guides.
  • Refresh the outdated User Manual

A successful applicant will be able to demonstrate the following:

  • A good understanding of the ScummVM project - come around and ask us anything!
  • Writing ability and past writing examples - this task is focused on writing new content and rewriting existing content.
  • Knowledge of Markdown and/or RestructuredText

The project timeline will roughly cover the following tasks:

Week Main task
Week 0 (Before 9/14) Proposal discussion & reviews
Week 1 (9/14) Doc portal set up
Week 2 (9/21) Restructuring of the README into the portal
Week 3 (9/28) Consolidation of port specific documentation
Week 4 (10/05) Quickstart guide
Week 5 (10/12) User Manual - Settings
Week 6 (10/19) User Manual - Installation
Week 7 (10/26) User Manual - Adding & Editing Games
Week 8 (11/02) User Manual - Reporting issues
Week 9 (11/09) User Manual - Advanced functionality
Week 10 (11/23) Outstanding work
Week 11 (9/30) Project summary and submission

Improve source code documentation via Doxygen

Technical contacts: sev

Difficulty level: Medium. Requires the ability to read code, CSS and Doxygen experience a big plus.

Our doxygen page is woefully outdated - parts of the API aren't properly documented, long deprecated content is still around, and generally important pieces of code seem to be missing documentation. The project will focus on modernizing and updating our Doxygen site, potentially integrating it into the new docs portal as a future goal

As part of of this task, you and your mentors will work on:

  • Understanding the ScummVM code base and identifying important undocumented functions and classes
  • Improving the existing doxygen templates (https://doxygen.scummvm.org)
  • Increase the consistency of coverage of our common, audio, backends, graphics, gui, images, video and engine code docs.
  • Clean up old, irrelevant documentation

A successful applicant will be able to demonstrate the following:

  • Able to read code, C++ a plus.
  • Experience with code doc blocks, doxygen a plus
  • API documentation experience
  • CSS and HTML knowledge a plus

The project timeline will roughly cover the following tasks:


Week Main task
Week 0 (Before 9/14) Proposal discussion & reviews
Week 1 (9/14) Doxygen build set up
Week 2 (9/21) Refresh of Doxygen skin (low priority)
Week 3 (9/28) Common code - OSystem, FS, Data Structures, Strings, etc.
Week 4 (10/05) Common code - Continued
Week 5 (10/12) Engines - Common code & sample engine
Week 6 (10/19) Graphics
Week 7 (10/26) Audio
Week 8 (11/02) Video, Images
Week 9 (11/09) Backends - Platforms, Graphics, Events
Week 10 (11/23) Backends - Continued
Week 11 (9/30) Project summary and submission