Here I try to reveal my view of the game industry, show why I create this blog and at the same time create the first topic with thoughts.
I’m a programmer and always do something which has a game basis. And a few years ago, I was hired by a game dev company.
If you do not go much into detail, then, in my opinion, the situation can be split above three-stage. First, some publishers paid for the creation and distribution of the game. Because developers didn’t have many opportunities to get money (like today, you have Kickstarter) or sell their games (Steam or iOs AppStore). With the appearance of content distribution tools, millions of developers come to the market. Stars flashed in different parts of the sky(flappy bird, Minecraft, etc.). Some went out very quickly; some turned into giants of the industry (like Angry Birds, but you can’t say that they become big from nothing). Now the industry is in a new cycle of corporations. Even a very cool game, have a chance to break out of tens or even hundreds of thousands of games, only with investment into marketing and traffic purchases. Of course, there always be successful projects like 2048 or Transformice. Long Life the Publishers! =)
Game creation is a complicated and sometimes extraordinary process. If you are indie (hello stardew valley), then it’s a little bit simpler. You are an artist; you have a canvas, paints, and limitless opportunities. But the most money in the industry take corporate monsters, where on one project thousands of people can work, like Rockstar, EA, Sony or King ^_^
So, the straightforward scheme, but you have some idea, like game mechanics from game designer, narrative from the writer, concept art from an artist, or even technical research from a programmer. Choose one from this list or come up with your own. Then we begin to supplement these items with others; for example, there is a sketch of the history, and you ask the artist to make a concept of how the described world will look. Also, a programmer must say how difficult it is to make this idea. If you are an indie developer, then all these roles you can do by yourself. In the company, managers come at this moment(or maybe earlier) and start to calculate money. Although for the company, the most likely base idea will come to you by the chain of screaming (HIMYM). At some point, development becomes a process when a game designer does something with mechanics; artists do art for this feature; the musician creates some sounds, and the programmer creates his code and unites it all at the end. As a result, after sufficient time and a bunch of iterations, as well as a considerable share of perseverance, we get the game.
Will it be popular? Analysts and marketers try to answer this question based on their statistics. Or not if you are indie and didn’t gather analysis at all. If the game fails, it postponed, and a new one starts to develop. Maybe it will be iterated until a successful result turns out (hardly, because the analyst has already said that ARPPU will not rise ten times to recoup the project).
So what will be next? Let’s skip the negative option and see what will happen if you continue or even success. Most likely, you will want to reuse the previous developments because it’s known that they work, and it is always more challenging to do something new. The next step is to search for some good ideas from the market, they prooven to work, and the cost of repetition is less. And here we are one step away from copying everything. If today Candy Crush makes money, then there will be 100500 match-3 clones. You like pubg, and tomorrow will be 100 copy of it. If something like toonblast shoots the moon, then 500 developers start to copy it with all it’s bugs (because no one knows what a bug is and what is a feature). Even game advertise use the same principals. If something works in Mafia city, then there will be a copy of it for something like Afk BlahBlahBlah. And nobody wants to change something there, because no one can say why it stops working.
As a result, if you follow the industry, you can see that any new and popular game mechanics appear several times a year in the best case. The rest is a different variation of elements. In general, the game consists of a relatively large intersection of mechanics, features, and components, and try to create unique products would result in the creation of 2 games per year. Let’s stop at this point, remember that this blog not about game design and look at this situation from programmer view =)
If you talked to programmers, you probably heard how they get annoyed when they see someone else’s common solution. About the same way, they like to write their own, but with the opposite sign. =)
What is most interesting, the gaming industry looks much worse in terms of the use of libraries and frameworks than others. It doesn’t look so bad if you think about the Unity Assets Store, so one of the first tasks here will be to check the situation with it.
So why is this happening? Maybe because every developer thinks that his creation is unique and secret. Maybe because every game builds on a very optimized codebase, or perhaps because code looks like a theme hospital patient, one third have a bubble instead of the head, one third have alien DNA and other just Jellyitis, there are many reasons for this situation.
But let’s skip the sad part and remember the heyday of creating games after the advent of available public publishing. When technology reached the point, where any householder could put his program in the open store, and anyone else to pay money for it, all the conditions for the creation of game development tools appear. First, Unity becomes popular after Unreal Engine goes to mass market, free cocos show himself, nowadays any big company has its game engine, which must make the game developer life much more straightforward. Amazon has Luberyard; Apple has spriteKit and other kits. This move game development further like no before. Nowadays, you didn’t need to know how to work with Direct3D to render stone in the mud, and high school students can create top-rated games.
Game engines give you basic functionality on top of which you can build everything. And when game engines solve these troubles, we go to the next level of difficulties - the level of game logic. For example, every game has a tutorial, and when plenty of it added, they start to show themself at every inopportune moment. And that not only about logic; if you look inside sources, they will cover every part of your code, which not so pleasant to read. Or maybe, we create a strategy, add a unit with a rifle. After that, someone with a healing ability, and after that another twenty with different skills and their combinations. At one time, you will see that one of them stays at the center of the map and didn’t go anywhere. Or maybe shoot rockets from his small handgun. Or you need to add some venom to the shots of 20 different unity types, and that’s become a little bit heavy work. I think that you understand the core of these difficulties. That’s is the usual troubles of a project, and his complexity grows.
Anyway, like was said before, developers rarely come up with something new. To fight this challenge, developed many different oblivious ways: write code that can be supported, carefully use programming patterns, reuse your code (also wisely), use libraries, etc. Moreover, there are already many open solutions for game developers, such as Nakama Server, which must solve different troubles. But as always, the main difficulty here is not about lack of information, but about knowing where it exists. So kihontekina.dev’s primary goal is to collect information about common cases to solve everyday tasks, which fate will send to the programmer in the world of game development.