Posts

Final Countdown - The Ultimate Beat-Up Game

Image
I'm soo excited to announce that we have finally made it through this journey of developing and designing our epic beat-up style game- Office Retribution. This month had been little busy getting in the art assets, working on the appearance and having a cartoon-style effect with the character's look and setting up real-office like environment. Much of our attention was grabbed upon it but we also worked on our heroic boss battle giving in more challenge for the player as he needs to interact with office items and use them as form of weapon to attack the boss and also defend himself from the co-workers and security guards. Since the beta version we had been little skeptical about the collision checks and combat style which now seems to be in state where we wanted it to be - not glitchy but tight. The combat gets in more challenging as you advance through the game, forcing the player to interact with objects and use them as assets to attack as the NPC's have varied ...

Milestone III - Gameplay & Combat Makeover

Image
This progress is all about getting in challenging combat in place by introducing more pick up items like baton, trash can, chair, desk and monitor each dealing different level of damage, giving a chance to defend; added counter-attack ability for the player; achieved smooth interpolation between player combos, revamped UI from last build with relation to token indicator located at the top of NPC's giving the player a hint before the fight begins; we now have more visual effects in terms of particle effects for situations like destroying the table, and picking up the monitor; also now we have smooth and desired collision system that triggers light bounce when colliding with environment objects -desk, chair, and walls; the nav-mesh setup now has checks for non-walkable nodes not allowing NPC's to walk through the environment objects but orders them to walk around it. On the other end we also have the functionality of the gamepad. Also our plan for the end of this week to...

Third Person Camera

This blog is focused on creating third person view style controlled camera, which follows a user controlled object. Making Third Person Camera - Setting up the camera with important elements of view matrix and lookAt vector     Camera::Camera(float fov, float aspect, float nearPlane, float farPlane)     {               m_right  = { 0,0,0 };          m_up  = { 0,0,0 };          m_look  = { 0,0,0 };          m_position = { 0,0,0 };         m_Oldposition = { 0,0,0 };         m_lookAt = { 0,0,0 };         m_velocity = { 0,0,0 };         SetLookAt(XMFLOAT3(0, 0, 5));    ...

KungFu Style Movement and Instant Reaction

Image
This blog is going to be about how we planned on to design Kung-Fu style movement of the AI and how we planned out the instant reaction of the player in terms of making the combat more challenging and interesting on the same end. How we went on achieving IP-man style fighting style - So when the director sends in the token for attack, that particular enemy navigates its path to the target, i.e., the player, once it reaches certain distance, we command the AI to perform the attack animation and defend from the hits of the player by making it rotate around and face inverse of the player taking 2 steps forward. Once its done with it's turn the token immediately gets passed on to other one, the process repeats on. Take a look at it - // Token to attack and if the enemy who has got the token to attack isn't on the same nav node as the    player if(m_action == Actions:: ATTACK && m_currPly != m_nav->m_current) {      ...

Using DirectXTK Input for Keyboard, Mouse & Gamepad

Image
For our game we have decided to make use of DirectXTK Toolkit that contains helper classes to work around with Direct3D 11with the help of DirectX SDK. We can utilize it for stuff like making audio using their Audio API, Sprite Batch & Font for rendering UI and text, finally game input through mouse, keyboard and gamepad class. This blog is going to be about using input singleton. You guys are ready, I'm about to blow your mind! Keyboard, Mouse & Gamepad // Resource Manager - Initializing at resource manager class std::unique_ptr<Keyboard>m_Keyboard; std::unique_ptr<Mouse>m_Mouse; std::unique_ptr<Gamepad>m_GamePad; // Call reset m_Keyboard.reset(new Keyboard()); m_Mouse.reset(new Mouse()); m_GamePad.reset(new GamePad()); ResourceManager* GetResource() { return m_refManager;} // Using it inside the player class - Object of the singleton Keyboard::State kb = GetResource()->m_Keyboard->GetState(); Mouse::State ms = GetResource()-...

General AI Behavior

TOKENS Behind the game, we have a Director that keeps track of how well the player is doing and which enemy has token to attack, stay idle or pick up an item around the room. As you will observe during gameplay that if the player is near by the vicinity of enemy, he will be send attack token to dodge himself and injure the player. There is a pattern of beat them up kind of hovering around by the NPC's to make it life-like and they also face towards the player when he is inside the zone. Director::Director(LevelManager & m_lvlManage, XMFLOAT4X4 _player) {     // Cooldown to switch tokens to other NPC's         PassoutGrabTokenTime = PASSOUTTIME;     m_lvlManager = m_lvlManage;     m_PlayerPosition = _player;     // Randomizing tokens between different NPC's        int thisone = rand() % m_lvlManager.GetNPCs().size();    m_lvlManager.GetNPCs()[thisone...

Milestone II - Well defined Combat & Collision System

Image
Brief Overview This progress is all about getting in gameplay involving basic combat between the player and the AI, interacting with the world by picking in items and using them as weapon to attack the target, and yes now the user can transit between different levels. The kind of task we focused on this month was designing and implementing visual feedback in form health bar for both player and enemies, the one for the enemies moves along the camera; combo meter that increases based on the player's successive strikes and counters against his foes; then moving on to radical game menu system that allows the user to adjust to their needs, pause menu allowing the player to exit, retry as well as access the options menu in between of the gameplay; stepping out from the realm of UI we have a smoother looking camera that follows the player now, we have strong Animation/Rendering system allowing the characters of the game to interpolate between multiple animations depending on their sit...