Jump to content

Open source Jedi Knight in a modern engine


Recommended Posts

Posted

Sounds like great progress already!

 

Personally I don't think manual blocking would benefit the combat. It takes away a lot of the movement aspects. In Jedi Academy and Jedi Outcast movement and footwork is so important because you can't rely on blocking. If there is blocking it shouldn't be implemented in a way that it takes away the importance of footwork, jumping, crouching etc, aka dodging the enemy saber manually by movement mechanics.

If you add manual blocking you also have to add some kind of stamina system and then you do pretty much the same thing that games like Chivalry are doing and it wouldn't have much to do with JK anymore.

Combat in Jedi Academy would work completely fine if there was no blocking at all.

 

For me one of the core aspects of the combat in Jedi Academy is how you can avoid the enemy saber completely, just by good footwork. So I would definitely suggest automatic blocking or manual blocking that is really hard to pull off and is very risky to perform.

 

As for special attacks... In Jedi Knight high level play they are at best unnecessary, at worst annoying. I think if you give the player a big amount of possibilites in movement, acrobatics and saber attacks and the possibility for players to combine them the way they can in Jedi Knight, then special attacks are not needed. Acrobatics could also be expanded a lot compared to what you have in JK. But I wouldn't want manual dodging, I don't think it's a good mechanic in any game, it makes the movement clunky and predictable.

 

I agree, I think movement is an essential part of Jedi Knight combat and it already works well in the JK series. And I'm saying this as one of the people who have done manual blocking mods and stuff. Manual blocking and cancelling out your attacks are cool and realistic things, but they do change the balance of a combat system that is already balanced and make for quite new combat strategies. I'm not strongly for or against either, but for now I have a preference towards avoiding attacks with movement as a base.

 

I do however shudder at the thought of a combat system with swords where you cannot block attacks at all. I agree that blocking is something that should be done skillfully, and here's an idea: You know how in JK2 and JKA (I think?) you can block attacks with your saber when swinging it, even at the start of the wind up? If we made the animations so that they would 'cover' a side in the start of the attack, it could be used for blocking. It's risky because you commit yourself to an attack if you miss the block aim/timing. For example, swinging from left to right: Move right, attack - saber goes left to wind up the attack and is oriented in such a way that it would smash away any attack from waist-to-shoulder before reaching the leftmost point where the strike begins.

 

Here's a completely other approach with automatic blocking as a base: You block by facing the attack when not attacking, like in JK2, but for every block your defense gets diminished and skillful combos can break through it. This is where I'd suggest taking JK2 1.02's red combos which I adore. Example of red comboing vs someone blocking. This could work with some careful balancing, and could also be made to look very Star Warsy by letting the characters do smooth blocking animations, using additional IK to properly overlap the attacks.

 

 

With all that said, I do also believe that there are functional ways to implement manual blocking with a JA-style movement system but in my experience it becomes too hard vs the fast attacks and too easy vs the slow attacks. Anyway, these are just.. three, of several options!

Smoo and afi like this
Posted

I think those are good suggestions. What could work too (and what is pretty similar to your idea I think) is "clashing" or "chambering" which is part of the combat mechanics in Mordhau (and I think also in M&B).

It works with mimicking the opponents attack.

For example if your opponent strikes from left to right and you strike almost at the same time from right to left both attacks get interrupted. However it only works if you have exactly the right timing and the right angle.

I think adding blocking without having an actual blocking key would be a good approach.

Boothand and Tray like this
Posted

I think those are good suggestions. What could work too (and what is pretty similar to your idea I think) is "clashing" or "chambering" which is part of the combat mechanics in Mordhau (and I think also in M&B).

It works with mimicking the opponents attack.

For example if your opponent strikes from left to right and you strike almost at the same time from right to left both attacks get interrupted. However it only works if you have exactly the right timing and the right angle.

I think adding blocking without having an actual blocking key would be a good approach.

 

Yeah, it would essentially be chambering just that the physical position/orientation of the sabers would decide if it works.

 

In M&B you do it by attacking to the correct side right before the hit lands, and it doesn't stop your attack, so it's like a really fast counter.

Posted

When it comes to the theme of the game (even tho it's not really essential right now), I had a modern, simplistic, clean look in mind with a bit of influence of eastern culture. If you give the whole game an eastern martial arts touch, you can easily justify unrealistic jumps and wall-flips and whatnot. Something in the style of the movie Equilibrium would be cool I think, both characters and level-design wise.  I think it should definitey be not crammed with colorful effects and over the top characters like in Blade Symphony.

 

I'm currently trying to get into UE4, hopefully I will be able to contribute something soon.

Posted

Not yet... I guess if things become serious now we also should have some kind of forum or discord channel or w/e

Posted

Dunno, they didn't really implement a lot of gameplay, I doubt they could provide a lot of help... maybe with the animations tho

Posted

Hello everybody! I just created an account because I love the idea being discussed here! Im a technical and vfx artist, with experience mostly in Unity, but I know some UE4 stuff aswell. I would love to contribute as I get some spare time (not very often Im afraid). (I can help with modelling, texturing, vfx and shaders)

Smoo, Boothand, afi and 1 other like this
Posted

As a very junior level developer in C#, C++, and Java, and as an enthusiast  of the JK series, I'll add my input here.

As a dabbler in many different projects to improve my skill, I have started on JKA conversion projects here and there, a bit in Unity and a bit in UE4, and as such, I believe I can shed a bit of light on some of the problems and visions that I've had over the past couple of months. Since the JKA source code (in its original state, not part of the 3000+ commits from the JKHub guys) is a sloppy mess to navigate around, and with all of the engine mechanics, it is a daunting task for a programmer. First, lets speak about the engine. 

The comparison of the two engines is a bit laughable. Modern constraints at the time did not allow for many programming habits we have today, such as separating different objects in different class files, as they needed as much efficiency as possible to deal with CPU and GPU limitations. The Quake engine was a work of marvel, being one of the first real good engines that handled 3D graphics. In order to achieve this, they had to make sure the engine was almost flawless in how it handled RAM usage, like defining EVERYTHING in the lowest common denominator, so that it could take full use of the low available RAM and CPU speeds in the 90's. Today, that is not so much the case anymore. While efficiency is still a very important factor in programming today, most people from what I have seen want to make sure the code is not only reusable, but also that it is easy to read, understand, and replicate. Looking at the different components in UE4 makes this very apparent, as it feels like UE4 has every bit of it "wrapped" to make it layered, like a cake.

 

That introduces the first of my roadblocks into doing a project of this magnitude: converting over functions and classes that are self contained and modular. While some of these functions and methods are easy to read and understand, a LOT of them have their hands stuck in many different classes, and are all used and defined in different ways. This makes my already modernized mind have a panic attack when I see a variable that has the same name and usage spread out over 40 C,C++ files that all define the same thing. Not that I am a great, or even a good programmer by any means, but this is a big roadblock for me. 

Next, let me talk about the different systems in JKA. Usually, in modern terms, things like movement, collision, and character controllers are defined as things called "Components". We hearken back to the previous paragraph: modular, reusable. Ideally, you can take a component from different source code, and as long as you have it wrapped correctly, and use it in another project. JKA's source code has no real sense of these types of components. It feels to me as if a developer said "Okay, we need collision now. Lets just make a new method and call it every tick to see when we need it. Its going to live here in the move code. Done." This makes it hard to find, even when you have search capabilities, because it is defined in so many ways. I have started on trying to find the functions I need, like collision, and separate them in a way that I can simply pass parameters to it, have it do its thing, and its over. But to separate a big chunk from JKA's source is frustrating, like trying to find several needles in a haystack, and make sure you have all of them.

 

And then theres the inherent engine functions, like vector tracing, and how the system will define a slope or a plane. I feel in some mystical way the Quake engine has somehow wrapped this in a way that is usable, but still a far cry from what I can actually use. Somewhere buried in the structs of the engine itself is how a trace can be defined and used, but still I have not found it. These values are being stored and sent to the PMove class, and represented in a meaningful way, but to send that straight to UE4 is a lot of work, seeing how the two engines are vastly different in how vectors are defined and used. 


To wrap this up in a long upcoming TL;DR, I still have a drive to continue poking in JKA's insides to see what I can pull out and rework to use in UE4. I want this more than anybody, believe me, but game engine stuff with 3D is still beyond me at this point. I also understand that a team of people is pretty much required to work on such a project, but until recently, there has been a big push to improve JKA, which I don't entirely agree with. I believe the best shot for the game and the community is to bring it to a new engine and rework it in a way that can make upgrading it in 10 years a much easier task. I also believe that 2 versions should be made with a project like this: A base version, where all of the original functions, variable values, and animations should be used, and a new version that has updated everything. Both of these versions are separate from each other, more akin to JKA and MBII, but both can be accessed from the same launcher. The newer version I imagine will be like a well tuned car; closely monitored and tweaked for the most accurate experience. I also envision the newer version to be made in a way that would appeal to the competitive player on the highest levels, but still an enjoyable and fun experience for the new player who wants to sit in a server and duel. Hopefully these are visions that are reachable with enough collaboration and support, as I would love nothing more than to see thousands upon thousands of people playing it to become good duelers who only strive for perfection in combat; to reach the top of a competitive ladder and form a tournament scene. 

 

That's enough of a rant from me I believe. I hope this potentially helps out one or more of the people out there looking to get into this seriously like I was. 

ShakeThatSalt, Teancum, Smoo and 1 other like this
Posted

Why make two separate versions of the game? Rather make one game with confidence and make frequent showcases and get feedback from the community. Making two games, or two versions, will scatter our efforts and scatter (and confuse) a potential player base.

 

I'm not sure it would be required to map the Q3 pmove functions so directly to UE4. If we wanted to make a 1:1 copy of the gameplay, I could understand, but simulating/appoximating how velocity is built, sliding, collision and ground checks etc should be quite doable from an intuitive approach :) And if not, then yeah we always have the JKA source code for reference.

afi and Smoo like this
Posted

I actually had a similar idea, having two rulesets: Original JK and one with new mechanics.

But I agree with Boothand, this would confuse people. I think what is needed is a clear direction in terms of gameplay and no fear if things become a little different.

Even tho I adore the gameplay and movement in JK, I don't think that this should be just a port of the same mechanics to a newer engine.

Posted

I disagree to both of the above.

 

Having two versions of the game will alleviate a lot of issues both communities will have. For starters, having a version that is very close to BaseJKA will allow all of the older players who prefer the old mechanics (such as the timings and accuracies with saber combat and animations) to still play and enjoy the game on newer graphics with more fluid network functionality and registration. Deviating just a little bit from this will cause the game to not feel like people remember, and it will cause people with a high skill level in the game to have to relearn all the mechanics they learned over 13 years. Since we already have the source code, making this version should be the logical first step. 

The second version of the game is where we can really dive deep and give players the option to learn and experience a new combat system. Keeping all of the same functionality (more or less) with the movement code and saber mechanics, we can expand on how different styles can be used to counter each other, and keep everything fair and balanced. Keep in mind just something as easy as changing the animations around will affect the gameplay in a very dramatic way. Each saber swing has active frames, passive frames, math is used on parts of the frames to calculate blocking, all of these things play into how saber combat ties into player's current fighting styles and muscle memory. 

 

One of the reasons JKA and JKO were so diverse in combat was because of the movement code. Fine tuned movement can make or break a fight, whether it is to aerial strafe an opponent who jumped away or to speed back to main after a death. These things are very critical to JKA, and without them, it would no longer be a Jedi Knight game. 

ShakeThatSalt and Smoo like this
Posted

I could make the case that we then should make 4 different versions of the game. One with the mechanics the developers want, one with JKA mechanics, one with JK2 1.04 mechanics and one with JK2 1.02 mechanics. They are all vastly different and each have their own player bases who remain separate largely because they don't prefer the gameplay of the others. All the Jedi Knight communities have been split for 15 years, maybe we shouldn't let that happen again when we try to revive it.

 

With a remake such as this, we're targeting new players as well. The majority of old players may be in JKA, but it's not such a significant difference that making an alternate version to not disappoint that group should be necessary.

 

We're not talking about completely overhauling the mechanics. Old players would have a significant advantage if the game became popular, just like how the longtime players of Supersonic Acrobatic Rocket Powered Battle Cars went on to become the elite in Rocket League. A lot of the behaviour was changed, but they adapted.

Smoo and afi like this
Posted

I would see it like the difference between JK2 and JKA or Age of Chivalry and Chivalry: Medieval Warfare. Different, but still similar enough so people who played the older games will feel comfortable.

Splitting the community is a huge argument. I think that should be avoided at any cost.

Boothand likes this
Posted

Absolutely, the end goal is to eventually merge them all into one, so that the players from all of the JK series games will have to abide by the same gameplay. But for now, separating them accordingly will only be a good thing, it means the community will be able to retain its current standing with players who are comfortable with the old base mechanics, while the new systems and being developed and tested for accuracy and balance. Think of it like two inverse slopes. At some point in time, those slopes will intersect. This will be the point where the new mechanics, animations, and functionality will be completely implemented, and the servers can come online without much change for the next however many years they will stay up. The old base players will start to migrate, and eventually, The Base version will receive no support, and eventually be cut entirely when we feel it is time for everyone to make the move. But there does need to be 2 or more versions initially I believe. 

Posted

The problem is that most of the time the people who talk about it are in over their heads, it would take like all of the best of the best around here to even get it off the ground, finished is a whole different story.

Posted

The problem with recreating the same feel is we don't even know what specifically that gives it that feel. Players can't tell you either. You'll just get "oh it blocks too little or it blocks too much, hit boxes don't seem right". I also doubt that you'll reach and agreement between multiple and what is right. Add to that the fact that people claim the original code doesn't even "feel right". And add to that the collision detection for saber collisions is pretty bad.

 

You'll be able to make something similar, but I think you'll have to adapt a few things since I imagine the collision will be done more correctly, precisely and consistently.

Boothand and Smoo like this
Posted

All I'm going to say is JKA/JK2 gets on the top of Reddit for some cool game-play footage or something similar every couple years or so. I honestly couldn't tell you how many thousands of people comment asking for a remake or fan-made sequel of the game, its actually insane and some of you probably know what I'm talking about if you've seen the posts yourself, its pretty surreal. I think a lot of Jedi Knight players, particularly on these forums, think their love for the games are shared only with a small group of people and making a remake would not be worth the time investment because there wouldn't be enough players. Being pessimistic doesn't mean you're being realistic, there are so many people that would be willing to play a new Jedi Knight game and help contribute what they can. The problem is the community has been let-down and played so many times that when this topic is brought up its scoffed at and brushed aside. Believe it or not, my father actually played the shit out of Dark Forces and JK2 MP, and every once in a while he'll even me tell me it was a shame they never created another game... 

 

If there was an actual community effort on these forums and on the Jedi Knight discord, and people actually got serious and leadership gets established, it could very well happen. The talent is there, the love for the game is there, the audience is there, we have the source code, we just need leadership and some community discussion on what exactly we want in the said project to get started.

 

I think its about time, up to you guys though. 

Boothand, Smoo and Bek like this
Posted

So we obviously need a team, who will do all the things and then write down all the stuff we need to do, splitting it into little tasks. Or am I wrong? I would gladly help you with advertising it in CIS region, since I have the biggest JKA fan group in social network (3770 subs). I also would help with code thing, but I'm pretty weak at it and I'm in the army now lul (will be at home in December). Any other guys?

Posted

I opened a discord channel: https://discord.gg/9MmT4q

I suggest everyone who wants to contribute or is interested in this project joins it.

Will make it easier to communicate and to see who is actually interested.

Smoo likes this
  • 2 weeks later...
  • 1 month later...
Posted

@@DT85, were you not a part of this team?

http://www.moddb.com/mods/star-wars-the-new-era

We had no saber-combat back in the days, some unfinished classes and lots of unfinished maps. Imo Gameplay didn't feel like jka either. Still would have been awesome to release this pretty piece of a mod. (It's not possible though, there were several attempts) It was super fun to play every Saturday evening with all the other devs. Miss these days.

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