Jump to content


Photo

DataRun Project


  • Please log in to reply
221 replies to this topic

#1 xiongmao

xiongmao
  • Members
  • 175 posts
  • Location:Paris

Posted 05 May 2008 - 05:21 PM

All right guys,
DataRun project has started. Project has been setup and code from FiveWeek has been ported. You can download the project from SVN : svn://gamemod.net/sheelabs/DataRun
Here you can find:
- Content: UPK File and maps -> Maps of datarun in fiveweek project have to be moved
- Documentation
- Src -> Uscript sources
- Test -> may be renamed to Misc,a folder to put everything such as test videos,...

There's also the Wiki where you can see the project's aim and features ==> WIKI

This thread is dedicated to speak about the project and put any ideas which come to mind.
Here we go !!! :p

Edited by ambershee, 06 May 2008 - 12:38 PM.


#2 yuumei

yuumei
  • Project Team
  • 10 posts
  • Location:Derby,UK
  • Projects:DataRun

Posted 06 May 2008 - 11:41 AM

Following ambershee's email, I thought I ought to introduce myself. I'm ash and will be doing a website to record the statistics from games. (^-^)b

So... anyone know what kind of stats want recording? ^^
chown -R us ./base
^^*

#3 xiongmao

xiongmao
  • Members
  • 175 posts
  • Location:Paris

Posted 06 May 2008 - 01:16 PM

Guess Luke moves post ^^
Everyone says "Hello Ash" :shiftee:

#4 ambershee

ambershee

    Nimbusfish Rawks

  • Hosted
  • 3,114 posts
  • Location:Derby, UK
  • Projects:Mutator Week & Unreal 3 Projects
  •  Mad Mod Boffin

Posted 06 May 2008 - 02:35 PM

It made more sense to have it here.

Edit: Anyway, I'm going up north to attend a games industry meet, so I may be difficult to get hold of for a few days. I'll still be checking the forums though :shiftee:

Edited by ambershee, 06 May 2008 - 08:01 PM.


#5 Darknet

Darknet
  • Members
  • 75 posts

Posted 06 May 2008 - 11:17 PM

Hello Ash welcome to the forum.

I am still working on some model a bit and taking a break. I update two models in the datarun folder for simple static mesh.
JP - Darknet

#6 xiongmao

xiongmao
  • Members
  • 175 posts
  • Location:Paris

Posted 07 May 2008 - 08:38 AM

I'm working on Corrupt Data stuff, I've already made a more detailed draft (I'll update wiki soon).

#7 Darknet

Darknet
  • Members
  • 75 posts

Posted 07 May 2008 - 02:39 PM

I need some idea for a models for the weapon and other stuff. A drawing or writing how the weapon should be design so I can get some idea. Any idea would be good.
JP - Darknet

#8 ambershee

ambershee

    Nimbusfish Rawks

  • Hosted
  • 3,114 posts
  • Location:Derby, UK
  • Projects:Mutator Week & Unreal 3 Projects
  •  Mad Mod Boffin

Posted 07 May 2008 - 03:41 PM

Don't worry - like I said on MSN; we won't bother. We'll just use the same UT mesh for all four tools, and maybe change the colour, as it'll rarely be seen anyway.

#9 Darknet

Darknet
  • Members
  • 75 posts

Posted 07 May 2008 - 07:34 PM

ok.
JP - Darknet

#10 xiongmao

xiongmao
  • Members
  • 175 posts
  • Location:Paris

Posted 08 May 2008 - 09:19 AM

I've updated documentation and wiki with a new paragraph Appendix :p

#11 xiongmao

xiongmao
  • Members
  • 175 posts
  • Location:Paris

Posted 09 May 2008 - 11:27 PM

Hi all, Double post :p
I got a surprise for you, it begins by Link ...
Enjoy :)

#12 Darknet

Darknet
  • Members
  • 75 posts

Posted 10 May 2008 - 01:29 AM

The Video look good ^^)>
JP - Darknet

#13 xiongmao

xiongmao
  • Members
  • 175 posts
  • Location:Paris

Posted 10 May 2008 - 09:23 PM

Here is a new video of the LinkTool, I have Primary and secondary fire implemented ==> Videos :shiftee:
Primary Fire: will allow the player to grab and pick up objects to move them around for as long as it remains held. (copy/paste fromWiki ^^), it works
Secondary Fire: The Grapple. Press Fire once, the grapple will be enable, press a second time, it will be disable. if it touches a carrier, grapple is connected and PlayerOwner goes in flyingmode, his velocity is first increased fast as the player is attracted by the carrier then get the carrire's velocity when reaches a reasonnable distance (about 200 UU in the video)

what do you think?

#14 Darknet

Darknet
  • Members
  • 75 posts

Posted 10 May 2008 - 10:42 PM

It look great but it doesn't grab the object very well that tug to move the object. The other weapon fire for the Grapple it is great. You can almost can swing across the area It does work well for both. If you improve the grab weapon that hold front of the screen.
JP - Darknet

#15 ambershee

ambershee

    Nimbusfish Rawks

  • Hosted
  • 3,114 posts
  • Location:Derby, UK
  • Projects:Mutator Week & Unreal 3 Projects
  •  Mad Mod Boffin

Posted 12 May 2008 - 10:53 AM

I like the grapple. With some tweaking it will probably work really well. The grabber could probably use a bit of work. Fortunately (like I said), I wrote something similar for work:

//////////////////////////////
// Class: ToolMover
// Desc: A tool that can pick up, move and rotate the desired object
// Author: Luke 'Ambershee' Parkes-Haskell
//////////////////////////////

class ToolMover extends Tool;

var				float			WeaponImpulse;
var				float			HoldDistanceMin;
var				float			HoldDistanceMax;
var				float			ThrowImpulse;
var				float			ChangeHoldDistanceIncrement;

var				RB_Handle		PhysicsGrabber;
var				float			HoldDistance;
var				Quat			HoldOrientation;
var				rotator			NewRot;

simulated function StartFire( optional byte FireModeNum )
{
	local vector					CamLoc, StartShot, EndShot, X, Y, Z;
	local vector					HitLocation, HitNormal, Extent;
	local actor						HitActor;
	local float						HitDistance;
	local Quat						PawnQuat, ActorQuat;
	local TraceHitInfo				HitInfo;
	local SkeletalMeshComponent		SkelComp;
	local rotator					CamRot;
	
	if (FireModeNum == 0)
	{
		Instigator.Controller.GetPlayerViewPoint(CamLoc, CamRot);

		// Do ray check and grab actor
		GetAxes( CamRot, X, Y, Z );
		StartShot	= CamLoc;
		EndShot		= StartShot + (10000.0 * X);
		Extent		= vect(0,0,0);
		HitActor	= Trace(HitLocation, HitNormal, EndShot, StartShot, True, Extent, HitInfo);
		HitDistance = VSize(HitLocation - StartShot);

		if( HitActor != None && HitActor != WorldInfo && HitDistance > HoldDistanceMin && HitDistance < HoldDistanceMax )
		{
			// If grabbing a bone of a skeletal mesh, dont constrain orientation.
			PhysicsGrabber.GrabComponent(HitInfo.HitComponent, HitInfo.BoneName, HitLocation, PlayerController(Instigator.Controller).bRun==0);

			// If we succesfully grabbed something, store some details.
			if( PhysicsGrabber.GrabbedComponent != None )
			{
				HoldDistance	= HitDistance;
				PawnQuat		= QuatFromRotator( CamRot );

				if ( HitInfo.BoneName != '' )
				{
					SkelComp = SkeletalMeshComponent(HitInfo.HitComponent);
					ActorQuat = SkelComp.GetBoneQuaternion(HitInfo.BoneName);
				}
				else
				{
					ActorQuat = QuatFromRotator( PhysicsGrabber.GrabbedComponent.Owner.Rotation );
				}

			HoldOrientation = QuatProduct ( QuatInvert ( PawnQuat ), ActorQuat );

			}
		}

	}
	else
	{
		if ( PhysicsGrabber.GrabbedComponent != None )
		{
			PhysicsGrabber.ReleaseComponent();
			bMode = false;
		}
	}
}

simulated function StopFire( optional byte FireModeNum )
{
	//We used to do something. Left in in case we later want to do something.
}

exec function WeaponModeToggle()
{
	if(bMode)
	{
		//Cheesy hack to regrab object and retain rotation after toggling out of rotation mode.
		StopFire(1);
		StartFire(0);
		
		bMode = false;
	}
	else
	{
		if ( PhysicsGrabber.GrabbedComponent != None )
		{
			StopFire(1);
			StartFire(0);
			bMode = true;
		}
		
	}
}

event Tick(float DeltaTime)
{
	local vector	CamLoc, NewHandlePos, X, Y, Z;
	local rotator	CamRot;

	super.Tick(DeltaTime);

	if ( PhysicsGrabber.GrabbedComponent == None )
	{
		return;
	}

	PhysicsGrabber.GrabbedComponent.WakeRigidBody( PhysicsGrabber.GrabbedBoneName );

	Instigator.Controller.GetPlayerViewPoint(CamLoc, CamRot);
	GetAxes( CamRot, X, Y, Z );

	// Update handle position on grabbed actor.
	NewHandlePos = CamLoc + (HoldDistance * X);
	PhysicsGrabber.SetLocation( NewHandlePos );
	
	if (bMode == false)
	{
		PhysicsGrabber.SetOrientation ( QuatProduct ( QuatFromRotator ( CamRot ) , HoldOrientation ) );
	}
}

simulated function bool DoOverrideNextWeapon()
{
	HoldDistance -= ChangeHoldDistanceIncrement;

	return true;
}

simulated function bool DoOverridePrevWeapon()
{
	HoldDistance += ChangeHoldDistanceIncrement;

	return true;
}

simulated function RotateObject(Rotator ObjectRot)
{
	if (PhysicsGrabber.GrabbedComponent != None)
	{
		NewRot += PhysicsGrabber.GrabbedComponent.Rotation + ObjectRot;
		
		PhysicsGrabber.SetOrientation( QuatFromRotator (NewRot) );
	}
}

function DrawToolInfo(Canvas Canvas)
{
	Canvas.DrawText("Move Tool in", FALSE, 1, 1);
	Canvas.SetPos(400,50);

	if (bMode)
	{
		Canvas.DrawText("Rotate Mode", FALSE, 1, 1);
	}
	else
	{
		Canvas.DrawText("Move Mode", FALSE, 1, 1);
	}
}

DefaultProperties
{
	HoldDistanceMin=150.0
	HoldDistanceMax=750.0
	WeaponImpulse=600.0
	ThrowImpulse=800.0
	ChangeHoldDistanceIncrement=50.0
	
	Begin Object Class=RB_Handle Name=RB_Handle0
	End Object
	PhysicsGrabber=RB_Handle0
	Components.Add(RB_Handle0)
	
	InventoryGroup = 1;
	bMode = false;
}

Note that the class it extends is very similar to the UTWeapon class, save that it is considerably more simple and doesn't contain any UT specific logic. The exec WeaponModeToggle was bound to a key to allow for switching between tool modes of movement and rotation. Notably, we don't need the rotation part anyway, just the normal grabber. I reckon this code will port almost directly across into UT.

#16 xiongmao

xiongmao
  • Members
  • 175 posts
  • Location:Paris

Posted 12 May 2008 - 02:07 PM

I remember someone told me that he had already worked on something but I forgot what :p

Edited by xiongmao, 12 May 2008 - 02:07 PM.


#17 Darknet

Darknet
  • Members
  • 75 posts

Posted 14 May 2008 - 01:57 AM

What you guys think of the static mesh building I made?
-Skyscraper_assorted.upk
-Skyscraper_building.upk
Although I not quite skill in texture yet.
JP - Darknet

#18 xiongmao

xiongmao
  • Members
  • 175 posts
  • Location:Paris

Posted 14 May 2008 - 07:33 AM

I'll take a look tonight ;)

For Luke, here is the simple GrappleMover (copy from toolMover but using RB_Spring).
I noticed that playing with SpringMaxForceTimeScale=(Points=((InVal=1000,OutVal=10.0))) and SpringMaxForce=1000 were efficient, the hellBender I used as a Kactor runs on me (and of course kill me ^^) proof that the Spring works. The fact is that the hellbender comes to me not the contrary (maybe a mass problem like you mentionned).
Moreover the 2 actors (HellBender and I) were on the ground, I don't know if the pawn can hang to the Spring ?
If we could used Spring as secondary fire, it could look better than my previous stuff but sounds tricky to manage ;)

class GrappleMover extends UTWeapon;

var				RB_Spring		PhysicsSpring;

simulated function StartFire( optional byte FireModeNum )
{
	local vector					CamLoc, StartShot, EndShot, X, Y, Z;
	local vector					HitLocation, HitNormal, Extent;
	local actor						HitActor;
	local float						HitDistance;
	local TraceHitInfo				HitInfo;
	local rotator					CamRot;

	if (FireModeNum == 0)
	{
		Instigator.Controller.GetPlayerViewPoint(CamLoc, CamRot);

		// Do ray check and grab actor
		GetAxes( CamRot, X, Y, Z );
		StartShot	= CamLoc;
		EndShot		= StartShot + (10000.0 * X);
		Extent		= vect(0,0,0);
		HitActor	= Trace(HitLocation, HitNormal, EndShot, StartShot, True, Extent, HitInfo);
		HitDistance = VSize(HitLocation - StartShot);

		if( HitActor != None && HitActor != WorldInfo)
		{
			LogInternal("hitactor");
			PhysicsSpring.SetComponents(HitInfo.HitComponent, HitInfo.BoneName, HitLocation, self.CollisionComponent, 'b_gun_root', location );
		}

	}
	else
	{
		PhysicsSpring.Clear();
	}
}

simulated function StopFire( optional byte FireModeNum )
{
	//We used to do something. Left in in case we later want to do something.
}

event Tick(float DeltaTime)
{
	local vector	CamLoc, NewHandlePos, X, Y, Z;
	local rotator	CamRot;

	super.Tick(DeltaTime);
}

DefaultProperties
{
	// Weapon SkeletalMesh
	Begin Object Name=FirstPersonMesh
		SkeletalMesh=SkeletalMesh'WP_LinkGun.Mesh.SK_WP_Linkgun_1P'
		AnimSets(0)=AnimSet'WP_LinkGun.Anims.K_WP_LinkGun_1P_Base'
		Animations=MeshSequenceA
		Scale=0.9
		FOV=60.0
	End Object

	//AttachmentClass=class'DataRun_LinkToolAttachment'

	Begin Object class=RB_Spring Name=RB_Spring0
	  SpringSaturateDist=10000
	  SpringMaxForce=1000
	  MaxForceMassRatio=1000
	  bEnableForceMassRatio=false
	  DampSaturateVel=10
	  DampMaxForce=10
	  SpringMaxForceTimeScale=(Points=((InVal=1000,OutVal=10.0)))
	End Object
	PhysicsSpring=RB_Spring0
	Components.Add(RB_Spring0)

	InventoryGroup = 1;
}


#19 xiongmao

xiongmao
  • Members
  • 175 posts
  • Location:Paris

Posted 14 May 2008 - 10:35 PM

double post :evgr:
I take a look at your package, what can I say? there are a bunch of windows and balconies, I've not much to say waiting a candidate map ;)
I have a big surprise for you, I've merged Luke's code with mine and it gives This Video .
This is really fun ;) Primary Fire is finished I Guess

#20 Darknet

Darknet
  • Members
  • 75 posts

Posted 15 May 2008 - 02:16 AM

Nice it bit better for grabing the object. ^^)> that Great work!

Althougth It will take a while to refine the texture a bit to improve the building image. I have not yet learn how to texture using gimp and plus fixing uv layout for the meshes making changes effect the placing and retexture take some time.
JP - Darknet




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users