X-Vehicles is a pack of fully driveable vehicles for UT99, consisting of 4 tanks and 2 jeeps.This package is just a demo, and the mod itself has been canceled, so no further development will be made on it (at least from myself).

This mod is very old, and was first developed around 2009, and by using the initial base code by .:..: (Dots).
The initial state of the code by .:..: had already some solid bases to work on concerning AI and the base controls, but it had no physics whatsoever for terrain vehicles, let alone the support for treaded vehicles like tanks.

Therefore, a lot of work was put into this mod to give it the bare minimum physics so that vehicles behaved like vehicles.
The code ended up being a mess, very unstable and mediocre in general, reflecting my own skill at the time, and a few years have passed and now the current vehicle designs are just no good for me, hence canceling the whole mod altogether.

In the future it may be possible to create a new vehicle mod, and it is indeed possible to develop pretty realistic vehicles with good physics and multiplayer support using UnrealScript alone, but some pre-requirements have to be met first through the development of a different mod, in order to have the necessary underlying framework and technology to facilitate the development of such a mod.

I will try to make my own vehicles mod. Chances are it won't go very well.. I'll make a flying vehicle first (no wheel animations!).

How would one leave a vehicle? Maybe we detect for feign death (F)?

I should allow for passengers (hitting friendly pawns - yup, that brute! XD) and crushing (hitting enemy pawns). I doubt it'll be as good as X-Vehicles, but I'll try to make at least the code good enough, so it can be solidified.

Just to be sure we're all in the same page, I am not really continuing with this mod.
As mentioned in the video and my post, this mod will not see any further development of my own, so this demo is all there is and all there will be unless someone else picks it up.

EvilGrins wrote:Do the tanks kill players when running them over?

Yes, every vehicle does that.

EvilGrins wrote:From gameplay in the video I'm assuming bots can drive these vehicles, but since the SkaarjTrooper type monsters can use any weapons players can use, can those Skaarj drive these as well?

Bots can drive these vehicles, but I am not sure if a SkaarjTrooper can drive it.
The AI is still mostly .:..:'s code overall, and I don't remember the details of what it supports, all I know is that the AI support is very basic.

Gustavo6046 wrote:I'll make a flying vehicle first (no wheel animations!).

Flying vehicles are the easiest to do: simple physics, and no animation if you don't want to, and have been proven to work well in UT99 through popular mods such as Strangelove and Rocket-X (which originated from the former).
The same with hovering vehicles.

However, terrain vehicles are in the other extreme of the spectrum, being the hardest ones.
The problem are not the animations: in fact, almost nothing in X-Vehicles is "animated", the vehicles are just made of "moving parts" like real vehicles, meaning that the wheels are just a static model with no animations, but then they just turn by rotating the wheel, like a real vehicle.

The challenge is the physics, which while it may look fine in the video and while you play with them, I actually did a piss poor job with it in this mod since back then I had no clue how to do it better with UT99 limitations.
It wasn't after I made things like NW3 and the ultra gore mod where I invested a bit more in the physics department that I realized how awful the physics of these vehicles actually were.

But, while it's challenging, it's far from impossible, and we could still have terrain vehicles which would behave just like the ones from UT2004, or even better akin to UT3 for example for most of them.
And by doing terrain first, no only you end up having more interesting vehicles, you automatically solve any issues for all the other kinds of vehicles as well, since they are much easier in comparison.

Gustavo6046 wrote:How would one leave a vehicle? Maybe we detect for feign death (F)?

It's the "drop weapon" key.
You can also check the ReadMe file for all the keys you need to know for these vehicles.

Ferali, the mod looks truly incredible and I'm consistently amazed at what you're able to achieve in UT99.

Have you ever considered writing a compendium or knowledgebase about UScript, weapon design, etc.?

I know it's a huge ask, but I always feel a little bit sad when I see so much skill and knowledge on display and realise that there's no single resource where less experienced UScripters like myself can learn about everything.

For example I can create mutators but I wouldn't know where to start about creating animated meshes, new weapons, projectiles, etc.

Gustavo6046 wrote:I mean, if a new vehicle is programmed, how would leaving it be implemented?

In fact, what Class would it optimally subclass:

Weapon, for pickup simulation (making the collision and everything else from scratch);

Pawn, for general health management; or

Actor, for a whole new codebase?

No idea about NaliWActor.

NaliWActor is just an actor to organize actors for Nali Weapons 3, so it doesn't really provide anything out of the ordinary.

As for the other 3, the answer would be: you will end up needing all of them quite frankly:
- a weapon to be the vehicle controller;
- a pawn so that eventually other pawns are able to recognize the vehicle itself as being a teammate or an enemy;
- an actor to make the vehicle itself: the most basic class with the basic replication capabilities and functions in place, and nothing extra that you don't add yourself.

In other words, you should extend from Actor, but then use an invisible weapon to control the vehicle (given to the player or bot upon entering the vehicle) and attaching a dummy pawn that can tell bots and other pawns the relationship this pawn has with them for AI purposes alone.

This is essentially design by composition, rather than inheritance, and composition is the single most important methodology to follow to do anything nowadays programming-wise, when it comes to OOP, especially for composed entities such as "vehicles" which ought to be made by several different parts, all working as part of one thing.

Dizzy wrote:
Have you ever considered writing a compendium or knowledgebase about UScript, weapon design, etc.?

I know it's a huge ask, but I always feel a little bit sad when I see so much skill and knowledge on display and realise that there's no single resource where less experienced UScripters like myself can learn about everything.

For example I can create mutators but I wouldn't know where to start about creating animated meshes, new weapons, projectiles, etc.

I created a few topics some years ago that Dr.Flay pointed out above, and although I wanted to cover all of that stuff (including things like AI and replication, mostly the latter), I ended up not doing it so I only wrote up about the very basic things when starting into UScript.

And for the time being, I do not intend to write anything about it, for 2 main reasons:

I didn't really clean out the rust in my own UScript skills to do a tutorial of anything at all just yet, I often have still to check the original UScript source and even my own past sources to understand what I did and why I did it, so at the moment I run the risk of spreading misinformation over things I may not currently accurately remember about, which is no good for anyone;

I intend to do something much better than that later on that developers overall should appreciate a lot more I believe, and part of what I am currently working at during both some of my free time and actual job, is also towards that goal.

Acoma wrote:hey there was a racing game made with the unreal engine released in 1998 that had some pretty impressive physics for its time

Powerslide by Ratbag

If that's really made on top of Unreal Engine, then it's highly likely it was modified at the native level to support things right away concerning terrain, static meshes and overall vehicle support.
This was common practice and many Unreal Engine games had vehicles either because they got hold of an engine version which was transitional between what we have and UE2, or because the studio added it in themselves.

I doubt any of that can be used for UT99, but thanks for sharing, the physics are indeed interesting.

That sounds cool, but please just remember that this mod is unfinished, and is a far cry of what it could eventually be, meaning that if you expect things to work just like UT2k4, you're in for some disappointment, as the vehicles themselves do not behave well enough at the moment, in terms of physics, to be on par with UT2k4, and as noted in the video the AI is very primitive and multiplayer pretty much non-existent.

So if you intend to create an ONS gametype, most of your time will have to be spent on improving these vehicles, unless you're fine with the way they are now.

Personally, I wouldn't have the vehicle itself as a pawn, simply because I don't want any voodoo from the engine, native or otherwise, affecting the operation of the vehicle code itself (be in terms of replication, AI, or others).

Extending the vehicle from the actor directly would be preferable, as well as then only extending from Pawn what is strictly meant to define the AI interactions between bots and monsters with the vehicle, and which may not be necessary all the time (such as when an actual pawn is driving it).

As for the "VehiclePlopper", personally I don't see vehicles like other things where you can just spawn them randomly.
Just like the original mod, it would probably be better to have vehicle factories put directly into maps meant to have vehicles.

Wheels could drop Pile of Rubber inventory when they died. Depending on how much rubber we had, we could either increase our score (Rubber Deathmatch gametype), or use enough rubber to build a dild--ahem, to repair a vehicle with blown tires or something like that.