Skip to content

GSoC 2018

Thorbjørn Lindeijer edited this page Apr 5, 2018 · 10 revisions

Google Summer of Code 2018

Tiled applied but was not selected to participate in the Google Summer of Code 2018. This page contains a list of the projects we suggested, which can serve as a starting point when we decide to apply again in the future.

Please note that Google Summer of Code projects are a full (day-) time job.

Contents

Project Ideas

Here are some suggestions of possible projects you could do on Tiled. Note that these are starting points that you will need to work out in detail in your project proposal.

Add Scripting Capabilities

  • Helpful skills: C++, JavaScript, Qt
  • Difficulty: Hard
  • Issue: #949

There is the desire of adding scripting capabilities to Tiled with the intention of letting end users extend editor's functionality and get it closer to the end user specific needs.

This project would be to create a basic API to expose some of the current editor functionality. JavaScript would be the desired scripting language, based on the QJSEngine.

The feature should allow to enable / disable the scripts within the editor, but the scripts are expected to be written using an external editor initially.

Examples of what a script could be used for:

  • Perform any sequence of custom editing operations on the map (batch / macro edits)
  • Adding a custom tool
  • Hooking up to events to perform certain actions automatically
  • Adding a custom map reader / writer

For more information follow the issue #949.

Custom Property Improvements

  • Helpful skills: C++, Qt
  • Difficulty: Medium
  • Issues: #1211, #489, #1493

The following improvements to the custom property system would be useful:

Adding support for defining enumerations

This will allow users to define types with a predefined list of valid values. The goal is to speed up entering of values and to make it less error prone.

Support nested properties / structures

This should allow the user to group multiple related property values together. This requires to extend the property type system to also support multiple values rather than one single value.

Support array / list properties

Similar to the tasks above this is about extending the property types with list based type presets.

The custom property system is one of the reasons why Tiled is such a flexible editor. The above improvements will extend the usefulness of that system.

Connections Between Objects

  • Helpful skills: C++, Qt
  • Difficulty: Medium
  • Issue: #707

Often users could use native support for making connections between objects (#707). This project would include adding an object reference property type (finishing #1408), visualizing such referencing in the map view and allowing to navigate the map through these reference.

The object reference could be extended to also support referring to objects on other maps (in games often useful for "teleports").

As a result of this project, users will see how various objects they have placed in their map are connected and will be able to easily change these connections, as well as use them to navigate around.

Project Files

  • Helpful skills: C++, Qt
  • Difficulty: Medium
  • Issue: #1665

Maps and tilesets edited in Tiled are almost always part of some project. But currently Tiled has only limited facilities that help with project organization or navigating files within a project, and no place for project-specific settings.

A very detailed description of the many possible advantages of a project file, as well as a project-specific workspace/session file are provided in issue #1665.

The expected outcome of this project is that Tiled users who are working on maps in several projects will be more productive, since it's easier to switch between projects. In addition, even when working on only one project, Tiled can make it easier to access assets within the project's path.

Your Idea

We are open to your ideas! If you have your own ideas for improving Tiled, you are more than welcome to send a proposal. We are eager to hear about big projects, but you can also make a collection of small improvements, as long as it will keep you busy for three months.

Application Process

If you are interested in any of our projects and looking forward to join us in improving Tiled further, follow the below guidelines to apply.

  • Sign-up in our forum and introduce yourself (the administrators are Ablu and bjorn).

  • Tell us in which project you are interested.

  • Tell us a little bit about yourself. We are interested to hear:

    • Why you would like to work with us.
    • What previous programming experience you have.
    • What projects you have worked on before.
    • Which languages and technology you used for them.
    • Whether you worked in a team or alone.
    • Whether you have done any contribution to any open source project before.
    • Whether you have any previous experience working with Git or any versioning software.
    • Whether you have any prior experience with C++ and Qt.
    • What project(s) you have in a public repository that we could can take a look at.

None of the above information is mandatory, but the better our impression is the more confident we will be that you can succeed in your proposal. If you have a personal website or a CV/resume online, feel free to include a link.

Requirements

All applicants should fork the Tiled repository, compile it and make a change or small improvement to the editor.

  1. Follow the instructions to compile the project (https://github.com/bjorn/tiled).

  2. Fix a simple issue or bug like one of the outstanding usability improvements:

https://github.com/bjorn/tiled/labels/Usability

  1. Commit your changes in your personal repository and create a pull request.

  2. Send the administrators your proposal with the following our template.
    Do this before doing your final application, this will allow us to give you feedback.

For any feedback or private communication send us a mail to bjorn@mapeditor.org.