1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

We made it! 10 Years, and whats next?

Discussion in 'News' started by Wilson212, Jun 14, 2016.

  1. Wilson212

    Wilson212 Administrator Staff Member

    Hello friends! I wanted to make a special post to celebrate 10 years of bf2statistics! I never would have guessed when I first signed up to this site in 2007 that I would be here, still after 9 years using this system and actively working on this system (as the main dev at that!) . I would like to personally thank MrNiceGuy for keeping this project online, even after many other battlefield 2 sites continue to disappear from the web day after day. I personally have gotten so much joy out of using this system, that I will never forget it nor the great times I had while using it. I can also gives thanks to this project, as it sparked my desire to begin programming, which has led my to where I am today, about to graduate college and begin a career in this sort of field!

    In light of 10 years, I want to do something special as a token of my appreciation to bf2statistics. I decided that for the next couple of months, I will be working on bf2statistics version 3.0! This will be the last major update to this system, but it has been something I have wanted to do for years now. So whats going to be changed in 3.0? Let me describe each major change below:

    Database Normalization: After taking some college courses on database design and organization, I have come to realize just how poorly designed the original database tables are (not to be offensive in any way of course :) ). There are no foreign key relationships between tables, and many player related tables are a 1:1 (one to one) relationship, which is considered bad design in nearly every situation. Databases are designed with a 1:M (one to many) relationship pattern, and this is how the new database will be designed.

    To give you an example, I will point you to the army table... each player will have just a single row in the army table, with each army having 7 columns (wins, losses, brnd, time, score, best, worst). so for 13 armies, that is already 91 columns not including the player id column. The new table will only consists of 9 columns, and each time a player plays an army (as found in the snapshot) that they have not played before, a new row will be created using the player id and the army id as the primary key. Let me show you the new table design (using SQLite format):
    CREATE TABLE "player_army" (
      "id" INTEGER NOT NULL,   -- The army ID as defined in the constants.py
      "pid" INTEGER NOT NULL,  -- The Player ID
      "time" INTEGER NOT NULL DEFAULT 0,    -- Total time played as this army
      "wins" INTEGER NOT NULL DEFAULT 0,    -- Number of wins
      "losses" INTEGER NOT NULL DEFAULT 0,    -- Number of losses
      "score" INTEGER NOT NULL DEFAULT 0,    -- Total Score
      "best" INTEGER NOT NULL DEFAULT 0,    -- Best Score
      "worst" INTEGER NOT NULL DEFAULT 0,    -- Worst Score
      "brnd" INTEGER NOT NULL DEFAULT 0,    -- Indicates how many times player was top player in the round
      PRIMARY KEY("pid", "id"),
    I also found throughout the years, that some particular pieces of data that I personally wanted to see saved in the database was missing from the original design.

    Rewritten ASP: I was never a fan of using .aspx files in the ASP, which is written in PHP. It made the old system a little bit rough around the edges when setting everything up. In the new ASP that I have been working on for almost 4 years now, we will use mod_rewrite to redirect the page requests accordingly. By using mod_rewrite, setup requires much less effort from the user and becomes much less error prone (gone are the days when Test Config fails!). The code base for the new ASP is a lot easier to read and understand in today's coding standards.

    That is all I have for now. I will try and keep this post updated as I move along in this journey. For now though, I would like to post a link from the Wayback Machine of some of the early days for bf2statistics :D enjoy! https://web.archive.org/web/20061005013656/http://www.bf2statistics.com/news.php

    Last edited: Jun 16, 2016
  2. sky890529

    sky890529 New Member

    I am looking forward to the next version,Will always support you.
    MrNiceGuy and Wilson212 like this.
  3. Malikster

    Malikster New Member

    Thank you for all your hard work!
    MrNiceGuy likes this.
  4. Joined: Feb 8, 2006.. ive bin hear a long time wilson.. allways loved bf2 and will do so as long as im alive and as long as you keep doing what you do :) thanks for your hard work and not forgetting Mr Nice Guy who done a VNC link to my pc wean i first started this to help me with my server side. great work from a great TEAM thank you :)
    MrNiceGuy and Wilson212 like this.
  5. beijifeng

    beijifeng New Member

    MrNiceGuy likes this.
  6. MrNiceGuy

    MrNiceGuy Founder Staff Member

    Thank you for keeping this project alive @Wilson212, it would never have come this far without you. :D

    I am really proud that i did what i did 10 years ago, even though it pissed off a lot of people, i had a vision and that was to give everyone the possibility to play BF2 on LAN with the same statistics as the EA servers provided.

    This is mainly because of the statistics system i used for BF 1942 before BF2 came out.

    EA gave us some resistance and changed the game files to check if the hosts file was changed, and collaborated with the developer i was a beta tester for, before i bailed out with all the knowledge i had acquired from all the testing.

    I chose to bail on the project, because they was heading down the road of a centralized sign up based server stats system, with no LAN abilities, and that was of course not what i wanted, i wanted a system that would benefit everyone who wanted to play, even without internet on a closed LAN.

    Then BF2statistics was born, out of my head and onto a really gifted coder, who claimed he could quote: "code a perfect circle around anyone" as he said, not really sure what that means, but he did the biggest file in just 3 days, i have never seen anyone do such amounts of coding ever before or since then.

    I "sacrificed" 1 year of my life for this to come alive, almost on a daily basis. So i am really really glad to see it being kept alive, and to see all that benefit of this project now 10 years later! :)

    I remember that VNC session @S*DADY*ASH*TF* :D Thanks for staying with us all this time!
    Last edited: Nov 5, 2016
  7. im on windows 10 now and i cant get the stats to work on bf2statistics control center 2.3.5
    wean i start the start game spy server it says
    at BF2Statistics.Database.DatabaseDriver.Connect() in D:\Programming\C#\Projects\BF2Statistics\BF2Statistics\Database\DatabaseDriver.cs:line 101
    at BF2Statistics.Database.StatsDatabase..ctor() in D:\Programming\C#\Projects\BF2Statistics\BF2Statistics\Database\StatsDatabase.cs:line 100
    at BF2Statistics.Web.HttpServer.Start() in D:\Programming\C#\Projects\BF2Statistics\BF2Statistics\Web\HttpServer.cs:line 162
    at BF2Statistics.MainForm.<>c.<StartAspServerBtn_Click>b__49_0() in D:\Programming\C#\Projects\BF2Statistics\BF2Statistics\UI\MainForm.cs:line 1231
    at System.Threading.Tasks.Task.InnerInvoke()
    at System.Threading.Tasks.Task.Execute()
    --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at BF2Statistics.MainForm.<StartAspServerBtn_Click>d__49.MoveNext() in D:\Programming\C#\Projects\BF2Statistics\BF2Statistics\UI\MainForm.cs:line 1231

    is it because im on windows 10 or just stupid LOL
  8. Wilson212

    Wilson212 Administrator Staff Member

    That is just a stack trace, a sort of list of actions that occurred right up to the point of error, not the actual error itself. What message is said exactly (minus the stack trace)? From the looks of it, it seems that the control center cannot connect to the database.. are you using SQLite or MySQL?
  9. thanks for the help even tho u didn`t no u help me but now im useing sqlite.. :)
  10. ttitt

    ttitt New Member

    Come , 加我QQ:378797263,tk
  11. DungDemo

    DungDemo New Member

    Thank you for all your hard work!
  12. SharK

    SharK Member

    BF2statistics version 3.0 will for the web edition?
    Last edited: Dec 1, 2016
    MrNiceGuy likes this.
  13. brdempsey69

    brdempsey69 New Member

    Late post, but I am so glad this project took place and kept BF2 alive & that I'm still able to play and enjoy this great game to the fullest. Thanks for all your hard work & thanks to the BF2 single player guys for implementing bot support in the 64 player sized maps. Nothing but sheer gaming bliss. I have muliple computers on a LAN network and own 3 copies of BF2. I tried BF3, but the format of that game is all wrong & no bot support in the large scale multi-player maps ruined BF3.
    MrNiceGuy likes this.
  14. Wilson212

    Wilson212 Administrator Staff Member

    Just to give everyone an update. Im sorry that version 3.0 did not appear in 2016! I am currently working on it now however, and am looking at a March release date. The new ASP will be designed for larger clans and communities, unlike versions 1 and 2. This new ASP will integrate with a newer version of the Login server as well, for further added security, features and performance. I will go ahead and leave this screenshot here so you can see progress :)

    Last edited: Feb 14, 2017
    SharK and MrNiceGuy like this.
  15. MrNiceGuy

    MrNiceGuy Founder Staff Member

    That's looking really good @Wilson212 Great job! :)
    Wilson212 likes this.
  16. beijifeng

    beijifeng New Member

    It's good jobs. this is a very good project, sincere greetings from Chinese players.
    MrNiceGuy and Wilson212 like this.
  17. Wilson212

    Wilson212 Administrator Staff Member

    Last edited: Mar 17, 2017