What makes you think that I'm not an incredibly gorgeous, busty woman?papercoffee wrote:....this picture... in my mind ...go away ...nooooooooo[did]Madis wrote:Shadow, you make me moist.
[INFO] Development Journal
- [did]Madis
- Adept
- Posts: 297
- Joined: Tue Jun 03, 2008 2:48 pm
- Personal rank: カニはとても美味しい
Re: [INFO] Development Journal
- papercoffee
- Godlike
- Posts: 10466
- Joined: Wed Jul 15, 2009 11:36 am
- Personal rank: coffee addicted !!!
- Location: Cologne, the city with the big cathedral.
- Contact:
Re: [INFO] Development Journal
....this picture... in my mind ...go away ...nooooooooo[did]Madis wrote:What makes you think that I'm not an incredibly gorgeous, busty woman?papercoffee wrote:....this picture... in my mind ...go away ...nooooooooo[did]Madis wrote:Shadow, you make me moist.
- [did]Madis
- Adept
- Posts: 297
- Joined: Tue Jun 03, 2008 2:48 pm
- Personal rank: カニはとても美味しい
Re: [INFO] Development Journal
I have a question - Does the UT99 SDK have online support? I mean, could you make a mod that uses SDK features but can be and is intended to be played online?
Would the players require to install the SDK before being able to play online?
Would the players require to install the SDK before being able to play online?
- Creavion
- Godlike
- Posts: 4497
- Joined: Sun Feb 17, 2008 7:23 pm
- Personal rank: About to be non-act.
- Location: Germany, Lower Saxony
Re: [INFO] Development Journal
I think many players and modders would seek for Shadows head if they would find out that online support is not available. He is a professional coder and scripter. Without to ask (him), you can assume that^^ (I hope I am not wrong)
About to be non-active
My very last UT map project: CTF-FacePalm (tropical CTF-Face remake)
Why do I leave? click here
What I want to do next: Joining an UDK team (uncertain however) and improve 3D modelling and texture editing skills
Thanks to those who visibly supported me until/at the end!
My reactivated account on indiedb.com.
My very last UT map project: CTF-FacePalm (tropical CTF-Face remake)
Why do I leave? click here
What I want to do next: Joining an UDK team (uncertain however) and improve 3D modelling and texture editing skills
Thanks to those who visibly supported me until/at the end!
My reactivated account on indiedb.com.
- Shadow
- Masterful
- Posts: 743
- Joined: Tue Jan 29, 2008 12:00 am
- Personal rank: Mad Carpenter
- Location: Germany
- Contact:
Re: [INFO] Development Journal
SDK is intended to support online and offline play.
Owning two computers I can test network campatiblities myself.
In order to simply run new mods that base on the SDK there'll be a runtime version just with the binaries only.
Owning two computers I can test network campatiblities myself.
In order to simply run new mods that base on the SDK there'll be a runtime version just with the binaries only.
- [did]Madis
- Adept
- Posts: 297
- Joined: Tue Jun 03, 2008 2:48 pm
- Personal rank: カニはとても美味しい
Re: [INFO] Development Journal
That's awesome!Shadow wrote:SDK is intended to support online and offline play.
Owning two computers I can test network campatiblities myself.
In order to simply run new mods that base on the SDK there'll be a runtime version just with the binaries only.
- Shadow
- Masterful
- Posts: 743
- Joined: Tue Jan 29, 2008 12:00 am
- Personal rank: Mad Carpenter
- Location: Germany
- Contact:
Re: [INFO] Development Journal
Yarp ! Because the runtime won't be bigger than 30 MB, a downloadable anyone can effort to be able to play/see new freaky shit.
Currently working on this:
- New Console System (supports different 3 Menu Systems, changeable via configuration file)
- New Menu System, entitled "XMenus" (will feature 3D / 2D Menu Interaction, with custom environment backgrounds, mod support, custom cursors and many previously HIDDEN configurations, easy custom menu setup, forget UWindow System !)
- New Menu System, entitled "Unreal-Style UT Menu" (unreal's classic menu style adapted on UT)
- Messing around with UWindows...
- implementing New Media Support for Sound and Music Playback, supports MP3, WMA, OGG and WAV, own Media Subdirectories, Playback Functions are globally accessable from out of every Class (Play,Stop,Pause, global/class-based Volume)
Concerning UWindows: geeee.. again I must say: this is the most fucked up GUI I have ever seen
Currently working on this:
- New Console System (supports different 3 Menu Systems, changeable via configuration file)
- New Menu System, entitled "XMenus" (will feature 3D / 2D Menu Interaction, with custom environment backgrounds, mod support, custom cursors and many previously HIDDEN configurations, easy custom menu setup, forget UWindow System !)
- New Menu System, entitled "Unreal-Style UT Menu" (unreal's classic menu style adapted on UT)
- Messing around with UWindows...
- implementing New Media Support for Sound and Music Playback, supports MP3, WMA, OGG and WAV, own Media Subdirectories, Playback Functions are globally accessable from out of every Class (Play,Stop,Pause, global/class-based Volume)
Concerning UWindows: geeee.. again I must say: this is the most fucked up GUI I have ever seen
Re: [INFO] Development Journal
Concerning the last post. Is it possible to update the mod/s3m/xm/it player? The current one seriously lacks sample ramping. UT doesn't even have support for many of *.it's features. Support for compressed samples would kick some serious mp3 ass. If i recall well FMOD supports ogg compressed samples, and modplug has a more older ADPCM compression.
What would really rock is to translate zxx commands into unreal events. That way a mapper could make the lights change on rhythm and any other kinds of events based on rhythm or just use the module as a dispatcher whit precise and easy to use timing for multiple cinematic effects. Modplug is open source
Ok, ok, I get it you're working your ass off and we're asking for the impossible, but this could easily be one of the best features, especially for SP mappers. Ok ok, I shut up. Keep up the good work whit whats already planned.
What would really rock is to translate zxx commands into unreal events. That way a mapper could make the lights change on rhythm and any other kinds of events based on rhythm or just use the module as a dispatcher whit precise and easy to use timing for multiple cinematic effects. Modplug is open source
Ok, ok, I get it you're working your ass off and we're asking for the impossible, but this could easily be one of the best features, especially for SP mappers. Ok ok, I shut up. Keep up the good work whit whats already planned.
- [did]Madis
- Adept
- Posts: 297
- Joined: Tue Jun 03, 2008 2:48 pm
- Personal rank: カニはとても美味しい
Re: [INFO] Development Journal
That would definitely be something I'd overuse.Myth wrote:Concerning the last post. Is it possible to update the mod/s3m/xm/it player? The current one seriously lacks sample ramping. UT doesn't even have support for many of *.it's features. Support for compressed samples would kick some serious mp3 ass. If i recall well FMOD supports ogg compressed samples, and modplug has a more older ADPCM compression.
What would really rock is to translate zxx commands into unreal events. That way a mapper could make the lights change on rhythm and any other kinds of events based on rhythm or just use the module as a dispatcher whit precise and easy to use timing for multiple cinematic effects. Modplug is open source
Ok, ok, I get it you're working your ass off and we're asking for the impossible, but this could easily be one of the best features, especially for SP mappers. Ok ok, I shut up. Keep up the good work whit whats already planned.
- Shadow
- Masterful
- Posts: 743
- Joined: Tue Jan 29, 2008 12:00 am
- Personal rank: Mad Carpenter
- Location: Germany
- Contact:
Re: [INFO] Development Journal
No, myth it's ok. I'm very open to new ideas, and I think I gonna implement it, since modplug is open source, this shouldn't be too hard. Either in the first release (if I gonna make it) or in a update I'm going to implement this.
//edit:
Small Update for today:
Daily updating the sdkObject.uc / UsdkObject.h / UsdkObject.cpp I frequently add new useful global functions the standard Object class (on my point of view) hardly missed out. So here's a small overview of all shortly added math and general purpose functions, and variable structs.
Structures
The fmodifier struct gives complete control over a float value in realtime in connection with the XAdjustValue Function. The Range variable contains Min and Max values. Base is the (new) initial value to start from. X and Y are timing rates, mod is a delay and tick value.
Modes:
General Purpose Functions
Most functions should be self explonary by their name, but here are some additional information:
GetPlayer works for singleplayer / offline and multiplayer / online play.
On clients it returns the ONE and only player, on a server it returns all currently present players.
The time functions jThal, jThal2, TimeSwap and TimeSwap do the following.
jThal returns the current name of the day by given Year, Month and Day Date.
jThal2 is an extension of jThal. Given Year, Month and Day Date it returns current day, the day before and after as a name.
TimeSwap returns Seconds, Minute, Hour etc. of given Input Hours.
TimeSwap2 is the inversion of TimeSwap.
GetSimQAxis simulates quaternion axis ("a vector with rotation").
UpdateSimQRot simulates a quaternion rotation, allowing actors to move, attach, while spinning/rotating or facing/orienting towards a position.
//edit:
Small Update for today:
Daily updating the sdkObject.uc / UsdkObject.h / UsdkObject.cpp I frequently add new useful global functions the standard Object class (on my point of view) hardly missed out. So here's a small overview of all shortly added math and general purpose functions, and variable structs.
Structures
Code: Select all
struct fModifier
{
var() float Base, X, Y, Mod;
var() range Range;
var() enum eOperation
{
OP_Constant,
OP_Increase,
OP_Decrease,
OP_Timer,
OP_Random,
OP_Sin,
OP_Unused
}Operation;
};
Modes:
- OP_Constant - Linearly applies new value based on Base
OP_Increase - smoothly increases new value starting from Base to max, timed by X
OP_Decrease - smoothly increases new value starting from Base to min, timed by Y
OP_Timer - smoothly loops between Min / Max, timed by X and Y, mod sets X additional ticks the value should stay on Min / Max when approaching these
OP_Random - randomizes between Min / Max Range, is either one shot (mod = negative value), instantly applied (mod = 0) or tick-wise applied (mod = X Ticks)
OP_Sin - smoothly applies a sin function on new value, it adjusts the value based on Base by the Amplitude Max , the frequency X and the damping Y
OP_Unchanged - sometimes useful, if the new value shall have it's default value at begin
Code: Select all
static final function XAdjustValue(out float NewValue,byte Mode, float T,float Base, float Mod,float Max, float Min,float X, float Y,out float vTemp,out int vBuffer)
static final function vector Vect2(float x,float y,float z)
static final function vector Vect2D(float x,float y)
static final function float VSizeSq(vector V)
static final function float DotWOZ(vector A, vector B)
static final function float VSize2D(vector V)
static final function float VSizeSq2D(vector V)
static final function vector VAbs(vector V)
static final function vector VMin(vector A, vector B)
static final function vector VMax(vector A, vector B)
static final function vector VClamp(vector V, vector Max, vector Min)
static final function float VClamp2(vector V, float Max, float Min)
static final function vector VRange(vector min, vector max)
static final function vector Spat(vector A,vector B,vector C)
static final function vector DoubleCross(vector A,vector B,vector C)
static final function vector VLerp(vector A,vector B,float Alpha)
static final function vector VSmerp(vector A,vector B,float Alpha)
static final function bool VInterpolate(vector A,vector B,out vector DeltaV,float DeltaT)
static function float GetDistanceBetween(vector A,vector B,optional int DFactor)
static function vector GetVectorDistance(vector A,vector B)
static function bool IsDistanceGreater(vector A,vector B,float Compare)
static final function bool NearSpot(vector v1, vector v2, float radius, float height)
static final operator(16) rotator * (rotator A, rotator B)
static final operator(16) rotator / (rotator A, rotator B)
static final function rotator Rot2(int p,int y,int r)
static final function float RSize(rotator r)
static final function float RSizeNRoll(rotator r)
static final function rotator RMin(rotator A, rotator B)
static final function rotator RMax(rotator A, rotator B)
static final function rotator RClamp(rotator R, rotator Max, rotator Min)
static final function rotator RClamp2(rotator Max, rotator Min)
static final function rotator RRange(rotator Max, rotator Min)
static final function rotator RLerp(rotator A,rotator B,float Alpha)
static final function rotator RSmerp(rotator A,rotator B,float Alpha)
static final function bool RInterpolate(rotator RA,rotator RB,out rotator DeltaR,float DeltaT)
Code: Select all
static final function bool RandBool()
static final function playerpawn GetPlayer(actor A)
static final function vector GetPlayerLocation(actor a)
static final function rotator GetPlayerRotation(actor a)
static final function rotator GetPlayerViewRotation(actor a)
static final function music GetSong(actor a)
static final function hud GetHUD(actor A)
static final function LevelInfo GetLevel(actor A)
static final function LevelInfo GetEntryLevel(actor A)
static final function gameinfo GetGameinfo(actor A)
static final function gamereplicationinfo GetRepInfo(actor A)
static final function PlayerReplicationInfo GetPRI(actor A)
static final function int GetMasterMusicVolume(actor a)
static final function int GetMasterSoundVolume(actor a)
static final function bool IsPlayerLineOfSightTo(actor A)
static final function float GetDefaultFOV(actor a)
static final function float GetDesiredFOV(actor a)
static final function PlayerConsoleCommand(actor a, string command)
static final function CopyTxtToClipboard(actor a, string copy)
static final function string PasteTxtFromClipboard(actor a, string copy)
static final function GetSysMousePos(out float x, out float y)
static final function actor GetActorList(actor a)
static final function actor GetLightList(actor a)
static final function pawn GetPawns(actor a)
static final function scriptedpawn GetScriptedPawns(actor a)
static final function pawn GetSpecPawn(actor a, name n)
static final function sdkvehicle GetVehicleList(actor a)
static final function sdkvehicle GetVehicleClass(actor a,name VClass)
static final function navigationpoint GetNavigationPointList(Actor A)
static final function navigationpoint GetSpecNavigationPoints(Actor A,name Na)
static final function name GetOperatingSystem(actor a)
static final function bool Win32_64(actor a)
native static final function bool InitSDKPlayback()
native static final function UpdateSDKPlayback()
native static final function ShutdownSDKPlayback()
native static final function bool PlaySound(string File, bool LoopSound)
native static final function bool PlayMusic(string File, bool LoopMusic)
native static final function StopSound()
native static final function StopMusic()
native static final function PauseSound(bool bPauseSound)
native static final function PauseMusic(bool bPauseMusic)
native static final function bool IsPlayingSound()
native static final function bool IsPlayingMusic()
native static final function SetNewVolume(int NewVolume)
native static final function int GetCurVolume()
static final function bool GetBoundingBox(vector pos,vector center,vector dimension,out vector volume)
static final function bool GetBoundingCylinder(vector pos,vector center,float height,float radius,out vector volume)
static final function bool GetBoundingHCylinder(vector pos,vector center,float height,float innerradius,float thickness,out vector volume)
static final function bool GetBoundingCone(vector pos,vector center,float height,float radius,out vector volume)
static final function bool jThal(int day, int month, int year, out string cDay)
static final function bool jThal2(int day, int month, int year, out string cDay, out string bDay, out string nDay)
static final function TimeSwap(float h, out int xSec, out int xMin, out int xH, out int xD)
static final function int TimeSwap2(int xSec, int xMin, int xH, int xD)
static final function GetSimQAxis(actor A,bool bFacing,vector Axis,out vector QuatRAxis,optional vector B,optional rotator Dir)
static final function UpdateSimQRot(actor A,bool bFacing,float T,rotator RRate,vector Axis,optional vector B,optional vector Dir)
static final function Orient(actor a, float t, byte Mode, name tag, vector offset, vector axis, optional vector dir)
GetPlayer works for singleplayer / offline and multiplayer / online play.
On clients it returns the ONE and only player, on a server it returns all currently present players.
The time functions jThal, jThal2, TimeSwap and TimeSwap do the following.
jThal returns the current name of the day by given Year, Month and Day Date.
jThal2 is an extension of jThal. Given Year, Month and Day Date it returns current day, the day before and after as a name.
TimeSwap returns Seconds, Minute, Hour etc. of given Input Hours.
TimeSwap2 is the inversion of TimeSwap.
GetSimQAxis simulates quaternion axis ("a vector with rotation").
UpdateSimQRot simulates a quaternion rotation, allowing actors to move, attach, while spinning/rotating or facing/orienting towards a position.
- Shadow
- Masterful
- Posts: 743
- Joined: Tue Jan 29, 2008 12:00 am
- Personal rank: Mad Carpenter
- Location: Germany
- Contact:
Re: [INFO] Development Journal
Finished first stable build of the Sound/Music Playback system, I'm further working on next version.
The current build of the Playback System supports the following fileextensions:
Where X and Y are previously free list positions.
Where ..\ = UT Root Directory + ..\ UT System Directory, for path indipendent file allocation.
The Playback API is highly optimized. It automatically detects whether a Path is set or not and only loops through set paths.
The files get streamed rather than loaded.
Next Build will have Ambient Sound Occlusion for Sound Playback (simulating distance : emitter <--> listener), implementing sound distance / radius behaviour. Additionally there'll be new Read-only Functions like :
Only downside is that FMOD isn't that well documented (damn.. I didn't see the help file lol), it features tons of sound/music functions but only a few are directly documented.
Regardless of using this new Playback System or not it doesn't matter which Unreal Engine Audio Driver you will choose.
The current build of the Playback System supports the following fileextensions:
- AIFF
- ASF / ASX
- DLS (Internet streamable Midi-Format)
- FLAC
- FSB
- IT (the well known Impulse Tracker Moduls)
- M3U (Playlist Accessing)
- MID / MIDI
- MOD (Mod Plug Tracker Files)
- MP2 & MP3
- OGG
- PLS (Playlist Accessing)
- RAW - (Raw file format support)
- S3M - (Scream Tracker 3 Mod Format)
- VAG - (Playstation Platform Sound)
- WAV
- WAX (Playlist Accessing)
- WMA
- XM (FastTracker 2 Mod Format)
Code: Select all
[sdkCore.sdkObject]
MusicDirectories(X) = C:\Games\UT\MyMod\Music
SoundDirectories(Y) = C:\Games\UT\MyMod\Sound
or
MusicDirectories(X) = ..\..\MyMod\Music
SoundDirectories(Y) = ..\..\MyMod\Sound
Where ..\ = UT Root Directory + ..\ UT System Directory, for path indipendent file allocation.
The Playback API is highly optimized. It automatically detects whether a Path is set or not and only loops through set paths.
The files get streamed rather than loaded.
Next Build will have Ambient Sound Occlusion for Sound Playback (simulating distance : emitter <--> listener), implementing sound distance / radius behaviour. Additionally there'll be new Read-only Functions like :
- GetPitch - returns current pitch value of sound/music
set3DMinMaxDistance
set3DOcclusion
Only downside is that FMOD isn't that well documented (damn.. I didn't see the help file lol), it features tons of sound/music functions but only a few are directly documented.
Regardless of using this new Playback System or not it doesn't matter which Unreal Engine Audio Driver you will choose.
Last edited by Shadow on Sun Feb 14, 2010 5:22 pm, edited 1 time in total.
Re: [INFO] Development Journal
Damn, awesome
Can't wait for it!
Can't wait for it!
Website, Forum & UTStats
******************************************************************************
Nexgen Server Controller || My plugins & mods on GitHub
******************************************************************************
******************************************************************************
Nexgen Server Controller || My plugins & mods on GitHub
******************************************************************************
- Shadow
- Masterful
- Posts: 743
- Joined: Tue Jan 29, 2008 12:00 am
- Personal rank: Mad Carpenter
- Location: Germany
- Contact:
Re: [INFO] Development Journal
hey cool, thanks, another new face arriving at the journal thread !
Just added 2 new Media Functions:
"GetMediaLength" returns the Time Length of Sound / Music either in Seconds (bMS = false) or in Milliseconds (bMS = true)
"GetMediaVariance" dynamically shows current Frequency and Volume of Sound / Music, now one can associated these values with things like the drawscale. Guess what ? Rhythmically sizing an actor by the dynamic of a song ! So far in theory
Just added 2 new Media Functions:
Code: Select all
native static final function int GetMediaLength(bool bMS);
native static final function GetMediaVariance(out float curfreq, out float curvol);
"GetMediaVariance" dynamically shows current Frequency and Volume of Sound / Music, now one can associated these values with things like the drawscale. Guess what ? Rhythmically sizing an actor by the dynamic of a song ! So far in theory
- editor Dave
- Inhuman
- Posts: 904
- Joined: Mon Mar 10, 2008 6:40 pm
- Personal rank: Passionate SP Mapper
- Location: Germany/Bavaria
- Contact:
Re: [INFO] Development Journal
If I understand that correctly this feature does already exist. The normal ambient sounds work like that. The further you stand in relation to the actor the quieter is the sound.Shadow wrote:Next Build will have Ambient Sound Occlusion for Sound Playback (simulating distance : emitter <--> listener), implementing sound distance / radius behaviour.
Anyway, good job on supporting all these music files
10-Year Anniversary on Jun 08, 2019.
- Shadow
- Masterful
- Posts: 743
- Joined: Tue Jan 29, 2008 12:00 am
- Personal rank: Mad Carpenter
- Location: Germany
- Contact:
Re: [INFO] Development Journal
Yes, for the Unreal Sound Output, but not for my FMOD-based Sound API. When playing a Song via PlayMusic(file,bloopmusic) the engine doesn't play anything, it's my Sound API playing that..editor Dave wrote:If I understand that correctly this feature does already exist. The normal ambient sounds work like that. The further you stand in relation to the actor the quieter is the sound.Shadow wrote:Next Build will have Ambient Sound Occlusion for Sound Playback (simulating distance : emitter <--> listener), implementing sound distance / radius behaviour.
Anyway, good job on supporting all these music files