Black box. This was the game creation process for me until I downloaded Unity3D. The black box was mysterious, attractive and tempting, I really wanted to try it, but intrusive thoughts came up inside: it's hard, you can't, the games are made by professionals, you need a big budget, it's long, it's expensive, you can't understand, you can't, you ... And so on, you yourself probably remember what I mean. Still, there were doubts, it seemed to me that the situation was slightly simpler, and an increasing number of so-called indie games began to speak about this.
About three years ago, somewhere on the Internet, I clicked on the banner, saying that here it is, the tool that you need to create games. A website was opened, which for some reason immediately appealed and made me linger, and the inscription “free of charge” captured my attention completely. This was the site of Unity Technologies, I ran over the links and clicked on the download without thinking. The program started up, the installation was successful, the launch went too without any problems and - hurray! Before me either Photoshop, or 3D Max, and you can also program, and also games ... I remember how they told me: "Why are you doing this, what is the" pukalki ", why, why." But it was impossible to break away: you can make games elegantly, quickly, beautifully, slenderly, and the flight of fantasy is unlimited, there are many possibilities, the concepts are logical, the space is three-dimensional, the store is there. Yes, and the documentation is excellent, I want to highlight this advantage of Unity Technologies, which, in my opinion, gave it a lot of points of odds compared to other developments: on the company's website, you can find lessons, and finished projects, and answers to questions from user manuals , directory of functions, community, question - answer, etc. All with examples, clearly, is available. ')
I made a couple of table games: a galaxy-style shooting ship and a simple arkanoid. Since all my life I was interested in the field of education (by the way, I am interested in the field of education not only theoretically, I constantly teach in various educational institutions long and short-term courses), I suddenly realized that this is precisely what is missing in our area: in Kaliningrad no one today teaches how to make games. I mean in schools and universities. Yes, and in commercial training centers, too. Schools are forgivable, but why have they not yet introduced such a course in institutes and universities?
In this publication, I want to share with you the experience of learning the basics of creating computer games using Unity3D, tell you about the difficulties of this process, why it should be done, how to do it better and what we here in Kaliningrad are doing in this direction. Then there are some videos, photos, thoughts, references, experiences, plans, questions, tips, requests and recommendations. We really need your opinion! I'll start from afar. Recalling my university studies in the distant 90s, I can draw only one conclusion: there was very little practice attached to the real future life of a future specialist. Studying subjects in the specialty (and this is specialty 220200 - automated information processing and control systems), even then I was slightly confused: how to put all this mass of theoretical knowledge into practice? Where to apply? Why do we teach all this, do term papers, write a diploma? I am well aware that there is no theory without anywhere, and thanks to our teachers for not joining us in the classroom for the frequent idiocy and lack of understanding of the evidence. But having received diplomas, we left the doors of the university at the end of June 2000, almost useless. We had only pride in five years and that piece of cardboard that we have in our hands, but there was not a bit of practical knowledge that would allow the paste to join the work process in any organization. True. I remember how, by a miracle without experience, I was taken to work in a newly opened bank, where I had to independently study the wisdom of Unix, servers, complex networks, not to mention the application software, which I hadn’t even heard of. Thanks to the chief accountant and manager that gave me a chance!
Constantly teaching various courses on multimedia technologies, I came to the conclusion that it was interesting for students to do something practical. Something real, something that you can touch, see, use at once: a film, a website, an animation program. Let the result be small, let it be incomplete, but it will be learning through the project. Plus personalized learning.
Project - based learning
The concept of project - based learning has long been successfully applied in various educational institutions in Europe at the school level. No need to copy, of course, but to look, learn and take the best you can. In Russia, traditionally there was a splendid secondary and higher school with its own specifics related to our language, history, geographical and economic position. But times are changing. There are really few specialists, knowledge is divorced from practice, teachers do not have time, borders and language barriers are erased.
John Dewey, an American philosopher and educator, in his work, dating back to 1897, first outlined the idea of ​​learning by doing. “D. Dewey put forward the idea of ​​creating a “instrumental” pedagogy based on the spontaneous interests and personal experience of the child. According to this concept, learning should be reduced primarily to play and work, where each child’s action becomes an instrument of his knowledge, his own discovery, a way of realizing the truth. This way of learning seemed to the pragmatists more appropriate to the nature of the child than the usual message to him of the system of knowledge. ” More information about Dewey's activities can be found in this article , from which I took this passage from the text.
I am extremely impressed by this concept. Let's analyze this example: you need to learn a programming language. You can do this on the basis of theoretical tasks: sorting arrays, calculating equations, matrices, problems on graphs, etc. Tasks that display a certain numerical result on the screen. But after all, it is possible to study the language and the basics of programming with other examples: registration on the site, cube rotating by pressing buttons on the keyboard, behavior of the robot. Moreover, I believe that the same theoretical tasks of the classical approach to learning will be effectively studied as a result of the implementation of such practical tasks. To register on the site, you need to create a program with reference to the database, to display a rotating cube, you will have to work with arrays, and the behavior of the robot will have to be described by mathematical equations. The task is completed, but in a more playful, productive form, which can be shown, you can brag, you can “touch” and see. Moreover, in this approach, you can clearly carry out the personalization of training, since it is more interesting for someone to work with graphics, and for someone with microcontrollers.
Slightly carried away, I'm sorry. My task is not to radically change the educational system or criticize existing methods. There are many approaches to learning, today both the middle and high schools are coping with their tasks and it cannot be said categorically that everything needs to be changed, no. I'm just trying to show you the course of my thoughts and lead me to computer games.
Computer games
Everyone plays games: schoolchildren and students, young professionals and elderly retirees. But computer games, not for me to tell you, are the most complicated fusion of various technologies used in one product. Three-dimensional modeling, texturing, design, animation, physics, mathematics, programming, psychology. And in my opinion, it is much more interesting to study these complex spheres of human activity based on the creation of the simplest computer game, as there is an end result that is understandable to young people, interesting to young people, and the thought that “I made the game myself” will allow me to continue my studies further, encompassing increasingly complex concepts. And with an increase in the complexity of the project, the interest will not fade away, since the result will be clear and clear, the result can be played.
Unity3D seemed like the perfect medium for this. Perfect in every way:
The threshold for entering this software into the educational process is extremely low: the program is free. Plus, you can install free SketchesUp and Gimp - and everything is ready to start learning the basics of creating a computer game. The rest is just a matter of personnel, i.e. the person who will teach, his knowledge must be extensive;
Unity3D is an environment for designing 3D games. Today, any schoolchild amazes with the knowledge of the characters of three-dimensional games of different genres, it is verified Those. The three-dimensionality of a computer game today is a given. Unity3D allows you to explore the concept of three-dimensional graphics, natively supporting file formats of relevant programs. Plus, when used in scenes of three-dimensional objects, in my opinion, the imagination is actively developing and skills are laid that can be extremely useful in designing objects in architecture, automotive, industrial design, etc .;
The physics in Unity3D is fascinating and entertaining, at the same time you can achieve great results. Oleg Pridyuk, an Unity3D evangelist, said that their software is certified by many agencies (in particular, NASA) and is used in various simulations. I will tell you about our personal meeting with Oleg a little lower;
Since the program was originally created by the developers of the GooBall game, the Unity3D interface is easy to learn and easy to use;
Programming in Unity3D leads to visible events, as I mentioned above, which removes the “boring” component: all my students stubbornly wade through the jungle of code, as the long-awaited result was waiting for them - their own aircraft would fire their own bullets with their own special effects . You should see these brilliant eyes of schoolchildren;
Excellent examples, documentation and ready-made game projects allow you to independently study complex concepts;
A large community will not allow the student to remain alone, you can always ask a question, plus bring up English.
This is only part of the benefits. All the rest can be assessed, probably, at the level of subjective sensations: while studying Unity3D on my own, I simply did not notice how I was extremely fascinated by the process of creating game scenes and difficult tasks began to be solved. Tasks, the solution of which, as I thought earlier, can only be found by professionals, large studios and large budgets. The black box gradually began to become translucent.
Who to do with, that's the question
Having developed two programs for teaching the basics of creating computer games using Unity3D, for schoolchildren and students, two years ago I applied, respectively, to several schools in the region and to two local universities. I didn’t receive any feedback from schools at all, but I was able to talk personally with the telephone dean of the faculty of one of the universities, after which he sent me to his deputy, who, in turn, sank into oblivion: neither to letters, nor to calls did not have. At the department of another of the universities in general, everything is very sad. I deliberately do not name names and passwords, as in this article it does not matter. The situation is clear, well known, you just have to change it slowly. Here, by the way, the article here, on habrahabr, on the topic of education, which appeared just in the process of writing this opus.
I decided to turn to commercial structures. A long-time acquaintance with Oleg Vidyakin led us to organize a course on how to create computer games based on his center. Oleg quickly responded to my proposal, three students studied Unity3D during the last academic year.
Sometimes it’s harder to make
The first thing I asked the guys - make up a simple game. It turned out to be a difficult task, none of the three of my first trainees could perform such a seemingly simple task. And here are a few lessons we considered issues related specifically to the creation of the concept of a computer game: the plot, characters, appearance, and environment. Moreover, for the guys (and for myself too), I developed the following strategy of “inventing” the game:
We create a plot according to the classical scheme "the plot - the main action - the climax - the denouement." With one of the students, we somehow began to argue about whether there are games without a plot. He proved, well done, that there are. But, in my opinion, the plot adds even more meaning to the game than a simple pastime. The plot allows you to keep the player in front of your product, opens up new facets in your game, stirs interest. Also at this stage we determine the main idea of ​​the game and the genre: run, shoot, jump, swim, fold, view from the first or third person, etc. Here you can see the name of the game and the names of the characters;
We determine the purpose and features of the game, formulate its main differences over existing analogues. At this stage, we consider similar developments, reveal their strengths and weaknesses. The goal is extremely important, as it helps to immediately prioritize the development: whether we want to make money, or surprise the world, or learn, or all together;
At this stage we develop characters: main, enemies, minor characters;
Technical specifications - here we determine the choice of platform, select the engine, determine the additional external modules;
Everything is recorded. A very important stage, we fix every little thing, every phrase, they can be very useful in a week, a month. Moreover, it would be more accurate to speak about the permanence of the process of recording: at all stages of building a game, we definitely throw off all thoughts on paper. We build a game scheme, draw blocks of interrelations between objects, create levels on paper (at least approximately). We fix the capabilities and skills of the character, the features of the environment and objects, and immediately in the object-oriented model: initially we determine the properties and methods of each object, entity and character in the game;
Draw sketches. This process can also be stretched and spread over all previous stages;
And when all of the above is done - go directly to the construction of scenes in Unity3D.
I look forward to your comments and absolutely do not pretend to the perfection of the process described above. Surely, everything can be optimized and improved. But the listed points literally changed the guys: after two lessons they began to think completely differently and each game was considered more carefully and intently than before. This is the result, agree?
We came up with a platformer with the name "Dvorax" ("Dworax" in the English version), plot and interesting characters. There is a site dedicated to this undertaking, but I understood from the rules that they don’t like it when they post links to their resources, right? So for now I will not.
During the academic year we managed to make the first level, and that is not the end, the result is extremely low, but there are objective, in my opinion, reasons for this. Firstly, Oleg Vidyakin had an unimportant park of computers that year. And this is the first conclusion that can be made: Unity3D training should be carried out on hardware, at least a little above the average in terms of capabilities. Monitors are desirable widescreen and high-resolution, or better two, the video card is more powerful, we twist all the same three-dimensional spaces and objects, and memory is also desirable more.
The second reason - classes were held once a week for one and a half hours. Still, this number of hours is extremely small for the successful study of even simple concepts. Therefore, one more conclusion - it is better to study and teach the creation of games at least twice a week for two hours with at least mandatory homework.
Must be internet access. It would seem that this is obvious, but when it is not in class or the speed is extremely low, it is extremely annoying.
Regardless of objective and subjective reasons, we completed the training in May, studying the following: program interface, Unity3D basic concepts, Javascript basics, moving and placing objects in three-dimensional space, object interaction, object movement, using Unity Technologies Asset store, using textures and particles. If it is interesting, I'll post the results and drop the link. Yes, a feature of these developments was the use of a two-dimensional sprite sheet to animate the main character, the gnome, in a three-dimensional environment. Quite an interesting effect turned out. Unfortunately, we had to use third-party materials (models, textures), because time and lack of software did not allow us to consider three-dimensional modeling and texturing.
It was the summer of 2013, and Oleg and I fled, and, on my initiative, of course. I didn’t receive a positive reaction to my requests for upgrading equipment, Oleg came up with another project for his courses - a creative computer games studio, about which one of his teachers wrote recently here . I wish this project, of course, success and prosperity, but frankly against the choice of platform and programming language, which Oleg and I have talked about repeatedly. Sorry for the harshness, but I have the right, it seems to me, to express my opinion and I can, if necessary, confirm it with arguments.
KOIRO
During the last academic year, I applied to KOIRO (Kaliningrad Institute for Educational Development) with proposals to conduct various short courses for teachers: three-dimensional modeling using Autodesk 3D Studio Max, creating electronic interactive books using Apple Ibooks author, creating computer games using Unity3D , computer animation using Adobe Flash, creating websites using Wordpress CMS. Those who were too lazy to read the link above, KOIRO is a state autonomous educational institution of the Kaliningrad region of additional professional education (advanced training) of specialists “Institute for Education Development”, the structure, one of whose tasks is to upgrade the skills of school teachers.
"Sunny Beach" and gifted children
We have been cooperating for a long time, and in the summer, this organization received an unexpected offer: to tell something creative and related to information technologies for gifted children in the first shift of the Sunny Beach specialized camp in the village of Ushakovo near Kaliningrad, on the shore of the Kaliningrad Bay. Some information from the media: “... we recall that the region has created a model of a network of educational institutions for the implementation of physical and mathematical education, which makes it possible to develop the most promising form of organization of education - training on an individual educational route, including using distance learning technologies. Ensuring the growth of quality is expected, first of all, due to the unity of approaches in the organization of training and the use of the potential of network interaction both within the network and beyond. From September 1, 2013, the profile physical and mathematical classes will work in 20 basic schools of the region, linguistic - in fifteen. Their main task is to identify capable children and their training in advanced programs. And in extracurricular time, students will take internships in “vacation schools” in Ushakovo. ” More detailed information about the two shifts carried out this summer in the profile camp in Ushakovo can be found on the Internet on the relevant requests, the benefit of its (information) is really a lot, and below - the video created by the guys. To whom it is interesting - do not take the time and get a general idea of ​​what is happening.
The proposal was very unexpected, the conditions are tough (in five days to tell and do a real project with schoolchildren), but I, as usual, did not refuse, and the choice fell again on Unity3D. In the camp, the guys for five days (the whole shift lasts a week) study various courses in the first half of the day. Moreover, the trainees choose the courses themselves. The shift has opened. In my course, which was called "Game Theory" (a slightly unfortunate name, but the organizers later corrected), about 30 people signed up, which made it a bit scary. We divided the enrollees into two groups, and all night before the first lesson I thought how best to organize the learning process: there is very little time, there is a lot of information to be given, but everything worked out, honestly.
We immediately began to make a project, moreover, I chose a galaxy-style shooting spaceship, which I made myself at one time. Of course, all the basic building blocks for the scene were scattered on the computers of the students (models, textures and scripts), but there was simply no other option, in five days, I can give what is in my head and allow at least something to learn. the only way.
The result was stunning: the guys were extremely interested in the process, they enthusiastically studied the program, listened attentively and eagerly wrote down the basic concepts. Below is a small thread from these lessons.
True, everyone who came to this camp was extremely motivated and serious, but it was not bad either. In general, my general impression about the center organized in Kaliningrad is extremely positive. When I first came to this closed area, I remembered the pioneer camps of our past, breathed my childhood, but in the modern manner: with computers, the Internet, renovated buildings, interesting teachers, a general benevolent atmosphere.
All successfully completed the project. Many have done more than planned. Most of them included imagination and brought creativity into their scenes: they changed the spaceship, asteroids, particles. Pay attention to the video below: this is Yang defending the project (at the end of the shift, there was a so-called project fair, where the children told their parents about what they did during these five days). Jan finished fourth grade, but almost none of my proposals caused him any difficulties, and he made his project unique.
But most importantly - 12 people wanted to study further. Imagine? Immediately almost half, this is really a lot. And so it was decided to open courses on Unity3D on the basis of an information center that belongs to KOIRO, where we continued with the students to study the more complex aspects of creating computer games. My friend suggested calling this initiative Unity School, for which he thanks a lot, and many photos and information about students and classes are on the site of the same name, come!
Unity Developer Day in Kaliningrad
The courses opened on July 7, 2013, but before that another event was held for our region - the Unity Developer Day conference. A report on this interesting event can be viewed at the link . Thanks to the organizers, namely, Andrei Harutyunyan , that allowed to make a presentation, which caused an active debate. I told, as you understand, about Unity3D training. There were a lot of questions and opinions, and I was extremely surprised by one of them: you shouldn’t teach basic programming skills using the example of Unity3D. Say, you need to give "old school" programming, start from scratch, etc. I do not agree with this opinion, and I believe that it is much easier to show the student what programming is by the example of creating a game than by the example of programming accesses to databases in Visual Basic. And I was actively supported by Oleg Pridyuk , who was the keynote speaker at this conference and, of course, the representative of Unity Technologies. Oleg took the microphone and brought one interesting example: an artist, not a programmer, created one game on Unity3D, with the help of which he earns serious money today. And what, to forbid him to live in a new house and drive a new car just because he is not an “old school” programmer? I think the answer is obvious. There is a place for discussion, but continue.
Oleg Pridyuk left his business card, after the conference we talked a bit in an informal setting, and the next working day Joana Kodyte, a representative of Unity Technologies, who oversees educational programs in Russia, contacted me. We chatted for a long time, and the company presented 14 Pro licenses to the courses, which struck me extremely and confirmed the seriousness of their intentions. We have not yet used the licenses as unnecessary, but it will be especially useful for those interested to learn about LOD, dynamic shadows, baking textures, using NavMesh and other features of the engine.
Unity school
For a month with the guys, we made a simple scene: a certain aircraft, controlled by a player, must fly through the rings over the landscape. Rings appear randomly, when flying through a ring, special effects are generated, an arrow is indicated on the location of the next ring. The results of the classes can be viewed on our website, where the voting for the best game is also open, and the winner will receive a prize. Enthusiasm should be encouraged and supported, so leave your voices, if you're interested, you can influence our choice!
In August, another change of the profile camp "Sunny Beach" took place, where the guys again, along with other courses, plunged into the wisdom of Unity3D. Everything went well, this time about 50 people signed up for the course. Not everyone came to the finish line, but starships were launched and interest was awakened.
At the same time, someone from Moscow contacted me, who wished to individually remotely teach Unity3D his son, who is doing a project for the school. The project is extremely interesting, and if there is time and its authors want and allow them to share, I will definitely make a description of the developments here, this is really worth attention.
Today is the second set of courses for Unity School. In connection with the turmoil around the new school year, we extended the list of applicants.In the summer, I contacted Valve, which launched the Pipeline project, and talk about the results a bit later ... Negotiations are underway with several local studios and training centers in Ukraine and Belarus about brief lectures covering complex aspects of game development. KOIRO has equipment that allows you to conduct training remotely, and today we are negotiating with the center of informatization of the institute to open courses for those who cannot attend classrooms in person. From the end of September, I open a regular series of webinars and invite everyone to join them. The webinar program is extensive: Mecanim animation system, features of importing three-dimensional models, preparing graphics for the game, creating a controlled character, shooting, GUI, saving results, an in-game store, physics, Unity3D extension due to third-party development, multiplayer,sounds in the game and much more.
The purpose of this article, along with, of course, a certain and informative component, is also an attempt to draw the attention of various structures to what is happening in secondary and higher education, to the real opportunity to increase the interest of the younger generation in creation, rather than consumption. We do not need a society of consumers. Let's bring up and identify the best representatives of the generation that will lead ourselves, you and our young children to more serious results. Making games is fun and exciting. Creating games at the same time and working, which I told the deputy chairman of the government of the Kaliningrad region Alexei Nikolaevich Silanov: another goal of these courses is to make young people aware that game development is not only entertainment, but also work, hard daily work that brings profit ,increasing the budget and welfare of both the individual and the region, the country as a whole. I appeal to the cooperation of the company developing games, I appeal to teachers of schools and universities, to students: let's be a little more mobile, let's inculcate practical skills, not a bare theory, divorced from reality, let's be creative and modern! Thanks to everyone who read to the end!