Szakmai Érdekességek (Invictus Games) - Borsi Miklós (BMSoft1024)

VR made a video with us

VR made a video with us about Invictus Games, showcasing the company's work and the development team.

Image

Dehír: The Debrecen game development company reached the top of download lists on the other side of the world

Article about Invictus Games' successes and global recognition.

Image

Genre and platform relationships in Hungarian Invictus Games racing simulators

Academic article about Invictus Games' games and platform-specific approaches.

Image

Interview with Tamás Kozák, founder and CEO of Invictus Games

Detailed interview about Invictus Games' history, strategy and future plans.

Játékfejlesztési Projektek - Borsi Miklós

Invictus Games

ROB-O-TAP

My first game as a game developer/programmer was ROB-O-TAP. Created in 2014, we programmed the entire game together. The challenge was the limited resources of mobile devices at that time, but we still managed to make the game run smoothly on Android and iOS.

Tasks:

  • Core gameplay
  • Game logic implementation
  • Trap mechanism implementation
  • Item pickup
  • 3D UI control
  • Programming robot and trap animations
  • Game music, playing sounds of various elements, matching robot sounds to animations and implementing the complete audio playback system
  • SDK integrations (Facebook, Twitter, AD, etc.)
  • Optimization
Invictus Games

Daytona Rush

Very popular in its time, especially in America, it was on the top lists during NASCAR seasons. Many news articles were published about it. Simple mechanics, but very entertaining for many. Unity Engine based mobile game for Android and iOS platforms.

Tasks:

  • Core gameplay tasks
  • UI - Refactored the entire previous UI code
  • Custom Achievement system
  • Save system and configuration database
  • SDK integrations (Facebook, Twitter, ADs, etc.)
  • Optimization
Invictus Games

Give It Up!

The popular Give It Up! game, built on the Give It Up! 2 code. Later the graphics and levels were moved to the new game code. I created and released many updates (bugfixes, content updates, etc.) for the game, both on PlayStore and AppStore. The game became very popular in China, staying on the top lists for a long time.

Tasks:

  • Building on Give It Up! 2 code
  • Graphics and level migration to new code
  • Creating and releasing many updates (bugfixes, content updates)
  • PlayStore and AppStore publishing
  • Optimization for Chinese market
Invictus Games

Give It Up! 2

I worked on the development from the basics. The biggest challenge was caused by audio lag in Android systems at that time - every Unity music (on Android this is the native music player) started with variable delay after launch, which is catastrophic for a rhythm game. I created a custom solution with a unique approach that allowed the beat to arrive at the right tempo on platforms without lag.

Tasks:

  • Game logic operation, core gameplay
  • UI operation
  • Editor tools and level editor for developers
  • Lag-free audio system - custom solution for Android audio lag problem
  • SDK integrations (Facebook, Twitter, ADs, etc.)
  • Save system and configuration database
  • Optimization
Invictus Games

Give It Up! Plus (Steam)

The goal was to port the popular Give It Up! game to PC platform. The main task was implementing an easy-to-use level editor for players, Steam integration, data saving and cloud sync. Originally built on the Give It Up! 2 code.

Tasks:

  • Level editor implementation - Creating an easy-to-use level editor system for players
  • Steam integration - Steam platform integration, achievement system, cloud save
  • Data saving and cloud sync - Saving and synchronizing player data in the cloud
  • Originally built on the Give It Up! 2 code
Image
Invictus Games

Give It Up! 3

Built partially on the previous game's foundations, but many new things were needed. Unity Engine based mobile game for Android and iOS platforms.

Tasks:

  • Developer-friendly, multi-modular 3D level editor (2D, 3D, curve, environment, platform property editor) design and implementation
  • Automatic curve generation, curve operations
  • Presentation layer for modules
  • Automatic environment generator and editor, ingame environment loader
  • Automatic OS-dependent lag-free audio system, enhanced with 3D audio system, automatic audio database, detailed audio settings per sound
  • Dynamic flooring of ingame levels, depending on minimum height, theme and level area
  • 'Line/shadow' under ingame platforms, with line renderer
  • Reusable hardware detection tool, game starts with different quality settings on devices of different strengths
  • Custom UI plugin system used throughout the game, supporting both 2D and 3D UI
  • GIU2 save system conversion (game save and level save conversion, curve saving, environment saving)
  • Music cutting, later automation of music cutting with custom plugin
  • Game optimization: LOD-ing ingame platforms and environment elements, Optimizing level loading
  • Coordinating programming work
Invictus Games

Give It Up! Bouncy

Built on the popular Give It Up! brand, we tried out a new mechanic. Developed for Android, iOS and Nintendo Switch platforms.

Tasks:

  • Team lead
  • Inter-department communication
  • Assigning and reviewing programming tasks, enforcing requirements, maintaining code quality
  • Game structure development
  • Platform functionality and related data structures
  • Level editor and level data saving
  • SDK integrations (Playfab, ADs, etc.)
  • PlayFab cloud sync and other live features support
  • Custom UI plugin system usage and development
  • Reusable hardware detection tool
  • Custom save system and configuration database
Invictus Games

Multi Battle

Mobile game prototype. In this game I worked on multiplayer implementation, lobby, data synchronization, core gameplay. The game was not released, I'm showing it more as an interesting project.

Tasks:

  • Multiplayer implementation
  • Lobby system
  • Data synchronization
  • Core gameplay
Invictus Games

Deeprealm Odyssey EA

Adventure game for Android and iOS platforms. Early Access version.

Tasks:

  • Project manager / Team lead
  • Inter-department communication
  • Assigning and reviewing programming tasks, enforcing requirements, maintaining code quality
  • Progress, continuous measurement and reporting of costs
  • Enemies (AI)
  • Programming their behavior: HP, attack, defense
  • Save and configuration databases
  • Optimization
Invictus Games

Flöklypa Grand Prix

Inspired by the popular Norwegian puppet film, we created the car racing parts of the story game. Multiple studios worked on the entire game to achieve the best possible quality. Built on Unreal Engine.

Tasks:

  • Project manager / Team lead
  • Inter-department communication
  • Assigning and reviewing programming tasks, enforcing requirements, maintaining code quality
  • Progress, continuous measurement and reporting of costs
  • Racing AI
  • Adjustable difficulty (easy, medium, hard)
  • Using collectible items on track (oil slick, lightning, etc.)
  • Optimal and varied route traversal
  • Basically works with spline following and looks ahead based on road data to know when to slow down and how fast it can go on a given road section
  • Always tries to follow the optimal arc if there's no obstacle on the road, to be as efficient as possible
  • Catch-up system (player tracking, with multiplayer support), meaning that even with multiple players, there will be AI cars around each player to make the racing atmosphere feel real
  • Collision avoidance, efficient overtaking, AI team communication
  • The AI continuously monitors cars around it and tries to utilize track opportunities to avoid collisions, for example it pulls over much better
  • I tuned the AI I implemented for every track / game mode / car according to design requirements
  • Optimization (nativizing blueprints or rewriting to C++)
Invictus Games

Malazard (Steam VR)

We programmed the game together, in 3 months of development time. We intended it more as a technology demo, as our first VR game. Built on Unity Engine.

Tasks:

  • 3D UI operation
  • Game elements operation
  • Enemy characters: Generating attack waves in a tunable way
  • Programming enemy behavior (AI): HP, attacks, defense
  • Scene loading and main menu operation
  • Controller operation in VR
  • Optimization
Image
Invictus Games

Gummy Heroes

I joined the project in the second half of development. Unity Engine based mobile game for Android and iOS platforms.

Tasks:

  • Developing core gameplay elements
  • Save system
  • Programming UI operation
  • Optimization
Invictus Games

Dustoff Heli Rescue 2

For this game, I alone completed the full game port to Xbox (including submission). I optimized the PC version in places and several conversions were necessary to support Xbox guidelines (for example, support for user profiles linked to controllers). With Xbox SDK integration, I achieved full support for previous features on the platform.

Tasks:

  • Full game port to Xbox (including submission)
  • PC version optimization in places
  • Xbox guidelines support (user profiles linked to controllers, etc.)
  • Xbox SDK integration
  • Full support for previous features on Xbox platform
Invictus Games

Maximum Football

I joined the American football development later. My main task here was developing football AI and fixing bugs in existing systems. Built on Unreal Engine.

Tasks:

  • Football AI development
  • Bug fixing in existing systems
  • Proper timing of AI initialization so that all necessary data from GameMode is available
  • I introduced a separate commonData layer for AIs, where data is refreshed on appropriate game events and every AI directly retrieves game data only from here
  • Simplifying behavior trees and programming more generic BT tasks, BT services for newer requests
  • Support for different game modes by AI, divided by roles
Image
Invictus Games

Mudfest

Mud-splashing car game built on custom-developed technologies. Built on Unreal Engine.

Tasks:

  • Team lead
  • Assigning and reviewing programming tasks, enforcing requirements, maintaining code quality
  • Car AI development
  • Driving cars using custom physics, through an interface I defined
  • For this I designed a custom AI plugin (fully programmed on C++ side, does not use blueprints)
  • It received quite a few useful features, supports all existing Unreal AI features
  • I detail this AI plugin in the custom company developments section below
  • Character AI development
  • Implementing AI characters with custom behavior, wandering and cheering on tracks, who react to their environment

Egyedi plugin-ok fejlesztése - Borsi Miklós

Unreal EngineUnreal Engine AI Plugin

The goal was to create a custom AI plugin using Unreal Engine AI technologies such as: Navigation mesh, Behavior tree, Perception, RVO, etc. The plugin consists of several modules, the generic part is the largest, capable of working independently of the pawn type, extending the Unreal AI tools. The remaining tasks are performed by pawn-specific AI layers.

Portolások és SDK integrációk - Borsi Miklós

Porting and SDK Integrations

During the projects mentioned above and other projects, I also performed porting with submission processes.

Platforms:

  • XBOX
  • AndroidTV
  • PlayStore
  • AppleStore
  • Steam

SDK integrations:

  • AD (advertisements)
  • Cloud services (PlayFab)
  • MultiPlayer (Photon)