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

Flame Steel Engine Game Toolkit

Today I want to show you Flame Steel Engine Game Toolkit architecture.
Flame Steel Engine Game Toolkit allows you to create games on Flame Steel Engine platform:
flamesteelgametoolkitschematics

All classes in Flame Steel Engine is starts with FSE prefix (Flame Steel Engine), and FSEGT (Flame Steel Engine Game Toolkit) for toolkit.
Game scene, objects and game map, ui, everything is FSEObject subclass and must be placed inside FSEGTGameData class. Every FSEObject subclass must conforms to FSESerialize interface (subclass), that allows to save/load the game data with all objects.
FSEController class that allows to work with FSEObjects data. Game toolkit have basic game scene controller – FSEGTGameSceneController, you must subclass it to use your custom game scene logic.
IOSystem is instance of FSEGTIOSystem interface (subclass), that interface contains FSEGTRenderer, FSEGTInputController, FSEGTUIRenderer.
FSEGTIOSystem must implement renderer, input handling and ui rendering, based on some IO system available for current platform.
At this moment game toolkit contains SDL-based renderer, keyboard handler inside FSEGTIOSDLSystem class.

Flame Steel Engine Raycaster Demo
Flame Steel Engine Raycaster Demo

In the future plans – to create OpenGL-based io system, it will be called FSEGTIOGLSystem. If you want to create your own io system for the game toolkit, you must subclass FSEGTIOSystem and implement FSEGTRenderer, FSEGTInputController for that system.

Source code of Flame Steel Engine, toolkit, and game:
https://github.com/demensdeum/FlameSteelCallOfTheDeathMask

How to run Wasteland 2 Director’s Cut On Linux (Ubuntu)

I am proud Wasteland 2 backer. So i tried to run Wasteland 2 Director’s Cut on Ubuntu 16.04, and I want to share experience with you. There is several problems with Unity on Ubuntu, I found error in Player.log file:

Could not open file /home/demensdeum/.local/share/Steam/steamapps/common/Wasteland 2 Director's Cut/Linux/WL2_Data/resources.assets for read

Player.log shows runtime errors, this file located here:

~/.config/unity3d/inXile\ Entertainment/Wasteland\ 2\:\ Director\'s\ Cut/Player.log

To start Wasteland 2 you need to run those commands, and run game directly without Steam:

ulimit -Sn 65536
~/.local/share/Steam/steamapps/common/Wasteland\ 2\ Director\'s\ Cut/Linux/WL2

Based on support forum:
https://forums.inxile-entertainment.com/viewtopic.php?t=15505

Flame Steel: Курьер Шустрые Глазки

[Translation maybe someday]

Имя его Ревил, а прозвище было Шустрые Глазки. Знакомые кореша звали его Шустряк. Вырощенный улицей проворный пацан, он всегда знает что интересное и у кого можно достать. За это его он заработал уважение криминальной  среды Альтерры – 14.
Сейчас он находился внутри складского помещения Нейтив -Фарм-Юнитед. Вокруг стояли огромные контейнеры, запах фармацевтики.
– Че встал? Забирай и иди.
Огрызаясь сказал клерк, он выглядел взвинченным, переступал с ноги на ногу, было ясно что он очень боится. Рубашенка намокла от пота.
– Я из службы безопасности.
Лицо клерка побледнело, он зашатался еще сильнее.
– И что теперь?
– На пол – руки за голову!
Клерк нахмурился, сделав глубокий вдох, потянул руку вниз. Шустрые Глазки учуяли неладное – похоже он потянулся за пистолетом. Ревил оглушил его ударом в наглую морду, тельце с хлопком упало перед ним.
– Просил же по хорошему…
Обыскав клерка, Ревил обнаружил на месте пистолета обычный ингалятор, которым пользуются астматики. Также он нашел карту доступа к лабораторным секторам компании. Это была очень удачная находка.
Банда Токсичных Братьев направила его забрать партию Банда Токсичных Братьев направила его забрать партию запрещенного вещества – эндофомила. Но Ревилу было плевать на Братьев, и на их токсичность, здесь он был по другой причине – намеревался вытянуть свой счастливый билет.
Двери лифта распахнулись, Шустряк выбрал этаж указанный на карте – сорок второй. Лифт потихоньку поехал. Ревил обдумывал что будет делать в лабораторном секторе. Он был осведомлен об изощренных системах безопасности, интеллектуальных системах проверки личности, анализе мозговых волн и подобном.

Revil by Inc
Revil by Inc

Здесь он был не один, сотрудник компании Лориан согласился помочь ему вызвать сбой в работе систем, в результате чего у Ревила появится десять минут для осуществления намеченного.
На тридцать третьем этаже лифт остановился, над головой Ревила раздался громкий удар – что-то с грохотом приземлилось на крышу лифта.
Шустряк потянулся за пистолетом, но в этот момент через крышу лифта пробились металически шупальца. Они опутали его, раздался скрежет и крышу лифта вывернуло наружу. Сквозь дыру на него смотрело лицо девушки, – холодные пустые глаза, на пол лица металическая пластина с мигающими красными индикаторами, специально не скрытая под кожей.
– Перед смертью ответь, зачем ты пришел сюда?
Шустряк не мог пошевелиться, стальные шупальца сжимали его все сильнее, скоро он и вдохнуть не сможет.
– Я пришел за тем что по праву принадлежит мне!
На лице девушки появлился довольный оскал. Индикаторы мигали попеременно зеленым и красным…

Flame Steel: Call of The Death Mask

Today I announce three projects at same time! Wow!
Those are base application platform, game toolkit and game. Base application platform called – Flame Steel Engine, this platform could be used for cross-platform applications, games. Flame Steel Game Toolkit – collection of game development libraries for base platform. Flame Steel: Call of The Death Mask – roguelike game with generated levels in cyberfantasy setting.
All source code available under MIT license. Graphics, music, sound resources for game under their own per-file license.

You can check source code at github (C++, Eclipse):
https://github.com/demensdeum/FlameSteelCallOfTheDeathMask

Теряя себя

[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 картинками.

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