split screen/clone chat on lavalit

ABK

Well-known member
I remember someone mentioned that it was possible to clone the screen and i was asking about split screen feature so for example one player would spawn on left end of stage and other player on right end of stage then they could collect some stuff and fight with each other like in some multiplayer deathmatch games, it is not for regular beatem ups also long time ago there was this alcatraz game with split screen to play together with friend:
Alcatraz_1.png


So is it even possible to split screen in the middle like in these games, horizontal or vertical  ? Is it accesible for script somehow ?
I know theres this "mirror" effect in the background which isnt really a mirror but cloned gameplay in background.
Im asking again cause i think nothing came out of this or i dont remember and it theres something that lets split the screen and have 2 cameras (one for each player ) then how i could do this ?
This could also help to make racing game i think ?
 
You can just try video 960x240 (Ninja Warriors style).

As for the clone screen method, it is possible, but perhaps not for your situation. Because the playable area/enemy AI is still subject to your resolution, even if you display beyond that, your play won't be able to move outside the screen.

I'll try to find my old demo to see if it still works (the topic is gone with lavalit).



 
Yes but changing res wouldnt change much cause its about 2 cameras, heres gameplay from alcatraz, so if one player would stop then second player could go and his own camera would follow him, starts from 3rd minute:
http://www.youtube.com/watch?v=nDfQYAID1gQ

I was interested to have split screen so i could have for example 480x272 resolution and half of the screen would be split so there is 240x272 area for one camera and 240x272 playable area for second camera , and each area would have its own camera which would follow player one and second screen would follow player 2, is this possible ?
In alcatraz its split horizontally, and i would prefere vertical for widescreen mod but if i have to adjust my mod to some specific resolution required for split screen to work then i would do it no problem.
I was tahinking about one long stage and player 1 on one side, player 2 on others side and some weapons spawned along with enemies so all entities and enemies would have big offscreenkill, stage wouldnt be very very huge but kinda big, 2000x2000 maybe.
 
https://www.dropbox.com/s/83gkp6aci3tq8sj/small_screen_demo_3556.7z


Here it is (key1.c, update.c and updated.c). Though it is a bit complicated to modify.

a2 - show/hide
a3/a4 - rotate
 
hahah it works  ;D
lhAiFJc.png

Is it possible to control the camera more precisely so it follows player 1 or player 2 ?
 
Yeah, the idea is draw a larger area than your screen on another canvas and crop two 240x272 areas based on your characters.

Sorry I don't get time right now, maybe another day.
 
No problem, thanks for the demo ;D
Im getting disappearing panels , which part of the code is responsible for it so it wouldnt disappear ?
LKvM15G.png


--------
 
changeopenborvariant("viewportx", x);
changeopenborvariant("viewporty", 0);
changeopenborvariant("viewportw", 640);
changeopenborvariant("viewporth", 240);



I think it is this part.
The engine will try to ignore panels that fall out of this area.
 
ok i fixed it, had to enlarge the area. ;D
So what you suggested is using larger area so can i draw whole 2000x2000 level ? Then setup camera so screen one is scrolled with player 1 and screen2 is scrolled by player 2 ? Whats the maximum limit, i guess its up to cpu power ?
I think screen1 works ok, its just that second screen which id like to be scrolled only with player 2 movement, i have to dig in sourcecode but can you suggest what variants are required for this ?
 
this reminds me of Toejam & Earl. two players on the same level at the same time going on their own path split screen style. this is very interesting ;D
 
This is an extremely interesting topic! Imagine all the fun that could be had... I'm already thinking of it being like a 2D Dynasty Warriors.
 
yea i definitely want to have it working even for racing games or simple run around pickup weapons shooting games, multiplayer fun for 2 maybe even 4 players but i still dont know how to make the second screen follow only player 2 and let him go to the end of the stage while first player will stay at the beginning of stage.
 
Will have to put this on my 'to do list' split screen multiplayer would be great addition to doom mod.

Found another cool trick this demo too, the 'flame dragon' special that mary uses.  Very cool, diddn't realise you could use these  commands like this.

Code:
anim idle
	loop 1
	delay 2
	offset 0 0
	@cmd changedrawmethod getlocalvar("self") "reset" 1
	@cmd changedrawmethod getlocalvar("self") "enabled" 1
	@cmd changedrawmethod getlocalvar("self") "watermode" 2
	@cmd changedrawmethod getlocalvar("self") "amplitude" 5
	@cmd changedrawmethod getlocalvar("self") "wavespeed" 1
	@cmd changedrawmethod getlocalvar("self") "wavelength" 25
	@cmd changedrawmethod getlocalvar("self") "wavetime" 0
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 10
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 20
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 30
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 40
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 50
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 60
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 70
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 80
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 90
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 100
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 110
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 120
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 130
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 140
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 150
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 160
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 170
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 180
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 190
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 200
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 210
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 220
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 230
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 240
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 250
	frame data/chars/misc/flamedrg.png
	@cmd changedrawmethod getlocalvar("self") "wavetime" 260
	frame data/chars/misc/flamedrg.png
 
Not gonna lie, this got me really interested. I remember this subject from Lavalit but never thought anything came of it. This would be boss for a multiplayer adventure type game, and I've been in the experimenting mood for a while now, just waiting to finish what I'm working on for Sonic Revolution.

x)
 
This require using of canvas in oopenbor according to utunneks but  i have no clue how canvas work
 
Yes, I am making some tests with it.
bWWd said:
This require using of canvas in oopenbor according to utunneks but  i have no clue how canvas work

As far as I know (and I've searched into the source code), there nothing called "canvas" in OpenBOR code.

In his code, canvas is just a global variable, which he uses as a handle to the screen.

Code:
void setup_viewport(){
void canvas = getglobalvar("canvas");
int x, xpos = openborvariant("xpos"), lw = openborvariant("levelwidth");

if(!canvas){
canvas = allocscreen(640, 240);

setglobalvar("canvas", canvas);
}

Seams that the openborvariant VSCREEN is what handles it, but I don't know how it works (VSCREEN stands for Video Screen?)
vscreen = openborvariant("vscreen");
 
Back
Top Bottom