UDKOSC Development Timeline

From CCRMA Wiki
Jump to: navigation, search

12/20/2012

Created installer package and uploaded to ccrma servers. Users can just install UDKOSC from the windows installer now, though the udkosc .dll must be manually added to the project's Binaries/Win32/UserCode/ directory.

12/20/2012

  • updated master branch with V1 working versions of OSC input control for Pawns and functional OSC output for Pawns
  • added branch 'dev' to github repo for dev changes, master will remain (relatively) stable and dev will be for ongoing work
  • added documentation to 'docs'

11/24/2012

- Annoying Steam-based errors with spawned playercontrollers

- Trying to disable Steam server in DefaultGame.ini with:

[Engine.AccessControl]
IPPolicies=ACCEPT;*
bAuthenticateClients=False
bAuthenticateServer=False
bAuthenticateListenHost=False
MaxAuthRetryCount=3
AuthRetryDelay=5

- DefaultEngineUDK.ini & DefaultEngine.ini:

[OnlineSubsystemSteamworks.OnlineSubsystemSteamworks]
bEnableSteam=false

11/18/2012

- Added low-latency OSCPawnBot control with each PawnBot controller polling OSC structs for each pawn's own struct (stored in a std::map in the dll)

- Sorted out rotations and slewed rotation calls in osccontrol.rb under /Scripts/

- Finished all movement calls to OSCPawnBots.

- params for Unreal Frontend "Launch Options": -wxwindows -remotecontrol -log

10/21/2012

- Added OSCPawnBot as the primary 3rd party pawn actor. Still hooking up OSC.

"spawnPawnBot" will spawn OSCPawnBot with a unique ID and attach it to a OSCPawnController controller instance.

- Added OSCBot as standard AI unit. Still hooking up OSC. Can respond to MoveTo commands.

- Added rotation to OSCControl.rb and to OSCPawn; still wonky.

9/19/2012

Version 1.0 of OSCControl has been added to the project. Documentation on getting started with OSCControl and remote control of UDKOSC camera and actors can be found at:

https://github.com/robertkhamilton/udkosc/blob/master/Scripts/getting_started.txt

9/07/2012

Added a proper stop call in .dll as well as fixed jumping

9/04/2012

Now actor speed is reset after manual stop is called (before next player move X,Y,Z call)

9/03/2012

Added much needed "playermove stop 1" call as actors set upon a given vector would not ever stop. whoops.

Currently can only be manually called outside of a block.

Should reset actor speed when next playermove is called.

9/02/2012

Scripting Overview:

playermove

- playermove calls require method, param, val, (slewtime in ms), userid
e.g. "playermove x 100 1000 1"
- actor motion can be stopped by calling "playermove stop 1" at any time outside of a block
  = STOP calls don't reset the currentval of PLAYERSPEED 
cameramove

- cameramove calls don't require userid

e.g. "cameramove pitch 360 10000"
cameramove pitch, yaw and roll values are all scaled to allow degree input (i.e. 0-360) through use of the UDK scaling factor of 182.044403
Console commands: useable console commands are defined in the script generator and can be called with the method call "console" e.g.

- "console behindview"
OSC bundles
- OSC bundles are created by creating block commands, started with "[" and ended with "]"
- all slew values for each block command are created and sorted before generation
wait
- the message "wait" will call a ms Sleep command in Ruby
Comments
- comments are any lines prefaced with a "#" followed by a space

EXAMPLE SCRIPT:

[
cameramove pitch -90 100
cameramove x -300 5000
cameramove z 300 500
]
console behindview
# This is a test
[
cameramove pitch 90 1000 
cameramove yaw -130 1000
]
[
playermove speed 500 20 1
playermove x 5000 3000 1
]
playermove stop 1

8/25/2012

Created scripting language for creating UDKOSC movement gestures and Ruby OSC generating code.

Download from https://github.com/robertkhamilton/udkosc in the Scripts directory

Currently supports basic movement gestures:

PlayerMove (X,Y,Z, Jump, Speed, UserID, time slew) CameraMove (X,Y,Z,Speed, time slew) Wait Block Messages - i.e. gestures to be created simultaneously as OSC bundles

Time slews for gestures generate streams of OSC messages or bundles

07/12/2012

Camera Control by OSC enabled:

behindview
OSCMove
OSCSetFreeCamera
OSCStartInput

Camera Pitch, Yaw, Roll + Relative (to Pawn.Location) and Absolute (to 0.0, 0.0, 0.0 World Coordinates) - OSCSetFreeCamera toggles between Relative and Absolute coordinates - OSCMove toggle between standard control and OSCControl (both for PlayerController/Pawn and for Camera)

Using "behindview" makes Pawn visible as 3rd-Party actor

05/19/2012

Bumping up to UDK-2012-03 version

Had to add line to DefaultEngine.ini

"+NonNativePackages="


08/29/2010

Added Scaling code for iPad control OSC values

setOSCFingerWorldMax x y z
setOSCFingerWorldMin x y z
setOSCFingerOffsets x y z
initOSCFingerTouches True

setOSCFingerSourceMin	x y z
setOSCFingerSourceMax	x y z
OSCSendDeltas

08/28/2010

added setAirSpeed,setSeekingTurnRate methods

modded setSeekingShockBallTargetClassName to differentiate between "energy_post" and "counterweight" named objects; bound each combo to numPad

setProjectileTargets will direct projectiles to a given X Y Z coordinate; can be bound

TOGGLEHUD
DISABLEALLSCREENMESSAGES

08/27/2010

Added left-fire location tagging for projectiles

Started modding MiTo Supercollider code from 2009 for Tele-Harmonium structure

Got multi-player working via FrontEnd; exact copies of compiled code will connect without a hitch. Replication is still an issue, will reference basics from http://mutualdestruction.net/udk-networking-tutorial/

08/26/2010

http://forums.epicgames.com/showthread.php?t=742470

Networking error madness:

Downloading Entire UDKGame > Script directory

Receiving Core
Receiving Engine
Receiving 'Game Framework'
Receiving 'UnrealEd'
Receiving 'IPDrv'
Receiving 'GfxUI'
Receiving UDKBase
Receiving 'UTGame'


8/22/2010

Added ability to toggle seekingShockBalls seekTarget between OSCProj_ShockBall and UTVolume objects.

Set ctrl-F to call WalkFly exec to toggle pawn state between Fly and Walk

8/19/2010

Added OSCProj_SeekingShockBall, and OSCWeap_SeekingShockRifle for glowing balls with seeking properties, taken from the OSCProj_SeekingRocket code

Added media/ScreenShots dir to svn for archiving ingame snaps

8/18/2010

Cleanup on UDK-side of multi-touch control; now shockballs don't explode on collision with other shockballs and when initOSCFingerTouches is TRUE, will seek out the next available finger touch location currently being received.

Created Max/MSP test patch for control testing.

8/17/2010

Added initial OSC Input to control seeking of ShockBalls to be used as controlled by 5 iPad finger touches.

/fingers X Y Z on/off (all floats, for fingers 1-5)

8/16/2010

Smoothed out homing functionality for SeekingRockets; now make nice smooth arcs.

8/15/2010

Added basic homing functionality for SeekingRockets to track ShockBalls. Added helper functions:

setLockHomingTargets
setRadiusSeekingRocket
setRangeSeekingRocket
setSpeedSeekingRocket
setSpeedShockBall

with LockHomingTargets, we can set if seeking projectiles will automatically search for the closest target (expensive) or stay locked to the initial target the first seek.


8/14/2010

Committed Full svn

post svn:

- added setGroundSpeed (float), and getGroundSpeed() exec functions to OSCPawn to set player speed.


8/13/2010

Added exec functions for setting OSC params from within game terminal: setOSC(ip, port) setOSCHostname(ip) and setOSCPort(port) which all save values to UDKOSC.ini after edit.

Added getOSCHostname, getOSCPort and getOSC methods to display current OSC settings to in-game user.

Initial homing rocket code started with limited results; rockets home in on ShockBalls but after tracking them successfully, don't update their direction to follow again.

8/12/2010

Successful network (LAN, local) testing with 3 connected clients Added OSCTrigger class to send message on Trigger event

8/11/2010

Added crouch tracking in OSCPawn output, and OSCStartInput, OSCStartOutput, OSCStopOutput, and OSCSendDeltas exec functions.

Working on extending "Use" function:

http://forums.epicgames.com/showthread.php?t=717602&highlight=PerformedUseAction

found in PlayerController.uc

/**
* Entry point function for player interactions with the world,
* re-directs to ServerUse.
*/
exec function Use()
{
	if( Role < Role_Authority )
	{
		PerformedUseAction();
	}
	ServerUse();
}
/**
 * Player pressed UseKey
 */
unreliable server function ServerUse()
{
	PerformedUseAction();
}

8/10/2010

added initOSCReceiver function to OSCPawn to initiate OSC input polling from the dll.

updated Max/MSP gui OSC sender applet for testing global gameGravity and gameSpeed params over OSC

8/09/2010

Mapped incoming OSC test floats to GameSpeed and Gravity successfully.

Can access WorldInfo and current Game vars and methods stored in ut3osc.uc:

UT3OSC(WorldInfo.Game).fingerTouchArray[0].X=val;

8/08/2010

Code re-written to access OSC params in OSCParams.uc class. Now Hostname and Port can be set through the DefaultOSC.ini

Updated code checked into SVN

8/03/2010

Successful test of OSC messages being sent into UDK via OSCPack dll listener, operating on its own thread.

Pawn motion:

http://www.etc.cmu.edu/projects/coyote210/Docs/undox/Engine.Pawn.html

MoveTo and MoveToward methods

void	MoveTo(vector NewDestination, optional float)
     
// Latent Movement. Note that MoveTo sets the actor's Destination, and MoveToward sets the actor's MoveTarget.  Actor will rotate towards destination

void	MoveToward(Actor NewTarget, optional float)


UDKProjectile

/** Currently tracked target - if set, projectile will seek it */ var actor SeekTarget;

Projectile

Can target be changed just by setting Velocity (Speed * Direction vector)?

/* Init()
initialize velocity and rotation of projectile
*/
function Init( Vector Direction )
{
	SetRotation(Rotator(Direction));
	Velocity = Speed * Direction;
}

Actor (projectiles inherit from Actor)

// The actor's position and rotation.
/** Actor's location; use Move or SetLocation to change. */
var(Movement) const vector			Location;

/** The actor's rotation; use SetRotation to change. */
var(Movement) const rotator			Rotation;


Added "MoveAllProjectiles X Y Z" as exec function: instantly moves all projectiles to a specific location.

Working on

exec function setAllProjectileSpeed(int speed)
{
    local UTProjectile pUT; 

  	ForEach AllActors(class'UTProjectile', pUT)
	{
		pUT.Speed = speed;
	}
}

8/01/2010

Checked in modifications to July UDK to svn at ccrma. Note only modified files/custom files were checked in, including the source for the oscpack windows dll, and these should be checked out into a 2010-07 install of the UDK.

7/31/2010

OSCInterpActor class

- outputs position data on move, bump and damage as well
- Kismet script tested successfully to spit out position data while object moves

7/27/2010

- Moved to July UDK

Current Feature List

- OSC dll in place
- Tracking XYZ data in customized player controller sending OSC data
- Bouncing Projectiles
- Tracking projectile XYZ data sending OSC data
- customized Actor class for OSC on bump and touch events (not tested yet)

6/13/2010

First Words: ?game=UT3OSC.UT3OSC needs to be passed in "Extra Options" in Unreal FrontEnd

OSC message is being sent from Terminal on typing "Test1"

- first impressions are that it's a bit slow... lag/latency maybe UnrealScript?


[COMMANDLET 'UDK.exe make -full' STARTED IN ] June 13, 12:23 AM

Init: Version: 6522
Init: Epic Internal: 0
Init: Compiled (32-bit): Apr  9 2010 12:14:06
Init: Command line:  -full -DEFENGINEINI=..\..\UDKGame\Config\DefaultEngineUDK.ini
Init: Base directory: C:\UDK\UDK-2010-04\Binaries\Win32\
Init: Character set: Unicode
Log: Executing Class UnrealEd.MakeCommandlet
--------------------Core - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2010-04\Binaries\Win32\..\..\UDKGame\Script\Core.u'
--------------------Engine - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2010-04\Binaries\Win32\..\..\UDKGame\Script\Engine.u'
--------------------GameFramework - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2010-04\Binaries\Win32\..\..\UDKGame\Script\GameFramework.u'
--------------------UnrealEd - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2010-04\Binaries\Win32\..\..\UDKGame\Script\UnrealEd.u'
--------------------IpDrv - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2010-04\Binaries\Win32\..\..\UDKGame\Script\IpDrv.u'
--------------------OnlineSubsystemPC - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2010-04\Binaries\Win32\..\..\UDKGame\Script\OnlineSubsystemPC.u'
--------------------UDKBase - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2010-04\Binaries\Win32\..\..\UDKGame\Script\UDKBase.u'
--------------------UTEditor - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2010-04\Binaries\Win32\..\..\UDKGame\Script\UTEditor.u'
--------------------UTGame - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2010-04\Binaries\Win32\..\..\UDKGame\Script\UTGame.u'
--------------------UTGameContent - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2010-04\Binaries\Win32\..\..\UDKGame\Script\UTGameContent.u'
--------------------UnrealOsc - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2010-04\Binaries\Win32\..\..\UDKGame\Script\UnrealOsc.u'

Success - 0 error(s), 0 warning(s)
Execution of commandlet took:  22.67 seconds 

[COMMANDLET 'UDK.exe make -full' SUCCEEDED] June 13, 12:23 AM

6/1/2010

basic testing of Windows Oscpack dll writes message successfully over OSC from test app

__declspec(dllexport) double returnDouble(double a);
__declspec(dllexport) void sendOSCmessageTest();