Games Vision #2

I will tell you about games that I played recently.
[Part translated by Google, I was too lazy sry]

wsunhd
SIM
aka Sara is Missing (Android, Monsoon Lab) – you find the phone of a girl named Sara. Inside, the phone has a built-in assistant IRIS, she wants to find her mistress and asks you to help her in this. The challenge to understand what was going on in the head of Sara from her messages, photos and video, find where she is. The game is very original and quite frightening. The downside is that there is no localization on Russian and other languages, there is no version of iOS, although it is obvious that the game interface copying Apple products (IRIS – SIRI) Also, the game is very short.
Rating 7/10

unnamed
The End of The World
(Android, Sean Wenham) – game about breakup – guy wanders in search of wine and sleeping under a bridge, remembering the moments when they were together with his girl. Touching moments memories, sad music, transition to white, an excellent game for female audience, and some of the boys. I do not like boring vector graphics (reminds me of Another World by Éric Chahi), zero gameplay, ten minutes pass. Recommended for all drama lovers / Titanic fans.
Rating: 5/10

unnamed

Werewolf Tycoon (Android, Joe Williamson) – game about a werewolf who eats people in a city park. The graphics and gameplay are fun – for children, bright colors without the gloomy tone, lack of blood and people like round cupcakes with funny animations. Rounds are short and simple, of the enemies only journalists with cameras. It sounds, looks and plays a lot of fun. Of the minuses – low complexity, viewing ads for the cancellation of Game Over, is not working mechanism of withdrawal of points to social media.
Rating: 6/10

Games Vision #1

New category in my blog – Games Vision.
I will tell you about games that I played recently.

jansen

You need my sign?

Deus Ex Mankind Divided (PC, Square Enix) – game about half-man Adam Jensen that saves the world in the middle of vacation in Prague.
Good graphics, high system requirements, predictible storyline, good art. Game has many ways to solve problems, like to kill everyone with minigun, or to be silent invisible – ghost spy.
I like pop culture references like The Void Which Binds, “IRON MADE in China” and others. Game also got boring tons of text, emails with passcodes and stuff. It also very buggy, crashed in the DirectX 12 mode everytime I tried it. I do not tried to pass DLC for this game, because I passed main storyline in two weeks, it was long.
Rating 8/10

slayin

Slayin (Android, FDG) – fresh arcade game for mobile-devices. You need to run around screen, kill enemies and buy items in the shop. I like music, art and controls, this game reminds me classic NES games. Bad thing that you can’t walk in the big scene, only small screen scene.
Rating 5/10

swordxolan

Sword of Xolan (Android, Alper Sarıkaya) – platform arcade game for mobile-devices. You playing samurai – swordman, kill enemies and save people from rusty cages. Not boring gameplay, good controls, but game have low-cost art, music, sound.
Оценка 6/10

bardstale

The Bard’s Tale (Android, inXile entertainment) – action – rpg remaster for mobile-devices. This games got really fun dialogs, scenes. There is lack of markers to go to, you need to find out everything by yourself, but this is old-school style! There is no way to save game in any point, this is really problem for mobile game. It got good music, art, but unfriendly controls for mobile platform. And this is not a new game, just a remaster of old one.
Rating 7/10

You can’t fly because of your lack of wings component

Entity Component System – what the hell is that thing? It has entity, It has component, and system. But what the hell is that?

200_sCats are funny

I am developing game right now, it’s called Call Of The Death Mask, and about month ago I had a headache. Reason of my headache was the question “How I can make zombies fly?”
What to do if your game designer want to make all treasures chests in game to have teeth and attack player character? And if you ask him “Dude are you crazy?” he will replies to you with magic word “Mimic”
Mimics are fictional living creatures, that looks like ordinary things, but they can attack you.


Mimic by BenWootten on DeviantArt

At this point you probably have class called Chest and it can’t attack anyone, because it’s not belongs to enemy class hierarchy. Damn what to do?
Entity Component System gives good approach that works ideally for games. You create class called Entity, and construct every object in game by filling Enitity with Components. Component is just some property of Entity. For example in my game all zombies have:

  1. Position component (x, y, z – Vector)
  2. Sprite component (Zombie.png – image)
  3. Rotation angle component (x, y, z – Vector)
  4. Zombie AI component (to behave like zombie)

Ok, so how to make all treasure chests into mimics at some point of level. Treasure Chest will have those components in my engine:

  1. Position component (x, y, z – Vector)
  2. Sprite component (Chest.png – image)
  3. Rotation angle component (x, y, z – Vector)
  4. Item component (to give that item to player, when he will open it)

And now we just add Mimic AI component to Treasure Chest at runtime, and he will attack player at right moment. And if some magic spell can make Mimics into Treasure Chests, then we just need to remove Mimic AI component at game runtime for that Treasure Chest, or for all of them (for cool spells that applies to all game map)
What stands for System at this pattern? System handles components for every entity. For example if player character have weapon component, then UI System must get weapon component and render it on screen.

screenshot_2016-09-24_14-33-43

Weapon component must have necessary data for UI System. In my game every weapon have two components:

  1. On map sprite component (it shows if weapon dropped to the ground)
  2. Iron sight component (it shows when player get weapon)

Shotgun weapon component at map, and another in player’s character hands, one rendered by scene renderer, another by ui renderer.

Links about ECS pattern:
https://en.wikipedia.org/wiki/Entity_component_system
https://www.youtube.com/watch?v=NTWSeQtHZ9M

Теряя себя

[English translation coming soon]

“Нельзя стать мастером всего” – меня всегда смешили подобные фразы. В эту ловушку специализации попадают все – пользователи, программисты, начальники, заказчики. “Хочу как у Microsoft/Apple/Google”, “Почему нам просто не сделать русский айфон?”, “Почему здесь не как в ворде/убере/фотошопе?” – эти фразы слышал любой, причастный хоть как-то к ИТ. Эти фразы, повторенные из уст разных людей, звучат еще смешнее.

Я спрошу тебя читатель – зачем тебе еще один Ворд? Зачем тебе еще один убер? Зачем тебе еще один фотошоп? Зачем тебе нужно чтобы “было как в айфоне”?
Почему ты привязываешь себя к интерфейсам и подходу только одной компании? Почему ты навешиваешь на себя ярлык любителя только продуктов Apple/Google/Microsoft? Почему ты не можешь открыть свой разум альтернативным подходам к решению задач, почему не хочешь быть более продуктивным?

Очень многим пользователям Microsoft не понравилось как компания решила что всем необходимо обновиться до Windows 10. Люди ругают неудобные интерфейсы айфона, крэши системы при обновлении, изменения в дизайне которые им не нужны, но все равно продолжают пользоваться ими, потому что так привыкли, и иметь “айфон” это статусно в современном обществе.

Иногда создается впечатление, что если Microsoft/Apple/Google попросят отдать собственных детей в обмен на продолжение работы с их продуктами, то из-за высокой привязанности к этим продуктам, люди запросто отдадут своих чад.

Не будь ими, не привязывайся к одному продукту, посмотри альтернативные варианты. Однажды мне предложили разработать систему для риелторов, с интерфейсом на Microsoft Excel, также были предложения разработать систему “интерактивной доски на Microsoft PowerPoint”. На вопрос почему именно Microsoft мне ответили что “так привыкли”, на вопрос есть ли лицензионное ПО от Microsoft в данных компаниях мне ответили уклончиво, что мол если нужно будет – то купят.

Читатель, я призываю тебя изучить грани ИТ мира, хотя-бы обзорно. Если ты пользуешься всю жизнь только Microsoft Windows, попробуй Apple OS X, или Linux. Если ты пользуешься только iPhone, попробуй хотя-бы неделю попользоваться Android последней версии. В момент когда ты переходишь на сторону только одной компании, закрываясь от продуктов других, в этот момент ты теряешь себя. Себя, как человека который может сам решать чего хочет, как человека который может выбирать наиболее удобный и продуктивный инструмент для решения конкретной задачи.

Программисты только одной платформы – еще одна головная боль лично для меня, как я считаю, для ИТ-индустрии в целом. Разработчики которые делают приложения с экспортом только в *.doc или только в *.pdf, разработчики которые привязываются к только одной устаревшей коммерческой БД (например IBM Informix, или боже упаси Firebird), только к одному типу железа (все эти нерабочие программы для x86 на андроид), я конечно понимаю что вы “привыкли”, но ребята пора меняться.

В своей работе очень часто пользуюсь не популярными, но очень удобными инструментами. Один из примеров – необходимо было уменьшить разрешение и сжать около 100 фотографий, для быстрой загрузки по 3G и выводе на iPad. В тот день я услышал одну из наиболее типичных фраз  – “Нам придется все фотографии вручную в *фотошопе* переводить к нужному виду”. Смешной она мне показалась т.к. я представил себе человека который будет вручную, как раб божий, все эти 100 фотографий переделывать в фотошопе, или пытаться автоматизировать через встроенный механизм. Дело здесь именно в том что человек настолько привязан к фотошопу, что даже не подозревал о наличии бесплатного, открытого набора инструментов как ImageMagick. ImageMagick позволяет делать с векторными и растровыми изображениями очень много вещей, в том числе идеально подошел для 5-минутного решения задачи со 100 картинками.

Будьте мастером всего, изучайте, пробуйте, не становитесь рабом конкретной корпорации.

My Retro 16-bit Experience

Sorry for Runglish.
One day I got email, with something like this text:
“Hey! we are going to start retro game jam – bitbitjam3!!! You need to create game for some retro platform (8-16 bit)!!!”
Wow! It was my childhood dream – to create game for my favourite 16-bit console – Sega Genesis.
So I tried to create game for #bitbitjam3 game-jam, and I created something:
rqr
This thing called – “Red Queen Rampage”. Story of this game “Red Queen has been captured inside deadly maze, she is going to kill everything on her way to freedom.”
You can walk, you can attack green thing with red eyes, you can open treasure chest, and you can move from scene to scene.
This is actually hello-world level project in sega genesis world. I used SGDK toolset – GCC-based Motorola 68K compiler, and sega genesis specific hardware libraries.
Now I understood that it was really tough business to make games 20-30 years ago. For example – graphics (tiles) must be splitted into 8×8 pixels pieces, and then drawed together one-by-one. Every tiles must have its own pallete, only 16 color available! Damn its very easy to be gamedev at present time.
And like in nowadays – you need to create game engine, sound engine, graphics engine for game.
You can look at playable prototype of Red Queen Rampage by using Sega Genesis emulator with this ROM:
http://demensdeum.com/games/redQueenRampageSegaGenesis/RedQueenRampage.zip
If you interested in source code:
http://demensdeum.com/games/redQueenRampageSegaGenesis/RedQueenRampageSource.zip

How we got 30$ on Android Market

Hello dear reader. In this article I will describe my experience in creating game for Android mobile phones. Many people like the story, I think it should be published. I hope you like Runglish. It’s not a success story, but I think it will give an understanding of where to start and what to do to create a simple game. I will say about errors in game publishing process.

Hewl-Tanky

Great art by Jamie Hewlett and Alan Martin from Tank Girl comic, published without their permission
Forgive me guys, but it’s too cool

One day in 2011 I was bitten by a muse. After watching part of Tank Girl movie, I got an great idea to create arcade game in comic style. I wanted to people around say “Wow this game is awesome, dude!”
Why game for Android and not for Apple iOS? The reason is simple – I did not had the iPhone and Mac, but had a great desire to support Linux on mobile phones. At that time I liked ideology of the FSF, and Richard Matthew Stallman was my god.


You’ve gotta dance like there’s nobody watching

At the time of the development of the latest version of Android was 2.0, and also we needed to keep support for older versions since number of 1.6 users was very high. Many phone manufacturers do not even released an upgrade to version 2.0.

I immediately set a time frame for this project – one month. During this time, I had to pull knowledge of Java, explore the Android SDK, Eclipse, to meet with the monster in the face of OpenGL ES and to make friends with him. Also, it was necessary to create around six 3d models optimized for mobile devices. And we needed to release Mad Racer in Android Market (aka Google Play)

jpct_logo
jPCT-AE engine is free 3d solution for Android

Since time was short, it was necessary to choose a ready 3d engine. Create your own engine from scratch is possible, but not very productive, as the testing and compatibility with all devices will take much of the time. Prior to joining Unreal Engine, Unity, ThreeJS (HTML5), a leading engine was JPCT-AE. The engine is supplied as a ready-java library that support older versions of android. Creator of engine – EgonOlsen operatively engaged in the support and error fixing by the requests of developers.

antonHooligan

Cadres are all-important – bully Anton agreed to write the music for the game. I’ve always admired his work, his work served as a locomotive driving the whole gameplay, forcing the user to play until the last shot down the helicopter.

Where do you start? We must begin with the installation of Android SDK. Now it comes with a built-in IDE – Android Studio. But at that time the IDE and SDK are available separately. According to documentation by Google I installed Android SDK, Eclipse. And you also need to install the necessary packages for Eclipse, which provide compiler and Android emulator. An hour later I compiled a test project jpct-AE:

It was Wow! But emulator runs really slow. I decided to buy a phone on Android OS. For this purpose was I bough LG Optimus One P500. Since then I do not use Symbian OS phones with easy to use keyboard) There was problems with connecting phone to Linux, if someone found them until now, then check the udev settings.


Jobs steals a quote by Pablo Picasso

Looking at the Alien Runner, I realized that the alien can be replaced by a motorcycle and two punks with a bazooka, green hill turn to metropolis, and replace the fog to dark night from ballads of Iron Maiden.

How to make a 3d model? It’s very simple, you need to open a lesson about creating low-poly models on Youtube and do it. The whole process was to stroke the projections in 3D editor. I have found drawings of the helicopter Apache, and made a 3d model helicopter. Textures have been taken from public sources of the US Army.

McDONNELL_DOUGLAS_AH-64_APACHE

Why do I need a helicopter in the game with two punks and a bazooka? When I played the prototype, I noticed that a player can simply stand still and get points. The ideal solution proved to be a helicopter arrives and throws submarine torpedoes to player, like smiley clouds from Super Mario Bros.

Mobile devices in 2011 had limited memory and RAM. Performance was also at C grade. One ARM processor with a frequency of 300-500 MHz. The testing on the phones of friends, it turned out that the HTC had half the video memory than LG, 8MB and 4MB to-but because of that the game knocked limits of memory and does not start. All resources were are clipped to the state to get a frame rate of 30 frames per second, and the ability to run on almost everything.


Sound and music was implemented by default Android API

In Alien Runner controls was based on screen taps. I don’t liked idea of arcade game with tap controls, I have implemented control by accelerometer. Ie you turn the phone – turn the motorcycle. I enjoyed it so much that I even added a first-person view, for the true outlaws.

I needed support from the developer of jpct-AE engine when I found a bug – dark fog in front of player is just disappeared. This happened after the folding and unfolding of the application. I created a thread in the forum jpct-AE and two days later the problem was solved. I integrated the fixed version of the game engine.

Also, the question was how to implement an endless supply of vehicles. For mobile game I had to figure out a way to add machines to game scene quickly. Option with loading from slow memory or the sd card was immediately rejected. It came to the aid design pattern called object pool. When the car goes out of scope or destroyed, it is turned off and at the time when it was required to submit a new car at the beginning of the scene – it was included and was put there.

android-market

Release day. The game has been tested, a preview for friends was made, now had to go to the gold on Android Market. Register on the Android Market cost $ 20, paid. Added description, screenshots. And at that moment I realized that it is necessary to record the video.

How to record a video for the mobile project? To play game with one hand on mobile device, and record by camera in another? The decision was interesting, I used the Android emulator, played the game with a frame rate of two frames per second, recording everything that happens on the screen with the help of the program which is called something like gtkDesktopRecorder. With VirtualDub video speed has been increased up to 30 frames per second. Then, in the best video editing program – Windows Movie Maker, I added all the game sounds and music.

Now talk about errors. For promotion of the project I invested nothing, no effort or money. I then believed that the project will promote itself. The game went gold, I created a thread in the forum jpct-AE about Mad Racer. I got 12 units on the dollar in two weeks. And found the game available for free on a pile of warez sites the next day.

Singing a song FSF “Share the software” I decided to make a free version with advertising. The game has been translated into the category of AdWare, ad network AdMob banner was added to the bottom of screen. Integration with advertising system went smoothly. For a month the game has been installed on ten thousand units. From advertising network, I received $ 50.

Generally do not forget about advertising, I believe that this should be one of the major expenses of your project.

On the positive side I got job – iOS developer in one of the best companies in our city. And of course, invaluable experience.

madracerLogoLink to Google Play

Share if you liked this article)