
Development
Development began on October 17th. In total, we spent 45 days during which:- We learned how to use libGDX.
- We wrote code.
- We created graphics.
- We created music.
- Mastering how to use the game engine.
- Drawing and redrawing artwork.
- Writing music.
- Searching for sounds on https://freesound.org.
- Reading heaps of articles on how to promote games.

Initially, all game elements were generated randomly. In other words, we put providers (of black holes, scissors, ninja stars, pencil lead, hearts) into an array, got a random provider, got an element with random coordinates. It became clear pretty quickly that this approach was "really not really good". Friends participating in testing told us the same thing, recommending the use of templates. For those involved in game development, this is probably an obvious solution. But because we were newcomers to the field, it was very practical advice for us.
So we created several templates: a valley of scissors; pencil leads — it's pretty cool to collect them super fast (whoosh, whoosh, whoosh with your finger); and one more template that I don't know what to call — I'll just tell you what we named the class in our code:
StraightForwardPattern
.These templates improved it, but it became too predictable somehow. That's why we added one more: a random template. In other words, we now have some "static" templates and one random one (insert "perfectly balanced" meme here).
Here's the main problem we encountered. LibGDX calls the render (float delta) method in an infinite loop. This is where all the elements are drawn. The pencil line is drawn as follows: we get finger coordinates and draw texture there. So, if we moved our finger across the screen very quickly, then the line would have "gaps" due to the milliseconds between calls to the render(delta) method.
The solution was quite simple: we remember the last coordinates where the texture is drawn, get the next coordinates, and if the distance between them is more than X and the finger hasn't been released, then we fill the gap. At first, we thought this option might not work — the lines would be angular. But our fears were unfounded, everything worked just as it should.
About the game
The gameplay doesn't claim to be unique, but it is quite good and can pull users in. You control a pencil, literally drawing on paper and dodging obstacles — scissors, ninja stars, and black holes. Meanwhile, your pencil lead is running out and you need to pick up small pencils. If your pencil is coming to an end before you collect a little pencil, you can pick up a piece of a mirror. For a few seconds, instead of consuming the pencil lead, it will be restored, however, at the same time, the controls are mirrored — if your finger moves to the left, then the pencil draws to the right. You can also pick up a heart that will let you hit an obstacle once and stay alive. The longer you move the pencil without lifting your finger, the higher your combo, which means you will accumulate points faster.


GO TO FULLL VERSION