In an attempt to further improve the quality of experience here at SDG, I am making the entire site's source code publically available. The hope is that those out there that are coders may find it interesting and be able to make suggestions as to larger-scale improvements. Non-coders will not likely find this page and its contents of any value. A secondary aim is to perhaps generate sufficient understanding of the code to allow others to host the service should I be suddenly unable or (even better) run a series of mirror sites that would eliminate me as the single point-of-failure.
The Super Duper Games source code, ancillary database schemas, and any other code available from this page are being made available under the GNU Public License (GPL). Obvious exceptions are of course any material I do not actually have rights to, namely local copies of games rules, proprietary images, etc…
Copyright (C) 2006 Aaron Dalton
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
As with any creative work, this code is intensely personal to me. I am releasing it despite my inner fears and insecurities regarding its form. I am not a professional programmer, nor did I do any preliminary planning before starting the SDG project back in 2004/2005. The site has grown organically, which almost by very definition means chaotically. There are many, many things I would do differently now if I were to start from scratch. Please be patient as you begin your study of this project. That said, I have pretty thick skin and I remain completely open to your feedback and suggestions.
One can always email me directly for assistance; however, the preferred way to ask questions is via the forum especially created for this purpose so that others can benefit also.
Well, security through obfuscation is really no security at all. With the code open, any glaring holes can maybe now be found by fresh eyes and fixed. No user information is disclosed here, nor are any vital system passwords. The MySQL passwords you will see throughout the code are useless without direct local access to the database server. SDG, like every other web application out there, relies on cookies to manage user interactions. There are inherent risks with such a system. Should an attacker hijack an active session, they can indeed impersonate you on the site. Steps have been taken to make sure any changes to personal information are relayed to your email address (including changes to your email address). You should take all normal precautions you normally would including, but not limited to, a) never clicking on links from untrusted sources, b) never publically disclosing your passwords, and c) explicitely logging off when using shared machines. I have taken great pains to protect against XSS attacks by sanitizing all user input. If you discover a hole, please report it immediately. In the end, there are no guarantees. Fortunately SDG does not provide any vital services nor hosts any personally vital information.
The following archives include the actual source for the site (both HTML and Perl) as well as the necessary MySQL database schemas. Data dumps of the MySQL tables are not yet available due to size. (The full data dump is almost 500MB in size, which is intractable. I need to figure out the bare minimum to include.)
Below are archives of all closed games as of the given date. The data is in YAML format. Munging this data will require some programming skills. If you have a specific format you need, or just need certain information, I may be able to process that for you. Please visit the SDG Source Code forum for assistance.
There is so much to say about the code that I myself don't know where to start. Please visit the forums and ask away!