Holy smoke...! This is AMAZING...!     (Moderator: BAH_Strike) Previous Topic | Next Topic
Page 1 of 2 Goto page 1, 2  Next
Post 23-Oct-2018 16:12        

Thanx for posting the link in the news -- I didn't realize you had a working demo...

Keep it up! This is absolutely _FANTASTIC_!!!

Post 23-Oct-2018 22:41        

Thanx man. I want to be sure to include a lot of the stuff people have added in jk.exe patches, but also maybe include patch gobs like the stuff you're working on as the default "enhanced" JK. i think that would be cool.

especially if they are small in filesize, or if we can think of a way to procedurally do it; eg. patch 1 line in a .JKL file rather than embed a whole copy. that helps us stay away from the whole "dont include game assets" sacred rule. also the sound engine supports mp3 etc. so if we needed to replace sound effects then we could keep the overall smith.exe size down to a minimum.

the reverb environment audio effects im finishing up and the texture upscaling are also things that are on by default but can be disabled to maintain the "true" JK experience in all its 16-bit color glory (or near enough to it lol.. im not going to implement the SW renderer).

gettin rambly, sorry. anyway spill any ideas u got, im always open
Post 24-Oct-2018 17:10        

...patch 1 line in a .JKL file
-- Wow, that would be GREAT...!

THAT would solve a couple issues I'm looking at: did you know that the JK NPC stormtrooper with Repeater Rifle (shares the actor COG with the Imperial Commando) is not able to be amputated? Neither is Bossk with Rail Detonator (shares the actor COG with... uh, I forget (cough!): to fix such a thing in stock JK would require a FULLY modified .JKL (the whole thing would need to be replace JUST to patch 1 or 2 lines)_!_

As far as ideas, if you have any way of getting a hold of Libsa Norec --> That dude has some wicked ideas for some COG verbs that would be AMAZING if implemented.

Some of the stuff I'm working on could be solved JUST by having the a method of loading savegames that doesn't work the same as JK's regular method...

Sith 2 was promising, not sure how far that got --> looks like yer gonna make this happen!

You are truly BAH...!!!

Post 25-Oct-2018 00:29        

So question.... I remember that an issue people were having with projects like sith2 was they couldn't figure out how to do the physics code correctly for overlapping sectors. How did you overcome that problem?
Post 25-Oct-2018 01:00        

the rendering is fine, it is a true implementation of cell&portal. a little slow due to each recursing "portal cast" actually being a true polygon.. but its accurate and is good enough for the time being.

however you are right.. there is a glitch there for overlapping sectors. its actually more specific to overlapping adjoins. the adjoin-crossing logic (currently) performs a raycast in the JKL between a thing's previous position and current position, and walks the ray for any adjoin(s) that were crossed within the last frame. the problem is that the raycast engine doesnt give a hoot about the starting sector and will literally find all adjoins. so improving this will actually both fix the problem AND considerably increase raycasting performance.

might take a stab at it now that im all thinkin about it
Post 25-Oct-2018 01:12        

and yea glitch i was working on an autoexec.cog framework yesterday- normally there will be one embedded in the exe as a default. its intended for system stuff that's always there unless a level or mod overrides it.

an example is every frame autoexec.cog receives a queryenvironment: message and either returns 0 and Smith will determine the audio environment / reverb effects, or you can return 1 and apply your own logic.

i could add (or repurpose.. loading: maybe?) another cog message that allows you do to augments to the JKL file (in memory) before its parsed. some kind of simple API like

jkl = jklGetFileName();

if( compareString(jkl, "03katarn.jkl") )
  line = jklFindLine("249: battery         battery           1.657500   -0.226070   -0.102091   0.000000   0.000000   0.000000   163   ");

  jklInsertLine(line, "249: crate02         crate02           1.657500   -0.226070   -0.102091   0.000000   0.000000   0.000000   163   "
Post 25-Oct-2018 16:51        

...some kind of simple API like...

That would really be AWESOME...! I woke up today & rememberred a glitch in single-player JK that I've only encountered twice in tinkering with this game for over... uh, alotta years: in Level 10, there is an Imperial Officer that sometimes gets trapped under one o' the elevator/Lifts & (somehow) when the player decends the elevator/Lift, player will 'fall' under it & get trapped with the IO & subsequently crushed to death... Game Over Player One(!)

Removing the IO from that position in the Level would fix this, as I've NEVER had the player fall under the elevator/Lift _unless_ the IO is under it.

Post 25-Oct-2018 18:55        

Or better yet, you could try setting either the elevator adjoin or the floor below the elevator as not crossable/walkable by AI. Not sure that would work though, but it's probably worth a try.

Most practical solution I can think of though is modifying that level's startup cog and giving that officer (its thing number could be checked on the JKL) AI Mode flags 0x2000 (AI is disabled) and clearing it on a "sighted" message, so that he wouldn't do anything until the player actually sees him.

As far as ideas, if you have any way of getting a hold of Libsa Norec --> That dude has some wicked ideas for some COG verbs that would be AMAZING if implemented.

Strike, I wrote most of my ideas here. I must say I absolutely love what you're doing here. The sound filters and the camera thing in particular are amazing and both things I've always wanted to see, as well as the customizable keyframe markers.
Post 25-Oct-2018 22:45        

Nice, I'm not sure if I've seen this list before. There are a few lists floating around. A lot of these are super simple to add.

If anyones decently familiar with C# the door for contributors is always open. i just have to (a) trust u and (b) add your github account to the list. it would help a lot for getting everyones cog requests in.

as an example, the first one on your list
case "getcurrentcameraposition":
        if (Game.WorldRenderer == null || Game.WorldRenderer.Camera == null)
            return Flex.From(Vec3.Zero);

        return Flex.From(Game.WorldRenderer.Camera.Position);

add more

case "findsectoratpos":
case "getsectoratpos":
        if (args == null || args.Length != 1)
            Log.Warning(syscall + " called with wrong arg count");
            return Flex.False;

        Vec3 pt = args[0].AsVec3;

        return Flex.From(Game.Level.GetSectorByPoint(pt));

case "getthingbysignature":
        if (args == null || args.Length != 1)
            Log.Warning(syscall + " called with wrong arg count");
            return Flex.False;

        int findID = args[0].AsInt;

        foreach (Thing thing in Game.Level.Things)
            if (thing.UniqueID == findID)
                return Flex.From(thing);

        return Flex.From(-1);
Post 25-Oct-2018 23:05        

Uhm libsa i have a problem

* int cog = GetThingLevelCog(int thing, int ID);
* int cog = GetSectorLevelCog(int sector, int ID);
* int cog = GetSurfaceLevelCog(int surface, int ID);
Returns the [ID+1]th cog that references that thing/sector/surface in the current level's JKL. Returns -1 if [ID+1] exceeds the amount of times that thing is referenced in the current level's Cogs. This could be used, for example, to "activate" or "damage" a surface without actually activating/damaging it by sending messages to all that thing/sector/surface level cogs. Alternately...

* int dummy = SendMessageToThing(int thing, message, param0, param1, param2, param3);
* int dummy = SendMessageToSector(int sector, message, param0, param1, param2, param3);
* int dummy = SendMessageToSurface(int surface, message, param0, param1, param2, param3);
Same as SendMessageEx(), but would send the message to all cogs that reference that thing/sector/surface. A value could be returned via ReturnEx().

do you want this just to search what is defined in the .jkl?


do you want it to be dynamic, and match any symbol (declared at the top of a .cog file) that currently points to the thing/sector/surface in question.. regardless if it was set that way at startup or if a cog assigned it to something new

the second way is actually less code albeit wouldnt execute as fast.. but i feel like its still a more flexible option
Post 27-Oct-2018 03:34        

In fact I hadn't thought about that. The second option definitely sounds more flexible, and if it's easier to implement that's even better.
Post 30-Oct-2018 23:49        

where would jkSetSaberLightIntensity pull the value from?

only template references i can find for thing light is "light" which is base light 0.2 for player and other values for blaster bolts and explosions.. and "lightintensity" which is default 0.8 which i assume is the fieldlight light value (added to the "light" .. resulting in 1.0).

do you think the lightsaber light should assume the same value as headlight or no.. also, i wonder what happens if you have your lightsaber out and turn on fieldlight at same time.. if toggling fieldlight has no overall effect on lighting then the mystery is solved.

you know what, i should just say screw it and create an additional dynamic light in the center of the lightsaber blade (per frame) and also of the color of the lightsaber. this way the lighting effect actually is affected by swinging saber animations. and heaven forbid if we had shadows implemented to smith at some point.. that would result in koool [censored] effects
Post 31-Oct-2018 00:33        

That's the thing, there actually IS a dynamic light that follows the lightsaber blade in JK. It's extra noticeable on the dark parts in level 8. I have no idea where the value for the intensity comes from, so I assume it's hard coded.
Post 31-Oct-2018 23:59        

OK lol ill just play around and see what looks good i guess
Post 04-Nov-2018 07:41        

Whatever it is that you've done it definitely looks good. I wonder, how is the light color being calculated for each projectile/saber color?
*** Post commands are unavailable for guests. ***