Last Tuesday we held the third session of the Programming Clubs at the Citilab, and we began to implement Flappy Bird in GP. Here's a list of bugs we found:
- If the focus is inside an input and you click on "Go", you can't edit the input contents any more. Before clicking on "Go" you always need to get the focus out of any input by clicking somewhere else, otherwise the contents are not saved and that input becomes unusable.
- We couldn't reproduce this bug, but at some point objects were not being clipped by the Stage boundaries and were covering part of the instances panel and the scripts canvas.
- Add a "When I receive [initialize] (data)" block to the scripts canvas and some other block that uses that data, then remove all instances of that class, then click on another class and back again on the original one. This creates a new instance and thus sends the initialize message with nil data, freezing GP.
- Again, we couldn't find out when was this happening, but in some cases the whole UI became really sluggish and we had to kill it and open it back, as even dragging blocks around became really slow.
On a side note, the participants suggested a nice feature would be to be able to export blocks and scripts to reuse them in other projects. In their particular case, they're working on different parts of the game in different computers, and they wanted to merge them together afterwards. For this project we'll just merge the source files with an editor, but it may be interesting to think on such a feature.
Overall, they all liked the language a lot. It was an heterogeneous group with a very talented 14 year old Scratch programmer, a 50-something year old who had never programmed before, a 20-something year old computer science student and a 40-something year old "traditional" mainstream language programmer. These last two had never used a blocks-based language before and picked it up really fast.