forked from Catrobat/catrobat.github.com
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gsoc_2019_ideas_page.html
253 lines (225 loc) · 17.5 KB
/
gsoc_2019_ideas_page.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<title>Ideas Page</title>
<link rel="stylesheet" href="stylesheets/styles.css">
<link rel="stylesheet" href="stylesheets/pygment_trac.css">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<div class="wrapper">
<header>
<h1>Catrobat</h1>
<p>
A visual programming language
<br/>
and set of creativity tools
<br/>
for smartphones, tablets,
<br/>
and mobile browsers
</p>
<p class="view">
<a href="http://www.catrobat.org/">Home</a>
</p>
<p class="view">
<a href="http://developer.catrobat.org/">Developers' Home</a>
</p>
<p class="view">
<a href="http://developer.catrobat.org/first_steps">First steps into Catrobat</a>
</p>
<p class="view">
<a href="http://catrob.at/pc">Find Pocket Code on Google Play</a>
</p>
<p class="view">
<a href="http://catrob.at/PCios">Find Pocket Code on the App Store</a>
</p>
<p class="view">
<a href="http://catrob.at/plus"><img src="googleplus.png" height="20px"/></a> <a href="http://catrob.at/fb"><img src="facebook.png" height="20px"/></a> <a href="http://catrob.at/pctwitter"><img src="twitter.png" height="20px"/></a> <a href="http://catrob.at/youtube"><img src="youtube.png" height="20px"/></a> <a href="http://catrob.at/mailinglist"><img src="google-group.png" height="20px"/></a> <a href="http://catrob.at/github"><img src="github.png" height="20px"/></a> <a href="mailto:contact@catrobat.org"><img src="mail.jpg" height="20px"/></a>
</p>
</header>
<section>
<h2>Ideas Page for Google Summer of Code 2019</h2>
<br />
<strong>Welcome,
<br />
we officially present our project ideas for this year's Google Summer of Code.</strong>
<br />
Last Updated: 6 Feb 2019</p>
<p>
<strong><u>General knowledge prerequisites for all projects</u>
<br />
<i>JUnit, Robotium and Espresso for test-driven development on Android devices (for Catroid Development), basic knowledge in app development (Android or iOS, depending on the project) and of course Git (revision control) for all projects. Also please check that you have sufficient hardware (e.g. a Android/iOSsmartphone for testing) for the development, since we can't provide you any for the coding period. </i></strong>
</p>
<p>
<strong><u>General information about the ideas</u>
<br />
<i>These ideas are just some topics we came up with, where currently nobody is working on. However, Catrobat is a project with a wide range of possibilities and we're aware of our blindspots: So let's live the spirit of Open Source and come up with improvements (e.g. new feautes, extensions,...) that are related to the project and you're interested in :) We do have many senior-contributors who would be happy to mentor such a project ;) Don't be shy and check out the last point on the list: Your idea!</i></strong>
</p>
<p>
Please find the mandatory template for the application and additional information on <a href="https://docs.google.com/document/d/1Eg3vzs46LEEkEeX9D_KFI7TPyaDhaCFdORSvJ4_Qv88/edit?usp=sharing">this shared Google Doc</a>.
</p>
<p>
<h3>Overview:</h3>
<ul>
<li>
<a href="#idea_1">Coding Tutorial Game</a>
</li>
<li>
<a href="#idea_2">Awesome Demo Game Project</a>
</li>
<li>
<a href="#idea_3">Test Efficiency Catroid</a>
</li>
<li>
<a href="#idea_4">iOS: Scenes</a>
</li>
<li>
<a href="#idea_5">iOS: Features</a>
</li>
<li>
<a href="#youridea">Your idea</a>
</li>
</ul>
</p>
<p>
<h3> Projects </h3>
<a id="idea_1"><strong>Title:</strong> Coding Tutorial Game</a>
<br />
<strong>Brief explanation and expected results:</strong>
<p>Spend the whole GSoC time developing and designing one tutorial game for coding using the Luna&Cat IDE app, i.e., programming in the Catrobat visual programming language. </p>
<strong>More Information:</strong><i></i><br/>
<p>
Tutorial games are available for many computer games, but extremely rarely for learning programming, and then are usually playable in a few minutes and not very exciting. A great exception for teenagers is Nintendo's tutorial game in "<a href="https://www.youtube.com/watch?v=4lSQqUoqQ9Q&feature=youtu.be&t=88">Wario Ware: Do It Yourself</a>." Another example tutorial game for coding designed especially for girls is the one with <a href="https://www.madewithcode.com/projects/wonderwoman">WonderWoman</a>.
</p>
<p>
If you have your own original idea about a tutorial game, please feel free to suggest it. Note that the focus in GSoC should be on the design and on coding.
</p>
<p>
You will create a tutorial game tailored specifically for younger teenage girls (13-14), allowing them to learn how to code apps with Luna&Cat on their own phones, without a PC or tablet. The focus of the project is on the conception, the design, as well as the development and testing of the tutorial game.
</p>
<p>
This game will serve as a coding tutorial game for a new flavor of our popular app Pocket Code with has the name “<a href="https://youtu.be/-6AEZrSbOMg">Luna&Cat</a>”. Luna&Cat is a customized version for teenage girls (see our new themed webview with example/featured games: <a href="https://share.catrob.at/luna/">https://share.catrob.at/luna/</a>). The Android version of Luna&Cat will become available on Google Play by March 2019. The tutorial game must be extremely engaging and motivating for this challenging target group of younger female teenagers. It should NOT be boring, so NO "chocolate-covered broccoli" game! At the same time, it should teach coding on small smartphone screens. Average duration of playing the entire tutorial game on the phone should be around 90 to 150 minutes. It should cover 60 - 80% of the functionality of Luna&Cat, the integrated paint editor, and the Catrobat sharing platform (note that prioritization is necessary --- not everything is equally important).
</p>
<p>
The coding tutorial game will be integrated into the app and will be freely available on popular app stores around the world. Note that the tutorial game will be published under Catrobat’s licenses as described in detail on <a href="https://catrob.at/licenses">https://catrob.at/licenses</a> and that the game will thus become part of the Catrobat FLOSS project’s source code. Thus, all artwork, sounds, character names etc must be compatible with our licenses, i.e., freely publishable under our licenses, the AGPL version 3 and CC BY-SA 4.0, or under a compatible, possibly even freer license such as CC0. The artwork, sound effects, and background music must also be of high quality and high resolution, but do not have to be necessarily have been created originally by yourself, as long as the rights are compatible with our licenses (e.g., you can also use graphics from our media library or Luna and Cat as main characters).
</p>
<p>
In summary, this GSoC coding tutorial game should become an incredibly awesome, challenging & amazing tutorial game that supports younger female teenagers in a playful way to learn coding Catrobat apps.
</p>
<p>
In your GSoC application, please add a link to a proof of concept for such a game that you have created on your phone using Pocket Code (or Luna&Cat, if already available). Also describe shortly your ideas for the story of the coding tutorial game you want to develop in your GSoC project.
Mentor contact: bernadette.spieler@catrobat.org
</p>
<p />
<hr>
<a id="idea_2"><strong>Title:</strong> Awesome Demo Game Project</a>
<br />
<strong>Brief explanation and expected results:</strong>
<p>Spend the whole GSoC time developing one huge game using the Pocket Code IDE app, i.e., programming in the Catrobat visual coding language.
</p>
<strong>More Information:</strong><br/>
<p>The game must be playable both on a phone as well as when cast from the phone to a smart TV.</p>
<p>The game should be strongly inspired by a hugely popular recent 2D game. I am thinking “<a href="https://youtu.be/avCB6HOjsG4?t=49">The Binding of Isaac” or its Rebirth variant</a>, but your own suggestions of other popular games might be even better, and are highly welcome. You may also get inspiration by search for lists of the <a href="https://www.google.com/search?q=best+OR+popular+2d+games">best OR popular 2d games.</a> </p>
<p>If you have your own original idea about a game, please feel free to suggest it. Note, however, that the focus in GSoC should be on coding, not story design. Also, reusing existing already successful ideas will tremendously increase the probability that the game will be popular, and allow you to get much further in its implementation. Also note that the game will be published under Catrobat’s licenses as described in detail on <a href="https://catrob.at/licenses">ttps://catrob.at/licenses</a> and that the game will thus become part of the Catrobat FLOSS project’s source code. Thus, all artwork, sounds, character names etc must be compatible with our licenses, i.e., freely publishable under our licenses, the AGPL version 3 and CC BY-SA 4.0, or under a compatible, possibly even freer license such as CC0. </p>
<p>The artwork, sound effects, and background music must also be of high quality and high resolution, but do not have to be necessarily have been created originally by yourself, as long as the rights are compatible with our licenses. </p>
<p>The development of the game may possibly also be a community effort, but that’s up to you. This means that if you want, you may involve a team of people who want to work together with you on the game, either coding extensions or additional levels, contributing media assets, testing, creating promotion videos of it, etc. How you put together your team is entirely up to you, and you alone are responsible for the recruitment of and coordination within your team. Some Catrobat games have been created by large crowds. You and your team working together on the game would be perfectly fine and welcome, as long as you by yourself spend the full GSoC period working 100% on it too, and you do the main part of the coding, since Google wants GSoC projects to basically be single developer coding subprojects. However, most FLOSS projects are community efforts, and collaboration has always been one of the tenets of such projects. Also note that there will be no T-Shirts etc from Google for the other members of your team, so all contributions by other team members must be motivated intrinsically, or by additional means left to your discretion. </p>
<p>In summary, this GSoC project’s game should become an incredibly awesome & amazing demo game that showcases what kind of mind boggling games can be created with Pocket Code. </p>
<p>In your GSoC application, please add a link to a proof of concept for such a game in landscape mode (because it should be payable when cast to a TV screen) that you have created on your phone using Pocket Code. Also describe shortly your ideas for the story of the game you want to develop in your GSoC project. </p>
<p>Boyakasha!</p>
<p>Mentor contact: wolfgang@catrobat.org</p>
<p />
<hr>
<a id="idea_3"><strong>Title:</strong> Testing Efficiency Catroid</a>
<br />
<strong>Brief explanation and expected results:</strong>
<p>Although the test-coverage and execution of Catroid got incredigly improved, there is still refactoring and new tests needed to guarantee the best test coverage possible
</p>
<strong>More Information:</strong><i></i><br/>
<p>If you look up previous years' Catrobat-GSoC-projects, you'll find various projects to rewrite tests and introduce Espresso Tests. This was an important step that helped to get a good basis for future work. Wheras new features are already implemented with "good" tests, many old tests still don't work as expected, don't cover all needed cases, are unnecessary or include dependencies that lead to a certain flakiness in test execution (i.e. they influence the order they need to be executed). As GSoC project we would like you to refactor these still open issues and also introduce a new testing-structure, making it possible to characterize tests and enable developers to test on certain levels (e.g. IDE, just specific features, extensions, etc.). Therefore, as part of this GSoC project you will define these levels together with the community, collaborate with the Jenkins-Contributors to automate these levels and finally implement it as part of your refactoring. So once again, as for the last years' GSoC projects: for Catroid testing never ends ;)
</p>
<p />
<hr>
<a id="idea_4"><strong>Title:</strong> iOS: Scenes</a>
<br />
<strong>Brief explanation and expected results:</strong>
<p>Serialization of the Scenes for different levels in a Pocket Code program
</p>
<strong>More Information:</strong><i></i><br/>
<p>The introduction of “scenes” in Pocket Code should ease the creation of large programs by abstraction of semantically coupled objects including code, looks and sounds into independent sub units. This makes programming of different scenes of a game insofar easier that only those backgrounds and objects which are used in this particular scene are active, can be accessed by scripts and are subject to execution.Scenes can be seen as an independent Pocket Code program (like different levels in a Game/Program).</p>
<ul>
<li>Implementation of a functionality to group objects into so called „Scenes“</li>
<li>Implementation of the new logic, data models and the UI </li>
<li>Unit and Integration Tests</li>
</ul>
<hr>
<a id="idea_5"><strong>Title:</strong> iOS: Features</a>
<br />
<strong>Brief explanation and expected results:</strong>
<p>ASupport of all Bricks for Catrobat Language version 0.992 (except physics bricks and extensions like Lego)</p>
<strong>More Information:</strong><i></i><br/>
<p>In order to be able to support Catrobat Language version 0.992 it is necessary to implement a set of missing Bricks.<br/>New Bricks:</p>
<ul>
<li>WhenConditionBrick</li>
<li>AskBrick</li>
<li>ClearBackgroundBrick</li>
<li>CloneBrick</li>
<li>ComeToFrontBrick</li>
<li>DeleteThisCloneBrick</li>
<li>GoToBrick</li>
<li>PenDownBrick</li>
<li>PenUpBrick</li>
<li>PlaySoundAndWaitBrick</li>
<li>SetBackgroundAndWaitBrick</li>
<li>SetPenColorBrick</li>
<li>SetPenSizeBrick</li>
<li>SetTextBrick</li>
<li>StampBrick</li>
<li>StopScriptBrick</li>
<li>WhenBackgroundChangesBrick</li>
<li>WhenClonedBrick</li>
</ul>
The robotic arm is to be interfaced with a Raspberry Pi. An Android testdevice is to be mounted on the robotic arm in a way, that it can be easily unmounted, that it has working USB Connection to the Jenkins, to upload the testsuite and run the tests. A REST-ful service has to be implemented which runs on the Raspberry Pi which takes commands to move the robotic arm in a way which is needed for testing the sensors in the device. The server mus be accessible via the network and accept command from the tests running on the device. Tests for this device test suite for the aforementioned sensors are to be written, that the device can be moved with the robotic arm and the sensor data can be read out and compared to expected values. A jenkins test job has to be implemented to run the sensor-tests on the device.
<p>
Tasks you have to accomplish:</p>
<ul>
<li> Create data models for new Bricks</li>
<li> Implement serialization and deserialization</li>
<li> Implement Brick visualization and related UI actions</li>
<li> Implement new logic in Player Engine</li>
<li> Write unit & integration tests</li>
</ul>
<p />
<hr>
<p>
<a id="youridea"><strong>Your own project ideas ... </strong></a>
<br />
<p> In the last year we made the experience that you have many great ideas and knowledge! Catrobat is currently still focusing on refactoring and we're aware that there are many ways how to improve performance, reduce memory usage, make our services more stable and of course the code easier to maintain. We're sure you do have ideas how to achieve this, although we maybe never heard of this approach before -> that's the great thing about Open Source! And well, that's also the experience we made at last year's GSoC - and we liked it!</p> But also new features or extensions for iOS and Android are welcome to be introduced to us. Help us to spread coding and Open Source!<br/>
Please do not hesitate to bring forward your own ideas and discuss them with our community on our mailing-list: <a href="http://catrob.at/mailinglist"><img src="google-group.png" height="20px"/> catrobat@googlegroups.com</a>!
</p>
</p>
</section>
</div>
<script src="javascripts/scale.fix.js"></script>
<script>
(function(i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] ||
function() {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o), m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-42270417-2', 'catrobat.org');
ga('send', 'pageview');
</script>
</body>
</html>