March 22, 2018, 01:30:58 pm

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - stormeus

Pages: [1] 2 3 ... 9
VC:MP General / Sniper behavior in VC:MP (and more)
« on: June 15, 2017, 06:49:37 am »
I'm going to keep this short and sweet: in the next feature release of VC:MP (0.4.5) I plan on changing the behavior of the laser scoped sniper rifle so that it no longer shoots through walls, and instead is only able to shoot through glass. This should make it a fairer weapon to play against while also neutering blatant wallhacking with it.

The only reason I'm bringing this up well in advance is because it builds on top of a number of other combat changes, like slide glitching patches, that keep gameplay more consistent. I'm also aware that this removes some flexibility from the combat system — glitching has been a way of adding variety to multiplayer combat when the game's regular combat system is rigid and lacking in some features.

That said, here are some questions for everyone:

  • Are you satisfied with the current deathmatch experience? What are the upsides, if any?
  • What are your concerns about the current state of deathmatch?
  • What would you want to see added to the combat system, if anything?

The reason I'm asking this here and not the VC:MP forum is because this is a hub for all sorts of people used to deathmatch, while the official forum is not DM-centric.

News and Announcements / Lily kicked from VU
« on: June 14, 2017, 04:30:10 pm »
Yesterday, Lily and DeZ were disqualified from VCDC after exchanging login info so Lily could play under DeZ's identity. While discussing this in the trainee boards, Lily repeatedly insisted that DeZ initiated the plan until confronted with in-game and IRC logs showing that Lily was trying to get a pseudo-rematch against Kelvin.

In our private boards we have a pinned thread that says:

This is not a clan built on lies, it's built on friendship and trust. We are a brotherhood, therefore providing your brothers with lies and false witness will result in a kick from the clan.

True to our word, Lily is no longer a part of VU, effective immediately.

Group Stage (ENDED) / Group Standings and Matches
« on: June 11, 2017, 10:22:16 pm »

Script Showroom / Measuring ping jitter in Squirrel
« on: August 16, 2016, 08:47:39 pm »
This is a small snippet I wrote for the VCDC server which would measure a player's latency jitter. defines jitter as:
the variance in measuring successive ping tests. Zero jitter means the results were exactly the same every time, and anything above zero is the amount by which they varied.

Which makes it a decent measure of the instability of a player's connection. In VCDC, a player would be kicked not only due to high ping, but also due to a high jitter and consistently unstable connection that could cause warping.

The code below calculates the standard deviation of an array of ping measurements to find jitter.

Code: (Jitter calculation functions) [Select]
function CalculateAvg(arr) {
    local sum = 0, count = 0;
    foreach(entry in arr) {
        sum += entry;

    return sum.tofloat() / count.tofloat();

function CalculateVariance(arr) {
    local avg = CalculateAvg(arr);
    local sum = 0, count = 0;

    foreach (entry in arr) {
        sum += pow(entry - avg, 2);

    return sum.tofloat() / count.tofloat();

function CalculateJitter(arr) {
    return sqrt(CalculateVariance(arr));

Test cases
Code: [Select]
sq>print(CalculateJitter([250, 280, 230, 240, 250, 290, 240, 310, 230, 250]));

sq>print(CalculateJitter([10, 10, 15, 10, 10, 12, 10, 9, 10, 10]));

sq>print(CalculateJitter([80, 80, 80, 350, 360, 320, 330, 167, 95, 80]));

sq>print(CalculateJitter([5, 10, 15, 20, 25, 30, 35, 40, 45]));

News and Announcements / [April Fools] VU renamed to ULK
« on: April 01, 2016, 01:36:09 pm »
We are currently displeased with the direction of the ULK clan. In order to fix the issue of ULK's split, bring greatness back to the ULK name and Make VC:MP Great Again, VU leadership has unanimously decided 1-0 to rename the clan to the United Legion of Killers.

All members are to wear the ULK, TLK, and TLKr tags effective immediately. Thanks.


News and Announcements / Revised application format
« on: March 30, 2016, 08:09:35 am »
For all applications made since this post, clan applicants will now be using a new application format intended to allow us to get to know potential members more personally.

Our old application looked like this:
Which game are you applying for, VC:MP, SA:MP, LU or all?
Previous Nicks:
Do you speak English?
Time you have played vcmp/samp:
Previous clans:
Do you use IRC:
Why you want to join VU:
Favourite weapon:
Which VUs do you know?
Would you be interested in competing in clan wars?

Our new application is much more streamlined and will only consist of these three questions:
  • What's your nickname?
  • What country and timezone are you in?
  • How old are you?

To make up for the old questions on the form, members of the clan will instead be asking their own questions on a case-by-case basis, which can include old questions such as previous nicks, but will mostly consist of original questions.

The clan will still be voting on applications as usual, and we want to note that only clan members will be allowed to ask interview questions to applicants. However, everyone will still be able to provide opinions and feedback on members. However, we'll now able to ask a wider variety of questions to get to know candidates better as well. We can also avoid the pitfalls of precanned responses that especially plague the question of "Why do you want to join?" for many clans, and get a better opportunity to ask applicants to join us in-game to get to know them better there.

VC:MP General / Synced traffic lights in 0.4
« on: March 07, 2016, 04:11:42 am »
A few people asked me about syncing traffic lights and stuff in 0.4 before everyone started freaking out about custom skins (which I have to thank maxo for implementing since it would've taken me forever to get around to that). Since I was working on some other major changes to VC:MP, I decided to sneak in a quick fix to sync the game timer between the client and the server. This allows traffic lights, waves, particle effects and some other very minor stuff to be synchronized between clients.

Quick video I recorded of it:

Sorry for the absolute lack of editing but I didn't really have time to do anything comprehensive for a one-off video like this.

Because of the netcode changes from this, it may not be able to be released until the next major game update, but I don't anticipate that taking too long, though time estimates have generally always been wrong so I don't want to really give one.

General Discussions / MOVED: help me
« on: February 03, 2016, 07:34:23 pm »

Scripting Support / MOVED: plz what the password
« on: February 03, 2016, 07:33:52 pm »

Script Showroom / Performance benchmarks: Vector.Distance vs. Sqrt
« on: February 01, 2016, 09:47:31 am »
I'm not sure if people ever noticed this with the 0.4 Squirrel releases, but vectors have some added functions for doing basic mathematical calculations on points/vectors, including:
  • Vector.Distance(Vector other) - calculates the distance between two points, returns the distance as a float
  • Vector.Length() - calculates and returns the magnitude of a point (from point 0, 0, 0) as a float
  • Vector.Dot(Vector other) - calculates and returns the dot product between two points as a float
  • Vector.Normalize() - alters the vector so that it is a unit vector such that Length() returns 1

I think prior to this, people mostly used the in-built sqrt() function in Squirrel to calculate the distances between points. I was curious to see if this would incur a performance penalty, since the vector functions exist in C++ in the Squirrel core, whereas sqrt() might be interpreted by Squirrel instead.

I did some basic benchmarking and as it turns out, Vector.Distance is more efficient than using sqrt(x^2 + y^2 + z^2). More interestingly, it seems that Vector.Distance can be as much as 10x faster.

Benchmark code
Code: [Select]
local start = 0;
local elapsed = 0;
local i;
local distance;

local point1 = Vector(867.5309, 2.201, 3.44);
local point2 = Vector(-3.75, -3.691, 3.1415926);

print("Point1: " + point1);
print("Point2: " + point2);

start = GetTickCount();
for (i = 0; i < 1000000; i++) {
local dx = point2.x - point1.x;
local dy = point2.y - point1.y;
local dz = point2.z - point1.z;

distance = sqrt(dx * dx + dy * dy + dz * dz);

print("Sqrt distance: " + distance);
elapsed = GetTickCount() - start;

print("Sqrt loop: " + elapsed + "ms");
start = GetTickCount();
for (i = 0; i < 1000000; i++) {
distance = point1.Distance(point2);

print("Call distance: " + distance);
elapsed = GetTickCount() - start;

print("Call loop: " + elapsed + "ms");

This isn't to say that slow code is because you're using sqrt, or that everyone should immediately get to work on converting their code to use Vector.Distance, because this is micro-optimizing. The benchmarks were done over a million iterations (1,000,000) and so this would have no significant impact unless you were calculating vector distances very often. I just thought it was fun to note, since mathematical operations are typically pretty fast even in scripting languages.

VC:MP General / 30 FPS vs 60 FPS
« on: January 04, 2016, 09:40:52 am »
There is a reason 60 fps is an option and if you want to play the game the way Rockstar intended, go play singleplayer.

There's a reason Rockstar didn't add multiplayer to Vice City and if you want to play multiplayer GTA, go play GTA V. What is the point of this comment?

Nobody complained about desync due to framerates higher than 30 which is a fact; the minimum should be 25. How  do you want to operate kicks on minimum 30? Everyone gets FPS drops, and when you have 30 30 30 and a drop to 20 for a second (example), the average will drop to somewhere around 27.5 and bam, you get kicked.

Well here's the thing, there are obvious discrepancies in what's possible in the game between 30fps and 60fps, and anyone who claims otherwise is a moron. If you're making an event that's even remotely competitive, you generally want things to be as uniform as possible for as many people as possible, because having players with wildly varying configurations leads to a bunch of whining that players are doing something that seems impossible but is really because they don't have the same setup.

VC:MP already makes all players play on the obvious settings: gravity, game speed, weapon damage, fast/jump switch, etc. Map mods are something that could benefit from being able to be detected. Yet everyone causes a row over 30 vs 60fps because everyone prefers aesthetics over consistency.

Funnily enough, if you google "Vice City" and "60fps" together (or any 3D-gen GTA game), you'll find guides and threads complaining about the effects of having the frame limiter off:
GTA is coded like shit, kinda like stuff on old systems. Instead of saying "Apply friction 30 times in a second" and monitoring the time it actually does things like "Apply friction every time code loops"...

 Side effects may include:
 - Too much friction 
    Reversing broken, impossible dodo takeoff, etc..
 - Softlocks
    Game code freezing and not progressing, usually happens after you die or take a mission
 +-Fucked up slopes/stairs
    You can literally fly away 100-200 meters away, and I mean launch from slopes/ledges 
    when running. Sometimes even dropping from a sidewalk to the road can take 50% of your health.
 - Boats are fucked up
    This goes back to too much friction.
 - Handbrake is fucked up
 - Missions take forever to progress
    Related to softlocks
 - Audio is glitched
    Audio / Ped lines / etc.. get called after a specific amount of frames, too high fps
    and the sounds will play over each other and non-stop almost. 
    Imagine speeding up NPC horn-honking frequency and such by say.. 5 times.
 - Crazy flicker
    Things that go on/off say.. 2 times in a second (like wanted stars) will flicker like mad
    as they go on/off many times faster than usual.
 + Pushing cars
    You can literally flip cars over by running in to them as they don't get proper friction.
    For some reason they will be really light with a high framerate.
 - Broken AI / scripts
    Stuff like AI driven sections for small cut scenes can be totally off due to changed physics
    and coded "drive this path" scripts can be totally borken due to wrong frame/time references.
 + Helicopter takeoff
    A big plus is that helicopter takeoffs are nearly instant as the acceleration is tied to fps.

These are just some of the things that get changed, there are more side effects.
Therefore the GTA community has decided to ditch runs that run without the limiter.
It's what title says. Try it yourself. Go to settings and disable Frame Limiter (it makes game much smoother). However the game gets all funky after you do this. Cars don't reverse anymore or when you manage to reverse them, they do it really slowly. I mean slooooowly. And when you run and bump into your car you can bump it over or move it easily. Now enable Frame Limiter again and the cars will reverse normally now. Also bumping into them by running into them barely moves them now.

After my run had died I decided to break Vice City by turning off Frame Limiter. The results: catastrophic.

The result is that things get fucked for both sides. People playing at 30fps by having the laws of physics actually applied normally when driving, but people at 60fps can take off helicopters faster and slide up inclined surfaces at the speed of sound (at the cost of potential instability in the game's engine). Something not mentioned above is that players at 60fps (and more commonly at above 60) can take more damage from falling, and are more likely to take self-damage just by doing something as idiotically mundane as jumping from the street onto a sidewalk.

Which, again, is shit for a competitive event where everything should be as even as possible. Either you make the FPS threshold 60fps for everyone playing (and kill off more than half the player base) or you make the FPS threshold 30fps for everyone and maintain some sanity. The reason LW's management (who happen to be devs with far more intimate knowledge of the GTA engine than you do, mind you) cap framerates at 30 isn't because they hate smooth framerates; they're also pretty big gaming nerds. The reason is that the inconsistencies you introduce to VC:MP by having mixed 30/60/>60fps configurations is too much of a hassle. Having a comp event with mixed fps configs is fucking insane when you take all that into consideration.

General Discussion, Betting, and Questions / Bracket Predictions
« on: August 31, 2015, 12:37:44 am »
So I'm pretty sure this is how the bracket is going to play out:

Basically following the seed numbers except for match B. Since Kelvin and UnbalancedTheory are neck-and-neck I actually flipped a coin to figure out who should advance. I'd say that's the match to watch.

Noori vs. Jellyfish, if it happens, would also seem to be pretty entertaining to watch since they have comparable seed numbers, but I'd say Noori is the tournament favorite so he advances. Then Fercho wins because he's been undefeated for the entire Swiss stage, and beat Noori then.

For third place, UnbalancedTheory and Jellyfish would face off. I'd say Jellyfish would win it in this bracket but I don't base that on much. ::)

The tournament page has its own "Create a prediction" thing:

But it apparently shuts down when matches start, which is kinda lame, so I'll leave this thread open.

Information and News / The finals: finally here!
« on: August 31, 2015, 12:17:28 am »
After two months of dueling, the finals have arrived!

From an initial pool of sixty fighters, we've determined the eight most competitive fighters in the tournament. They will fight in a single-elimination bracket for the top spot and a hefty prize pool. These fighters are:







The following information explains some changes to the tournament and its format that will occur for the finals. More elaborate information can be found in the VCDC Finals thread.

Format Changes

Instead of fighting three sets of five matches for scoring, players will now fight until one person reaches nine points, similar to the LW Cup. Whoever reaches nine points wins the entire match.

Moreover, with summer winding down, there will be no hard deadlines for match completion. Soft deadlines may be suggested by staff members if a match is taking excessively long to complete, but the tournament will not end on any specific date anymore.

Prize Distribution
After deliberation within the admin team, the final prize pool distribution has been slightly modified:
  • All eight fighters get $250,000 as a way to congratulate them for making it this far, and to serve as a consolation prize if anyone is eliminated at this point.
  • The four semifinalists all get an additional $500,000.
  • 50% of the remaining pool goes to first place, 30% for second, and 20% for third.

Therefore, the distribution of prizes is:
  • $19,824,703 ($19,074,703 first place prize + $750,000)
  • $12,194,822 ($11,444,822 second place prize + $750,000
  • $8,379,881 ($7,629,881 third place prize + $750,000)
  • $750,000
  • $250,000
  • $250,000
  • $250,000
  • $250,000

I'll try to make myself available for prize disbursement, but if I'm not around, other admins will be given access to the prize pool bot and more instructions will be posted at a later time.

Upcoming Renovations

The stadium will also be undergoing renovations soon with a new design with better seating which will also prevent instances of barrier hopping that had occurred in group stages. This design will be unveiled within the next couple of days as some details are completed.

For more information, refer to the VCDC Finals thread.

Away Board / Starting school on the 31st
« on: August 29, 2015, 10:08:44 pm »
On August 31 I'll be attending university and moving into my dorm room. Between classes and maintaining any semblance of a healthy social life, I won't be around very much from that point on, though I should be able to visit the forums every once in a while. This was probably already obvious since I haven't been around much lately either.

Tentatively I'll only be really active during a couple of weeks in the winter and one week in the spring. I already have a full-time job lined up for next summer so I won't be around much then either.

I'll still be developing VC:MP occasionally and will probably be on IRC more once I've settled in, or at least idling a lot more while I work on schoolwork.

Swiss Knockout Stage (ENDED) / Round 6 Results
« on: August 26, 2015, 12:12:07 am »
Round 6

No discussion allowed. Only fighters/referees should be posting match results in this thread.

Code: [Select]
[b]Screenshots (for proof):[/b]
[b]Comments (if any):[/b]
[b]Admin who watched:[/b]

Pages: [1] 2 3 ... 9