Games Vision #2

Variable heading Games Vision.
I write short reviews of games that I have played recently

wsunhd
SIM
aka Sara is Missing (Android, Monsoon Lab) – ты находишь телефон девушки по имени Сара. Внутри телефона есть встроенный помощник IRIS, она хочет найти свою хозяйку и просит тебя ей в этом помочь. Задача понять что творилось в голове Сары из ее переписки, фоточек и видео, найти где она находится. Игра очень оригинальная и достаточно пугающая. Минус в том что нет локализации на русский и другие языки, нет версии для iOS, хотя очевидно что интерфейс игры копирует продукцию Apple (IRIS – SIRI) Также игра очень короткая.
Rating 7/10

unnamed
The End of The World
(Android, Sean Wenham) – игра про расставание – парня бросила девушка, теперь он бродит в поисках вина и спит под мостом, вспоминая моменты когда они были вместе. Умилительные моменты воспоминаний, грустная музыка, переход в белое, в принципе отличная игра для женской аудитории и некоторых пацанов. Мне не понравилась бюджетная графика с претензией на оригинальность (напоминает Another World Эрика Шайи), нулевой геймплей, попытки выбить из игрока слезки, предсказуемость, десять минут прохождения. Любителям ванили рекомендую.
Rating: 5/10

unnamed

Werewolf Tycoon (Android, Joe Williamson) – a game about a werewolf who eats people in a city park. The graphics and gameplay here are cheerful – childish, the colors are light without gloomy tones, no blood and people look like round cupcakes with funny animations. The rounds are short and simple, the only enemies are journalists with cameras. It sounds, looks and plays very fun. Of the minuses – low difficulty, watching ads for canceling Game Over, the mechanism for withdrawing points to social networks does not work.
Rating: 6/10

Games Vision #1

Variable heading Games Vision.
In this article I will write short reviews of the games I have played recently.

jansen

Don’t even think that this guy has emotions, he just pretends that he does sometimes.

Deus Ex Mankind Divided (PC, Square Enix) – a game about half-human Adam Jensen who is vacationing in Prague and saving the world along the way.
Good graphics, high system requirements, predictable plot, non-standard work of artists – it’s all here. The game offers many options for passing, for example, I managed to get the achievement “pacifist”, for the fact that I did not kill anyone during the entire passage, including bosses.
I liked the pop culture references “The Void Which Binds“, “IRON MADE in China” and others. I didn’t like the huge amount of text – fluff, all sorts of emails storing passwords for doors and characters’ correspondence, the text is absolutely empty and uninteresting. At the time of passing, the game constantly crashed in DirectX 12 mode, autosaves broke, patches seem to be still being released. I decided not to play the DLC because I had already been playing the main game for about 2 weeks, having gotten out of my usual empty life.
Rating 8/10

slayin

Slayin (Android, FDG) – an extraordinary arcade game in pixel style for mobile phones. You need to run and kill monsters, buying equipment in the store. In this game I liked the art, I really liked the chiptune music, it looks like arcades for NES, convenient controls. The game itself was upset by the fact that the gameplay does not take place beyond one scene on the screen, the inability to move around a large level.
Rating 5/10

swordxolan

Sword of Xolan (Android, Alper Sarıkaya) – an arcade platformer in pixel style for mobile phones. A knight or samurai runs around the level and saves people from iron cages. Quite interesting gameplay, convenient controls, large levels. The overall budget of the game is disappointing, cheap art, cheap sound, looped music.
Rating 6/10

bardstale

The Bard’s Tale (Android, inXile entertainment) – a remastered action RPG for mobile phones. An unusual RPG with funny scenes and dialogues. On the disc with the game it was written “turn the disc over to see something terrible”, on the back there was a mirror side of the disc. At one time, I missed this game on PC because of Neverwinter Nights, but now I can play it on my mobile on the bus. For a modern gamer, there are clearly not enough points of where to go and what to do, but that’s why I love old school games, you really need to play them. There is also no ability to save at any point, which is critical for a mobile game. Music, art, I like everything, but I find the current controls on the phone screen inconvenient. And of course, this is not a new game, but simply a re-release for mobile platforms, which I personally consider a big minus.
Rating 7/10

Diluting ECS


Commission: Mad Scientist by Culpeo-Fox on DeviantArt

In this article I will roughly describe the ECS pattern and my implementation in the Flame Steel Engine Game Toolkit. The Entity Component System pattern is used in games, including the Unity engine. Each object in the game is an Entity, which is filled with Components. Why is this necessary if there is OOP?
Then to change the properties, behavior, display of objects directly during the game execution. Such things are not found in real-world applications, the dynamics of changing parameters, properties of objects, display, sound, are more inherent in games than in accounting software.


We didn’t go through bananas

Let’s say we have a banana class in our game. And the game designer wanted bananas to be used as weapons. Let’s say in the current architecture bananas are not related to weapons. Make a banana a weapon? Make all objects weapons?
ECS offers a solution to this pressing problem – all objects in the game must consist of components. Previously, a banana was a Banana class, now we will make it, and all other objects, an Entity class, and add components to them. Let’s say a banana now consists of components:

  1. Position component (coordinates in the game world – x, y, z)
  2. Rotation component (x, y, z coordinates)
  3. The calorie content of a banana (the main character can’t get too fat)
  4. Banana picture component

We are now adding a new component to all bananas, which is a flag that it can be used as a weapon – Weapon Component. Now when the game system sees that a player has approached a banana, it checks whether the banana has a weapon component, and if it does, it arms the player with a banana.
In my game Flame Steel Call Of The Death Mask, the ECS pattern is used everywhere. Objects consist of components, components themselves can contain components. In general, the separation of object < – > component is absent in my implementation, but this is even a plus.

screenshot_2016-09-24_14-33-43

The shotgun in this screenshot is a player component, while the second shotgun is just hanging on the game map like a normal object.
In this screenshot, there are two Systems running – the scene renderer and the interface renderer. The scene renderer is working with the shotgun image component on the map, the interface renderer is working with the shotgun image component in the player’s hands.

Related links:
https://habrahabr.ru/post/197920/
https://www.youtube.com/watch?v=NTWSeQtHZ9M

Losing yourself

“You can’t be a master of everything” – I’ve always found phrases like these funny. Everyone, users, programmers, bosses, and customers, falls into this trap of specialization. “I want it like Microsoft/Apple/Google”, “Why can’t we just make a Russian iPhone?”, “Why isn’t it like Word/Uber/Photoshop?” – Anyone who is even slightly involved in IT has heard these phrases. These phrases, repeated by different people, sound even funnier.

I’ll ask you, reader – why do you need another Word? Why do you need another Uber? Why do you need another Photoshop? Why do you need it to be like an iPhone?
Why do you tie yourself to only one company’s interfaces and approach? Why do you label yourself as an Apple/Google/Microsoft lover? Why can’t you open your mind to alternative approaches to solving problems, why don’t you want to be more productive?

A lot of Microsoft users didn’t like how the company decided that everyone needed to upgrade to Windows 10. People complain about the iPhone’s inconvenient interfaces, system crashes during updates, design changes that they don’t need, but they still continue to use them because they’re used to it, and having an “iPhone” is a status symbol in modern society.

Sometimes it seems that if Microsoft/Apple/Google were asked to give up their own children in exchange for continuing to work with their products, then due to the high attachment to these products, people would easily give up their children.

Don’t be like them, don’t get attached to one product, look at alternative options. Once I was offered to develop a system for realtors, with an interface on Microsoft Excel, there were also offers to develop an “interactive whiteboard” system on Microsoft PowerPoint. When I asked why Microsoft, they answered that “we’re so used to it”, when I asked if there is licensed software from Microsoft in these companies, they answered evasively, saying that if it is necessary, they will buy it.

Reader, I urge you to study the edges of the IT world, at least in general. If you have been using only Microsoft Windows all your life, try Apple OS X, or Linux. If you only use the iPhone, try using the latest version of Android for at least a week. The moment you switch to the side of only one company, closing yourself off from the products of others, at that moment you lose yourself. Yourself, as a person who can decide for himself what he wants, as a person who can choose the most convenient and productive tool for solving a specific problem.

Programmers of only one platform – another headache for me personally, as I believe, for the IT industry as a whole. Developers who make applications with export only to *.doc or only to *.pdf, developers who are tied to only one outdated commercial database (for example, IBM Informix, or God forbid Firebird), only to one type of hardware (all these non-working programs for x86 on Android), of course, I understand that you are “used to”, but guys, it’s time to change.

In my work I often use unpopular, but very convenient tools. One example – it was necessary to reduce the resolution and compress about 100 photos for fast loading over 3G and output to iPad. That day I heard one of the most typical phrases – “We will have to manually convert all the photos in *Photoshop* to the desired format.” It seemed funny to me because I imagined a person who would manually, like a servant of God, redo all these 100 photos in Photoshop, or try to automate through the built-in mechanism. The point here is that the person is so attached to Photoshop that he did not even suspect the existence of a free, open set of tools like ImageMagick. ImageMagick allows you to do a lot of things with vector and raster images, including being ideal for solving a problem with 100 pictures in 5 minutes.

Be a master of everything, study, try, don’t become a slave to a specific corporation.

16-bit Santa’s Helpers

I received a message in my email:
“Hey, we’re opening a retro game jam here – bibitjam3!!! You should make a game for the 8-16 bit retro platform!!!”
Bah! This is my childhood dream – to make a game for Sega Mega Drive Two.
Well, I tried to make a toy, and I even got something:
rqr
I called the game “Red Queen’s Mess”. The story is this – “The Red Queen was thrown into a deadly labyrinth, now she will kill everyone on her way to freedom.”
You can walk, you can attack the green thing with red eyes, open treasure chests, and move from scene to scene.
This is of course a level “to try” to do at least something for Sega and for the competition.
I use SGDK toolkit – compiler for Motorola 68k based on GCC, libraries for working with Sega Mega hardware.
Now I understand that it was really difficult – to make games 20-30 years ago. For example, each tile – should be divided into pieces of 8×8 pixels and drawn in pieces in turn. Also, the palette for each tile should not exceed 16 colors! Now, of course, it is much easier.
Of course, we need to create a game, sound, and graphics engine for the game, just like now.
You can play Red Queen using Sega Genesis emulator and game ROM:
http://demensdeum.com/games/redQueenRampageSegaGenesis/RedQueenRampage.zip
If you want to see the source code:
http://demensdeum.com/games/redQueenRampageSegaGenesis/RedQueenRampageSource.zip

How We Made Mad Racer

Hello dear reader. In this note I will describe my experience of creating the first game for Android mobile phones. Many people like this story, I think it should be published. This is not a success story, but I think many novice developers will understand where to start and what to do to create a simple game. I will definitely describe my mistakes, and what could have been done better.

Hewl-Tanky

May Jamie Hewlett and Alan Martin forgive me for publishing excellent Tank Girl art without their permission

Sometimes you get into a state where you want to create something so that everyone gasps and says with their mouths open “You’re awesome“. This story happened to me in 2011, when I watched a fragment of the film “Tank Girl” and was inspired by the idea of ​​creating an arcade game in a comic style.
Why Android and not iOS? The reason is simple – I didn’t have a Macintosh or an iPhone, but I had a great desire to support Linux on mobile phones. At that time, I liked the FSF ideology, and Richard Matthew Stallman was my god.


Linux Hackers Song. Before you sing – believe in world peace

At the time of development, the latest version of Android was 2.0, and it was also necessary to leave support for older versions, since there were a lot of 1.6 users. Many phone manufacturers did not even release updates to version 2.0.

I immediately set a time frame for the implementation of this project – one month. During this time, it was necessary to improve my knowledge of Java, study the Android SDK, Eclipse, meet the monster in the face of OpenGL ES and put it on both shoulder blades. On the graphics side, it was necessary to create about six 3D models optimized for mobile phones. It was also necessary to release the project for gold in the Android Market, at that time Google Play was called that)

jpct_logo
jPCT-AE бесплатный 3д движок для Андроида

Since there was little time, it was necessary to choose a ready-made 3D engine. It is possible to create your own engine from scratch, but it is not very productive, since most of the time will be spent on testing and compatibility with all devices. Before the arrival of Unreal Engine, Unity, ThreeJS (HTML5), the leading engine was JPCT-AE. The engine was supplied as a ready-made java library, supported old versions of Android. Also, its creator EgonOlsen promptly deals with support and fixing errors at the request of developers.

antonHooligan

Frames decide everything – hooligan Anton agreed to write music for the game. I have always admired his creativity, his work served as a locomotive driving the entire gameplay, forcing the user to play until the last downed helicopter.

So much stuff, where to start? You need to start with installing the Android SDK. Now it comes with a built-in IDE – Android Studio. But at that time, the IDE and SDK were supplied separately. According to the documentation on the Google website, I installed the Android SDK, Eclipse. The necessary packages for Eclipse were also installed to ensure the assembly and launch of the Android emulator. An hour later, I built a test project jpct-AE:

That was wow! But in the phone emulator everything was very slow. Therefore, it was decided to buy a phone on the Android platform. For these purposes, LG Optimus One P500 was purchased. Since then, I have not used excellent Nokia push-button phones on the Symbian platform) There were problems connecting the phone to Linux, if someone still encounters them, then check the udev settings.


Jobs quotes Pablo Picasso

After watching Alien Runner, I realized that the alien could be replaced with a motorcycle and two punks with a bazooka, the clearing around could be turned into a metropolis, and the fog could be replaced with the night from Iron Maiden’s ballads.

How to make 3D models? It’s very simple, open a lesson on creating low-poly models on YouTube and do it. The whole process consisted of outlining projections in a 3D editor. I found drawings of an Apache helicopter, and made a model of the helicopter. Textures were taken from open sources of the US Army.

McDONNELL_DOUGLAS_AH-64_APACHE

Why do you need a helicopter in a game with two punks and a bazooka? When I played the prototype, I noticed that the player can just stand still and score points. The ideal solution was a helicopter that flies in and throws submarine torpedoes at the player, preventing him from stopping.

In mobile applications and games of that time, the problem of lack of memory was acutely expressed, both on the phone itself and in the RAM. Performance was also a C. One ARM processor with a frequency of 300-500 MHz. As a result of testing on friends’ phones, it turned out that HTC has twice less video memory than LG, 8 MB and 4 MB so-no, because of which the game knocked out memory limits and did not start. All resources were compressed to the point of getting a frame rate of 30 frames per second, and the ability to run on almost everything.


Do not repeat!

In Alien Runner, control was carried out by pressing the screen. This type of control seemed inconvenient to me, so I implemented control using the accelerometer. That is, you turn the phone – the motorcycle turns. I liked it so much that I even added a first-person view, for the bravest.

I needed support from the developer of the jpct-AE engine when I noticed that the shading in the front disappears in the game. This happened after minimizing and maximizing the application. I created a topic on the jpct-AE forum and in two days the problem was solved. I integrated the corrected version of the engine into the game.

There was also the question of how to implement an infinite supply of cars. For a mobile game, it was necessary to come up with a way to ensure that cars were added to the game scene FAST. The option of loading from slow memory or an SD card was immediately rejected. A design pattern called an object pool came to the rescue. When a car went out of sight or was destroyed, it was turned off and at the moment when it was necessary to supply a new car to the beginning of the scene – it was turned on and placed there.

android-market

Well, the day of release has come. The game has been tested, a preliminary demonstration to friends has been held, now it was time to go gold on the Android Market. Registration in the Android Market cost $20, paid. A description, screenshots have been added. And at that moment I realized that I needed to record a video.

How to record a video for a mobile project? Should I really shoot it on a mobile phone and then upload it? The solution was interesting, I used an Android emulator, played a game with a frame rate of two frames per second, recording everything that happened on the screen using a program called something like gtkDesktopRecorder. With the help of VirtualDub, the video speed was increased to 30 frames per second. Then, in the best video editing program – Windows Movie Maker, I added all the game sounds and music.

Now came the moment of mistakes. Nothing was invested in the promotion of the project, no effort, no money. I then thought that the project would pay for itself. The game went gold, I created a topic on the jpct-AE forum about Mad Racer. I got 12 installations for a dollar in two weeks. And I found the game in free access on a bunch of warez sites the very next day.

Singing the FSF song “Share the software” I decided to make a free version, with advertising. The game was transferred to the AdWare category, an advertising banner from the AdMob network appeared at the bottom. Integration with the advertising system went smoothly. In a month, the game was installed on ten thousand devices. I received $50 from the advertising network.

In general, don’t forget about advertising, I think that it should be one of the main items of expenditure for your project.

On the positive side, I want to note that I got a job as an iOS developer in one of the best companies in our city. And of course, invaluable experience.

madracerLogoСсылка на Google Play

If you liked the article, repost it on VKontakte, Facebook)