I’m a 2nd year CSE Undergrad Student and I’ve chosen Tiled as an organization for GSoC 2018 and also interested in contributing to its development.
The project(s) I’m Interested in :
- Adding Scripting Capabilities
- Connections Between Object
Why would you like to work with us?
My interest lies in Game programming and media software (i.e animator tools, game engines, etc) and so I wanted to choose an organization that can match my interest, I came across organizations like Inkscape, Blender and also Tiled being one of them. Among them, Tiled was the only application which seems to match my area of interest plus due to the fact that its majorly written in C++ and Qt, this seems like a perfect choice for me because I’m familiar with C++, and the only thing left to study was the Qt framework, and being familiar to Java Swing, I have some idea of GUI Programming. So picking Tiled was the perfect choice for understanding how these applications are designed and work behind the scene without worrying too much about technology stack.
What previous programming experience do you have?
I’m also familiar with Unity (and C#) and also been developing games in Unity , Game Maker since my junior school year.
What projects have you worked on before?
PicoCLI : this is a small application written in C++ in my free time for merely personal use and just for fun, user can interact with picoCLI via set of instructions and produce specified behaviour , such as reading/writting to notepad files or shutdown windows OS. It also includes alarm-instructions, these are special instruction that execute a code after ‘n’ seconds, where value of n is specified by user. These alarm instructions can also be nested.
Link : https://github.com/keshav2010/picoCLI
Student Data Manager : this is a java application that uses Swing for GUI and allows user to manage student data effectively, This program was merely written to get familiar with GUI Programming. This was also my first ever GUI application and so code organization is very poor.
Link : https://github.com/keshav2010/sdm
ALAN-SE ( wip - inactive) : ALANSE is a simulator tool that aims to simulate ALN (assembly Language notations). The main purpose behind this application was to be able to simulate ALN in order to understand addressing modes. In 3rd Semester, students are introduced to computer system architecture and assembly through use of notations known as ALNs. Since we were expected to write few lines of ALN in exams, my goal was to simulate them in order to boost my preparation for exams. The GUI includes a memory table, register table and a text-editor window where user can write ALN. I dropped this application midway due to my studies and also because i was involved with some other projects. Though i stopped paying attention to this project as i was too busy with university examinations and later started with another software project (for simplying my dad’s life ), and planning to complete this project soon. Link : https://github.com/keshav2010/alanse
Insurance Data Manager ( wip - temporarily inactive ) : This is an application written for managing insurance data. This is being made for my dad as he isn’t much familiar with MS-Excel and wanted a custom tool to simply his work, Im planning to use libraries by apache-poi to read/write excel files and a clean interface to interact with data in a tabular form. I’ve stopped working on this so as to focus on this project temporarily in order to focus on GSOC preparation.
Link : https://github.com/keshav2010/InsuranceDataManager
ProtoAnimator _(wip - active)_ : This is a new project that i’ve been working on recently in C++ and Qt, the goal is to create a software application that enable sprite-based animation design approach, User would be able to import images and specify parent-child relation between objects in order to flexibly animate them. The process of animating would be similar to that in Pivot-Animator with an added feature of linear interpolation that should be able to generate the frames within specified key-frames. The application is in very initial stage of development and this is where im putting my focus right now apart from Tiled. Since i’ve never really worked on anything close to this, my goal is to ultimately understand how memory is managed as multiple frames are expected to hold similar sprites with merely different data (position, scale, etc), thus i’ve been struggling with an efficient architecture that should be memory efficent as well as fast, and also this is serving as one of the way for me to learn Qt framework.
Link : https://github.com/keshav2010/ProtoAnimator
Apart from this , i’ve made a simple game framework in SDL and made few small prototype games with it. Also familiar with Unity, Game Maker and often release games under tagname “bugless-bytes”, link to my additional work : http://buglessbytes.webs.com/
Which languages and technology did you use for them?
Most of the above projects are written entirely in a specific language (either in C++ or Java) with no third party library support, although i will be using apache-poi’s library in one of the project and one recent project uses Qt. Apart from this, I’ve used Unity, SDL, game-maker for game projects.
Did you worked in a team or alone?
for my open source projects, i work alone meanwhile for game related projects, i work in a team ( Bugless Bytes) mostly as programmer while other members help with level design and assets.
Have you done any contribution to any open source project before?
No, i’ve never really contributed to a third party open source project and Tiled is my first large scale open source project, apart from this i’ve only contributed to projects started by my friends but at very tiny scale.
Do you have any previous experience working with Git or any versioning software?
Yes, I’ve been using git for about 7 months now.
Do you have any prior experience with C++ and Qt?
Yes for C++, as for Qt, im still on a learning phase.
Do you have any project in a public repository we can take a look at?
Already mentioned my public projects above
I’ve submitted 2 PR so far , one was a feature to reset layout to default layout (https://github.com/bjorn/tiled/pull/1809) and a recent one is to show information about object tools in bottom status bar (https://github.com/bjorn/tiled/pull/1862) .
I’m interested in any of the 2 above projects although as for scripting project, i’m still trying to understand as to exactly how API should interact with an application like a map-editor (like Tiled), since i’ve never really used Tiled in my personal game projects so i wish i could get some example of some hypothetical script and result it may achieve for an user.
As for connecting an object, it would be again helpful if i could be given some reference to link or anyone can explain significance of object connections and issues that this will eventually solve if successfully implemented. It would be really helpful if i could be given reference to some videos or readings that can help me understand exactly what problem is being targeted and simplified by working on this project ( “Connecting Objects”)
Once i could get my mind around it, i can eventually begin writing my final proposal and possibly submit a very tiny prototypes for admins to review