Page 1 of 31

[INFO] Development Journal

Posted: Wed Dec 23, 2009 5:23 pm
by Shadow
I know how thirsty everyone is when it comes to Updates... In the past I published Updates (very) infrequently, but this time is over, currently I could release a (smaller to small) Update each Day or at least more then 2 times a Week.
I could've done this by using my UT99.org Blog, but... I think an open forum with it's possibility for replies and discussion is better then simply throughing out news...

Each post is one new, small Update, starting with today... oh and there'll be pictures/vids too !



JOURNAL DATE: 23.12.2009

CHANGES / UPDATES
  • Moved the fModifier-Struct from xtXMShaderBase.uc to xtXMMaterial.uc
  • Finished work on Software Mesh Emitter (+ implemented Spin Support)
  • Finished work on Software Sprite Emitter
  • Added 3 new Options in the Particle Options Menu (Use Hardware Emitters, Force Hardware Emitters on Pickups, Force Hardware Emitters on Pickups)
  • Added one new Operation (OP_Unused) to the fModifier-struct in xtRootActor.uc
  • Implemented 2 SunLight Actors (one with infinite Radius, one with +255-editable Radius) into sdkLevelDesign.u / sdkLevelDesign.dll -> xtAreaLight.uc and xtSunLight.uc
  • Completely rewritten Weapon Software-Shader Classes (Hope to get them working tomorrow) -> xtXWShaderBase.uc
  • Function XLoopScale (in xtUMathUtil.uc) now fully working, scales a float value from Base to Max by X Seconds, then downscales the value from Max to Min by Y Seconds, going into loop between Min and Max, automatically detects at beginning if the value has to be decreased or increased initially

CLASS OVERVIEWS

xtXWShaderBase.uc

Variables:

Code: Select all

struct wshadermaterial
{
	var() texture Diffuse;
	var() eOPBlending OutputBlending;
	var() fmodifier Alpha;
	var() int MultiskinID;
};

struct wshaderspec
{
	var() texture Diffuse;
	var() bool bEnvMap;
	var() int MultiskinID;
};

struct wshaderdetailmap
{
	var() texture DetailMap, MultiskinDetailMaps[8];
};

var(Shader) wshadermaterial EnvironmentMap,
			               SelfIllumination,
			               Opacity;

var(Shader) wshaderspec Specular;			    

var(Shader) wshaderdetailmap DetailMap;

var transient xtXWShaderInstance MyEnvMapInstance,
				               MySelfIllumInstance,			
				               MyOpacityInstance,
				               MySpecularInstance;

var transient weapon MyWeapon;
MEDIA

xtXWShaderBase.uc

Expanded:

Image


Non-Expanded:

Image


The Emitter Icons

I finally present the official, hopefully final Emitter Icons (128x128, resolution for editor usage too)


Image
Beam Emitter

Image
Beam-Spark Emitter (aka Trail Emitter ?)

Image
Environment/Fire Emitter

Image
Fog Emitter

Image
Light Beam Emitter

Image
Mesh Emitter

Image
Spark Emitter

Image
Sprite Emitter

Image
Weather Emitter


Oh yeah.. and these updates are for UT99.org Community exclusively, all others will notice these changes (the major changes) only via Official Updates @ ModDB.com

So now discuss, if you want !

Re: [INFO] Development Journal

Posted: Wed Dec 23, 2009 8:48 pm
by editor Dave
It's a nice idea to show your progress. Thanks :tu:
But I would take another picture instead of the clip art for your weather emitter. It just doesn't fit to the other icons. How about this one?

Image

Re: [INFO] Development Journal

Posted: Wed Dec 23, 2009 9:03 pm
by Shadow
Thanks mate !

Hm well.. dunno.. personally I don't like both.. any other better Icon would be appreciated ^^

Re: [INFO] Development Journal

Posted: Wed Dec 23, 2009 10:15 pm
by editor Dave
Is one of these better? :mrgreen:

Image
Image
Image
Image

Re: [INFO] Development Journal

Posted: Wed Dec 23, 2009 11:00 pm
by Shadow
The first one is just fine, great !
Done by yourself ?
I'll take the first one, thanks.

Re: [INFO] Development Journal

Posted: Wed Dec 23, 2009 11:26 pm
by editor Dave
No, I took a smaller part from this pitcure. Maybe you should ask if you may use it. I can do that, too. ;)
I'm glad I could help you. :D

Re: [INFO] Development Journal

Posted: Wed Dec 23, 2009 11:29 pm
by Shadow
Yeah would be cool if you could do that for me, but no hurry

Re: [INFO] Development Journal

Posted: Thu Dec 24, 2009 11:11 am
by robin13
so,with this development journal and with the beta testing going on,does this means that the project is comming to a far end? (not that you stop developing but that the project is getting finished :P ) and before the actually release of the sdk,could we expect another demo? :noidea (my guess whould be no but i'll just ask it) BTW: does epic actually know about this?

Re: [INFO] Development Journal

Posted: Thu Dec 24, 2009 11:28 am
by Shadow
robin13 wrote:so,with this development journal and with the beta testing going on,does this means that the project is comming to a far end? (not that you stop developing but that the project is getting finished :P ) and before the actually release of the sdk,could we expect another demo? :noidea (my guess whould be no but i'll just ask it) BTW: does epic actually know about this?
some pretty good questions you got there !

1. yes, it's nearing completion, with working more and more comprohensive on it since this fall progress went quite well, BUT there's still a lot of work to do, especially regarding the C++ stuff..

2. I thought about a second demo (at least a TechDemo), but I'm sorry to upset you, I won't release a Demo, it'd be as useless as the first one, because it's still unfinished, yes so it's a Demo for it's unfinished, but I prefer to deliver something "final" rather than a small unfinished puzzle of a whole
but what you CAN expect indeed is: frequently posted updates (at least here) with a lot of media and background information until it's release

3. no I don't think so, you all see how much epic cares for their old juwels... I guess they never heard of it

Re: [INFO] Development Journal

Posted: Sun Dec 27, 2009 9:24 pm
by Shadow
JOURNAL DATE: 27.12.2009

CHANGES / UPDATES
  • NEW Weapon Material Shaders fully working (Creavion had have a pre-beta Version of the these, but they were a complete mess)
  • The OLD System needed 63 kb, the new one, using 9 Classes in total (for Functionality) only requires 20 Kb, just to show how optimized it is now...
  • Weapon Material Shaders support the following Options: Environment Maps, Specular Maps, Opacity Maps, Self Illumination Maps, Detail Maps and Cel-Shading.
  • Each Weapon can have 4 Shaders in total
  • I'm already working on support for Power-Up-driven Shader Events (e.g. Pickup UDamage giving UDamage Shader on Weapon, or Team Color Shield Shader on Weapon etc.)
OVERVIEWS

How it works:

In xtXShaderUtil.uc 3 new Functions are given:
  • static final function RegisterWeaponShader(weapon w,class<xtXWShaderBase> sClass,int i)
  • static final function UnRegisterWeaponShader(weapon w,class<xtXWShaderBase> sClass,int i)
  • static final function RenderShaderWeapon(canvas c,weapon w,int i)
The Shader Actors are controlled by a small Controller Object (Subclasses of xtXWShaderBase.uc) which are edited by Mappers either in Editor OR Realtime (working on a Realtime Editor based on the TechDemo Menus).
You subclass xtXWShaderBase.uc creating your own Shader, setting up the following options:
  • Environment Map (Adds a standard Environment Map to the Shader, is either Masked or Translucent)
  • Specular (Adds a Shiny Environment Map to the Shader)
  • SelfIllumination (A Material Shader which is always unlit, giving an emissive look, is either Masked or Translucent)
  • Opacity (A Material Shader which is dynamicly lit, uses all Texture Styles)
  • CelShade (Adds the famous Comic-Look, Thickness of Comic-line is freely editable)
  • DetailMap (Adds a Detail Map on the Weapon)
Self-Illumination Maps and Opacity Maps support Multiskins (except CelShade, EnvironmentMap and Specular), so you have the ability to make a Weapon where only certain parts are effected.

Then you set your Shader as PlayerViewShaders(X) (is an Array of the length X = 3 or 4 (not sure now)) to your Weapon.
Using objects to control an actor minimizes resources (instead of spawning another actor which controls the mesh shaders). Being aware of the sensitive Garbage-Collection and how Objects and Actors are created/destroyed, the System always makes shure the References are correct (preventing Accessed Nones and Critical Errors).

So... NOW you probably think "Ok cool, fine, now I have some Shader stuff for weapons, but can I actually program them to do something else on Firing ?" - YES, of course !
The current weapon may call the following functions on the Shader Object:
  • Fire() (called on Primary Fire)
  • AltFire() (called on Secondary Fire()
  • Select() (called on selecting Weapon)
  • PutDown() (called on changing Weapon)
  • Idle() (called on active Weapon, when doing nothing right now)
  • ZoneChange() (called when Weapon/Player enters a new Zone)
  • VolumeChange() (called when Weapon/Player enters a new Volume)
  • Finish() (called when Weapon finishes an Animation Sequence)
  • AmmoPick() (called when Player is picking up Ammo)
You simply rewrite these Functions in your Shader Class and then change the default Variables of the Shader to those you want the Shader to change to while the Weapon is doing something.
Additionally (though it is an Object) the Shader Object supports Trigger()/Untrigger(), Tick() and PostBeginPlay() calls AND has a link to the current Weapon (if you want to do something on the weapon additionally, in the Shader Object) !

I worked on this for 3 Days... and it was hard. The Unreal Engine often makes things hard to implement.


MEDIA

//edit:

Image
Current Shader Object Edit Window


Image
A Shock Rifle with CelShading


Image
A Shock Rifle with emissive Materials (Self Illumination Maps)

For the emissive Material I simply used 3 VERY small Textures to create the Effect:

Image
256x256 Pixels

Image
64x64 Pixels

Image
64x64 Pixels

Re: [INFO] Development Journal

Posted: Mon Dec 28, 2009 5:03 pm
by Shadow
JOURNAL DATE: 28.12.2009

CHANGES / UPDATES
  • FogEmitter finished
  • Continuing work on the UnrealCine Movie System
Sensational Statistics after todays's ModB Profile Update:


Image

Re: [INFO] Development Journal

Posted: Mon Dec 28, 2009 5:20 pm
by Creavion
Thats great Shadow. :) :thuup:

A pretty high rank. Gives a little hope for the further activity of ut if your SDK has reached a certain development level (with a further release).

Re: [INFO] Development Journal

Posted: Sat Jan 02, 2010 9:34 am
by Lee_Stricklin
Voted

Re: [INFO] Development Journal

Posted: Tue Jan 05, 2010 6:29 pm
by Shadow
Thanks crev ! And thanks Lee-Stricklin ! :)

now for the next update..

JOURNAL DATE: 05.01.2010

CHANGES / UPDATES
  • Beam Emitter finished !
OVERVIEWS

Features:
  • Supports X-Segments Beam Rendering (X = Number of Segments)
  • Supports X-Sheet Beams (X = Number of Sheets)
  • Supports Texture Align Options for Beams (Flip U/V, Horizontal/Vertical Align)
  • Supports Dynamic Alpha and Scaling of Beams
  • All Standard Texture Styles (Masked, Translucent etc.)
  • Full Animation Support (up to 32 single Frames)
  • Can be Lit/Unlit, has Fatness
  • You can determine how much space should be left blank between segments
  • Dynamic (up to 8 different) End Points for Beams, each EndPoint has it's own unique Gravity (how strong the beam gets attracted by the current point), StayTime (how long the beam stays at the current point), PointType (any linked actor, or a playerpawn, or a unique vector etc.), Offset , PointCycleMethod (Random or Loop) and so on
  • 3D Beam Noise (X,Y,Z)
  • Supports Beam Branching (Either as Texture or as SubEmitter)
The old Beam Emitter only supported some of these features or it was badly coded

MEDIA

And now some NEW Beam Pics :D

Image
Beam Emitter with a 32x32 Pixel Texture, uses 8 Segments, 2 Sheets

Image
Beam Emitter with a 512x512 Pixel Texture, uses 6 Segments, 2 Sheets

Image
Beam Emitter with a 512x512 Pixel Texture, uses 6 Segments, 2 Sheets

As you can see, a small number of Segments (around 4-32) is enough to draw cool Beams.
The first picture was chosen to show how it is made up out of connected segments.

Re: [INFO] Development Journal

Posted: Tue Jan 05, 2010 6:46 pm
by Creavion
Would be interesting when I could pimp my next projects up with your stuff!