UDKOSC Development Timeline
Contents
- 1 12/20/2012
- 2 12/20/2012
- 3 11/24/2012
- 4 11/18/2012
- 5 10/21/2012
- 6 9/19/2012
- 7 9/07/2012
- 8 9/04/2012
- 9 9/03/2012
- 10 9/02/2012
- 11 8/25/2012
- 12 07/12/2012
- 13 05/19/2012
- 14 08/29/2010
- 15 08/28/2010
- 16 08/27/2010
- 17 08/26/2010
- 18 8/22/2010
- 19 8/19/2010
- 20 8/18/2010
- 21 8/17/2010
- 22 8/16/2010
- 23 8/15/2010
- 24 8/14/2010
- 25 8/13/2010
- 26 8/12/2010
- 27 8/11/2010
- 28 8/10/2010
- 29 8/09/2010
- 30 8/08/2010
- 31 8/03/2010
- 32 8/01/2010
- 33 7/31/2010
- 34 7/27/2010
- 35 6/13/2010
- 36 6/1/2010
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();