En Garde Scoring

Tuesday, October 23, 2007

I've been thinking about changing the way En Garde handles the tournament (ranking) scores, and I'd like some feedback from everyone.

To recap the current scoring: You get a point for every touch in every game. If you beat someone who has more points than you, you get also get their points. Points expire after two weeks.

What I like about this scoring is, it gives newbies a chance to get their name up on the board. They won't be frustrated with someone having 400 points and never having a chance of overtaking them. Also, I think if you beat the #1 player, then you should be the new #1 player. This system does that.

I've wanted to add Team scoring to En Garde. Here's how it would work:

Score boards would have a new "Team" mode that would display team scores, in addition to the World and Local modes they have now.

Anyone who has purchased En Garde would have the right to make a Team. Any player can join a team by clicking a team owner's scoreboard (or other prim). You can only join one team at a time; if you join a different team you leave your previous team.

The question is, how do we calculate team scores?

The obvious approach is to just add everyone up. The team score is simply the sum of the tournament score of all its members. The problem with that is, all team members will have roughly the same score. Since you get someone's score by beating them, if everyone on the team loses occasionally, their scores will be about the same. So the easiest way to improve your team score is to add lots of members to your team, and I don't want that. This is En Garde, not Tiny Empires.

So now my thought is, what if the losing player lost points. Everything else about the scoring would stay the same, except: If you beat someone with more points than you, you get half their score, and they lose half their points.

That way, a team with less members wouldn't be at a disadvantage. When team members played between themselves, they'd just be spreading points around (you do get a small increase, because you still score your touches). The way you increase your team score is by beating members of other teams. That takes points away from the other team and adds it to yours (as well as your individual score of course).

The disadvantage of this system is it makes it harder for new players to get on the board. And, beating another player doesn't guarantee that you'll rank above him on the ladder. But I don't think those are terrible disadvantages, and I'd like to try it

What do you think?

En Garde update v1.08

Saturday, October 20, 2007

A new version 1.08 of En Garde is available.

I'm sorry to push out two updates in two days, but 1.07 introduced a new bug that needed to be fixed fast.

To update your En Garde, just use your remote to deliver it and replace your old unit:

  • Put on your En Garde Remote
  • Say "/8 derez"
  • Say "/8 deliver game"
  • Rez your new 1.08 En Garde

What's new:

  • A new bug was introduced where the game could hang if a player did an advance-lunge as the last move of the round.

  • I've included the video tutorial in the package. You can get it by picking up a whole new box (just click any En Garde vendor), or get a new remote ("/8 deliver remote") and then use the new remote to get the video player ("/8 deliver video"). I may have to take the video down some time in the future, if bandwidth becomes too much.

En Garde update v1.07

Friday, October 19, 2007

A new version 1.07 of En Garde is available.

This version has two minor bug fixes, and one new feature.

To update your En Garde, just use your remote to deliver it and replace your old unit: - Put on your En Garde Remote - Say "/8 derez" - Say "/8 deliver game" - Rez your new 1.07 En Garde

What's new:

  • If a player clicked very quickly at the end of the game, they could sometimes get an extra attack in. Some players think that the "last-second attack" means you have to do it real fast when the cards run out. That's not true. En Garde is completely turn based and there's no "click fast" element. To do a last-second attack, you just need to have the right card(s) in your hand at the end of the round. Anyway, clicking fast will have no effect now.

  • The start player didn't change properly after an advance-lunge touch. The player who lost the previous point should always start the next round. In the case of a point scored off an advance-lunge, that wasn't happening. It is difficult, though not impossible, to score a touch directly off an advance-lunge (your opponent must have no cards that can be used to parry or retreat). Fixed.

  • You can now customize the appearance of your game. Create a texture and name it "tile". Click your game, select "Set Texture", and control- drag your custom tile texture onto the center square of the track. You can also change the appearance of the cards in the hud, by doing the same with a texture called "card". The card texture must have images for all 5 cards: two across, three down (the lower-right corner can be blank). I can give you a template to show you how it's done if you want.

New Follow Me Update v1.7

Sunday, October 14, 2007

I've just released a new update to Follow Me (version 1.7).

Follow Me is now a HUD, instead of a big green ball that floats over your head. What was I thinking? I'll tell you what I was thinking. I was thinking it would be so cool to have 20 people all TP into a sim with green balls over their head. People would look at it and wonder, what is going on here? The problem is, of course, that nobody wants to be the first person to TP in to a sim with a green ball over their head. So, it's gone.

I have removed the last vestiges of XMLRPC. Oh, XMLRPC! What promise you had! And then, what poor implementation. XMLRPC is dead. Long live HTTP.

XMLRPC was responsible for those times when you lost contact with your followers. So that should happen less frequently. As in, never.

Also a pet peeve of mine: no-script areas. You would get all set and linked up, only to discover after you TP that you've TP'd into a no-script zone and none of your followers can follow you. Well, no more. Follow Me will work just fine in no-script areas. You can TP anywhere in the grid without worry.

Finally, there is the new Track button. It lets you follow someone even if they aren't using Follow Me. It's less accurate -- it only tells you the sim, not the exact location, and you will lose the trail if they TP again before you catch up with them. Still, it should be useful in situations where someone wants to show you something real quick and they don't want to be bothered with putting on another HUD.

Destroy all megaprims

Saturday, October 13, 2007

The latest news that has the SL community in an uproar is Friday's blog post from Michael Linden about the possibility that Linden Lab will do something about the Megaprim problem.

Reaction has been somewhat mixed, but I'd say the most vocal opponents are all outraged over this, and popular sentiment seems to oppose a megaprim ban.

I say, tough. I want Linden Lab to delete all megaprims.

What most of the posters don't seem to realize is that prims are a resource utilization metric. They're the size they are (10x10 max) for a reason. They measure how much of the overall grid you are using. It's not just some arbitrary size. The more prims you have, and the more volume you cover with them, the more network bandwidth you use (to send geometry and texture information to everyone who sees them) and the more CPU cycles you use (to calculate occlusion, collisions, physics, etc). When you use megaprims, you're using more than your fair share of resources.

The arguments for keeping megaprims seem to fall into three or four broad categories:

"They're too useful to get rid of! Without megaprims I'd never be able to build my house/RPG sim/ amazing sculpture and keep it under the prim cap"

Well, duh. There's a reason for the prim cap. Just because megaprims let you cheat your way around it doesn't mean you deserve to keep them.

I see post after post of people saying "I used megaprims to build a floor that would have taken much more prims otherwise! So it actually saved prims and uses less resources." Maybe that would be true if all you built is a floor. But did you stop with that? No. You kept on building, using every last prim -- much more than you could have if you didn't have that megaprim floor.

"I used megaprims to build my amazing sim that everyone loves, and if megaprims went away I couldn't rebuild it."

Guess what? You have only yourself to blame.

Unlike WarpPos, or the llSetLinkPrimititveParams() move trick, megaprims are a hack. Not the "clever way of using LSL" kind of hack, but the "try to defeat planned safeguards" kind of hack. There was code in the viewer that explicitly tried to prevent you from making these giant resource hogs! The only reason they exist is because one person hacked around the safeguards.

Megaprims were always shaky. From the day Linden Lab patched the server to fix the megaprim exploit, users were warned, "these might go away at any time." If you constructed your build around a feature Linden Lab explicitly warned you was flaky, then it's your own fault if it comes tumbling down.

"I've never seen Megaprims cause any problems for anyone"

Excuse me, do you have the statistics on bandwidth utilization from Linden Lab? Can you tell me how megaprims affect the visibility culling algorithm from across sim boundaries? No? Then quit talking out of your ass. When the megaprim hack first appeared, the Lindens said they would study it to see if it impacted grid stability too much. Guess what -- they do!

"Don't ban the tools, ban the people"

This isn't about griefing, or good versus bad uses of megaprims. It's about keeping the grid stable for everyone. Megaprims hurt everyone, by destabilizing the resource metrics.

Perhaps someday, with increased bandwidth and CPU capabilities, we will be able to have megaprims for everyone. For now, though, I will be very happy to see them erased from the grid.

Magic Texture Fountain update

Continuing all my updates of the "other stuff"...

The Magic Texture Fountain is something of an odd beast. It's kind of hard to explain, and it's not like anything else in Second Life.

Basically, you drop a texture in it, and the Fountain breaks it up into little pieces and reassembles it in the air. Here it is displaying an ad for Zingo.

I think it's a really cool effect, but it's never really sold well.

Anyway, I got it working on both sides (something that's bothered me for a long time) and cleaned up some of the scripting code. You can see a demo of it outside my Malrif workshop.

Victim of my own success

Monday, October 8, 2007

En Garde is getting great play, I can see people playing it all day long.

And it's killing my web server.

Every time a game is play, it recalculates the rankings. I can see in my server logs it's taking upwards of ten seconds to do that calculation. That's ten seconds where all my vendors are frozen. And you'll notice it takes at least ten seconds for your new score to be reflected on the board.

Partly it's because I'm running the server on a cheap account, and partly it's because the code isn't as optimized as it could be. So I'll work on the latter.

UPDATE: I've got it down to about five and a half seconds now, which I'll have to live with. Optimizing it further will be quite a bit of work.

En Garde update v1.06

Sunday, October 7, 2007

A new version 1.06 of En Garde is available.

This version updates everything: It includes a new game, new HUD (inside the game), new remote and new scoreboard.

To update your En Garde:

  • Put on your En Garde Remote

  • Do "/8 deliver game"

  • "/8 deliver scoreboard"

  • "/8 deliver remote"

  • Do "/8 derez" to delete your existing game

  • Delete any score boards you have rezzed.

  • Take off your old remote and delete it. Also delete any old copies of the En Garde and HUD you have in your inventory.

  • Rez your new 1.06 game and new scoreboard.

That's all! Usually an update won't include all the pieces like
this, but this update covers a lot of territory.

What's new:

  • The new HUD tries to fix a problem where sometimes attacks turned into advances, putting both players in the same space. If you try to use an old HUD with this game, it will warn you (but still allow you to play)

  • The new remote uses a new method to send deliveries which should be more reliable (I'm getting rid of XMLRPC in my network vendor system)

  • The scoreboard will now update its scores once an hour, even if no games have been played, so you'll see the current World Champion status.

Replacing all my vendors

I've started the long process of replacing all my vendors inworld.

The Procyon web server handles, among other things, my system of network vendors. And it does a pretty good job -- when I need to update a product, I only have to do it in one place. It's especially good for little things like the "Procyon Games Info" card that I only need to update in one place.

Lately though, it's been getting a little creaky. The problem is XML-RPC, which Linden Lab never implemented quite properly and has never fully supported. As Second Life grows, XML-RPC gets slower and slower, and the result is my vendors become slower and slower to respond. I see people clicking things 3 or 4 times because they don't get a free card, and then they get 4 of them dumped on them.

Occasionally, it will just fail completely. That's no good.

So I rewrote the backend, using all HTTP calls, and an email poke. It should be much more responsive, and initial tests are promising. The problem now is, of course, that I have to replace all my inworld vendors, which is something that having a network vendor system is supposed to make never happen.

It's even worse than that, because my games themselves use the vendor system to distribute things like the Procyon Info notecard (that way they always give the latest version). So I'll need to send out updates to all my games.


Saturday, October 6, 2007

I'm finally moved out of La Musique.

The main Procyon store has been situated in Musique's sim for several months now, while I looked at my options after the Arcadia land went away. I finally decided to buy the mainland sim Malrif, and set up shop there. Danger Zone, Frootcake, and En Garde have all been there for some time, but I haven't moved the main store until now.

Now I just have to update all my vendors and landmarks.

I'm also doing a lot of back-end work that won't really be visible to most people. Having to do with replacing the XML-RPC code which never really worked very well. All part of the joy of SL scripting.

En Garde is back!

Thursday, October 4, 2007

Well, they fixed it!

That's got to be a record for time-to-fix for Linden Lab. I was afraid this would be one of those bugs that lingered for months, but it seems enough people got pissed off by it that Soft Linden got enough motivation to actually fix it. And it broke some of his own furniture too. Nothing like having a bug hit you to make you want to fix it.

My own workaround involved using separate prims, and I got that about half completed. I'm keeping the code around "just in case." But I'm glad people can play (and buy!) En Garde again.

Bug fix coming soon

Tuesday, October 2, 2007

The way Linden Lab broke En Garde (and many other items by other creators) is getting some press... see here in SLNN, and Second Life Insider. There's a lot of angry comments in the JIRA tracker, too.

Soft Linden has claimed he's fixed the bug, and a fix will be rolled out before the end of the week. I'm still working on my workaround as a backup plan.

Ordinal Malaprop has chimed in on the debate. If you haven't picked up a copy of her Swordstick, it's still for sale in Malrif and her OnRez shop (but of course, not very functional without the game to play)

En Garde is broken

Monday, October 1, 2007

Well, that was fast.

I found out today that the update Linden Lab just pushed out broke En Garde.

The link for the issue in JIRA is here, if you could go vote on that I'd appreciate it.

I'm being proactive, though. I can't afford to wait for a bug fix that may or may not come, so I'm trying a workaround. Not sure how long it will take.

If you purchased En Garde and would like a refund, just IM me.