Jump to content

Ask me anything about the Jedi source code


Recommended Posts

Posted

@@Asgarath83, make LOD's for your models and you'll never see the mini heap size error ever again. The 1000 vertex count per object is not a big deal, at all, far from it. You can have 32 parts to a model with 1000 vertex's each, that's a 32k vertex count for 1 model which is VERY high. Even games made for 8th generation game consoles don't have that much detail for a character model so the limit is actually quite high.

 

To put that into perspective a game like The Force Unleashed the Darth Maul model which I'm sure you would agree is much higher quality than anything in the base JA game has less than 6k vertex's and you want to be able to put models in game that have more than 32k.

Never done lods and i not know how is possible to do lods. if someone can teach me i will be grateful :)

for moment i ever solved spliitting model.

i ask because years ago i do a favour to a friend adding in my mod a character of his creation. the model was doing with a frankesteining of some part of daedric armor of skyrim. i get the ran out error when model get two saber model in combat. i fixed reshaping the fingers of the models with low poly and sharpness. original fingers was really too many complex with thousand of vertexes.

i also tryied in past to see how work models of legacy of kain defiance into JKA. they have a medium of 3k of vertexes (kain model) 5k for janos audron model, and 1-2k for other characters. but with the split for doing body parts i never get trouble with these HD models.

maybe there is sometjhing odd on my code: recently i player the spoder model mod and when i spawn spoder monster and i hit with a sword i get run out of space error. :(

Posted

maybe there is sometjhing odd on my code: recently i player the spoder model mod and when i spawn spoder monster and i hit with a sword i get run out of space error. :(

 

Nothing odd about that, it's just a monster of geometry :P

Posted

Well someone would have to know what software you're even using to teach you, I'm using Softimage so unless you're using that I really can't teach you anything. Segmenting a model is super simple as well as making LOD's. Those limits really don't need to be changed, you just have to learn to properly set the model up for the game.

Posted

Well someone would have to know what software you're even using to teach you, I'm using Softimage so unless you're using that I really can't teach you anything. Segmenting a model is super simple as well as making LOD's. Those limits really don't need to be changed, you just have to learn to properly set the model up for the game.

Well, at moment i am using 3d max. and yes, i know how to splits models geometry into max and bleneder. ever do that. just i was wondering if there was another more simple way. nothing else. ^_^

however... i hope someone can answer me to the other thread about ECM because i am stuck in a compiling trouble. >.<

Posted

Well see I know a way in SI so that I essentially weigh the model as 1 mesh, no segments, then I extract each segment from the model without deleting the polygons so that I'm cloning parts from a standard. Then I transfer the weights over to the segments so that I have perfectly matching weights at the seams so that there are no gaps or tearing.

 

I'll pretty much do the same thing with the LOD's, copying the single "master" mesh then reducing it's polygon count by either using an operator (usually kinda messy) or I do it manually which gives the best result but takes the most time. I do it manually by simply collapsing parallel edge loops or deleting every other edge loop. Then I just repeat the process above to get all the segments for the LOD.

 

The more LOD's you make, the better the performance, MD3 models can also have LOD's but they're in separate files with _1, _2, etc suffix's. The biggest thing other than the draw distance is the collision detection for weapons, the lowest detailed LOD will be used for weapon collision which greatly improves performance. I don't make anything anymore without making LOD's, they're an essential thing to include, every game uses them.

 

There probably is a way to do that in Max but I don't know how, this method though is the best I've found.

swegmaster likes this
Posted

mmm... one of the more painful thing for me is mapping but just because i am very bad with bruish creation. i am much more good to make terrains with easygen or to using MD3 models for making building, rooms and prefabs. the trouble of MD3 is that solid spawnflag on radiant cast an absurb amount of collision triangle. map building time so become eternal, fps drop in game, and also obvious, the trouble that gtkradiant cannot contain more of 32k or 64k vertexes of polygon, now i not remember exactly. so using LOD on MD3 models of building on map should be really a genial idea! D: a very lower LOD model maybe can be clipped with solid spawnflag and generate a simple collider primitives, without become crazy myself to manually clip every damned map objects.

for models, i not know any way for dissolve or reduce vertex and edge amount on max, but is possible to do on blender with the newest edition. i not talk about decimate tool. decimate tool destroy uvmapping. there is another tool on blender that can decimate poly count of object (so doing lods ) without destroy uvmapping. the biggest trouble of decimating vertex is the uvmapping collapsing. >.<

about LOD, mmm i remember into psykopath old site was some tutorial about modelling a GLM model with lod support. i will need to check the thing when i get a lot of time. Thanks for answer. :)

  • 2 weeks later...
Posted

@@MGummelt can you shed some light on why you guys decided to gut the core functionality of the Team Arena menu system for HUD usage so that it was no longer possible to create HUDs with allowing people to add their own items etc? The ownerdraw features and such were very powerful but seems to be mostly unused in JKA.  I imagine it should have been easily capable of having the "tic" code handled via an ownerdraw somehow while retaining full capability of modders and users to use the full painted menus for HUDs.

 

My guess would be performance I suppose but many other tech3 variants utilized it.  Including RTCW, Wo:ET, Tremulous, etc.  Plus Quake Live now-a-days expanded it even further for their game.

Asgarath83 likes this
Posted

Hello i'm trying to give Saber wielding NPC different saberswing sounds by rank and give the player the default saberswings sounds.

This is the code it edited!

 

//-----------------------------
if (ent->NPC && ent->client->playerTeam == TEAM_ENEMY && (ent->NPC->rank == RANK_CIVILIAN || ent->NPC->rank == RANK_ENSIGN))
{
G_SoundOnEnt(ent, CHAN_WEAPON, va("sound/weapons/saber/ltsaberswing0%d.wav", index));
}
if (ent->NPC && ent->client->playerTeam == TEAM_ENEMY && (ent->NPC->rank == RANK_CREWMAN || ent->NPC->rank == RANK_LT_JG))
{
G_SoundOnEnt(ent, CHAN_WEAPON, va("sound/weapons/saber/wep_ls_swingViolent_0%d.wav", index));
}
if (ent->NPC && ent->client->playerTeam == TEAM_ENEMY && (ent->NPC->rank == RANK_LT || ent->NPC->rank == RANK_COMMANDER))
{
G_SoundOnEnt(ent, CHAN_WEAPON, va("sound/weapons/saber/wep_DarthMaul_Swing%d.wav", index));
}
if (ent->NPC && ent->client->playerTeam == TEAM_ENEMY && (ent->NPC->rank == RANK_LT_COMM || ent->NPC->rank == RANK_CAPTAIN))
{
G_SoundOnEnt(ent, CHAN_WEAPON, va("sound/weapons/saber/wep_Lightsaber_free0%d.wav", index));
}
else if (ent->client->playerTeam == TEAM_NEUTRAL)
{
G_SoundOnEnt(ent, CHAN_WEAPON, va("sound/weapons/saber/swluke%d.wav", index));
}
else if (ent->client->playerTeam == TEAM_FREE)
{
G_SoundOnEnt(ent, CHAN_WEAPON, va("sound/weapons/saber/wep_Lightsaber_free0%d.wav", index));
}
else if (ent->client)
{
G_SoundOnEnt(ent, CHAN_WEAPON, va("sound/weapons/saber/saberhup%d.wav", index)); This is supposed to give the player the default saberswing sounds, which works, but it mixes the sabersounds with the ones the NPCs are using!
}
 
The goal is to make the player use the default Saberhup1-9 mp3s while the NPCs use different sounds by RANK.
Any help would be appreciated!
Posted

Perhaps you need to show us how and where index is being set. It seems index should be set per item based on what you are doing with the sounds, no? As right now it's just reusing the same index value for all of the cases you've made.

Posted

 

Hello i'm trying to give Saber wielding NPC different saberswing sounds by rank and give the player the default saberswings sounds.

This is the code it edited!

 

//-----------------------------
if (ent->NPC && ent->client->playerTeam == TEAM_ENEMY && (ent->NPC->rank == RANK_CIVILIAN || ent->NPC->rank == RANK_ENSIGN))
{
G_SoundOnEnt(ent, CHAN_WEAPON, va("sound/weapons/saber/ltsaberswing0%d.wav", index));
}
if (ent->NPC && ent->client->playerTeam == TEAM_ENEMY && (ent->NPC->rank == RANK_CREWMAN || ent->NPC->rank == RANK_LT_JG))
{
G_SoundOnEnt(ent, CHAN_WEAPON, va("sound/weapons/saber/wep_ls_swingViolent_0%d.wav", index));
}
if (ent->NPC && ent->client->playerTeam == TEAM_ENEMY && (ent->NPC->rank == RANK_LT || ent->NPC->rank == RANK_COMMANDER))
{
G_SoundOnEnt(ent, CHAN_WEAPON, va("sound/weapons/saber/wep_DarthMaul_Swing%d.wav", index));
}
if (ent->NPC && ent->client->playerTeam == TEAM_ENEMY && (ent->NPC->rank == RANK_LT_COMM || ent->NPC->rank == RANK_CAPTAIN))
{
G_SoundOnEnt(ent, CHAN_WEAPON, va("sound/weapons/saber/wep_Lightsaber_free0%d.wav", index));
}
else if (ent->client->playerTeam == TEAM_NEUTRAL)
{
G_SoundOnEnt(ent, CHAN_WEAPON, va("sound/weapons/saber/swluke%d.wav", index));
}
else if (ent->client->playerTeam == TEAM_FREE)
{
G_SoundOnEnt(ent, CHAN_WEAPON, va("sound/weapons/saber/wep_Lightsaber_free0%d.wav", index));
}
else if (ent->client)
{
G_SoundOnEnt(ent, CHAN_WEAPON, va("sound/weapons/saber/saberhup%d.wav", index)); This is supposed to give the player the default saberswing sounds, which works, but it mixes the sabersounds with the ones the NPCs are using!
}
 
The goal is to make the player use the default Saberhup1-9 mp3s while the NPCs use different sounds by RANK.
Any help would be appreciated!

 

Scratch this, i've set each Force Wielding Class NPC to use their own unique Saber sounds and the Player also uses his own sounds.

Posted

@@MGummelt - What is the one lightsaber related feature you wish you could have added to Jedi Knight but was unable due to time constraints and/or technology limitations? And could that feature be reasonably added now? ...given where we are today with current PC hardware and new programming improvements in OpenJK or a derivative mod (i.e., DF2 mod) (e.g. the new PBR & IBL DF2 rend2 rendering engine)?

Posted

@@MGummelt can you shed some light on why you guys decided to gut the core functionality of the Team Arena menu system for HUD usage so that it was no longer possible to create HUDs with allowing people to add their own items etc? The ownerdraw features and such were very powerful but seems to be mostly unused in JKA.  I imagine it should have been easily capable of having the "tic" code handled via an ownerdraw somehow while retaining full capability of modders and users to use the full painted menus for HUDs.

 

My guess would be performance I suppose but many other tech3 variants utilized it.  Including RTCW, Wo:ET, Tremulous, etc.  Plus Quake Live now-a-days expanded it even further for their game.

No, sorry, had nothing to do with any of that.

Posted

Scratch this, i've set each Force Wielding Class NPC to use their own unique Saber sounds and the Player also uses his own sounds.

Sorry I didn't respond sooner - but sounds like you found another way.

Posted

@@MGummelt - What is the one lightsaber related feature you wish you could have added to Jedi Knight but was unable due to time constraints and/or technology limitations? And could that feature be reasonably added now? ...given where we are today with current PC hardware and new programming improvements in OpenJK or a derivative mod (i.e., DF2 mod) (e.g. the new PBR & IBL DF2 rend2 rendering engine)?

 

Heh, this is probably not going to be the answer you expected, but...

 

I wanted the player to build their own lightsaber in Jedi Outcast.  I had designed a small interactive experience/game to challenge the player to pick their hilt pieces and crystal and assemble them as part of their training.  It would have required concentration and precision and some creativity from the player.  Then that becomes your lightsaber for the rest of the game.

 

Aside from that, I can't really think of a lightsaber feature I wanted to include but we couldn't.  We had a really well-oiled machine between myself, the animators and our tech guys, so we got to do pretty much everything we wanted to do.  There were things I experimented with just to see how it played (like manual blocking, grappling moves, etc.) but I can't think of any feature we cut for tech or time reasons.

 

I remember that, after doing the "saber lock" feature in Outcast, I wanted to try more of the "paired animation" interactions in Jedi Academy (where you, for example, kick two enemies next to you at the same time).  I did some of those and that was fun - I had to detect the possibility of pulling off the move based on the number and position of enemies, then make them take their places (like stunt men) and then play all the animations.  That was the beginning of a feature called "combat nodes" and "fightstyles" that I ended up writing for X-Men Legends and that I really expanded upon in our Wolverine game.

 

I remember right after Jedi Academy came out, the first of the new Prince of Persia games came out from Ubisoft Montreal (they would go on to do the Assassin's Creed series) and I was so jealous of how well they did their own paired animation interactions with enemies.  It made me want to go back to Jedi and do the system right, but we moved on.

 

An ambitious programmer could do that now, if they wanted.  But those don't really work or belong in MP and so much of the longevity of the Jedi games has been in the MP scene.

hleV, minilogoguy18, Smoo and 1 other like this
Posted

Heh, this is probably not going to be the answer you expected, but...

 

I wanted the player to build their own lightsaber in Jedi Outcast.  I had designed a small interactive experience/game to challenge the player to pick their hilt pieces and crystal and assemble them as part of their training.  It would have required concentration and precision and some creativity from the player.  Then that becomes your lightsaber for the rest of the game.

 

Aside from that, I can't really think of a lightsaber feature I wanted to include but we couldn't.  We had a really well-oiled machine between myself, the animators and our tech guys, so we got to do pretty much everything we wanted to do.  There were things I experimented with just to see how it played (like manual blocking, grappling moves, etc.) but I can't think of any feature we cut for tech or time reasons.

 

I remember that, after doing the "saber lock" feature in Outcast, I wanted to try more of the "paired animation" interactions in Jedi Academy (where you, for example, kick two enemies next to you at the same time).  I did some of those and that was fun - I had to detect the possibility of pulling off the move based on the number and position of enemies, then make them take their places (like stunt men) and then play all the animations.  That was the beginning of a feature called "combat nodes" and "fightstyles" that I ended up writing for X-Men Legends and that I really expanded upon in our Wolverine game.

 

I remember right after Jedi Academy came out, the first of the new Prince of Persia games came out from Ubisoft Montreal (they would go on to do the Assassin's Creed series) and I was so jealous of how well they did their own paired animation interactions with enemies.  It made me want to go back to Jedi and do the system right, but we moved on.

 

An ambitious programmer could do that now, if they wanted.  But those don't really work or belong in MP and so much of the longevity of the Jedi games has been in the MP scene.

Nice!!! So that's is the explanation because shadowtroopers died into JO and JA drops force crystals... maybe they was one of the items necessary for build sabers?

So the player in your dreams could be able to build saber light into KOTOR and KOTOR 2 game (i pretty loved the Kotor build saber

system. ) looking the KOTOR saber fightnings. I ever thinked the Kotor saber combat system get some features ported by JO and JA code. it's true? or is just a my supposition?

Posted

@@MGummelt - cool... I had laid out the concept of "cooking" a synthetic crystal for an SP mod (synthetic emerald [green crystal], synthetic sapphire [blue crystal], etc.)-- made up of puzzles for the player to balance the chemical equation from notes found in a journal or holocron, cooking the crystal... so you would have to go on a few missions to find all the ingredients you needed to "cook/make" your synthetic crystal; doing things at a 1st person workbench similar to KOTOR yet different.

 

...with the possibility that if you get the puzzles wrong you can actually end up with an "unstable" crystal that will explode on ignition-- thus killing the player.

Asgarath83 and Smoo like this
Posted

@@MGummelt - cool... I had laid out the concept of "cooking" a synthetic crystal for an SP mod (synthetic emerald [green crystal], synthetic sapphire [blue crystal], etc.)-- made up of puzzles for the player to balance the chemical equation from notes found in a journal or holocron, cooking the crystal... so you would have to go on a few missions to find all the ingredients you needed to "cook/make" your synthetic crystal; doing things at a 1st person workbench similar to KOTOR yet different.

 

...with the possibility that if you get the puzzles wrong you can actually end up with an "unstable" crystal that will explode on ignition-- thus killing the player.

LOL should be really a fun prequel mod before yavin1b mission :D

Posted

@@MGummelt - cool... I had laid out the concept of "cooking" a synthetic crystal for an SP mod (synthetic emerald [green crystal], synthetic sapphire [blue crystal], etc.)-- made up of puzzles for the player to balance the chemical equation from notes found in a journal or holocron, cooking the crystal... so you would have to go on a few missions to find all the ingredients you needed to "cook/make" your synthetic crystal; doing things at a 1st person workbench similar to KOTOR yet different.

 

...with the possibility that if you get the puzzles wrong you can actually end up with an "unstable" crystal that will explode on ignition-- thus killing the player.

 

Yeah, sounds good!  My idea was deeper than the KOTOR workbench - it was to have you actually assemble it yourself build it by manipulating the pieces, aligning it just right and tuning it until it "resonated" just right.  By feel - use the "force" to feel when it was done correctly, etc.  That would be interesting if you had a mission where you had to collect and cook (or, in my original idea: meditate over) the crystals first to prepare them.

Posted

Nice!!! So that's is the explanation because shadowtroopers died into JO and JA drops force crystals... maybe they was one of the items necessary for build sabers?

So the player in your dreams could be able to build saber light into KOTOR and KOTOR 2 game (i pretty loved the Kotor build saber

system. ) looking the KOTOR saber fightnings. I ever thinked the Kotor saber combat system get some features ported by JO and JA code. it's true? or is just a my supposition?

Not sure what you're asking - did KOTOR borrow anything from Jedi?  No, completely different studios, completely different engines.  Their lightsaber combat was based entirely on standing in place and playing canned animations while rolling "invisible dice" to see if you hit or not.  Ours was dynamic, player-controlled and relied on hitscans to see where the lightsaber actually hit.  Not that one was better than the other - that's just the difference between an RPG and an action game (though later RPGs would blur those lines to make them more appealing to the mass market of gamers).

Smoo likes this
Posted

Yeah, sounds good! My idea was deeper than the KOTOR workbench - it was to have you actually assemble it yourself build it by manipulating the pieces, aligning it just right and tuning it until it "resonated" just right. By feel - use the "force" to feel when it was done correctly, etc. That would be interesting if you had a mission where you had to collect and cook (or, in my original idea: meditate over) the crystals first to prepare them.

A combination of both perhaps? Anyways, somebody else would have to implement it and bring it to fruition. I'd happily share my notes with whomever wants to seriously give it a go. The high school chemistry equation balancing isn't tough-- especially if notes or hints are provided somehow and perhaps you give them a multiple choice answer to choose the amounts...

MGummelt likes this
Posted

@@MGummelt pretty interessing! thanks for enlighting me about how works saber combat into an action game with player directly control saber move and saber trace direction and collision and an action rpg game, where this is fully mechanized. this knowledge is important for me, because i think i will make in future my custom game on heroengine and this knowledge about how working sword fighting in games is pretty important. :)

about saber building question... so it was a puzzle when player move crystal align in a resonance sequence... interessing. these remember me the force puzzle inside yavin, rift, and and korriban temples.

so, the BOTH_MEDITATE1 animation is concerned in some way with saber building? because into JKA no one use that.

Posted

@@MGummelt

 

If one is trying to raise the NPC limit, what steps would they need to take?

 

Pretty common to just attempt to raise the MAX_NPC_DATA_SIZE variable, but I feel there's more to it than that. Do you know of any other lines of code that need tweaking?

Smoo likes this
Posted

so, the BOTH_MEDITATE1 animation is concerned in some way with saber building? because into JKA no one use that.

 

I've always just assumed that animation was a leftover from Jedi Outcast - I haven't checked, but I think some of the students might use it during their lightsaber training at the Jedi Temple.

MGummelt likes this

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...