WE are doing split screen HaRd_cOrE NeX Modding _FIRSTSCREEN

Developer discussion of experimental fixes, changes, and improvements.

Moderators: Nexuiz Moderators, Moderators

WE are doing split screen HaRd_cOrE NeX Modding _FIRSTSCREEN

Postby DeVsh » Mon Nov 03, 2008 9:13 pm

with the newest stable source of NeX we programming n00bs to C and CSQC are going to develop split screen. I am doing this because i realized that if you want something in nex that is not approved (let me quote "who would want split screen in FPS) you need to do it yourself. Especially now when the nexuiz developement team has only 5 members.

I am not taking any criticism like "you are not going to make it" or "another dead project" if you want to say something say something to help, for example inform us on How Exactly to get multiple views using CSQC (i know you can). If you are not going to be constructive please LEAVE THIS THREAD. I know a bit of python so i am not a programming n00b, we are currently looking at the engine's source code and a reading tutorials to understand functions etc. Next we will get on with identifying which bits will need changing in the engine and looking at nexuiz's source code to define which bits of that need changing.

We will be setting up a blog/forum to log down every change and document it to an extent that if i had an accident and forgot all about the project i would be able to recall it (im not being serious, so dont play devil's advocate). I AM WELL AWARE THIS PROJECT MIGHT WELL GO DEAD and that is why we are documenting it.

We have set up our targets
NOW onto THE TOPIC. We have sorted our priorities for version 0.1.0 in this order.

A] Understanding how processes take place for all things listed in point B e.g. trajectory of a bullet and bind the view with position of mouse and position of character.

B]
1) managing to produce 2 views one above other (this will give us some hard core CSQC learning time)
2) editing the networking client code so it is able to connect to a non modded server. We will achieve this by locating 2ce as much ports to the client and forward the packets around and making the client add a bit of data to a packet (or label them), so data sent to player one does not affect player 2. The second problem is to cut out (for player 2) only the part of the packet which applies to itself, so the client doesnt get the positions of other players twice and mess up the whole positioning (due to lags). Mapping of values sent by the server to (what it sees as two clients running on same IP) values of player and player2 on the client side.
3)Finding out if the engine supports joystick AXIS (i know joysticks are supported) and if not add axis support & deadzone , threshold.
4) Binding the view to the position of player2 and joystick (RX and RY) and separating inputs (so if you move the joystick it does not affect both views).
5) Redoing/Renaming values so player2 gets his sets of values for health and stuff
6) Sort out .cfg files
7) Making 2 crosshairs, 2 scoreboards independent of each other, "You Fragged" and "You have been fragged by" appear accordingly in the right place and in the right time, Bonus Flash relocated to appear either in top part of screen or bottom (engine modification i think) and loads others
8 ) Aiming support for Gamepads/Joysticks, I have a few ideas but i need to figure out how to make targetting sticky. Make two crosshairs one (dummy) dependant on Rotational joystick in the center of the view and one moving within 50 pixels (or whatever measuring unit in XYZ) of the position of the mouse trying to line up with a hostile target (i need to think how to script the detection of the target and how to make it line up). The basic flow is that there is a constant line drawn between targets in sight and the player on the joystick (lets say the crosshair is X away from player). Now if a point that is X away from the player on one of the lines (that i was talking about previously) is 50 pixels or less (or N away in a straight line or less) from the dummycrosshair's (Rotational joystick's) position then it moves away from the center of the screen to be in line with the target. After target no longer in the boundary the croshair moves back in line with the other one. I know there are going to be two main problems "what if two targets are in the boundary" the closest to the 'false' crosshair will be chosen. Number 2 is obviously aiming rockets, because you need to aim them a bit infront of a running target. Thats why we are going to add a button bind with a variable that will either enable "smart_target" or disable. For example you might map it to button 9 on the xbox controller (which is the left thumbstick pressed down) so you can toggle the targeting with it. This will be hard and probably will require engine modifications OR nexuiz code remake in big style (maybe using some bot AI code). However this is not the top priority and if it will be playable split screen then we crack on with this, but if this takes too long to develop it will be released in version 0.1.1 with all toggling options like multiple keyboard and mice support and enabling the user to switch views(top/bottom) or input devices between player1 and player2.

In later releases we will be cleaning up bugs and code, also we would like to take advantage of stereo sound and map all sounds for player1 to right speaker and all sounds for player 2 will be played through the right speaker, while the music is played through both.

Image
ImageTHIS IS HOW THE DOUBLE CROSSHAIR IS GOING TO LOOK (note its a cut out from a 2ce as big picture.

I'm pretty sure i missed out on some other bits that would make the game impossible to play or buggy like one player press left mouse button and both players shoot, and feel free to add to the list of things that need to be done.

P.S. I know i once launched to make in-game VoIP for nex but i promise you if we get bored with split-screen or we finish it we will pick up on VoIP. I found a clear way of doing it. None of the stuff that i do is unfinished, it's only suspended for a long time and doesnt have a resume date.
Last edited by DeVsh on Sun Feb 22, 2009 6:28 pm, edited 1 time in total.
I only made isotromic games, websites an unfinishe flash game!
http://www.devushwebs.cba.pl/
DeVsh
Alien
 
Posts: 121
Joined: Fri Jun 08, 2007 7:39 pm

Postby HarryButt » Mon Nov 03, 2008 10:36 pm

I'm 100% pro split-screen :D
I remember playing Serious Sam with my guys, using gamepads on a single machine. That was awesome!
I'M BATMAN!
HarryButt
Keyboard killer
 
Posts: 560
Joined: Thu Jan 17, 2008 4:51 pm
Location: Hamburg, Germanistan

Postby DeVsh » Tue Nov 04, 2008 4:49 pm

we want to proove that PC has every feature consoles have and that open source games are better (does COD4 have split screen???)
I only made isotromic games, websites an unfinishe flash game!
http://www.devushwebs.cba.pl/
DeVsh
Alien
 
Posts: 121
Joined: Fri Jun 08, 2007 7:39 pm

Postby Sepelio » Tue Nov 04, 2008 5:17 pm

Well, good luck. If more PC games had this functionality there'd be no need for consoles for anything other than using them as doorstops.
Possibly not the worst mapper in the world.

A blog of random pish:
http://xeno.planetnexuiz.com/blog/?author=5
Sepelio
Forum addon
 
Posts: 1101
Joined: Tue Jun 27, 2006 7:57 pm
Location: Scotland

Postby DeVsh » Tue Nov 04, 2008 5:19 pm

currently we kinda managed to get a second view but rendering right under the other one
I only made isotromic games, websites an unfinishe flash game!
http://www.devushwebs.cba.pl/
DeVsh
Alien
 
Posts: 121
Joined: Fri Jun 08, 2007 7:39 pm

Postby DeVsh » Tue Nov 04, 2008 6:47 pm

we froze due to lack of knowledge of quakeC but we are learning quick hopefully (at least i am)
I only made isotromic games, websites an unfinishe flash game!
http://www.devushwebs.cba.pl/
DeVsh
Alien
 
Posts: 121
Joined: Fri Jun 08, 2007 7:39 pm

Postby DeVsh » Tue Nov 04, 2008 7:27 pm

we are running into big problems because the entity type .self

In quakeC it is impossible to create new entity types, but we need 2 .self and .self2.

because the code is compiled not interpreted by the engine, then we cannot solve the problem by editing the enigne.
I only made isotromic games, websites an unfinishe flash game!
http://www.devushwebs.cba.pl/
DeVsh
Alien
 
Posts: 121
Joined: Fri Jun 08, 2007 7:39 pm

Postby DeVsh » Tue Nov 04, 2008 8:16 pm

sorry i got confused here while learning QuakeC (i do a bit in C)
I only made isotromic games, websites an unfinishe flash game!
http://www.devushwebs.cba.pl/
DeVsh
Alien
 
Posts: 121
Joined: Fri Jun 08, 2007 7:39 pm

Postby divVerent » Tue Nov 04, 2008 8:23 pm

It is impossible with just CSQC, sorry. You cannot run two clients using one connection. You can't even send two aiming angles instead of one.

The way to do splitscreen is rather:

- change the engine to run more than one client (that'll be a huge change)
- call the CSQC drawing functions for BOTH clients
- either set up view ports so they are separate (like r_stereo_sidebyside does), or let CSQC decide where to draw and use the full view port
1. Open Notepad
2. Paste: ÿþMSMSMS
3. Save
4. Open the file in Notepad again

You can vary the number of "MS", so you can clearly see it's MS which is causing it.
divVerent
Site admin and keyboard killer
 
Posts: 3809
Joined: Thu Mar 02, 2006 4:46 pm
Location: BRLOGENSHFEGLE

Postby DeVsh » Tue Nov 04, 2008 9:25 pm

i tried running two clients on one computer and they connected. What we are on about is making the client LOOK AS IF IT IS two separate clients on same connection.
Now onto the aiming topic, ARE YOU on about SENDING TWO AIMING ANGLES TO SERVER OR CREATING TWO AIMING ANGLES.

However we are well aware that we will need to mod the engine :(

this is quite clever for the engine bit to run two clients (we might consider)

I AM very curious on how networking works, because my idea was to have the ports in the client 26000-26003 (26000 and 26001 for player1 and other two for player 2) i was curious is it the engine that translates whatever is in the packets and changes variables of .health and etc. on the client OR IS IT THE CLIENT.

ALSO i would like to know what is in the packets (basically networking script)

P.S. I understand dark-places is the linux-gfx.sh and other files in the main directory.
P.S.S I have an idea on how to get the aiming done (partially homing missiles, homing for the first 0.1 of a second)
I only made isotromic games, websites an unfinishe flash game!
http://www.devushwebs.cba.pl/
DeVsh
Alien
 
Posts: 121
Joined: Fri Jun 08, 2007 7:39 pm

Next

Return to Nexuiz - Development

Who is online

Users browsing this forum: No registered users and 1 guest

cron