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.