Game development and diploma defense or “How I killed two birds with one stone the first pancake”
Graduation project
Creating games and getting higher education is usually talked about as incompatible, often quite rightly. Many famous indie developers threw uni. I will tell you about the opposite experience. About his rather unusual project and how it was possible to combine business with pleasure.
I studied at RSUH on applied computer science and at the same time I was engaged in my hobby. And when it came time to choose the theme of the final qualifying work, I thought: “Why bother with her choice and write some kind of left-wing program when there is already a practically finished project: my first puzzle game.”
The matter remained in order to describe in a scientific manner the development process and convey to the associate professors and professors a very abstract idea of the game. There were no presentations: he did presentations, video reviews, showed a prototype, reported to the research supervisor that I was still alive and in action. But we must pay tribute to them and say thank you for supporting a non-standard initiative.
As a result, the material obtained during the development was enough to write a unique diploma (0% of plagiarism) completely from the head and its experience.
Initially, my topic was "Development of a logical video game on geometric principles." Later (in accordance with ISO / IEC standards) the word “development” was replaced by “design”, which is more consistent with the text of the work.
About the game
My game is a unique combinatorial puzzle for Android.
The goal of the game: to transform one piece so that it becomes exactly the same as the second one.
The game has three modes.
In the "Transformation mode" form is changed by clicking on the buttons.
In the "rotation mode" simulated three-dimensional turns.
Complicated "Sport Mode" combines the two previous ones and is designed to play the record.
There is also an interactive collection of figures, which is updated as you progress.
Prerequisites
The development of the game concept was promoted by my old hobby, which consisted in the construction of figures from a multitude of cubes. From sketches in the margins of a notebook, I came to more complex forms. Recent drawings by hand, these fractals: The
skill of the image of overlapping faces and the trained spatial thinking served to create new figures consisting of triangles. This was how early concept art drawn in CorelDRAW (not yet in isometric projection) looked like and one of the 3D models in Blender:
Later, I refused to use 3D graphics in favor of vector animation in Anime Studio Pro. On the basis of a hierarchy of shapes and transition animations between them, it was decided to make a puzzle.
Logics
The logic of the game is associated with several interesting geometric shapes. Thus, the trajectories of motion of triangles run parallel to the edges of an imaginary stellate form of a cubooctahedron and along straight lines running through its center and intersections of edges.
And the graphs of the logic of the first game mode (transformations) are hypercubes. First, the configurations are interconnected as vertices of a 2-cube (square). With each pass, a new shape space is added. At the next start, the logic is already a 3D cube, then a tesseract and, finally, a penteract with a cross section-tesseract.
The rotation mode has its own logic, thanks to which only a couple of animations of turns for each figure provide the visibility of rotation in four directions and three degrees of unfolding.
Implementation
So, I will reveal the secret of how I programmatically embodied game design. This can be stated as follows: a complex system is a simple implementation.
A simple implementation means the use of Construct 2, a designer of 2D games, for designing. In my case, using it, having some of my drawbacks, nevertheless allowed us to save time and focus more on creativity.
I presented the above “hyperlogy” in the form of a forest of complete binary trees and implemented linearly in the constructor using nested events. In order to avoid conflicts between actions, introduced blocking variables.
Optimization
Given the presence of a huge number of animations in the game (about 500), the question of optimization has become acute. I will not touch upon the specific improvement of the “code” in Construct 2, but I will speak about a more general optimization of the graphic component. To minimize the consumption of system resources needed:
- the composition of the sprites (due to symmetry, the figures can be cut into pieces and folded from copies of the sprites on the type of mosaic);
- cropping blank edges of images (this is significant with a large number of images);
- reverse animation (instead of creating a separate animation with the reverse frame order, it is better to reverse the existing one);
- lowering the frame rate to 12 fps and reducing the resolution of intermediate animation frames;
- use of 8-bit colors (such a color depth is absolutely imperceptible due to the peculiarities of the game's palette).
Pictures: tesseract, penteract, stellate cubooctahedron taken from Wikipedia.