Jump to content

Home

Using JK2 models in JA


ChangKhan

Recommended Posts

  • Replies 53
  • Created
  • Last Reply

Ah cool... BTW - how similar is the Jedi Academy code to Jedi Outcast's? Because I was wondering whether it was worth it to start coding on JO and then copy and paste code over to JA or wait until we get the JA SDK...

 

Thanks in advance,

Commodus

Link to comment
Share on other sites

Originally posted by Commodus

Ah cool... BTW - how similar is the Jedi Academy code to Jedi Outcast's? Because I was wondering whether it was worth it to start coding on JO and then copy and paste code over to JA or wait until we get the JA SDK...

 

Thanks in advance,

Commodus

 

You mean you're doing a mod with code changes? It depends on what you're modding. If you're modding any saber stuff, that's changed a bit in JA MP. Also, in JA, you should find a lot more map entities available (including some NPCs and ICARUS scripting) - though not neccessarily fully ported from SP.

Link to comment
Share on other sites

Can the imported JO models take advantage of the character custimization options in any way (say the colour of your shirt, for example)? Or do you just load up the JO model, as is? I suspect it is the latter :) This is a great option though!

Link to comment
Share on other sites

Originally posted by Prime

Can the imported JO models take advantage of the character custimization options in any way (say the colour of your shirt, for example)? Or do you just load up the JO model, as is? I suspect it is the latter :) This is a great option though!

 

Well, in MP, to make use of the tinting, you'd have to mess with the skin file and make a shader for it... really, if you want to take advantage of the customizable player model stuff, you'll need to take a look at how we did ours and start from that (I imagine we'll release the XSI & .car files for at least one of the custom player models).

Link to comment
Share on other sites

Originally posted by ChangKhan[RAVEN]

Well, in MP, to make use of the tinting, you'd have to mess with the skin file and make a shader for it... really, if you want to take advantage of the customizable player model stuff, you'll need to take a look at how we did ours and start from that (I imagine we'll release the XSI & .car files for at least one of the custom player models).

Cool. Thanks for the info :)
Link to comment
Share on other sites

While you're here, I just want to ask a few things, if you don't mind. :)

 

I have some specific things I'm wondering about, but more importantly, I'm wondering if, in general, it will be feasible to create a fully functioning singleplayer game on the multiplayer engine. I mean, if at least some basic ICARUS and AI are there, it can't be too hard to code the rest, right? And a lot of stuff you do with ICARUS could probably be done straight with new entities.

 

And if it isn't really feasible, how much has JA SP editing been expanded? I know there may be limitations on the game source, but even something like SoF2's level of editing for SP would rock. I only poked around in that, and already it looks like it puts JO to shame in the amount of stuff you can customize. I simply ask because myself and several others have some pretty large SP projects, and we'd like to be able to make things like new weapons or edit fundamental properties of projectiles and that sort of thing. I know you told me you wanted to externalize more for JO, so I've been hoping and hypothesizing that with the extra time you appear to have, there should be a lot more there this time around. :)

Link to comment
Share on other sites

Originally posted by Emon

I'm wondering if, in general, it will be feasible to create a fully functioning singleplayer game on the multiplayer engine.

 

I guess, technically, you could do something along those lines since there is general support for NPCs in MP and ICARUS in there (though, you might need to code in some more features). Not everything that is in SP is in MP, though, only the stuff we wanted to port to MP. But it could be done. One thing you don't have in MP, though, is objectives, any kind of forced progression (build force powers over level progression), any way to preserve health & armor from level to level or save games.

 

 

Originally posted by Emon

how much has JA SP editing been expanded?

 

Well, I'm not sure what needed to be expanded in SP editing... you have more control over NPCs now, sabers too, the vehicles are external data, the weapons still are externalized to a degree, all effects and sounds and graphics can be changed, the UI is externalized to a large degree, there's a level editor, ICARUS and you can make your own models and skins... the only thing we could do beyond that, really, is release the SP game/cgame code.

Link to comment
Share on other sites

Yeah, I know recoding SP for MP isn't going to be just a one week jobbie, it'll take some time. Save games shouldn't be too difficult, you just have to write to status of every entity to a file and then load it. The hard part is getting it in a nice, compact binary format and not some 12 MB ASCII file. :)

 

Wow, that sounds pretty good for SP... sounds like a lot more is externalized now. Really, I'd like to keep with using the SP code since I don't want to have to code more stuff, but I'll probably switch to the SP in MP idea if I can't get things liked the hubbed levels (so close to working in JO! I think the save format is different when hub is on :mad: ), entirely new weapons, etc.

 

Thank you for clearing this up for me, Mike, I really appreciate it.

Link to comment
Share on other sites

What about the entity limits in JKA? Will the entity limit for SP be the same as the entity limit for MP? I understand that was the showstopper for a Coop mod for JK2.

 

Also, are open data slots (that actually get transmitted to the clients) for the MP entitystate_t and playerstate_t still planned for possible modder expansion? Or a externalization of the server->client code? I know that was the major reason why I quit activing modding JK2.

 

There simply wasn't enough space to transfer any new mission critical data to the clients (like more animation data).

 

BTW, thank you for actively answering our questions again.

Link to comment
Share on other sites

Originally posted by razorace

What about the entity limits in JKA? Will the entity limit for SP be the same as the entity limit for MP? I understand that was the showstopper for a Coop mod for JK2.

 

Also, are open data slots (that actually get transmitted to the clients) for the MP entitystate_t and playerstate_t still planned for possible modder expansion? Or a externalization of the server->client code? I know that was the major reason why I quit activing modding JK2.

 

There simply wasn't enough space to transfer any new mission critical data to the clients (like more animation data).

 

BTW, thank you for actively answering our questions again.

 

Rich Whitehouse would be able to answer these better than me, but here's what I know:

 

Max number of entities is the same in MP as SP (though the first 32 are reserved for actual players in MP).

 

In JA there are extra fields in the entitystate and playerstate that are sent over the network (only if they're being used) but are not currently being used by our code. I presume those were made for modders.

Link to comment
Share on other sites

Yeah, I'm wondering the same thing. There are a lot of old limits left over from Q3 and such that are really limiting us. The 1024 internal shader limit has forced Sine_Nomen to split this gorgeous Nar Shaddaa map into several small BSPs, because he exceeded the 1024 shader limit on a large map.

 

Also, the entity limits, both in MP and SP, could use some upping... Would it be possible either to change these for us, or let them be accessable in the game source? I don't want to sound greedy or selfish, you have done a lot for us so far, and I really appreciate it. I mean I wouldn't expect you to make any huge changes to the code just to make it easier for us to mod, but just changing some #defines is so easy! :)

Link to comment
Share on other sites

Originally posted by Emon

Yeah, I'm wondering the same thing. There are a lot of old limits left over from Q3 and such that are really limiting us. The 1024 internal shader limit has forced Sine_Nomen to split this gorgeous Nar Shaddaa map into several small BSPs, because he exceeded the 1024 shader limit on a large map.

 

Also, the entity limits, both in MP and SP, could use some upping... Would it be possible either to change these for us, or let them be accessable in the game source? I don't want to sound greedy or selfish, you have done a lot for us so far, and I really appreciate it. I mean I wouldn't expect you to make any huge changes to the code just to make it easier for us to mod, but just changing some #defines is so easy! :)

 

It's diffifult to up those limits, especially at this point, but also because there are a lot of things depending on those limits (for example, if we raised the max number of entities, we'd have to raise the number of bits that all entity indices are sent over the network in). I would say there are other ways of working within the limits (consolidating things, eliminating things you don't need - for example, in SP, I made info_nulls that are only targeted by lights not stick around for the first couple of frames - usually needed for linking - because there are no entities trying to link to them. That removed 500 entities from the startup entity count of some of our SP maps).

Link to comment
Share on other sites

Oh, damn. I didn't think of that part at all. :( What about shader limits? Especially with the advanced lighting features in Q3Map2, shader limit can be reached in no time.

 

Well, at least Q3Map2 eliminates the misc_model and light entities from the map completely, that helps out tremendously.

 

By the way, maybe you could tell me what mini entities are, no one else seems to know...

 

#define	MAX_ENTITIES	1023		// can't be increased without changing drawsurf bit packing
#define	MAX_MINI_ENTITIES	1024

 

From the comments, it seems like we can't change the entities, but we can the mini entities? What are mini entities?

Link to comment
Share on other sites

Originally posted by ChangKhan[RAVEN]

Rich Whitehouse would be able to answer these better than me, but here's what I know:

 

Max number of entities is the same in MP as SP (though the first 32 are reserved for actual players in MP).

 

In JA there are extra fields in the entitystate and playerstate that are sent over the network (only if they're being used) but are not currently being used by our code. I presume those were made for modders.

Awesome, I did talk to Rich in the past about this but I wasn't sure what the lastest word was. :)

 

I had been wanting to do some advance melee combat stuff that simply wasn't possible without the ability to fine tune the animations. As such, additional entitystate_t slots were needed for that data.

Link to comment
Share on other sites

Originally posted by Emon

What about shader limits?

 

Unlikely to change at this point, unfortunately. Maybe Rich already raised them, but I don't know... I'll ask him, maybe he has some ideas about how to make sure you don't run out...

 

Originally posted by Emon

By the way, maybe you could tell me what mini entities are, no one else seems to know...

 

Is that from cgame (client game) code? I don't think there's any such thing as mini-entities in the server/game-side code. If I recall correctly, that has something to do with making smaller refentities to send to the renderer to speed things up, not actual game entities (that would explain the "drawsurf" reference in the comment).

 

The max game entities is 1024 right now. There should certainly be a way to get any reasonable map to stay within that limit.

Link to comment
Share on other sites

Mini entities was in tr_types.h.

 

1024 may be sufficient. Also, I haven't done much coding with Quake yet, but can you directly control entities? Can you create and destroy them, and set all properties after the creation? I figure you can, since loading or saving games wouldn't work without it. The original JK had a 640 thing limit (basically entities), so someone had the idea of storing all thing information in memory, and destroying them when they are outside a certain distance from the player, and recreating them when you get close enough (a pretty big radius). To avoid the map not loading in the first place, all things were created after the level was loaded. Would something like this be possible in JA?

 

Edit: I see some problems with this now. JK things had very little data, so storing 640 of them in memory wasn't much. I bet Q3 and especially JA entities have a lot more data to store, and when you need to store nearly 1024 of them, that could get slow, and suck memory. Also, due to the higher level of interaction you have, and the ability to create big, open maps that are really appealing (JK can do enormous maps, actually much larger than Q3, but it would never look at all decent with that much stuff) would make you have to change your destroy/create radius to something big, and it may be worthless then.

 

However, I just realized. I noticed both JO's kejim_post and cairn_bay had about 2000 entities after func_groups removed from the compile process, maybe less. You could further lower this by using info_nulls instead of non-nulls like target_position or info_notnull. Furthermore, Q3Map2 removes light and misc_model entities (breaks models into map triangles). Lights are probably half the entities in some cases, so there shouldn't be any trouble staying under 1024. Also, if we can code in the hub level support, we could just split the map into various BSPs and walk back and forth like Deus Ex. This would also fix the shader limit.

 

Only further problems I see with MP for use as SP are problems with the light rendering like JO had (although this seems easy to fix), lack of cool stuff like ragdoll (maybe fixable through gamecode, I have no clue), etc etc. Of course, I may crack open the PK3s and find out that SP has plenty externalized for what I need. :)

Link to comment
Share on other sites

Yeah 1024 should be enough. The way Quake code works, it has an array of 1024 entities - that memory is allocated all at once at level load and not freed until the level is shut down. So you don't have to worry about creating and destroying entities as you get close to/far from them (though you have to stay in the 1024 global number of entities limit).

 

There is another limit that's important for networking - I think it can only send a max of 256 entity updates in a single snapshot, but you shouldn't have to worry about that - most map entities don't update, and certainly not all in one frame.

 

I'd say some of our JA maps are actually larger than any JK map... :)

 

As for savegames (previous post), I don't think those would be as easy to put in as you might think - it would probably require some executable code... though, you never know, you might be able to get away with trying to have the server's game code read in and write out the data (not as simple as it sounds - you'd need to look at how SP handles all those fields (especially pointers) or severely limit what you're saving out), then hope the changes propgate down to the clients correctly... :)

Link to comment
Share on other sites

I wasn't going to worry about clients at first. What happens when you start a local, non-dedicated multiplayer game? Are you just the server, and there are no clients? Or does it make like a dedicated server and join you as a client?

 

Also, I meant that JK maps can be huge, as there is no limit to the size of a sector in JK. JA'd be limited to what, the grid in Radiant? I once took the default JK sector and kept scaling it by two for several minutes. I started the level, and it was so big, that you couldn't see the walls, only the floor, and the floor was fuzzy and it's texture was all jittery! Then I hacked my player file to give me 1000 star Force Jump, and it so so big that I could jump and not hit the cieling! And it took like five minutes to fall down... :eek:

 

There was also a guy who made a neverending slide as a secret in one level. Basically he took a surface and extruded by like 10000000000, so it had an end, but it was hard to reach. With zero gravity, four star speed and strafing (that's literally like 300 mph in JK), I still couldn't see the end after like 15 minutes :eek:

Link to comment
Share on other sites

What about animations.

 

1) Will the correct skeleton be available (the one that is referenced in the gla files, in JK2 the SDK skeleton was substantially different)

 

2) Will there be a possibility to load more than 1 gla file per model

 

3) Will there be some sort of gla->xsi->gla converter, or at least xsi->add to existing gla tool.

Link to comment
Share on other sites

1. What's wrong with that skeleton?

 

3. I don't think it's really feasible to convert a GLA to XSI, it's probably like trying to covert a compiled C++ program back into C++ code, which is mathematically impossible. Wudan's working on a tool to directly edit the GLA, and Mike says he'll help if he needs it.

 

Shrug.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...