Game Development Community

This game uses UDK, but T3D could probably do it as well....

by Richard Ranft · in General Discussion · 07/02/2013 (4:42 pm) · 17 replies

This game footage is reminiscent of some screenshots I'm pretty sure I saw around here in the past two or so years. Some of it looks like the WebKit work that was done for interactive objects and such as well. I'm thinking this may actually be T3D, though it could just as easily be one of the bigger names.

The art is very good, but I'm not super fond of all of the ultra-shiny stuff in some shots. It really reminds me of System Shock 2 - especially that tram station.

About the author

I was a soldier, then a computer technician, an electrician, a technical writer, game programmer, and now software test/tools developer. I've been a hobbyist programmer since the age of 13.


#1
07/02/2013 (5:00 pm)
I'm sure T3D could, most of the shaders, if not all are there already.

The err can't quite remember what it was called, awarisomething web kit did stuff like the door controls etc.

Quite like the night site idea on the weapon, may have to adopt that :-)
#2
07/03/2013 (3:17 pm)
Richard,

Yep, checked it out, it is Unreal but, there really is NO reason it could not be T3D. I think you are referring to 'Awesomonium' (spelling sucks, I know) for the interface stuff. Additionally, I have all those 'post effects' already built. It was not hard but, a bit time consuming. Additionally, I have changed up/added a number of 'preset' material shaders that allow for the rest of the 'visual' candy. I am also willing to bet, T3D (3.0) would run it at a higher frame rate)).

Seriously, I need to figure out a way to up the refresh rate to 120htz versus 60. I think modern monitors and GFX cards would show that feature off. Oh well, I will add that to my UNENDING list of render pipeline stuff to do.

Ron
#3
07/03/2013 (3:41 pm)
Am sure aswell that T3D could do that
but question is more how to accomplish it since our current shaders/ post effects aren`t as upto date as the ones from udk/ unity

Quote:Ron Kapaun: I have all those 'post effects' already built. It was not hard but, a bit time consuming.....

May i ask what your plans are regarding your shaders/ post Effects?
checked your github
yaa i know i shouldn`t have that much hope
hell one can dream... ;)

now the thing i want to point out is our community
as plenty of us are already doing stuff that is supposed to improve/ make T3D better in one or another way
am sure there will be some eyecandy stuff to arive by the end of the year or even earlier...

and Ron, don`t think that we/ i didn`t appreciated your work at teh steering comitee
we did thats why we still play bloodsuckers (guess you get what i mean with that)
#4
07/03/2013 (4:55 pm)
J,

No worries. To answer your question...and probably many other people's questions... I do plan on releasing a number of things that will be stock. However, some of the projects I am 'in progress' on will NOT be. They will be available as 'professional add on' for a small fee. I determine this by the effort I have to make in order to get add ins to work and make them reliable across the board. A good example, the recent 'toon' shader work I have done. This will be stock (if the steering committee deems it worthy), but my Cave Pack (which I previously stated would likely be free) will NOT be. The reason it won't be free... simple. 35+ Models and a TON of features for the Cave Pack Pro. I think it will be MORE than worth what I charge (I am indie friendly after all.) However, it was NOT supposed to be that large when I started, nor as complex. As I designed it, I realized how much MORE it could be and made it possible.

Additionally, I am getting a bit poor... I spent a TON of money over the last year (no SH@@, nearly 12K$ US), trying to get my business off the ground, most every thing I worked on or created was given away or part of the MIT core. I simply can't afford to give as much away for free. This sucks for the end users, I know but, in the end... I have rent to pay too.

If I had enough independent contracts and things to support my wife and myself, I would GLADLY keep adding everything to MIT and not think twice about it. Alas, this is NOT the case. I can't even get a solid rejection letter from game companies that are looking for people with my skill set. This is also why you will shortly see ALL of my stuff Unity ready. I have to open my market. GG and the T3D community will ALWAYS be my core group and I will design EVERYTHING for us as a base but, I can no longer be 'exclusive'. Hope that makes sense.

Ron
#5
07/03/2013 (6:05 pm)
I never object to buying what I need for games - it is nice when the price is right though! For instance:

I own copies of 3DS Max 3.1, 4 and 7.
I own Visual Studio 6, .NET, .NET 2k3, 2k5, 2k10 and 2k12 (all professional or enterprise licenses).
I own professional licenses of Borland C++ Builder 3 and 4, JBuilder X and Delphi 4.
I built a rendering machine in Jan 2000 that ran me $9k + software ( part of that was my first copy of MAX, so part of the "+ software" ran into about $8k).
I bought T3D at the $1000 price tag, TGE and TGEA.
I bought PowerRender.
I have invested in upwards of 400 programming and 3D modelling books (averaging $50 each).
I've invested in college courses in programming and 3D modelling.

That is a ton of cash to sink into a hobby, even if it is over something like a 12 year span. I'm quite content to pay for what I get and if I can't afford it then I'll just wait on it or make it myself. Don't get me wrong - I'm not made of money. I just don't see anything wrong with a person supporting themselves by doing something that they like to do and helping me do what I like to do in the process.

I'm actually just happy that there are some talented artists who are willing to make content for the GarageGames store! Saves me having to convert everything or regenerate materials (like a nice sci-fi interior pack I got from Arteria3D - none of the materials carried over in the FBX->DAE converter).
#6
07/03/2013 (6:17 pm)
Richard,

Thanks for your support. (I interpreted what you said as support anyway!) I really DO wish I could give away everything (especially all that I figured out over the last year!) but, when I started to come up short on daily expenses! I figured out that my business plan was not self sustaining.

It's people like you that give me hope that one day I will be annually successful. I too have spent a TON of hard earned money on my 'hobby business'. I just wanna take the next leap and make it all pay off so that we can all benefit from what we learn as a team. Yes, even us 'merchants' want to see the group succeed! I think my prices are 'fair' based on my skill level (compared to others in this field. In fact, I recently DROPPED the price on my Africa Pack because I felt I was 'being greedy'.) Anyway, thank you for understanding. I hope others are as understanding as you. (By the way, sorry for hi-jacking your topic... I will stop now. Oh yeah, Soldier to Soldier, Keep up your Efforts man! I watch nearly every thing you reply to. It helps me A LOT.)

Oh yeah, J0linar.... Thanks, when I left the MIT group, I was not sure ANYONE even noticed. I am glad to have helped even a little bit.

Ron
#7
07/03/2013 (7:01 pm)
sry i didn´t wanted to sound like a silly child asking for more
it`s just the case that shaders are really rare stuff in T3D
and believe me if i would have knowledge about writing those but i don´t simple :/

and regarding the cave set - tbh i didn´t even understood in the first place why you planed to give it away

when lookin at the blog
you will see that there was some smart guy thinkin he could do some pr for his own stuff - lol
wel i had to wash his head

anyways - i understand you both
spent enough $ for zbrush and 3dcoat licenses
and some other stuff
only thing i will never get is 3ds max
Blender - there is a reason it exists!

#8
07/03/2013 (7:09 pm)
J0linar,

Cool. I don't blame you for wanting more! I know I would! Either way, thanks man. By the way.... I know it's a pain in the butt however, I would LOVE to see some basic "Blender to T3D" video tutorials. You are better at that then I am. I should know, I have been trying to get out a couple basic video tuts and the work flow has eluded me! What do you think? If you need hosting space, I am all about helping you out with that!

Ron
#9
07/03/2013 (7:34 pm)
ye those are planed and loong overdue kinda
will see to throw some out in the next weeks
to complete the basic to advanced - sections when it comes to creating models for T3D
isn´t it funny i mean there are actually a couple of ppl here
much longer in the community that are using Blender
and still no video tutorials

aye i know there a some but well - ntohin fancy
anyways - its gonna come
#10
07/03/2013 (9:52 pm)
Yes it was support and no I wasn't criticizing J0linar's post.

It is nice when people can pass on cool stuff to the community for free.

It is also nice when the community can help people pay their rent.

My point was that free stuff is nice, but there has frequently been noise about how there are always new "packs" and "add-ons" in the store but not for free. I'm trying to say that, to me it is good to give what you can and ask for what you need. Basically, Ron is following my personal core philosophy - he gives what he can and charges for what he feels he needs to.

I'd like to ask for time from people who know the T3D shader system well to contribute to documentation of how it differs from HLSL and GLSL. That would help the rest of us to create new and interesting effects that we could in turn share with everyone.

I'm going into that Blender learning curve now - just because I am no longer in a position to afford a new MAX license... lol. As for video tutorials, I'm not great at that. I did work on the FPS Tutorial (that has since been updated for T3D MIT), so I can handle documentation. If anyone wants to hand off basic instructions I can easily put together a clean, clear document for just about any process.
#11
07/04/2013 (2:25 am)
I think we have to find new business models, that are more compatible to open source. There was a kickstarter I saw, where artists asked to be funded and if their goal would be successful, the art is going to released in the public domain. The idea was the public pays the artists directly and the artists will work for the public directly.
So we maybe have to go a little different way, competing with Torque3D on the market the same way as others do, will be very hard, this was probably the reason they made Torque open source, because they realized that they could not keep up as indies the traditional way.
#12
07/04/2013 (9:31 am)
@Ron
or well evryone else aswell

i just found a so called shader editor
well it seems to work
sourceforge.net/projects/quickshader/

now am not sure how usable it is for t3d purposes but
tryin doesnt kill, right
#13
07/04/2013 (9:46 am)
Nice catch, J0linar - if it's open source then we can add an option to "translate" shaders to T3D's ShaderGen idiosyncrasies. That would be sweet.

I hadn't really thought about the framerate issue - It should only cap at 60hz if you set VSync (though I guess it should cap at the monitor's refresh rate, really). Guess I'll have to look at things again - I honestly thought the engine just ran as fast as possible unless VSync was enabled - like T2D.

Another thing that I was just thinking about - of all of the effects that this clip shows off I think I like the ambient "foggy/smokey" effect best. To me that sort of thing always makes a scene feel more natural, probably because I've spent a lot of time on dusty construction sites....
#14
07/05/2013 (10:42 pm)
Volumetric lighting would certainly be nice to have.

Edit: I had a mildly decent T3D Master project package that would be capable of this game(aside from vol.light). I'd share but it includes 3rd party stuff..and quite a bit 3rd party stuff.Z

+1 @ jolinar's posted link
#15
07/05/2013 (11:38 pm)
All, I get your positition when it comes to shaders and Trust me! I have been working LONG and Hard trying to work all of this out. One of the biggest issues deals with this section of code within T3D;

class GFXLightInfo
{
public:
enum Type {
Point = 0,
Spot = 1,
Vector = 2,
Ambient = 3,
};
Type mType;

Point3F mPos;
VectorF mDirection;
ColorF mColor;
ColorF mAmbient;
F32 mRadius;
F32 mInnerConeAngle;
F32 mOuterConeAngle;

/// @todo Revisit below (currently unused by fixed function lights)
Point3F position;
ColorF ambient;
ColorF diffuse;
ColorF specular;
VectorF spotDirection;
F32 spotExponent;
F32 spotCutoff;
F32 constantAttenuation;
F32 linearAttenuation;
F32 quadraticAttenuation;
};

//-----------------------------------------------------------------------------

// Material definition for FF lighting
struct GFXLightMaterial
{
ColorF ambient;
ColorF diffuse;
ColorF specular;
ColorF emissive;
F32 shininess;
};

//-----------------------------------------------------------------------------

struct GFXVideoMode
{
GFXVideoMode();

Point2I resolution;
U32 bitDepth;
U32 refreshRate;
bool fullScreen;
bool wideScreen;
// When this is returned from GFX, it's the max, otherwise it's the desired AA level.
U32 antialiasLevel;

inline bool operator == ( const GFXVideoMode &otherMode ) const
{
if( otherMode.fullScreen != fullScreen )
return false;
if( otherMode.resolution != resolution )
return false;
if( otherMode.bitDepth != bitDepth )
return false;
if( otherMode.refreshRate != refreshRate )
return false;
if( otherMode.wideScreen != wideScreen )
return false;
if( otherMode.antialiasLevel != antialiasLevel)
return false;

return true;
}

inline bool operator !=( const GFXVideoMode& otherMode ) const
{
return !( *this == otherMode );
}

/// Fill whatever fields we can from the passed string, which should be
/// of form "width height [bitDepth [refreshRate] [antialiasLevel]]" Unspecified fields
/// aren't modified, so you may want to set defaults before parsing.
void parseFromString( const char *str );

/// Gets a string representation of the object as
/// "resolution.x resolution.y fullScreen bitDepth refreshRate antialiasLevel"
///
/// return (string) A string representation of the object.
const String toString() const;
};


//-----------------------------------------------------------------------------

struct GFXPrimitive
{
GFXPrimitiveType type;

U32 startVertex; /// offset into vertex buffer to change where vertex[0] is
U32 minIndex; /// minimal value we will see in the indices
U32 startIndex; /// start of indices in buffer
U32 numPrimitives; /// how many prims to render
U32 numVertices; /// how many vertices... (used for locking, we lock from minIndex to minIndex + numVertices)

#16
07/05/2013 (11:38 pm)
CONTINUE....

GFXPrimitive()
{
dMemset( this, 0, sizeof( GFXPrimitive ) );
}
};

/// Passed to GFX for shader defines.
struct GFXShaderMacro
{
GFXShaderMacro() {}

GFXShaderMacro( const GFXShaderMacro &macro )
: name( macro.name ),
value( macro.value )
{}

GFXShaderMacro( const String &name_,
const String &value_ = String::EmptyString )
: name( name_ ),
value( value_ )
{}

~GFXShaderMacro() {}

/// The macro name.
String name;

/// The optional macro value.
String value;

static void stringize( const Vector<GFXShaderMacro> &macros, String *outString );
};


#endif // _GFXSTRUCTS_H_


Then on top of that....;

GFXVideoMode::GFXVideoMode()
{
bitDepth = 32;
fullScreen = false;
refreshRate = 60;
wideScreen = false;
resolution.set(800,600);
antialiasLevel = 0;
}

void GFXVideoMode::parseFromString( const char *str )
{
if(!str)
return;

// Copy the string, as dStrtok is destructive
char *tempBuf = new char[dStrlen( str ) + 1];
dStrcpy( tempBuf, str );

#define PARSE_ELEM(type, var, func, tokParam, sep)
if(const char *ptr = dStrtok( tokParam, sep))
{ type tmp = func(ptr); if(tmp > 0) var = tmp; }

PARSE_ELEM(S32, resolution.x, dAtoi, tempBuf, " x�")
PARSE_ELEM(S32, resolution.y, dAtoi, NULL, " x�")
PARSE_ELEM(S32, fullScreen, dAtob, NULL, " �")
PARSE_ELEM(S32, bitDepth, dAtoi, NULL, " �")
PARSE_ELEM(S32, refreshRate, dAtoi, NULL, " �")
PARSE_ELEM(S32, antialiasLevel, dAtoi, NULL, " �")

#undef PARSE_ELEM

delete [] tempBuf;
}

const String GFXVideoMode::toString() const
{
return String::ToString("%d %d %s %d %d %d", resolution.x, resolution.y, (fullScreen ? "true" : "false"), bitDepth, refreshRate, antialiasLevel);
}

void GFXShaderMacro::stringize( const Vector<GFXShaderMacro> &macros, String *outString )
{
Vector<GFXShaderMacro>::const_iterator itr = macros.begin();
for ( ; itr != macros.end(); itr++ )
{
(*outString) += itr->name;
if ( itr->value.isNotEmpty() )
{
(*outString) += "=";
(*outString) += itr->value;
}
(*outString) += ";";
}
}

There is also another file that deals not only with premade Stucts but, prebuilt HLSL functions. Once I figure all that out and how it all interacts, I will post some info and try to make it understandable in simple text.

Ron
#17
07/07/2013 (4:00 am)
I think this threads should be moved to T3D Pro forum, I think it would get more attention there.

@Richard, I like the ambient "foggy/smokey" effect best as well :-)

@Ron, you're sorely missed on the committee, MIT doesn't seem to be moving much since you left. Your artwork is great and I too didn't understand why you were going to give the cave pack away as I'm sure most everyone needs something like that. As for the shaders, we are now missing any bought shader pack, a decent Paralax shader for shapebase objects is needed desperately, I for 1 would pay just for that.