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. :)
Great job running the Raffle this year though! Everything went excellently, to be sure.
Just to make sure that people who bid or bought last Sunday (Like me) was sure their post counted.
Thanks for the good comments, by the way, everyone.
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.
That is a large code, but it definitely made the neo raffle a lot easier for all of you! Great work on it .
It went really well this year, it was pretty awesome. (: