[INFO] Development Journal

Post Reply
User avatar
Shadow
Masterful
Posts: 743
Joined: Tue Jan 29, 2008 12:00 am
Personal rank: Mad Carpenter
Location: Germany
Contact:

[INFO] Development Journal

Post 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 !
Image
User avatar
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

Post 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
Image
10-Year Anniversary on Jun 08, 2019.
User avatar
Shadow
Masterful
Posts: 743
Joined: Tue Jan 29, 2008 12:00 am
Personal rank: Mad Carpenter
Location: Germany
Contact:

Re: [INFO] Development Journal

Post by Shadow »

Thanks mate !

Hm well.. dunno.. personally I don't like both.. any other better Icon would be appreciated ^^
Image
User avatar
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

Post by editor Dave »

Is one of these better? :mrgreen:

Image
Image
Image
Image
Image
10-Year Anniversary on Jun 08, 2019.
User avatar
Shadow
Masterful
Posts: 743
Joined: Tue Jan 29, 2008 12:00 am
Personal rank: Mad Carpenter
Location: Germany
Contact:

Re: [INFO] Development Journal

Post by Shadow »

The first one is just fine, great !
Done by yourself ?
I'll take the first one, thanks.
Image
User avatar
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

Post 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
Image
10-Year Anniversary on Jun 08, 2019.
User avatar
Shadow
Masterful
Posts: 743
Joined: Tue Jan 29, 2008 12:00 am
Personal rank: Mad Carpenter
Location: Germany
Contact:

Re: [INFO] Development Journal

Post by Shadow »

Yeah would be cool if you could do that for me, but no hurry
Image
User avatar
robin13
Experienced
Posts: 105
Joined: Thu Nov 12, 2009 5:05 pm
Personal rank: NaliSlayer
Location: Roosendaal,The Netherlands

Re: [INFO] Development Journal

Post 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?
Death is nothing, but to live defeated and inglorious is to die daily.
Napoleon Bonaparte
User avatar
Shadow
Masterful
Posts: 743
Joined: Tue Jan 29, 2008 12:00 am
Personal rank: Mad Carpenter
Location: Germany
Contact:

Re: [INFO] Development Journal

Post 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
Image
User avatar
Shadow
Masterful
Posts: 743
Joined: Tue Jan 29, 2008 12:00 am
Personal rank: Mad Carpenter
Location: Germany
Contact:

Re: [INFO] Development Journal

Post 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
Image
User avatar
Shadow
Masterful
Posts: 743
Joined: Tue Jan 29, 2008 12:00 am
Personal rank: Mad Carpenter
Location: Germany
Contact:

Re: [INFO] Development Journal

Post 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
Image
User avatar
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

Post 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).
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.
User avatar
Lee_Stricklin
Adept
Posts: 324
Joined: Tue Mar 11, 2008 4:49 am
Location: Midwest

Re: [INFO] Development Journal

Post by Lee_Stricklin »

Voted
User avatar
Shadow
Masterful
Posts: 743
Joined: Tue Jan 29, 2008 12:00 am
Personal rank: Mad Carpenter
Location: Germany
Contact:

Re: [INFO] Development Journal

Post 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.
Image
User avatar
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

Post by Creavion »

Would be interesting when I could pimp my next projects up with your stuff!
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.
Post Reply