Google Code-In 2016 - DONE!

Rostyslav Zatserkovnyi

Member
Contributor
Architecture
GUI
Hunter
Google Code-in is a contest that introduces pre-university students (ages 13-17) to FOSS development. Students claim tasks from a pre-selected pool of "bite-sized" problems, work on them one at a time, have them approved by the mentors and repeat - the best students are awarded with t-shirts, hoodies or a trip to Google's Mountain View office. Terasology got selected to participate in the contest in 2016!

We need volunteers to think up tasks for GCI! Good tasks should take 2-8 hours to complete, and should not require any previous experience with the codebase beyond what is found in contributor manuals. Unlike GSoC, the tasks can be about things other than code - outreach & research, documentation, translation, quality assurance, usability testing are all fair game. They can be related to the engine, custom modules, non-Terasology projects (Destination Sol, Gooey etc.) or the organization as a whole - the possibilities are endless!

Mentors:
  • @Cervator (org administrator)
  • Skaldarnar (org administrator)
  • @Rostyslav Zatserkovnyi (org administrator)
  • @SkySom (mentor)
  • @manu3d (mentor)
  • @xtariq (mentor)
  • ...your name here? :) Contact us on IRC or Slack to become a mentor! Do mention your e-mail address as it's required to invite new mentors to the project.
Links and resources:
  • Timeline
  • Example Tasks - need at least 50-75 of these to start with (new ones can be added as the contest progresses), though the median amount for GCI organizations is >200!
  • Participating organization list (Terasology's org page is found here - mostly unchanged since GSoC 2016, blue Gooey's still as awesome-lookin' as ever :) )
Timeline, summarized:
  • November 7 - 27: Organizations recruit mentors, write up new "bite-sized" tasks (4-8 hours of time required to complete) and submit them to the GCI website. These tasks are categorized as Code, Documentation/Training, Outreach/Research, Quality Assurance, or User Interface.
  • November 28 - January 13: Students search for a task in the tracker that interests them, claim it and start working on it. Once the student is ready, they submit their work for review through the contest website. Mentors from the organization evaluate the work and either provide feedback or accept it.
  • January 13 - January 18: Work is gradually wrapped up; students finish work on tasks and mentors submit final evaluations.
  • January 30: Grand Prize Winners and Finalists are announced (more on what that means here)
  • June: Grand prize winners get to go on a trip to Google HQ in California!
 
Last edited:

manu3d

Active Member
Contributor
Architecture
Very well laid out summary rzats, thank you. Right now I'm thinking of sitting this one out, recovering strengths for the next GSOC... =)
 

manu3d

Active Member
Contributor
Architecture
It took @Skaldarnar only about 3 written paragraphs in chat to change my mind. I better grow a spine sometime. Anyway, the deal is 1 hour a week for me, probably at a recurring day/time. But right now I'm a bit too busy to think tasks. I'll leave coming up with those to my spare cycles. Which right now are not many given the mindwarping effect of some OpenGL code I'm currently wrestling with (the code is winning). Hopefully I'll come up with something. Otherwise I'll just assist as I can.
 
Last edited:

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
I created a Trello board for potential tasks. I have a bunch of ideas but may not have the time to submit them all pretty in the GCI task system, and would like for others to help clarify and provide more details. For instance I just added 10 "Test Plan" tasks with several of them possible to split out into additional advanced tracks. Imagine playing JoshariasSurvival and crafting the basics, that's one task. Then another task could be rushing to create a windmill, or cheating the right parts via console then just validating the crafting and placement. We have existing videos for lots of things, but they need to be added to the right tasks.

The list is in Trello as we aren't supposed to have these tasks public until GCI starts. Anybody in our Trello org should be able to view (and edit, I hope?) the board, while it isn't publicly accessible. That way we can also get input from those not quite ready to be a full GCI mentor (which means no access to the GCI task list). Those that do mentor can take and polish these ideas as actual tasks and publish them in the tool :)

So! As the topic says we need more mentors, and now we can also use simply more people with ideas for tasks and/or willingness to get the tasks more details. This could be as simple as suggesting some functionality in a series of modules. Although at the same time don't write the whole test plan for a student - they need to figure out exactly how to test. Videos should help figure that out although maybe we should be sure to validate stuff actually works in the first place ...

In particular would like feedback (and ideally mentor signups! Come on it isn't GSOC-level difficulty at all, more just hang out on IRC and answer basic questions!) from - although ideally in Trello, not here, since here is public. Anybody without a Trello account sign up and join up! Let me know if you need an org invite. I added @Skaldarnar to the board as admin, not sure if @Rostyslav Zatserkovnyi has an account yet? Thought so. Hmm.
  • @Josharias: Advanced groupings of stuff in JS a student could write a test plan (and video for). I added a few suggestions in its card so far but probably could have more.
  • @xtariq: Bits and pieces of TTA / Neo-TTA / Alchemy and other new modules
  • @Cpt. Crispy Crunchy: Anything Cities, static or dynamic. What should we aim to test other than "Hey I see cities!" :)
  • @Marcin Sciesinski: The computer modules
  • @Florian: GooeysQuests, maybe specifically the templating tool. Good suggestions on how to validate it? Export stuff to prefabs? Maybe we could have a task to prepare actual structural templates, akin to the task to make new blocks
  • @msteiger: Cities, PolyWorld, WorldViewer, Light & Shadow (too broken?) etc? Minimap? @Skaldarnar on L&S in particular?
  • @SkySom / @Michael: Enough stuff to test in Rails to validate that it is still in one piece, or is it too broken?
  • Probably more coming :)
Finally as for the tasks that do exist are we sure they're all accessible at a pre-university level, potentially to students that don't even know Java yet? Although I'm not entirely sure if those students would be expected to limit themselves to non-coding tasks, or if the coding tasks should be easy enough to learn with (maybe at least some of them). Also I believe a task, even a multi-instance task, gets blocked while a single student is working on it. So something like "Write an intro forum post!" might be bad if a student locks it up then doesn't do it for some reason. Would it be bad if we had too many super easy tasks so they could hit 3 then leave? Although we could just not allow them to become finalists in that case.
 

Skaldarnar

Development Lead
Contributor
Art
World
SpecOps
I want to add that you can (and should) become an official mentor even if your availability is limited. I assured @manu3d that ~1h per week is already enough, especially since it is no complicated mentoring on GSOC level, but, as @Cervator said, mostly giving beginner advice on IRC, looking over (simple) code PRs, or approving some wiki pages or javadoc additions.
 

MandarJ

New Member
Contributor
Task suggestions:
1. Write a new script for GooeyJr (maybe "Write an XYZ script for GooeyJr" where you guys specify the script you want).
2. More "Add documentation to the XYZ module" tasks.
3. Multiple versions of the tasks which students should be allowed to do multiple times (like the enable scripts task for Gooey). GCI will not allow students to claim a task with the same name as one that they already completed.

Currently there's a shortage of tasks (probably because of the "cannot do the same task twice" thing), but I believe that you are working on that. Good luck, have fun :)
 
I am no longer a student (never made the university), but given the excellent organization of the project, and its ease of development, is an excellent initiative, which will bring significant improvements to the project. These news that fills my heart.

If participating in any Italian university, I swear that I do not eat more bananas in my life! :):laugh::rofl::whistle:
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Been so busy reviewing tasks and related stuff that there's little to no time actually announcing updates :D

As a general note to all our students thanks to @xtariq's work on some of the central GCI content modules for tasks (Cooking, Equipment, Potions, and lately Smithing) we now have a new area to expand recipes into (another multi-instance task soonish!) and a new world to explore together, with most the work from GCI students visible! More tasks and issues coming that students can help out with mainly to fill the world and connect the naturally occurring materials with recipes and items.

The latest (develop! so unstable!) Omega zip now includes a new gameplay template named "NeoTTA Crafting (experimental)" - it includes Cooking, Equipment, Smithing, Potions, Alchemy, EquipmentSmithing, and more. The world it is paired with is from the old TTA module and includes a lot of the crafting ingredients available in the world rather than purely via game console. So you can actually play the game regularly and just craft your way forward!

Well, mostly, anyway, note the "experimental" part :) There are still a few fundamental bugs to work out, like the "in hand" crafting workstation not working (hot key not registered right or conflicting with the game version in regular TTA?). And some of the herbs that grow naturally in the world have a broken texture, but if you find the right one (and grab a portable alchemy station) you can actually brew potions with them.

I've enabled another few things and hooked in Books writing a tiny little intro book about the world that we can expand a bit over time. I also activated the new ingot stacks for all the bars in Smithing, so if you right click the ground while holding a metal-bar you'll start building an ingot stack! Which will look awful as the texture of the block doesn't quite link with the texture of the item yet. Hmm. One thing at a time!

Probably I'll start entering issues into its module tracker on GitHub, but right now 6 am is approaching and I haven't slept yet. I need to write a proper update in the GSOC/GCI announcement thread, and I've got a 2016 recap rattling around in my head. I'll also update the event server soon to run NeoTTA - I've done some initial multiplayer testing.

Temporary issues / comment list:
  • Dependency resolution from module.txt is case sensitive - StoneCrafting failed to find Woodcrafting (is WoodCrafting). Engine or gestalt-module tweak
  • give bronzebar 44 resulted in a single item since items do single even if stackable, which we should improve in the command
  • Switch bulkGiveBlock to bulkGive, enable items as well
  • EquipmentSmithing's progress bar is broken (just give it a few seconds - stuff's cooking!) - example items available if you add a few bronze bar and a forge hammer (there is a portable forging station)
  • You need to use Smithing:Coal to get the forge hot enough to work metal (sticks won't get hot enough)
  • Might add Caves and Lakes later, but current worldgen appears incompatible (need more ores to spawn?)
  • Need to fix giving ingot stats a good texture. The alchemy-related herbs also have a broken texture, the other herbs (can't craft with) seem fine. Genome related?
  • Some errors/warnings are logged on startup, we should check on those - included below
Code:
01:51:23.279 [main] ERROR o.t.w.b.internal.BlockManagerImpl - Family not available: Stonecrafting:Halite
01:56:00.153 [main] ERROR o.t.w.b.internal.BlockManagerImpl - Family not available: WorkstationCrafting:StandardWoodStation
01:56:12.059 [main] ERROR o.t.w.b.internal.BlockManagerImpl - Family not available: WorkstationCrafting:TilledEarth
01:51:25.279 [main] WARN  o.t.e.e.internal.PojoEntityManager - Unable to instantiate unknown prefab: "Alchemy:JumpSpeedHerb"
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
As a final update for GCI we'll be sending @Rostyslav Zatserkovnyi (rzats) as our mentor representative for the GCI event over in Silicon Valley in June, where he should have a chance to meet our two winners @smsunarto and @Isaac (iojw), the latter of which also made it into an article about GCI :)

http://www.straitstimes.com/singapore/education/third-time-lucky-for-student-in-googles-coding-competition

If @Rostyslav Zatserkovnyi for some reason can't make it @Nihal Singh would be our runner up mentor for the trip.

I want to thank both of them for their mentor support over GCI, along with all our other mentors and all the students! :)

Un-sticking this thread for now and hoping we'll make it in next year as well! Next up is GSOC for 2017 where our app has been submitted and is now pending review by Google.
 
Top