• Register
Post news Report RSS Fursan al-Aqsa Dev Blog #7 - Making Off SplitScreen Multiplayer

In this article I discuss the technical details of how I implemented the Multiplayer with SplitScreen for my game.

Posted by on

Older gamers like me (36), from the 90's, probably already spent many hours playing splitscreen multiplayer games in the front of a TV alongside their brothers, cousins, friends, enemies, and the like :)

Bullets flying on games like Goldeneye 007 and Perfect Dark, the sound of kart motors on games like Mario Kart 64 and Diddy Kong Racing, these bring to my mind fond memories of the happiest time of my life, on which I would not worry about anything else, except beat my N64 games.

In my humble opinion, I think that SplitScreen Multiplayer has kinda social factor, which bonds people together on the front of a TV Screen. I know Online Multiplayer is cool, however, it is not like SplitScreen Multiplayer. Playing with a friend over seas is amazing, however, playing with many friends sharing the same sofa, some popcorn and Coca Cola (also pizza), is priceless!

And taking all these points into consideration, I decided to add splitscreen multiplayer support for my game Fursan al-Aqsa!

I was kinda skeptical about adding a multiplayer mode for my game, as I personally don't like the idea of allowing the player play as an Israeli Soldier shooting at a Palestinian, however, thinking well, and seeing this as a game, and not a political propaganda, I decided to add this multiplayer mode, as it will increase the replay value of my game and will appeal for more people. So why not let someone play as IDF, if he/she wants? This is just a game, not a real world war :)

Now about the technial stuff. SplitScreen Multiplayer in UDK Engine is kinda buggy, does not work perfectly.

The basic concept behind implementing Multiplayer Split Screen in UDK Engine relies on adding this piece of code to a custom ViewportClass (which defines what is drawn on-screen):

class AnaIrhabiGameViewportClient extends GameViewportClient;

exec function DebugCreatePlayer(int ControllerId)
{
	local string Error;

	if(GamePlayers.Length < 2)
	CreatePlayer(ControllerId, Error, TRUE);
}

event LocalPlayer CreatePlayer(int ControllerId, out string OutError, bool bSpawnActor)
{	
	return super.CreatePlayer(ControllerId,OutError,bSpawnActor);
}

DefaultProperties
{
}

Then, you just need to "activate" the multiplayer, setup the multiplayer split screen in Kismet (visual programming):

However, as this is true for ANY game Engine, there are many different ways of doing the same thing. I prefeer using kismet whenever there is possible, as it is more intuitive and easier for me to understand.

Now only a problem appeared, a bug which I was not able to solve until now (I am by no way an experienced programmer), is that I can't change the properties of the other players in kismet (nor in Unreal Scripting), so that means the other players (player 2, player 3 and player 4), are a replication of the default player class of the game mode.

Anyway, I am able to access and modify player 1 (skin, team, and so on), so that means I will be dropping 4 Players support by now, keeping only 2 Player SplitScreen until I can solve this problem later.

I personally prefeer to deliver a complete and small working feature, than releasing a big, yet incomplete and buggy feature. As I am developing this game for both PS3, Xbox360 and PC, I want my game be the same on all platforms. As far as I know, only Xbox360 supports 4 player outside the box.

Last but no least, here comes the Multiplayer Split Screen Gameplay Capture on PS3 and Xbox360, with all their glory. I did not capture for PC, as it is redundant, there is no need, because it is the same, there is no difference, and it would be a bit repetitive.

Cheers and until Next Update.

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: