-
Posts
5,207 -
Joined
-
Last visited
Content Type
Profiles
News Articles
Tutorials
Forums
Downloads
Everything posted by eezstreet
-
Sorry about the bad text formatting. It appears to be a bug in their software. It looks fine on the .PNG though.
-
One year ago this month marks a very special time in JK's history. Prior to this period of time, coders spent the majority of the time muddling through the SDK, often using reverse engineering and engine hacks to accomplish certain feats and patch certain exploits. In addition, SP coding was virtually nonexistent, as there was no coding option for that platform. Last year as you are probably aware, Lucasarts closed its doors as Lucasfilm LLC was purchased by Disney. Many mourned the loss of the studio, fondly remembering the wealth of Star Wars, Indiana Jones, and various other adventure games that they had bestowed upon us. Others however, saw a huge opportunity here. Correspondence with Raven Software regarding the source code release had been all the same. When asked about the code, the usual response boiled down to "We cannot release the source code at this time, due to LucasArts being unable to respond to our requests." This had continued for many years, and a few snippets here and there leaked out. Some singleplayer code was acquired by the OJP team, but nothing substantial was ever released. A few years ago, Raven's modified MD3View source code was released, indicating that they still showed an interest in the community despite all these years. It was I who contacted the developers about the source code, and what could be done now that LucasArts was out of the picture. For a few days, things remained in limbo, until finally I received an email saying only "here you go!". At first I thought it was simply the singleplayer source code as I had explicitly mentioned it, and I reported the news to JACoders. Upon further examination however, we discovered that it was actually the whole source code for the game. And so on April 3rd, 2013, the source code for both JK2 and JKA was made available to the general public. Both myself and another coder from Raven agreed to speak to Kotaku, and as a result, the release received widespread attention across the gaming media. Click on the "Read Story..." button below for the full story! The release was not without problems, however. Initially, it was discovered that the two .zip files I received (josource.zip and jkasource.zip) were not actually labelled correctly; the JK2 source code was actually the XBOX code for JK2. The subject of the XBOX code sparked controversy, as there were proprietary libraries from RAD Game Tools and Microsoft which were included in the code. Technically speaking, the libraries were pay-to-use, so this could be considered software piracy to some degree. In addition, the code was not intended for modern compilers, so it took a few days of editing to get a compilable version of the code. Due to this, Raven Software unfortunately pulled the source code, and the people involved have been in hot water ever since. The coders split up, each of us working to get a section of the game compiling and working. Singleplayer and multiplayer were completed at roughly the same time. In the meantime, Raz0r had begun work on assembling a common project for all of JK - titled OpenJK. Originally, there was some discussion with the ioquake3 team to build an iojamp or iojk. Some conflicts and ideological issues arose between the ioquake3 project head and our coders, and OpenJK became the more predominant project. In a year's time, many of the exploits and bugs which plagued the original game were fixed, and new features, such as a modular renderer system, were added. While a first release has yet to see fruition, the project is still going strong, and code is being committed on a daily basis. Many projects also went opensource with the release of the source code. Most notably, Jedi Knight Galaxies went completely opensource, allowing others to contribute on both assets and code. The codebase was retooled from the ground-up to work with OpenJK, and it still remains in active development. Also, several other notable mods became public, including compJA and JA++. @ent's mod, jaMME, gave a whole new dimension to video creators. OpenJK is also being considered by the Moviebattles team. I have asked the coders about what they remember thinking about and doing when the code first came out: ZTM: "The Jedi Academy GPL release appears to be the Xbox port." ensiform: what ZTM said. Scooper: well, I had just arrived the next day and there were tons of people in IRC RMS: This GPL soup has proprietary products. I specifically ordered free. Xycaleth: i remember Rich Whitehouse coming on to the channel and saying that he would make the game run with 300 reborn onscreen. I just laughed and laughed. Raz0r: ensiform and eezstreet were talking about the SP source probably getting released. As I recall, eez was like "OMFG, THEY GAVE ME THE SOURCE," and ensiform was like "what. no way. is it full source?" After a few minutes, eez said "yes!!!" and gave us a link. spior: I remember [the #JACoders IRC channel] being packed as all hell the day afterwards. there was tons of commotion. deepy: It was a truly exciting moment, it was better than sneezing Thinking about the future, contributors had this to say: ensiform: About the same as with Q3. Let's fix the fucking bugs. ent: I wasn't thinking about future at all, but I was happy that I could make the mod which I wanted. and the source releease is a cause. my thoughts are that now more people can make cooler vids deepy: I feel a bright future ahead, the source release has enabled some truly great people to continue perfecting JKA The following infographic lays out the statistics of the project as a whole. I was hoping we could have some more of these in the future. Click here to download as .PNG What do you think about the source release? Do you think it has helped or hurt the community as a whole? Let us know how you think in the comments. Click here to view the article
-
The release was not without problems, however. Initially, it was discovered that the two .zip files I received (josource.zip and jkasource.zip) were not actually labelled correctly; the JK2 source code was actually the XBOX code for JK2. The subject of the XBOX code sparked controversy, as there were proprietary libraries from RAD Game Tools and Microsoft which were included in the code. Technically speaking, the libraries were pay-to-use, so this could be considered software piracy to some degree. In addition, the code was not intended for modern compilers, so it took a few days of editing to get a compilable version of the code. Due to this, Raven Software unfortunately pulled the source code, and the people involved have been in hot water ever since. The coders split up, each of us working to get a section of the game compiling and working. Singleplayer and multiplayer were completed at roughly the same time. In the meantime, Raz0r had begun work on assembling a common project for all of JK - titled OpenJK. Originally, there was some discussion with the ioquake3 team to build an iojamp or iojk. Some conflicts and ideological issues arose between the ioquake3 project head and our coders, and OpenJK became the more predominant project. In a year's time, many of the exploits and bugs which plagued the original game were fixed, and new features, such as a modular renderer system, were added. While a first release has yet to see fruition, the project is still going strong, and code is being committed on a daily basis. Many projects also went opensource with the release of the source code. Most notably, Jedi Knight Galaxies went completely opensource, allowing others to contribute on both assets and code. The codebase was retooled from the ground-up to work with OpenJK, and it still remains in active development. Also, several other notable mods became public, including compJA and JA++. @ent's mod, jaMME, gave a whole new dimension to video creators. OpenJK is also being considered by the Moviebattles team. I have asked the coders about what they remember thinking about and doing when the code first came out: ZTM: "The Jedi Academy GPL release appears to be the Xbox port." ensiform: what ZTM said. Scooper: well, I had just arrived the next day and there were tons of people in IRC RMS: This GPL soup has proprietary products. I specifically ordered free. Xycaleth: i remember Rich Whitehouse coming on to the channel and saying that he would make the game run with 300 reborn onscreen. I just laughed and laughed. Raz0r: ensiform and eezstreet were talking about the SP source probably getting released. As I recall, eez was like "OMFG, THEY GAVE ME THE SOURCE," and ensiform was like "what. no way. is it full source?" After a few minutes, eez said "yes!!!" and gave us a link. spior: I remember [the #JACoders IRC channel] being packed as all hell the day afterwards. there was tons of commotion. deepy: It was a truly exciting moment, it was better than sneezing Thinking about the future, contributors had this to say: ensiform: About the same as with Q3. Let's fix the fucking bugs. ent: I wasn't thinking about future at all, but I was happy that I could make the mod which I wanted. and the source releease is a cause. my thoughts are that now more people can make cooler vids deepy: I feel a bright future ahead, the source release has enabled some truly great people to continue perfecting JKA The following infographic lays out the statistics of the project as a whole. I was hoping we could have some more of these in the future. Click here to download as .PNG What do you think about the source release? Do you think it has helped or hurt the community as a whole? Let us know how you think in the comments.
-
Modelers Willing To Model & Skin For $
eezstreet replied to JAWSFreelao's topic in Mod Requests & Suggestions
Right? -
entPowerLevel, hitOwnerPowerLevel, and FORCE_LEVEL; SP coding help?
eezstreet replied to Dusty's topic in Coding and Scripts
Well, basically. It has to do with pointers, which are one of the trickiest subjects in C/C++. Basically, a pointer can be considered to be a variable which "points" to something else. Actually, a pointer is a number - since everything is stored in memory, the number refers to the address (which is usually in hexadecimal, like 0x6FAE1100 for instance). Pointers are sometimes constant, but we aren't going to go into nitty-gritty hardware/low level OS stuff at present. Just think of a pointer as a variable which points to something else. Naturally, all of these things you're talking about are actually structs. I suggest poking around the g_local.h file, it has a lot of structs defined. Each struct can be considered a block of data with various properties, like ints, strings, more pointers, etc. In Java, you have classes which are basically the same thing as a struct. In C++, there are also classes, which are almost exactly the same thing as a struct. There's only very minor differences with a class (you can actually do everything you could with a class, with a struct. The only difference is that class uses private by default, instead of public). I'm rambling of course, so forgive me. So...what are all the different structs in the game? Well... gentity_t / "ent" is the core entity structure. It has everything that any entity would have.entityState_t / "s" contains networked information for each entity. This information is relayed to all clients in the game. (MP only)gclient_t / "client" contains information specific to players and NPCs. All other entities (doors, etc) will have a NULL pointer to this.playerState_t / "ps" contains networked information for each player. Unlike entityState_t, your playerState_t is only networked to you. (This exists in SP but it isn't needed)NPC_t / "npc" contains information (not networked) for each NPC. Also there are some global variables too.cg_t / "cg" contains tons of global variables, which are all stored in cg. Generally, this is only accessed on the clientside / cgame. When you have an object which is a pointer to something else (e.g, a gentity_t* vs a gentity_t), you use -> to dereference the pointer, and in turn access one of the properties in that struct. Conversely, when something is not a pointer, like just a simple gentity_t, you use a . to access the properties (so for instance, in mp: ent->s.number). The reason why most things you see use pointers (like...playerState_t* ps for instance) vs nonpointer is because: It's faster. A whole struct can take up more than 4 bytes, while gentity_t (in SP) is ~2000 bytes long (around 2 kilobytes). So instead of copying all of the information when you do a function call, you're only copying 4 bytes (the address of that variable). Conversely, the playerState_t struct is either 600 or 700 bytes long (I forget the exact number, I checked when I was doing ASM SP hacks way back in the day), so it's at least semi-manageable to have as a non-pointer. You're actually modifying the data. If you just passed in a gentity_t instead of a gentity_t*, you would be modifying a copy of it, instead of modifying the data stored in that pointer. Remember: when you don't pass a pointer (or in C++, a reference), you're actually copying the values of that struct into another variable. It offers more flexibility. In addition to not needing a return value (since you don't need to return something), you also have the ability to have multiple things being modified at once (so in essence, you can use this method to have multiple return values of a function!) Some operations (ie, memcpy, memset, other function calls...) require pointers. It's more secure (TO SOME EXTENT). If you have bad data being passed into the function, all you need to do is check if that variable being passed in is NULL. It's cleaner-looking code. (in my opinion)So yeah, that should summarize that for you. Sorry if that was long and rambly, I just tried to squeeze as much info as possible. -
SP Map: Getting an NPC to hold a key that unlocks a door?
eezstreet replied to Dusty's topic in Modding Assistance
Only CLASS_IMPERIALs and human_mercs (by name) can drop keys. -
SP Map: Getting an NPC to hold a key that unlocks a door?
eezstreet replied to Dusty's topic in Modding Assistance
Yes, but note that he needs a stormtrooper, not an imperial, to drop the key. I'm saying he'll need to make a new NPC for that. -
Modelers Willing To Model & Skin For $
eezstreet replied to JAWSFreelao's topic in Mod Requests & Suggestions
Which is why I say JKH doesn't really support the idea. But as a coder who has done some sketchy, EULA-breaking stuff before (says not to edit the .exe through a mod. I say nay!), I don't see a problem with it. It's legal gray area to some extent, but you could argue that you're paying someone for the labor more than the work of art. Regardless, I personally don't have a real issue with under-the-table stuff like this, but the site really can't support anything which is too too sketchy. I suggest you keep contacts secret and don't openly discuss who's doing what. -
Mission: Jaden Holmes underwater
eezstreet replied to Agent Jones's topic in WIPs, Teasers & Releases
Whoa, this looks nifty. I like the lonely, eery atmosphere of the maps. I may be willing to help out, once finals are over and I've finished the new JKH article. -
Try entering these commands in the console: r_mode -1 r_customwidth "your screen resolution width in pixels here" r_customheight "your screen width here" vid_restart The order doesn't matter for the first three, but vid_restart needs to be last (it restarts the game with applied video settings) As for "Create Game" issue, go into Advanced and turn off Dedicated Server. This may also fix the issue with Solo games, I'm not sure. You can remove or ignore those files in those folders. They show up because the game needs to extract the .dll files. As a side effect, they wind up in those games' folder. (Maybe moving the DLLs out of the asset PK3 and into base folder might prevent that?)
-
SP Map: Getting an NPC to hold a key that unlocks a door?
eezstreet replied to Dusty's topic in Modding Assistance
Make them a CLASS_IMPERIAL, and give them the same 'rank' value as imperials. If you assign them the same 'rank' as a commander, they'll have burst-fire too. I would recommend making a custom skin (or perhaps stitching the model) to have a keycard. Even though they have no visible keycard, they will still give you one if you walk over that area on their corpse, and their body won't disappear. Use a misc_ something for the lock (misc_security_panel, maybe? Check Radiant. There's a few on t2_rancor, which is included as a sample) All of these edits can be done with entity modding, no ICARUS needed. -
U.S.S. Enterprise-D (NCC-1701-D)
eezstreet replied to Merek's topic in Jedi Knight General Discussions
If he wants to learn how to map, then I have no problem with it at all. In fact, I'd encourage it. If you have your doubts, that's fine, but I'd like to at least have a small amount of faith that things will work out. -
U.S.S. Enterprise-D (NCC-1701-D)
eezstreet replied to Merek's topic in Jedi Knight General Discussions
Right, I understand. I would recommend caulking out the room first, and then assigning some temporary texture, no light compile, just meta, and make sure you get the scaling correct. -
Might be good for testing damages. There's the "undying" cheat for that.
-
U.S.S. Enterprise-D (NCC-1701-D)
eezstreet replied to Merek's topic in Jedi Knight General Discussions
So are you saying this would be better in WIP? General Discussion is really a bad place for this. Also, what are your plans regarding the mapping? Where are you going to start? -
Hi, That looks like a legit segfault within linuxjampded itself. It's curious how it never even printed anything before it broke. I'd recommend getting a core dump and then posting that. Also, you could try running with OpenJK - but this may cause instability. As @@Circa said, perhaps it's MBII related. Their site just came back online.
-
Hi, That was my fault. Sorry about that. I figured that simply making a file as featured would replace the other file as being featured, but this is apparently not the case!
-
The player may or may not have 9999 health. However, the HUD only displays 3 numbers so it's already limited by that. What happens when you do 1000? Is it 999, 000, or 100?
-
U.S.S. Enterprise-D (NCC-1701-D)
eezstreet replied to Merek's topic in Jedi Knight General Discussions
Regardless, he just wants help on, or help making, this map. Perhaps @ can clarify better which it is he wants. If it actually is a request, I would be more than happy to move the thread. -
I know that feel.
-
U.S.S. Enterprise-D (NCC-1701-D)
eezstreet replied to Merek's topic in Jedi Knight General Discussions
Hi, Let's stay on-topic here, if we can. Thanks. -
Yes, I have some experience with gmax. However, I think Max should be able to export guns...? That's what @@Silverfang uses/used (he's working with Blender now iirc)
-
Use Bootstrap. It can detect whether or not you're using a mobile device, and it's optimized for use across all devices. You'll note that http://apitest.jkhub.org/ works perfectly across any device - it's because I coded it in Bootstrap and PHP.