You are currently looking at Flamebate, our community forums. Players can discuss the game here, strategize, and role play as their characters.
You need to be logged in to post and to see the uncensored versions of these forums.
- « previous
- 1
- 2
- 3
- « next
A detailed explanation of streaks | |||||||
---|---|---|---|---|---|---|---|
|
ET has the Flu, or so he claims. He is not ignoring this thread. Some good points have been mentioned and I will keep my opinion to myself for the time being (until ET has returned).
B2015 |
||||||
Posted On: 11/13/2008 10:42AM | View BINGEBOT 2015's Profile | # | ||||||
|
Poor hungover bastard. Log in to see images!
Seriously, the flu’s a ****. Feel better, ET. |
||||||
Posted On: 11/13/2008 10:51AM | View markchd's Profile | # | ||||||
|
Hope ET gets to feeling better… then he can explain how the hell some of us have managed to get the 72 streak peen already. I’m hoping my math is just screwed but I’m still lost on how it’s possible someone explain it to me so I don’t kill off my streak on accident |
||||||
Posted On: 11/15/2008 7:32AM | View Beavis-Dragon's Profile | # | ||||||
|
Hey guys!
Okay I think my mistake was trying to use the forum visit history as a way of detecting streaks, when a much simpler approach such as the one McBanhammer suggested would be a lot more effective.
At some point soon I am going to re-code streaking. Unfortunately it’ll involve taking the server down as I’ll be deleting many columns from a huge table and migrating over data to a new table. |
||||||
Posted On: 11/15/2008 10:31AM | View Evil Trout's Profile | # | ||||||
|
Evil Trout Posted:
Woo! optimizing. |
||||||
Posted On: 11/15/2008 11:16AM | View markchd's Profile | # | ||||||
|
okay, let’s look at this http://i38.tinypic.com/4v319s.jpg (didn’t put the pic here ‘cause it’s large) I was on a streak at the beginning of this – there was no fisheries or Urbane earlier in the streak. The FAP should reset everything to zero (or one, if it counts that forum). Clearly it should take at least one more forum to get four in a row, no? |
||||||
Posted On: 11/17/2008 1:36AM | View Catt although's Profile | # | ||||||
MC Banhammer Posted:
Uh, I don’t think that’s actually what you want to do. The idea is we want to break the streak when pwning the a forum that was already in your streak, right? Consider this example:
1. Forum A 2. Forum B 3. Forum C 4. Forum D 5. Forum A 6. Forum E
If you delete all the past history as soon as your find a repeated forum, your algorithm will not necessarily yield the longest streak. In this example, your algorithm calculates the longest streak as ABCD, and the current streak would be AE.
The way I see it, the longest streak here should be BCDAE. So instead of clearing out all the history once you pwn a duplicate forum, you’d just delete the first match and everything earlier than that. entchen edited this message on 11/17/2008 3:35AM |
|||||||
Posted On: 11/17/2008 3:32AM | View entchen's Profile | # | ||||||
(edit: Expanding on the above inspiration…Log in to see images!
Where “a”, “b”, “c”... represents an 8-bit integer (i.e. 0, 1, 2… 253, 254, 255), let the forum pwnage streak be represented by, for example, afuebwks.
Streak length is determined by the dividing strlen (string length) by 4, since it’s counted in increments of 4. This prevents duplicate awards by only awarding the matching award that will be hit right on the integer when it’s obtained. No need to round or perform calculations. In the above example this will be 2.0, or the second streak increment.
Duplicate detection is determined by searching the streak string for the current forum. So, if I continue the above example, we may have just pwned “e” again. afuebwkse. The search would find that “e” was already pwned, and would chop off from the beginning of the string to, and including, the first (and only at that point) occurrence of “e”, and leave us with bwkse. At this point I don’t know how the administration wishes to handle a decremented pwnage streak – one that was chopped down due to a duplication. If you would like to award the new streak, you could divide strlen by 4 and use the integer result. Or if you prefer not to reward the current streak (unless it matched perfectly with a new increment), you could just break out of the computations and continue.
That should chop the size of your database considerably. Log in to see images!
(edit: This would end up only occupying one table row in the users table for the entire streak calculation algorithm, and would simplify – and error-proof- streak calculation considerably. Log in to see images! ) (edit edit: Also, keep in mind that abcdefg… are just representations of the binary integers that can’t be represented on-screen. This allows for one of up to 255 unique forums to be represented, per byte – now that’s information density at its finest. The information doesn’t need to be presented on screen, so it’s safe to use in a binary table field. Just use string length and string position functions, and call MySQL’s library function mysql_real_escape_string when adding data to the database, to ensure it doesn’t get corrupted.) volatus edited this message on 11/17/2008 4:32AM |
|||||||
Posted On: 11/17/2008 4:09AM | View volatus's Profile | # | ||||||
|
Someone please explain to me how in the ever loving hell that GS49 got the 76 streak peen, permanoob or not thats just shady |
||||||
Posted On: 11/17/2008 7:42PM | View Beavis-Dragon's Profile | # | ||||||
Beavis-Dragon Posted:
|
|||||||
Posted On: 11/17/2008 8:44PM | View SG94's Profile | # | ||||||
I’m a bit confused. Should this work the same way as it always did? Basically transparent to us? Or is there a way to ‘lose’ the streak but keep it going? |
|||||||
Posted On: 11/20/2008 9:02PM | View M3wThr33's Profile | # | ||||||
Posted On: 11/23/2008 11:54PM | View volatus's Profile | # | ||||||
|
volatus Posted:
streaks were fixed/updated a few days ago…
http://blog.forumwarz.com/2008/11/20/changes-to-streaking-x-forums-in-a-row |
||||||
Posted On: 11/23/2008 11:59PM | View spacekadt's Profile | # | ||||||
spacekadt Posted:
I know… I saw when ET changed it, and I also see the new “streak status” page (although it’d be nice to have it integrated into the forums list somehow). I’ve been waiting to see an update in this topic though, maybe ET can explain what he actually did.
I did put a bit of time and effort into writing that little post up there… I just want to know it was actually read! |
|||||||
Posted On: 11/24/2008 12:10AM | View volatus's Profile | # | ||||||
|
volatus Posted:
I didn’t respond to this because I already addressed how streaks would work on the blog. I went with McBanhammer’s solution.
If you want feedback on your post, I find it a poor solution. Encoding things into strings make it way more complicated for no obvious reason. The disk space savings aren’t worth the difficulty in querying or complicated and error prone nature of the programming.
I just used a streaks table. It’s (forum_id, character_id). If there’s a duplicate constraint the streak is reset. If you die, the next time you enter a forum the streak is reset. It’s working well now!
|
||||||
Posted On: 11/24/2008 1:48PM | View Evil Trout's Profile | # | ||||||
Evil Trout Posted:
I… really don’t see how it can make things “more complicated”. In fact, it significantly simplifies the implementation! No need to make any queries at all to check for anything… you just run simple string-search and string-chopping functions, which by themselves are even faster than preg_match (perl regular expressions – also not necessary here), and ITSELF is even faster than a single MySQL query! It’s like an all-you-can-eat buffet of optimizations and simplified code, and it really quite boggles my mind as to how you can say it’s “more complicated”...
Perhaps we’re not understanding it the same way? |
|||||||
Posted On: 11/24/2008 2:00PM | View volatus's Profile | # | ||||||
|
volatus Posted:
That string has to be stored in the database right?
So to read it, you need to query. To write it, you need to write a query to do that.
Now, from an efficiency point of view, looking for the occurrence of a letter in a string is slower than querying a database by index. Finding a letter in a string is O(n), finding a row by index in a database is O(n log n)
Not to mention, with the database index you get a guarantee that the same forum can’t be in there twice. With your method there is no guarantee of data integrity.
And many other reasons… |
||||||
Posted On: 11/24/2008 2:17PM | View Evil Trout's Profile | # | ||||||
- « previous
- 1
- 2
- 3
- « next