Hello, I want to talk about how I came to creating my first relatively serious game for IOS and Android.
Prehistory
Back in high school, my friend and I were good at computer science lessons, I liked coding and solving various problems using programming. In addition, I have always loved the game, and I, like many lovers of play, was tempted by the ghostly possibility of writing my own.
As it should be, I became interested in other programming languages, and I decided to “grow” out of the notorious Pascal. My choice fell on the notorious Python, because I had heard about its wide range of applications and relatively easy mastery. A little progress in reading the relevant literature, for practice, I solved problems from the
"Project Euler .
"')
In fact, all this time I wanted to start doing something really serious, and at a certain stage I felt that if not now, then never.
This "serious", as you might guess, became the game.
Having found the PyGame library for this activity, I got down to business. To begin with, I decided to practice a little something banal. Tetris didn’t do it, but he realized, though not immediately, the good old game “life”, with which he was very pleased.
A life

Then they added to my creations: an almost completed DX-Ball, in which I was playing with an uncle's computer with interest in the middle of zero, a copy of Supaplex in its infancy (all the same nostalgia) and, in the same condition, an arcade inspired by the relatively modern The Binding of Isaac.
Dx ball '

Isaac '

The beginning of students and the first impulses to create their own projects
Over time, I realized an unpleasant thing for myself: I didn’t finish almost anything from the projects, although at first there was a lot of enthusiasm. So everything went: less and less I returned to the old developments, sometimes with enthusiasm I took on new ones, but the result remained alone.
Then, began the most terrifying period in the life of any student: EGE. Programming faded into the background, but after passing the exams and enrolling in “Electronics and Nanoelectronics” at St. Petersburg Polytech, I returned to programming. Moreover, student life shook me up a bit, taught me responsibility, which is why I decided that from now on I would complete all my projects.
And so I decided to write something for Android. I stopped at the same Python, as it was the only thing that I somehow knew and could cling to. Started learning the Kivy framework. Unfortunately, as much as I did not want, Python + Kivy is not the best option for developing for android, and I realized that I would not go far in that direction.
As a result, having spent a significant amount of time on such a simple application as a test with the conclusion of several variants of the final result, I still brought this modest project to the end and even uploaded it to GooglePlay. Then, in the wake of the popularity of the battle of two well-known rap-battlers, my friend offered to make a test on this topic and prepared questions for him. Thus, our first completed project appeared, and a team of two people appeared, which took the name “Aspid Dynamics”.

The main time was spent on getting acquainted with Kivy and another library KivyMD, which provided the elements of Google Material Design. The rest of the time was spent on drawing icons and numerous redesigns (It turned out not very good, but it could have been worse). Since I’ve been working for more than one, it made the development process a little easier and motivated me.
New beginnings
It turned out not quite what I wanted, but I decided to move on. I looked at the new development tool for me, which was the well-known Unity engine. The choice of the future direction of development was finally accomplished, it remains (just something) to get acquainted with C # and explore the possibilities of Unity itself. Thus, we got close to the events that happened quite recently.
As before, I decided not to take up something very heavy right away. The idea was simple: to create a game in which people would write words suitable for a predetermined condition. One simple example: “Enter words containing three letters“ o ””, after which you enter, for example, “bell”. At first, the idea did not seem to be new, but, having checked the Play Market, I did not find such games, which ultimately convinced me of the success of the idea.
Project "Expert on the Word"
Having chosen for the game the trivial, but memorable name “Expert on the Word”, I began to think carefully about the development process. The implementation seemed simple, at least after a superficial analysis. Maybe this is the case, if only the basic mechanics are formalized, but with detailed consideration, the functionality has been multiplied many times and has been significantly expanded.
Having finished the description of the project, I started to implement point by point with gusto. The basic idea really came true pretty quickly: the ability to create levels based on several templates was added.
Patterns are a kind of basis for some criteria that a word must satisfy, among them: the beginning of a word in a “substring”, i.e. the letter or sequence of letters, the content of the “substring” in a word, the content of N letters, the parity / oddness of the number of letters in a word, etc.
Next, the words entered by the player were checked for compliance with the pattern and presence in the dictionary. Points were added depending on the frequency of the word, and I began to set the passing levels depending on the number of points I received in 5 minutes. In standard levels of the game, a person needs to enter the maximum possible number of words in order to be able to pass the following levels.
Master of the Word

New problems and unexpected solutions
All anything, but it turned out that it is quite difficult to make many different levels. My friend, again, undertook to help my friend, and already to the fortieth level, there was a very acute problem not only that it’s hard to invent levels, but also because, due to some linguistic features of human perception, we too often chose certain letters and patterns, stubbornly ignoring others.
It was noticed in a timely manner, and an attempt was made to strengthen control over myself, but it did not give the desired results, so I had to count and write down the frequencies on the use of letters and patterns in our levels. After that, it became much easier to take care of yourself, but in the end only 60 levels were made.
Due to the fact that the need for inventing levels slowed down the development, and also because of the problems described above, I decided to implement a level generator that, based on our templates, would create an imputed task. I could not find a correlation between the number of words corresponding to the task, their frequency and the number of points (This meant that the levels would have to be balanced as well - manually).
Apparently, this is due to the fact that the words for some conditions are easier, even if they are fewer. For example, in the mind it is quite simple to pop up words, with the condition of beginning on any substring, for example, take the words on 'ba'. It’s as if we say to ourselves this initial condition “ba”, and the brain easily completes it to a set of words: “buck”, “bank”, “banana”, etc.
But if the condition has no more than 4 vowels and exactly 8 letters, then, although there are 6 times more such words, the speed of selection will clearly decrease. On some templates, we do find one word, fall into a whole cluster (for example, ending up on spruce, if we get the word teacher, we can see that many professions end like this: builder, driver and etc.). If there was no connection, nothing would unite these words, then by simply going over in our head, we would guess much less.
Polishing, new modes, final touches
The created generator really noticeably facilitated the creation of levels and, gradually increasing the number of levels, my friend and I got to hundreds. It was inspired by the success involved in creating levels of the generator, we decided to introduce a new game mode.
It was “survival”, where you need to enter words until the timer expires. The difference from the classic mode is the fact that here the player is faced with the task to enter a word in N seconds according to the given condition. If the condition is successful, a new task is generated, and the timer is extended.
Later, we decided that in order to constantly maintain the content, we need to add multiplayer. It goes without saying that it is much more interesting to measure vocabulary with a friend during a break, or to play with a stranger online. “Classic” multiplayer mode implies competition in the number of points received over a certain time. Having spent quite some time with the implementation of the game over the network, I finally figured out and finished 2 corresponding multiplayer modes.
A lot of problems in the design process brought us a design. The main snag was that I myself, as a matter of fact, far from being a designer, my friend also does not possess the necessary skill, but I wanted to make an adequate picture. A third acquaintance agreed to help me, but after several drafts not carried through to the end, he could not continue.
As a result, through repeated processing and feedback from friends, I myself developed the final version of the design.
Game release, future plans
Initially, the Connoisseur of the Word was supposed to go out only in the Play Market due to budget constraints, but my friend helped get $ 99 needed for release in the AppStore.
We plan to complement and update the game. Extra levels, achievements, player rating and many more interesting things. Perhaps we will do English-language localization, which is a little expensive in the context of this game.
Thank you very much for your attention to all who read this long post.
Sincerely yours,
Team Aspid Dynamics.