📜 ⬆️ ⬇️

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 well-known indie developers threw uni. I will tell you about the opposite experience. About its 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: I did presentations, video reviews, showed a prototype, reported to the supervisor that I was still alive and in the business. But we must pay tribute to them and say thank you for supporting a nonstandard initiative.

As a result, the material obtained during the development was enough to write a unique diploma (0% 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 with “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 have come to more complex forms. The latest freehand drawings are 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 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 implies 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” as a forest of complete binary trees and implemented it 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:


Pictures: tesseract, penteract, stellate cubooctahedron taken from Wikipedia.

Source: https://habr.com/ru/post/435542/


All Articles