Greetings, been watching the list for a month or two now, downloaded
the archives and searched through them, still have some unanswered
questions.

I am planning on moving a little game/mod of mine over to the Source
engine from another.  I am using quite a few features which are
standard in the other but not in Source, so I am interested in
workarounds.  I know some things will be just flat-out impossible, but
if anyone can think of workarounds then I would be interested.  I am
not going to bring over the whole thing (just because I know many of
the limitations of the Source engine in comparison to what I was
doing), but I am still going to list off the capabilities I used that
I do not see obviously done in Source, just because if it is there or
there is a nice work-around then I will look into using it as I did
before if at all possible.  I am also most likely going to ask a few
different things a few different times as I remember them, all in this
thread.  Also, anyone that responds could you respond to the whole
list (unless you wish to tell something that you do not want me to
release) so it could be archived for future users.

To start, the previous engine I used was mostly designed for accuracy,
although it was quite fast, it was not really for main-stream games.
The basic storage unit was not actually a floating point, but rather
an integer, with the base unit at about 0.1 millimeters (100
micrometers), although a single line change could change that (a
macro).  It used a floating-sized integer however, the main storage
class mutated to be based on a 32-bit integer, 64-bit integer (or just
64-bit for the smallest when compiled for 64-bits), or an n-bit
integer.  It was quite fast since it was allowed to make quite a few
assumptions.  The renderer was odd in that anything beyond a certain
distance was rendered in a vastly lower quality (like normals LOD),
but rendered in something akin to a Sky-box and not updated unless
something caused a change to occur, such a large change of position of
the camera, too great of a change of position of something being
rendered at that distance (such as a planet moving), a large explosion
at a distance (which made the outer-rendering real-time for the
duration, still fast due to the few and low quality models at that
distance, things that were too small were not rendered at all).  There
would be multiple levels of this, the nearest being what you see
closest, to the furthest near never being updated, generally
containing galaxies, procedurally generated (and filled if you ever
went to them, down to solar system, planets, foliage on the rare times
those came about).  You could literally walk on any planet (if it
would not kill you in various ways of course), launch in a spaceship
of some sort and FTL to any other place anywhere you could see, would
be procedurally generated up, although game-play was generally
constrained to vastly smaller areas.

Internally it handled things in more of a tree, so that objects that
were near together were generally within a single node (simplifying
often used calculations to always using integers for distance, instead
of the more complicated n-bit integers).  The basic player class was
actor-less (it had no model), but attached to objects.  For example,
you would spawn a player model, and you would have the
playercontroller class attach tot he player model actor class, it
could attach by either linking to it, thus controlling it, or viewing
through it, thus having the player camera attached to the model (at a
viewpoint generally defined by the model, such as the eyes on a
person).  Even when the player was attached to something else you
could still have it re attach one of those aspects to something else,
for example a view, such as a remote drone you could be seeing
through, or just the controller, remote controlled car for example.
If it was not attached by controls then it was like a player in ghost
mode, able to move around any which way, model-less, just a
controllable viewpoint, of which normal players were not allowed to
experience.

The client part of the app just received information it needed to know
about from the server, immediate area, seed numbers for generating the
world, etc..., drew things as stated above in those layers.

The main issue I had was lack of content and people to make content,
although the only content needed were unit/ship models, textures,
etc...  Most of the universe was dynamically generated, not always
pretty, but it worked, and you could override any section to fill in
your own data (a city for example).  I had my game/mod to be more of
an RTS style with fps interface (think Activision/Pandemic's
Battlezone 1/2 series), that by the end of a game session (if you went
the full tech tree) that you would be collapsing entire galaxies into
singularities for raw power, technologically not hard to do in that
engine.

Hence why I am here, mostly wanting to create something simple, a part
here or there as it feels fun, but still of the BZ1/2 interface.

The first thing I notice is that the playercontrollers are not quite
as separated from the world as I am used to, and as a consequence of
that the engine only seems to properly interpolate the player and
other basic things.  Things like vehicles tend to be forgotten when it
comes to interpolation I notice, they just do not work well in the
server/client world, only single-player, and since this will generally
revolve around vehicles, I need to know how this can be fixed (quite a
bit of Internet crawling has revealed very little about fixing the
problem, only what the problem is).  If (pseudo-)large levels could be
done in Source then I would like to bring back the massive ships as
well, the ones that you walk around on.  The other engine had it so
anything of a sufficient size (rather small actually) created a new
node for it and anything nearby was part of that node, so players
walking around on this ship, although it could be traveling quite fast
or transporting around, moved around on it as if it was still (sans
the occasional weapons fire or something else that was designed to
effect the inertia dampeners).  Tests thus far here indicate that it
is difficult to keep a player... 'still' on a moving platform, I might
be able to work around it by constantly updating position based on a
linked parent, seems hackish though, thoughts?

Another thing, generally when a ship FTL'd it could do it in one of
two ways, one basically just moved it there after fancy effects and so
forth, the other actually created a wormhole where you could see
through to and interact with the other side, think Portal, just much
larger, and tended to destroy things if it closed while they were
partly through (or opened inside them).  That was also comparatively
easy to do since the nodes just auto-linked things as needed, bringing
the two physics locations together.  That is another thing, it used
its own physics system for most things, but things on a smaller scale,
battles on a planet, just moving around inside spaceship, etc., it
used a local physics world that used the NGE physics engine (nicely
accurate unlike... others, still quite fast).  I plan for this mod to
be mostly on the ground due to engine limitations, but if I can still
get space in there I would prefer that this FTL style to still exist
as it made for interesting strategies.  Thoughts about how this could
be done from just the modding side?

Also, what about size and scale, I have thoughts about making the mod
feel much larger then it actually is and without letting the player go
further, but I would still like to get as much usable space as
possible, what is a reasonable limit without incurring slowdowns due
to distance (since it does not have that multi-leveled rendering
pattern described above)?

While I am thinking about it, if things are built in this as I used
to, then I would need to be able to combine multiple objects into one
physics shadow.  Normally I would just call something akin to
anObject->Fuse(anotherObject, matrix4x4, flags) to perma-combine
things into one thing in the other engine, how would I go about
combining multiple physics shadow's into one in Source (not welding,
not strong/stable enough and has performance penalties I do not want).
 Players should be able to create their vehicles by specifying parts
and link positions and have the thing perma-fused into one physics
model (with moving parts added after the fact of course).

This is all for now, heading back to work, will add more later as I
think of it.  Thoughts for now though, and do remember, I stated I am
already planning vastly smaller and have thoughts about working inside
these constraints (sans the vehicle one, and the fusing), just would
like work-arounds if anyone knows of any?

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to