Rama's Victory Game ~ Twitch-Reaction Multiplayer Co-op Action Platformer

Dear Community,

Hi there!

In my spare time I’ve been developing a Twitch-Reaction Multiplayer Co-operative game!

The game is meant to be fully enjoyed both as a single player game and as a cooperative multiplyer experience, without sacrificing twitch-reaction gameplay mechanics!


**Client ~ Experiences Game as if Playing Single Player**

The goal for my game is to have the client feel as if they are playing a single player game, in terms of the instant reaction times and manuevers they can pull off while playing.

This includes puzzles, combat, and platforming!


**However these are not just goals, I've already achieved the goals I am mentioning in this thread!**

In this video I demonstrate client-side twitch-reaction timing with jumping and puzzles, magical platforms and disappearing buttons, **with a network lag of 400ms**!

https://youtube.com/watch?v=gHZ3u2ew2Oc

Complex Replicating Puzzle Sequences Requiring Precising Local Timing

In this video I demonstrate a combination of jumping and sword swinging and hitting disappearing buttons that create platforms, that all replicate in a cooperative environment, but the client feels like they are playing a single player game.

And yet everying also replicates perfectly to the listen server as well!


**Tested With Extreme Lag Settings of 200 and 400ms!**

The networking code structure I've developed in UE4 to accomplish this allows me to truly have an instant-reaction-time multiplayer co-operative game!

Watch both screens in this video carefully!

The left screen is the listen server, the right screen is the client.

I play with both 200 and 400 ms simulated lag in these games!

And yes I did make sure to call the lag settings on both client and server instances, because I set the lag via config file.
 

Instant Reload of A Multiplayer Game via Binary Serialization

I use my Rama Save Component system to instantly reload this active multiplayer game!

The network connection is maintained, but the player characters are fully reloaded from hard disk, as is the whole game world!

More information at my website:

www.ue4code.com.


I am very happy to present to you my Victory Game!


:)

Rama

PS:

**Melee Weapon Plugin**

I am using my very own Melee Weapon Plugin for the precise melee weapon collisions that you see in this video, and the drawing of the sword physics asset while in-game!

**Rama's Melee Weapon Plugin**
http://ue4code.com/melee_weapon_system_plugin_per_bone_collision_accuracy

https://youtube.com/watch?v=aufEB4TCf30

Awesome as always Rama! :wink:

Are you adding your melee plugin to the marketplace?

Great work!

I assume you’re doing client-side hit verification?

Awesome, as usual.

The melee plugin looks as if it will take care of an issue we hit a while ago - swept collisions for rotating shapes.

Mmm, in theory, this could work for an mmo type of game where you have a dedicated server and many clients connecting to it as well, but it seems that the client is processing the majority of the physics, which, would be bad if that was client side (physics hacking for one).

Thanks Ryan!

:slight_smile:



[QUOTE=Ixiguis;407074]
Great work!

I assume you're doing client-side hit verification?
[/QUOTE]


That's the basic idea although it is a little more complicated than that, I am going to release some more videos soon as I get more time!

:)

In process, in the meantime you can learn more about my melee plugin here or PM me!

http://ue4code.com/melee_weapon_system_plugin_per_bone_collision_accuracy



[QUOTE=Kris;407076]
Awesome, as usual.

The melee plugin looks as if it will take care of an issue we hit a while ago - swept collisions for rotating shapes.
[/QUOTE]


Yup! Handling rotation and scaling of the physics asset physX shapes was actually the hardest part of my plugin, other than making an entirely BP-only user-friendly interface using C++ to Blueprint event delegates :)

Although another handy feature is being able to choose which individual sub-shapes of the physics asset you want to trace with and which you want to ignore!

Have fun today everyone!

:slight_smile:

Rama

Pretty cool stuff Rama, nice work. =)

Thanks SE_JonF! Nice to hear from you!

:slight_smile:

Rama

UE4’s Programmatic Gameplay Recording System!

Dear Community,

In these two videos I am demonstrating how you can use UE4’s programmatic game recording system to full replays of your game that record at tiny file sizes!

The core of the matter is that your entire game needs to be coded for multiplayer, everything that you want to see in the recording needs to replicate.

Also, my game has a lot of custom character movements like a jumping sword spin and a roll, and for these sort of custom character movements you will need a c++ custom character movement component.

But check out the results in these videos!

Using Ue4’s demo net driver recording system you can create ultra-small replay files for your game that look great.

No need to use Fraps, and as a result you can record really long play sessions using this system!

Video 1: UE4’s Gameplay Recording System!


**Video 2: UE4 Gameplay Recording of Moving Platforms, Exploding Buttons, and LASERS!**

https://youtube.com/watch?v=go751xyW79g

If you’d like me to help you make the UE4 Gameplay Recording system (Demo net driver) work with your game, send me a PM :slight_smile:

Have fun today!

Rama

That’s so cool Rama, nice work! The compact file size is incredible. =) Any plans to add more features to the system?

How well is the physics replication? In my game I have multiplayer physics handles, but just a tiny bit of lag and it looks horrible.

Hi there SE_JonF!

Is there a feature you’d like to see added? At the moment the UE4 replay system seems quite powerful to me! Just as long as you code your whole game for multiplayer :slight_smile:

Nice to hear from you!

I use custom handling for physics replication when I need it:

Here’s my thread where I demonstrate replication of physics-simulating player controlled balls, client and server, with simulated lag :slight_smile:

[Video] Player-Controlled Replicating Physics Movement, Simulating Physics! - C++ - Epic Developer Community Forums!

Victory Game Tessellating Landscape

Dear Community,

I just added a tessellating landscape to my level!

Enjoy the pics!

:slight_smile:

Rama

PS: I highly recommend right clicking the image and opening in new tab to get the full effect :slight_smile:

413240d57fd513e182131935e80322c9f9844650.jpeg

Rama making a game!

Hey Rama! Nothing in particular I suppose. Though it reminded me of the Halo playback so I was curious if it would have features such as forward, rewind, record, pause, etc. I saw the command to speed up gameplay and slow it down in your demonstration. Either way, it’s awesome. Fantastic work!

Thanks SE_JonF!

:slight_smile:

Rama

Rama Teaches Winged Snake to Climb Stairs, FABRIK Anim Node and UE4 C++

Dear Community,

I just finished teaching a winged snake to climb stairs and slither over landscapes, with a proper looking tail that is almost 3x its height!

In the video I show you both the Animation Blueprint and the UE4 C++ Code that I used to accomplish this!

Enjoy the video!

Rama

Link to Share this on Twitter

awesome work rama :slight_smile:

AI Crowd Following / Clumping Solution For Following Way Points

Dear Community,

In this video I first demonstrate the problem of units clumping while trying to follow my C++ waypoint system, when using only the stock path following component code.

Then I show you how they behave after I implemented my solution!

My basic algorithm is:

  1. Identify when hitting a friendly who is also following waypoints (I use NotifyHit in C++, you’d use Event Hit in BP).

  2. Between the two units who are colliding, 1 needs to become the yielder

  3. Need to make sure dont have 2 yielders or no yielders

  4. Need to make sure the yielder is consistent, ie, doesnt keep switching back and forth with each collision

  5. Yielder moves out of the way

Also,

  1. If hit a friendly on the way to a nav point and speed gets reduced too low (basically stopped), then pick a different way point, as the idea is to spread out and evenly cover the way points!

I explain more in the video!

Enjoy!

:slight_smile:

Rama