Kjgmusic blogged

Neoseeker Raffle: Behind The Scenes

I have received a lot of questions regarding the Neo Raffle and what goes into running it. This post will detail the system that is used to coordinate Neo Raffle, and a bit of history behind it as an event.

History

The Neoseeker Raffle started in 2008 as a way to replace the annual Neoseeker Slave Auctions. The administration of Neoseeker and a number of moderators and members thought that the Neo Slave Auctions had grown stale and meaningless. Instead of entirely scrapping the slavery concept, we sought a method to come up with something new that still incorporated slavery. The Neo Raffle was born.

The Neo Raffle System

Introduction

Upon analyzing the depth of the Neoseeker Raffle and how complicated of an event it is, I determined that it would be best to use some sort of coded system with a database instead of doing everything by hand. There is so much to keep track of... auctions, raffles, bids, tickets, alternate accounts, post offsets, eligibility to buy (more) items...

I used my knowledge in PHP to begin coding a system. The beginning functions of the system were "list items," "add an item," "add a ticket/bid," "manual post offset," "select winners," and "lookup user." This was enough to get the job done but there was still much work left to be done by hand: input the data, calculate the posts and make sure people didn't go over their limits (which happens frequently)...

Raffle Points

The first huge upgrade to the system was point calculations. The PHP system goes to your profile and grabs your post count and NeoPoints, then goes to your GameGrep profile to check for GG points. Then it sees if you have any post offsets or accounts linked with your own and adds it to that amount. The amount of points you have already spent is automatically subtracted from this "points available" number, and then it checks to see if you have enough points for what you're trying to get.

This was the scope of the raffle system's functionality in 2008. It was extremely useful and expedited the process of running the raffle significantly. Over the course of 2008, I learned a number of new techniques, and decided to incorporate them into the system for use in Neoseeker Raffle 2009.

Automatic PMs

The Neoseeker Raffle system was given NeoPM functionality. I programmed it to send you a PM from Neo Raffle if you were outbid on an item, if you tried to spend more than you had, or if an alternate account was linked with yours. Additionally, the Raffle Lookup account was started as a way for users to look up available points without allowing anyone to look up anyone's points for privacy reasons. The script ran every five minutes and checked the PMs of the Raffle Lookup account, and reacted to any PM titled "Lookup."

Automatic First Post Updating

Last year, the Neoseeker Raffle system would generate the markup for me to copy and paste into the first posts of the thread. However, this year, all I had to do was click a button and it would update for me. This made updating the first post completely painless.

Automatic Thread Prowling

The hugest update to the Neoseeker Raffle system was the implementation of automatic updating by prowling the thread. It would look at a specified page of the thread for either of the forms (raffle or auction) and do all of the input work for me. Unfortunately, this means a few bids/tickets were missed, due to the form being filled out incorrectly, or an error on the server's part. However, the script will be updated for next Raffle to ensure minimal posts are missed.

Planned Improvements

I have a number of improvements planned for the next time the raffle system is used. Aside from fixing some bugs and making sure that all forms are detected (even if you don't follow instructions and modify the form :(), I have a few other ideas, and would love to hear yours too!

Completely Automatic Updates

One problem that the Raffle had was my own personal time schedule. While all I had to do was copy and paste the URL of a page and wait for the system to do its magic, often I did not have the time to do this. Next time, the system will do it on its own every 30 minutes or so.

PM Updates

Another problem that we had this year was people not knowing if their bids or tickets were counted (even though there was the Raffle Lookup system :(), so next time the system is used it will incorporate PMs every hour or so (haven't decided exactly yet), giving you an "update" if you bought anything. I was going to make it so that whenever you bought a bid or a ticket, you would get a PM, but I concluded that would get excessive for people who bought 15-20 different items.

Your Suggestions?

I am completely open to any suggestions you may have to make the system run better. Let me know via PM if you have any ideas!

Conclusion

The Raffle is an extremely fun event to run, and the system was extremely fun and enriching to code. All in all, it comprises 2375 lines of code. If you have any more detailed questions about the system, feel free to ask in the comments or via PM and I'd be more than happy to elaborate. :)

Responses (24)

1 thumbs!
#
Tainted Jan 27, 09
My suggestion: Don't discriminate against those people who contribute so much to the site. Let them bask in the glory of being a healthy contributor by spending their hard earned Neopoints in the Raffle!

Great job running the Raffle this year though! Everything went excellently, to be sure.
1 thumbs!
#
Kjgmusic Jan 27, 09
I completely agree with you, that contributors should be rewarded as much as posters, but the problem that I had is the distribution of NeoPoints. There are under 40 people who have over 2000 NeoPoints, the limit that I imposed. I feel like it would be giving too much buying power to too few people if I added NeoPoints at face value...
1 thumbs!
#
Artificer Jan 27, 09
Use a logarithmic scale for how many raffle points come from Neopoints then.
1 thumbs!
#
Dark Arcanine Jan 28, 09
Is it really a problem if people don't contribute as much as others? It seems to me like saying you'd cap posts because some people post a lot and others don't. I don't mean to be rude, but NeoPoints if anything should be worth more. They contribute a lot more to Neoseeker unless it's something important.
1 thumbs!
#
Kjgmusic Jan 28, 09
A logarithmic scale is definitely something that I will investigate. I understand that NeoPoints are arguably more valuable to the community than a lot of posts are, but in order to make the Neo Raffle a fair event for everyone, the playing field should be level. On this decision, it will be all about finding a compromise between fairness and appropriate rewards for those who contribute.
1 thumbs!
#
The Lost Soul Jan 27, 09
I'm looking forward to the updates next year, especially the self-updating feature. It was rather annoying when I'd come home from school and see about 15 PMs telling me I had been outbid at about 8:30 in a bid war the night before. I did, however, have a problem with the Raffle Lookup account. I tried several times to find out how many points I had left, and it never worked. I ended up having to track of everything in a Word document.
1 thumbs!
#
Kjgmusic Jan 28, 09
Haha, apologies. I discovered that bug late in the game. I wish you would have said something! There was an issue with users who have spaces in their names; the system didn't process it correctly. I fixed it about a day or two before the Raffle was over... but at least it will work next year.
1 thumbs!
#
Eunoia Jan 28, 09
PM updates would've been cool anyway.
Just to make sure that people who bid or bought last Sunday (Like me) was sure their post counted.
1 thumbs!
#
Bri Jan 28, 09
From what I can tell, you streamlined the Raffle into a relatively organized, clear, concise and most importantly, accurate event KJG. It truly raises the bar in terms of a Neoseeker community event, it really lived up to its potential as a way to get users involved.
1 thumbs!
#
Dark Arcanine Jan 28, 09
I thought the way you run it was great in general.
1 thumbs!
#
Vermillion Jan 28, 09
Did you just use PHP (and a Database) do to this? Or did you end up doing some modifications? I noticed everything was automatic the moment I started to buy items, and I think it is a really cool system. How did you the script to check for new PMs, and check the thread every certain time, to check the user posts, and such? Your project does make my head explode D=.

1 thumbs!
#
Kjgmusic Jan 28, 09
It grabs the full HTML of the page (there are several PHP functions that do this) and then uses Regular Expressions to parse out the information I want.

Thanks for the good comments, by the way, everyone.
1 thumbs!
#
Xenctuary Jan 30, 09
This is sometimes referred to as "scraping".
1 thumbs!
#
Kjgmusic Jan 28, 09
Oh, and to further answer your question, yes; it only uses PHP and mySQL.
1 thumbs!
#
bobbonew Jan 28, 09
How do you submit $_POST vars via PHP to neoseeker? Would be interesting to know how you actually sent the pms.

BTW, I do not think the playing field is even at all. If your going to impose limits on GG points and Neopoints, you should impose limits on posts as well to make it a level playing field. By limiting people's posts, a wider variety of members would be winners, as well as making all players closely watch where they are dropping their points.

Say if you capped it at 5,000 or so, you couldn't have member A who has 25,000 posts just drop 5k tickets here or there but have to actually watch what they spend just like members like myself and many others. Just because I have a post count of under 5k doesn't mean I should have a rough time in the competition. I've been here since 2002 and like many other 02 and other long year members I do not have a post count of above 15k. [/rant] but yeah think about it! It would cause so much bitching, but make things so much more fair.
1 thumbs!
#
Dark Arcanine Jan 28, 09
To further that, the only reason people other myself and bobbo don't bring posts up is because it's the easiest thing to do, so they're not about to complain and lose their chances. I honestly think letting people have their full amounts of everything, or capping everything, is the only way to go if you want to be fair. Though having said that, people with lots of NeoPoints generally don't have that many posts... or even sign on to Neoseeker much or at all anymore while high posters are a constant.
1 thumbs!
#
Kjgmusic Jan 30, 09
In regards to this matter, I'm going to ask the opinion of the public in the feedback thread. Personally, at this point I'm most inclined to take everything at face value next year (no limitations), but we'll see what most people think. And don't worry, I'll be sure to consider the opinions of the people who have tons of NeoPoints and no posts too.
1 thumbs!
#
bobbonew Jan 28, 09
And gg running the competition, I was very impressed bud!
1 thumbs!
#
Spiritual Jan 28, 09


      That is a large code, but it definitely made the neo raffle a lot easier for all of you! Great work on it .


1 thumbs!
#
Twisted Jan 28, 09
Holy crap, thats a huge code. @__@

It went really well this year, it was pretty awesome. (:
1 thumbs!
#
kik36 Jan 29, 09
Thanks for setting all of that up, I had a lot of fun with it.
1 thumbs!
#
Kjgmusic Jan 30, 09
Thanks for the positive comments, everyone
1 thumbs!
#
Searle Jan 30, 09
Haha, Well Done On It All, Sounds Confusing Tbh XD Thanks For Giving Up Your Time To Do It *Claps*
0 thumbs!
#
DragonPirateZolo Jun 21, 09
Posts are worthless when you think about it. The thing that matter the most are neo points. I think they should make Neo Points worth more than other points.
Advertisements
  • 23 NeoLove
  • US
  • Joined 2002
Most recent posts
(0.0369/d/www1)