📜 ⬆️ ⬇️

Imagine Cup 2014 or the first game creation experience

Nine months ago, I started 2nd year of university life: I went in for sports, studied, but there was no work or a great hobby for which I would spend a lot of time, except video games.

But after a couple of months I learned that the guys at our department are working on creating their own games. I was interested, because it was cool, at once there were so many questions and ideas in my head: “How do they do it? But I myself would like to make my game. How does the team work when creating a game? How to maintain the atmosphere? ”Etc.

When I looked at what they had already done, without thinking, I wrote to one of the guys on the social network; he was a programming teacher, so I was familiar with him. I waited a long time for an answer and waited, we talked for about an hour: I was overwhelmed with questions that interested me, and he willingly answered them, it was felt. Finally I said: “I WANT TO MAKE GAMES WITH YOU! Take me to your place? I can program! ”, To which he said that they would think with the team and make a decision. Less than two days later, I was told: “We take you!”, I was very pleased.
')
And now, after a few days, we all gather in a cozy cafe in the center of the city in order to discuss our action plan, current developments and ideas. I enthusiastically looked at how they all discuss, show drawings of various prototypes - all this was new and very exciting for me. We decided that we will work on the new for us Unity3D game engine, because it is multiplatform and is constantly growing functionally. The decision was quite convincing, the guys had previously worked with many other analogues and even wrote their own XNA-based engine. I had no choice but to agree.

For a long time, I had to master the basic functions and operations in Unity. But gradually everything fell into place and the first developments began to turn out.

Initially, I learned how to create 3D terrain: you set dimensions for a plane, and then on it you draw various tassels of mountains and hollows. You can create a very realistic relief, then apply textures, create water, sky, sun, and your little virtual world is ready. At first I could not believe that everything is so simple. Gradually my range of tasks grew: working with cameras, creating management ...

I liked the fact that the team had a friendly atmosphere in which there was an opportunity to easily discuss various issues, make decisions, introduce corrections and simply communicate, despite the fact that I was not familiar with the guys before.

But in the end, we came to the conclusion that the game will take a lot of time, effort and money, so we decided to “freeze” the current game project and started thinking about creating a new, more “real” for our current level of development.

Well, that's what we got:




For the implementation of the new game with the code name "Iskra" we decided to replenish our lineup with two more great guys, the process of forming the team was completed, and the team looked like this:

• Project manager , video editor and animation master;
• Artist with his indescribable style of work with graphics;
• UI developer and social network , me;
• Programmer of game logic , we call it “Programmer from God”;
• 3D modeler , with amazing experience in this area.

It was a cold January 2014 in the yard, and our team began its new hard way to implement its ideas. We tried to get together as often as possible, basically we worked at the department of our university, there was a good room, plus we didn’t have to pay for it, which was perfect for us. The process of creating the game was both interesting and very difficult, as it was necessary to master new additional programs and various functions of the game engine, which was very hard at first, but then it turned into an exciting creation of what was intended, and we became get it. We felt how our speed of writing the game is growing, we did not have time to invent something new, as the implementation has already made itself felt. In such a good atmosphere, we worked for about 2 months, we finished the demo-game with one full-fledged level - research location, we were very pleased and did not think to stop. I really remember how I wrote the user interface for the keyboard and joystick under NGUI. I came to an extremely original and “ideal” solution: for each button I created 3 sprite states (normal, induced, pressed), between which the switching took place with certain keystrokes, also each button carried a certain function, which is logical - the most important that it all works beautifully.

GUI code (keyboard only):
void Start () { //       (-) buttonInputMenu.SetActive (true); buttonsMapMenu.SetActive (false); //     1 (InputMenu) int currentMenu = 1; //    int currentButton = 1; } void Update () { //    Esc,   InputMenu if(Input.GetKeyUp(KeyCode.Escape) && currentMenu == 1) { //   buttonMenuNormal.SetActive (true); buttonMenuHover.SetActive (false); buttonMenuClick.SetActive (false); buttonContinueNormal.SetActive (false); buttonContinueHover.SetActive (true); buttonContinueClick.SetActive (false); // InputMenu  MapMenu buttonInputMenu.SetActive (false); buttonsMapMenu.SetActive (true); // ,             currentMenu = 2; } //    Esc,   MapMenu else if(Input.GetKeyUp(KeyCode.Escape) && currentMenu == 2) { //  MapMenu  InputMenu buttonInputMenu.SetActive (true); buttonsMapMenu.SetActive (false); //    currentMenu = 1; } //    ESC,   InputMenu if(Input.GetKeyDown(KeyCode.Escape) && currentMenu == 1) { //  ,    buttonMenuNormal.SetActive (false); buttonMenuHover.SetActive (false); buttonMenuClick.SetActive (true); } //    MapMenu if(currentMenu == 2) { //    if(Input.GetKeyDown(KeyCode.DownArrow) && currentButton == 1) { //  buttonContinueNormal.SetActive (true); buttonContinueHover.SetActive (false); buttonContinueClick.SetActive (false); buttonBackMainMenuNormal.SetActive (false); buttonBackMainMenuHover.SetActive (true); buttonBackMainMenuClick.SetActive (false); //    currentButton = 2; } //    if(Input.GetKeyDown(KeyCode.UpArrow) && currentButton == 2) { //   buttonContinueNormal.SetActive (false); buttonContinueHover.SetActive (true); buttonContinueClick.SetActive (false); buttonBackMainMenuNormal.SetActive (true); buttonBackMainMenuHover.SetActive (false); buttonBackMainMenuClick.SetActive (false); //    currentButton = 1; } } //       Space if(currentMenu == 2) { //      ,      //   Continue  MainMenu,     // if(Input.GetKeyDown(KeyCode.Space) && currentButton == 1) { buttonContinueNormal.SetActive (false); buttonContinueHover.SetActive (false); buttonContinueClick.SetActive (true); } if(Input.GetKeyDown(KeyCode.Space) && currentButton == 2) { buttonBackMainMenuNormal.SetActive (false); buttonBackMainMenuHover.SetActive (false); buttonBackMainMenuClick.SetActive (true); } if(Input.GetKeyUp(KeyCode.Space) && currentButton == 1) { buttonContinueNormal.SetActive (true); buttonContinueHover.SetActive (false); buttonContinueClick.SetActive (false); Continue (); } if(Input.GetKeyDown(KeyCode.Space) && currentButton == 2) { buttonBackMainMenuNormal.SetActive (true); buttonBackMainMenuHover.SetActive (false); buttonBackMainMenuClick.SetActive (false); MainMenu(); } } 


With this game we decided to try to participate in the GamesJamKanobu and ImagineCup contests.

By participating in GamesJamKanobu, we wanted to show our creation to people, get high-quality feedback from the players and gurus of the gaming industry, and continue in parallel with the development of bugs and making suggestions to the game. Almost every day we did a new build for our site, where anyone could play it and also share their opinions. As a result, we took the 3rd place in the nomination “Working version”, which surprised us, because almost 500 games were submitted for the competition and they were all beautiful in their own way.

Screenshot of the research location:


After such a great victory, we added another level - runner, we drew inspiration from games like Raymond Legends, Audio Surf and Guitar Hero. And again we got what we wanted and this time: the level was collected in 2 weeks, which was a growth indicator for us.

Screenshot of the speed-music mode (Runner):


Already with the new demo we went to the ImagineCup, for which we were preparing very seriously, we even bought a team uniform: trousers, shirt and waistcoat with a logo patch, which we made ourselves. Now we could see that we were a team, it would be understandable even in a crowd. On courage, we won the regional final, where we received very significant experience in speaking and remarkable recommendations from the judges. The next step was the preparation and a trip to Moscow for the Russian Final, this time we decided to focus on the content and presentation of the presentation that we managed. At the finals, we attracted a large number of our potential players who really liked our game, especially the level with “virtual reality” using OculusRift. By decision of the judges, we won first place in the category "Games". The victory opened up several more potential opportunities for us, on the realization of which we are currently working.

General photo with Imagine CupRussia:


This is where my little story ends due to the lack of new events and information.

This article is written for novice developers like us, with the aim of motivation, raising the spirit. For half a year I saw a lot of good projects - potential startups, which were abandoned by their owners for various reasons. Guys, do not drop your projects - they are unique, and your task is to bring them to the logical end.

Thanks for reading.
Good luck.

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


All Articles