Author Topic: A better weapon system & suggestions  (Read 2844 times)

There are many gamemodes that are popular in blockland that include guns. Literally well over 60% of servers use guns. Over my months of playing on these servers there is one thing that irritates the living crud out of me and that's how crappy blockland's weapon system is. I'm going to describe some problems in a list format and give some solutions other game engines (such as source!) use.

1). How bad is the weapon projectile system?

Well, the entire concept of a gun is to aim, shoot and kill, right? There are other mechanisms but this is basically how it goes. A gun in real life would almost instantly hit the point where it was aiming (exceptions...), I'm going to call these hitscan weapons. The default gun in blockland fires a slow-moving projectile. I'm not even sure if it's blockland's style to "fire projectiles" instead of just hitscanning, but it's worthless! Not only are these projectiles slow and unrealistic, they are inefficient in large quantities (bear with me here). An SMG that fires quickly will make a large amount of projectiles. A server with this weapon and ~16 players firing it occasionally will create not only a large amount of projectiles, but a metric forgetton of projectiles. Eventually the game bogs down and decides to switch to ghosting just so it can catch up with all those projectiles everywhere. Doesn't anyone else experience this? If you have then you must be tired of it too. The reason why we ghost is from all those projectiles (if it wasn't clear enough)!

Even more ridiculous: to create simple effects like camera shaking or tracers, we need even MORE projectiles? Didn't think we couldn't add to the stufffest of projectiles even greater? Oh well, you're wrong- weapon sets such as blockocombat easily creates 2 or 3 projectiles per fire for effects like these. Imagine that SMG earlier x3! Don't worry add-on makers, it isn't even your fault. It's typical to have workarounds and stuffty solutions like these that don't actually make anything better.

How do other engines fix this?

I'm going to just parrot off my experience with any source engine game.

TF2 hardly creates projectiles. By projectiles, I mean objects that take time to get from point A to B. Rockets, grenades, and a few other things are well under control when it comes to a populated server. Compared to blockland, I can estimate that source games will create about maybe ~40 projectiles a minute compared to a whopping ~200 in blockland. I'm not implying that blockland uses grenades and rockets all the time, but not only that, every single gun does (including raycasting weapons). Again, rough numbers- there are very many variables to consider, but I hope you get the picture.

Ok, so it moderates its projectiles. But how do we get those nice weapon firing effects like tracers or camera shaking?

Most engines are optimized to the point past stufftyness that they actually have systems where the camera shakes WITHOUT MAKING ANOTHER PROJECTILE. I don't even know why they can't just add a camShake = true; field in the states or something. It would make this sooo much better. To tell you about tracers, the source engine actually predicts it (when you click, it draws the tracers on the client instantly without server confirmation to give it a better feel). I'll get to prediction later on but the point was to tell you that it really shouldn't be necessary to create a projectile on the server for tracer effects- it's the client's job.

2). Weapon firing/reloading stutters and is unnatural feeling

If you have a ping that is above 200, it's a likely chance that your weapon (whether it uses a reloading system or not) will become really hard to fire accurately. Here's what happens: The client sets its click trigger to true, the server gets this trigger and sets your weapon state to fire mode & creates a projectile, and then the client receives the projectile and it works from there. The round trip time for your click state to be true will be delayed and the weapon will fire 200-500 ms after you actually click. This gives a bad feeling and doesn't help killing anyone since it's so delayed. There is a trick to make your weapon fire instantly on the rendering part and it's called predicting the states. Properly too, because even though badspot says they are downloaded to the client and predicted there is still that dumb delay and it makes me think that they are actually not predicted properly. Weapons with a high amount of states just gets more and more complex to manage and eventually manages to glitch up. Also, reloading- anyone else tired of the reload animation playing twice? I'm assuming its just the client trying to predict it but it has no idea since ammo is controlled on the server and that is delayed, too. Reloading and ammo is glitchy in general and it really needs a facelift.

How do other engines fix this?

The source engine does a great job at making this feel even better and I believe this system dates back to the old quake binary. It's simple: predict everything. That means when you fire, the weapon actually is drawn firing, and meanwhile it does the raytracing (on the client) and draws bulletholes and tracers- a neat way that requires NO PROJECTILES OR SERVER RESPONSE AT ALL! When the packet gets to the server, it traces for real this time and does damage accordingly. Reloading is even better, the ammo is communicated through the server and the client and has dedicated buttons that have no delay to do so. The client even predicts it's ammo so there is no malfunctions... talk about smooth! You might think about how lag may effect how the rays really hit on the server or not, but we'll get to that on the next point.

3). We need lag compensation - that is, if you follow through with all of this

A problem all games faced way back when was lag. When you fire it draws your weapon firing all nice and dandy, but when the firing "packet" gets to the server the target would have already moved and it would be a miss. Lag compensation would store an array (about 512 transforms (positions) with a spacing of 32 maybe) of every player and would be updated constantly. Then, when a player fires and the packet gets to the server, it would simulate reversing everyone's position based on the shooter's ping using that array, and then draw the raytrace for damage. Therefore it guarantees that players who you were aiming for on the screen would be hit. Cool huh?

I didn't mean to be so strict on the current weapon system but I reallllly think blockland needs this. Lots of popular games have guns and guns seem to be the typical thing that attracts people. If we fix up this weapon system and add better guns, maybe we can get more players... haha, wishful thinking. It would help big time for many tdm servers though, and make blockland look a lot better.

I didn't understand a word of this, but /support

he's saying we should have lag compensation and prediction.

most modern games have it nowadays and it's basically client-side simulation of server-side activity so lag is less noticeable



i'm pretty sure blockland doesn't do it to minimize what hackers can do to it. the only thing the client can do is control a character on the server- the server itself does the rest, simulating physics n stuff

I like it the way it is
+ people don't really need to make 2-3 projectiles to get an effect behind the projectile, just the emitter needs to be changed?

everything works fine as it is, any problems you have are because you're bad at shooting things

These are nice ideas, but I feel the current projectile system is what makes Blockland battles entertaining and unique. While the client-side prediction of firing and such would be nice to implement, the heavy use of projectiles is better.

No, I'm not bad at shooting things. No, not everything works perfectly. Realize that not everyone in blockland has such a good Internet connection like you. Blockland really really needs prediction- it would make this game look so much better. Lag compensation is just an idea but the main problem I'm addressing is having a more solid weapon system, projectiles should only be used on things that you can see take time like rockets and not fast firing guns. Trust me on this!

By tracers I meant to say for ray casting weps like the t+t pistols

I'm still surprised that you people like the heavy use of projectiles. It has created many problems before especially in dogfight servers with planes that fire many bullets. Just one example.

This hitscan stuff annoys me. I like being able to jump and dodge bullets, its one of my favorite parts of this game. It also keeps stuff like your aimbot from working effectively.

Please don't drag the hack into this. Seriously like forget off why did you even mention it

I guess it's fine on how we use projectiles but we don't even have a class dedicated to weapons. We are simply biggybacking off of shapebaseimage and item and calling them "weapons"

Please don't drag the hack into this. Seriously like forget off why did you even mention it
"Get out of here with your valid points that completely defeat my idea!"

I have to agree with heedicalking, I like projectile based bullets in blockland rather than hitscans because it makes the game more interesting, although yes its innificient

"Get out of here with your valid points that completely defeat my idea!"
can you even comprehend my post? I really didn't want to have the hack discussed, I even responded to his point (which is ok I guess- if people like the system of projectile spam now, no problem)

I think that the system could definitely be improved, but I don't think it's something that requires the developers' attention right now.

can you even comprehend my post? I really didn't want to have the hack discussed, I even responded to his point (which is ok I guess- if people like the system of projectile spam now, no problem)

You mentioned nothing about aimbots until someone brought it up as a valid point. Then you proceeded to tell that person to
forget off

You never even said you didn't want hacks being discussed. Even if you did, that would be making a topic about a new idea and not allowing a very valid point against it to be made.

It sure is a valid point. You know what else is a valid point? You're being quite the smart ass, and, even though the point isn't even related to the topic idiots like you can go in for days arguing about it just to get your hits in. I know you, blok, ever since you've heard that I made an aimbot it seems like its been on the top of your list to make me look bad whenever you get the chance. It seems like heed does the exact same stuff and bringing up the aimbot is the perfect way to make me look like an ass. Usually when someone in this category does this I get angry and tell them to stop. "forget off" seems to do the job well - especially when people don't stop loving bringing it up. Now if it were someone not like you or heed I'd be easier but that isn't apparent huh