Jump to content

Compiling the source code to increase projectile speed


Recommended Posts

So I wanted to increase the projectile speed of the weapons in Jedi Outcast, as that would make the shooting much less inaccurate. I found that projectile speed is an attribute within the source code and wanted to test how effective it would be by increasing the Bryar Pistol projectile speed to 9999. However when I went to compile it in Visual Studio 2012, it crashes the game if I try to load the .exe with my Jedi Outcast game.

 

So my question is: what am I doing wrong? Is it not compiling correctly? Is it impossible to change projectile speeds like that? Also if I increase the projectile speed for weapons that enemies use, will that also affect enemy shots and make it impossible to dodge/deflect?

 

I saw some topics regarding projectile speed here, hence how I found the attribute in the source code, but none of the topics seemed to have gone anywhere.

 

Also if this is the wrong section, I apologize.

Smoo likes this
Link to comment

What code did you compile?

Did you try to debug?

https://github.com/grayj/Jedi-Outcast

 

This one. I just went into the game folder and opened g_weapon.cpp to compile it, but the resulting .exe file just crashes.

 

I'm wondering if I'm compiling it wrong, the engine is incapable of making the Bryar Pistol fire at 9999 speed or what?

 

EDIT: As for debugging, it compiled fine and gave me no errors, so I have no idea what's happening.

Link to comment

Huh, thanks. I'll check that out then.

 

btw, has anyone else ever tried modifying projectile speed like this?

Modifying the projectile speed of rockets is actually the basis of the MakingAMod_Readme.txt file that was shipped with the original SDK:

 

 

Making a quick mod is very straightforward. This document assumes Microsoft Visual C++ v7.00. It covers making a slight mod to the game source, recompiling for debugging and rebuilding the VMs for distribution.

 

Slow Rockets - TestMod

----------------------

1. Open up the jka_mp(SDK).sln in Microsoft Visual C++.

2. Set the "game" project as the active project.

3. Open the "g_local.h" file and change the GAMEVERSION define from "basejka_mod" to "TestMod" (or whatever you like)

4. Save "g_local.h"

5. Open the "g_weapon.c" file.

6. Go to line 90 and change the 900 to 300. The old line reads:

    

    #define    ROCKET_VELOCITY                900

 

The new line should read

 

    #define    ROCKET_VELOCITY                100

 

7. Save "g_weapon.c"

8. Set your configuration to Final and perform a "Build Solution" command to build a DLL for the game.

 

At this point you have two options. You can run the debugger, choosing 'jaMP.exe' as the executable host which will load your DLL for debugging (you'll probably want to use Deubug or Release for debugging). When you release mods, you must build FINAL Dllss and put them in a pk3 file. (NOTE: the FINAL build configuration is like Release in that is is fully optimized, but it removes various developer prints and warnings.)

 

To build the sample MOD for the slow rocket test, do the following:

 

1. compile the dll as noted above

This produces a 'jampgamex86.dll' in the codemp\Final\ path.

 

2. Make a "TestMod" path under your JA directory. This will be a sibling to 'base'

3. Zip 'jampgamex86.dll' to TestMod.pk3

4. move this pk3 to "\YourJAPath\GameData\TestMod"

5. Run JAMP with the following command line "jamp +set fs_game TestMod"

6. "TestMod" should be the referenced game and you should be able to catch up with and outrun your rockets.

(use devmap mp\ffa1 to start a map with cheats enabled, then type "give weapons" to give yourself the weapons.)

 

 

-----------------------------------------------

Using Visual Studio to Build and Debug your Mod

 

1. In VC 7.0, Open JKA_mp(SDK).sln

2. In VC 7.0, Select the JK2Game item underJKA_mp(SDK) and click Project->Properties

3. Select Debugging under Configuration Properties:

   -set the "Command" to your jaMP.exe (e.g. C:\Program Files\LucasArts\Star Wars Jedi Knight Jedi Academy\GameData\jamp.exe)

   -set the "Command arguments" to:  +set fs_cdpath yourJAfolder +set fs_dirbeforepak 1 +set sv_pure 0 +set r_fullscreen 0 +set viewlog 1

   -set the "Working Directory" to your code path.  e.g. "C:\projects\JEDI_Academy_SDK\codemp\debug"

4. Right click on JK2Game and select 'Set as startup project'

5. hit f5 to launch the game.

 

Do this for each of projects you are making modifications to (cgame, game, ui)

NOTE: use quotes if you have spaces in your folder names.

e.g. +set fs_cdpath "C:\Program Files\LucasArts\Star Wars Jedi Knight Jedi Academy\GameData"

 

-------------------------------------------------

Making my Mod show up on the Mod list in the game

 

You need to have a TestMod.pk3 file in your mod directory

before it will show up on the in-game menu. Create a "description.txt"

file with some information about your game mod. Use WinZIP to create

the TestMod.pk3 file.  You can now put the .dll files in this directory.

 

(This guide is super ancient; you can't even get Visual Studio 7.0 anymore as far as I know)

 

EDIT: and it's oriented towards the SDK, ie JKA mp

Smoo and gameragodzilla like this
Link to comment

Dunno if I should double post or edit the old post to show what I've done so far, but I've decided to make a new post just to show an update on what I've found. I've used the code eezstreet provided with Visual Studio 2012 and the projectile increase worked, but it's still hard to hit Imperials and the game crashes if I try to exit.

 

I'm starting to think that the primary reason why the shooting in Jedi Outcast is so inaccurate is because Imperials move around a lot. Even after I increased the Bryar Pistol velocity to 999999, it still constantly missed enemies that are strafing perpendicular to me, as even fast projectiles wosh past enemy heads when they're running around like that.

 

I'm wondering now if there's some kind of AI mod that would allow the enemies to sit still more often. At least make them move slower like they did in Jedi Knight: Dark Forces II and/or make them only fire when standing still. That would allow the player to more easily take them out, or at least minimize damage so they don't have to keep running around dodging shots too.

 

Not sure if AI mods are possible, though.

 

EDIT: Seems like AI changes should be possible as it seems like the Dark Forces mod for Jedi Academy had Stormtroopers standing still when shooting, which made the gunplay a lot more accurate.

Smoo likes this
Link to comment

Dunno if I should double post or edit the old post to show what I've done so far, but I've decided to make a new post just to show an update on what I've found. I've used the code eezstreet provided with Visual Studio 2012 and the projectile increase worked, but it's still hard to hit Imperials and the game crashes if I try to exit.

 

I'm starting to think that the primary reason why the shooting in Jedi Outcast is so inaccurate is because Imperials move around a lot. Even after I increased the Bryar Pistol velocity to 999999, it still constantly missed enemies that are strafing perpendicular to me, as even fast projectiles wosh past enemy heads when they're running around like that.

 

I'm wondering now if there's some kind of AI mod that would allow the enemies to sit still more often. At least make them move slower like they did in Jedi Knight: Dark Forces II and/or make them only fire when standing still. That would allow the player to more easily take them out, or at least minimize damage so they don't have to keep running around dodging shots too.

 

Not sure if AI mods are possible, though.

 

EDIT: Seems like AI changes should be possible as it seems like the Dark Forces mod for Jedi Academy had Stormtroopers standing still when shooting, which made the gunplay a lot more accurate.

 

I don't mean to butt in here and I'm not 100% sure this is accurate but have you tried scripting NPC's in BehavED instead of using the waypoint system? I have mostly scripted NPC's in my project and I noticed I was able to have more "firefight" or ambush encounters using that method, even if there were scripted Navgoals. Now, I did have multiple point_combats AFTER the Navgoals and the NPC's held there ground pretty well.

 

Now, I am not sure if this had anything to do with other factors such as setting agression, chasing enemies, aim, ect...within the scripts as well, since I made more aggressive NPC's. 

 

 

Play this if you haven't and see if you notice a difference from stock game. All scripted NPC's since for the life of me the waypoint system wouldn't work. Don't ask why.

 

https://jkhub.org/files/file/2293-a-plot-is-brewing-in-the-outer-rim/?st=20#commentsStart

 

Included are the scripts and all .map files so you can open up it all up and take a look how I did it all.

gameragodzilla likes this
Link to comment

I don't mean to butt in here and I'm not 100% sure this is accurate but have you tried scripting NPC's in BehavED instead of using the waypoint system? I have mostly scripted NPC's in my project and I noticed I was able to have more "firefight" or ambush encounters using that method, even if there were scripted Navgoals. Now, I did have multiple point_combats AFTER the Navgoals and the NPC's held there ground pretty well.

 

Now, I am not sure if this had anything to do with other factors such as setting agression, chasing enemies, aim, ect...within the scripts as well, since I made more aggressive NPC's. 

 

 

Play this if you haven't and see if you notice a difference from stock game. All scripted NPC's since for the life of me the waypoint system wouldn't work. Don't ask why.

 

https://jkhub.org/files/file/2293-a-plot-is-brewing-in-the-outer-rim/?st=20#commentsStart

 

Included are the scripts and all .map files so you can open up it all up and take a look how I did it all.

I'll check out your mod, and indeed it could be what I'm looking for. However, working these kinds of NPC scripts and waypointing is something I've never done before. I usually modify gameplay parameters like ammo, damage, when your Force powers upgrade etc. Can you explain it to me how it works-ish? I'd like to be able to make the AI move less often for the FPS sections in the base game. It's less necessary for the post-Yavin sections because you have a lightsaber there, and the dynamic AI makes for more engaging lightsaber combat as you hunt them down and they actually do a fine job evading your blade.

 

EDIT: I dunno how to access your maps, unless I'm being an idiot. I can access the original base game and the reduced ammo count seems to be there. Haven't noticed much in the way of enemies standing still. The Dark Forces mod had enemies not move once they saw the player and started firing, which I think is the most ideal for the first few maps at making hitting targets easier.

Link to comment

I'll check out your mod, and indeed it could be what I'm looking for. However, working these kinds of NPC scripts and waypointing is something I've never done before. I usually modify gameplay parameters like ammo, damage, when your Force powers upgrade etc. Can you explain it to me how it works-ish? I'd like to be able to make the AI move less often for the FPS sections in the base game. It's less necessary for the post-Yavin sections because you have a lightsaber there, and the dynamic AI makes for more engaging lightsaber combat as you hunt them down and they actually do a fine job evading your blade.

 

Well, this might be hard since you just want to change the already made game.

 

Using what I did you would need the .map files and open them up in Radiant which would need to be decompiled first which i don't know how to do. Then, you would need to select the NPC entity and add a spawnscript key and value pointing to the script you made in BehaveED. Then you'd have to make changes within the map regarding the waypoint system or the adding nav goals if you script it. 

 

And after typing this out your probably going to solve your problem by coding much faster ... hehe. 

I thought you were making your own stuff. My apologies.

Link to comment

Well, this might be hard since you just want to change the already made game.

 

Using what I did you would need the .map files and open them up in Radiant which would need to be decompiled first which i don't know how to do. Then, you would need to select the NPC entity and add a spawnscript key and value pointing to the script you made in BehaveED. Then you'd have to make changes within the map regarding the waypoint system or the adding nav goals if you script it. 

 

And after typing this out your probably going to solve your problem by coding much faster ... hehe. 

I thought you were making your own stuff. My apologies.

Ha, I'm not, and I'm not exactly an experienced modder to really do a whole lot of stuff. I just dabbled in some basic stuff and messed around with other people's mods to add my own stuff. So stuff like AI scripting for maps is a lot more complicated than anything I've ever done. Wondering if other people have done it. 

 

Could probably make a mod request thread.

Link to comment

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...