Why EA is not entirely to blame for the lack of foresight that is BF2

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Vasquez

    #1

    Why EA is not entirely to blame for the lack of foresight that is BF2

    I know I'm going to get a whole bunch of flames for this post, perhaps along the lines of:

    "If you don't like it, don't play it" (But I do like it, but I also like voicing my opinion...)
    "Think you could do better idiot?!" (If I had the time, perhaps...)
    "Upgrade your hardware f00l!" (I have good hardware, but please read...)

    But anyway, on to the nitty gritty.

    As a software engineer, I find it hard to believe that this game requires 1gb of memory, regardless of what the recommendations are on the box. Ask any good game programmer what one of the most difficult tasks in writing game software is, as they will inevitably mention that of resource management. In laymans terms, that is the ability for the software to detect what textures/sounds/animations it needs at any one time and to bring them in (and here's the key point) before they are needed and not dispose of them when they're still needed, whilst still providing an emmersive, lag-free environment. Many games have achieved this in less than 1gb of memory, yet BF2 struggles. I wonder why.

    My forte is not in 3D programming, even if I have an understanding of the mechanics and the engineering behind it. There's no doubt that the BF2 engine is impressive. It does the job, with good effect and (usually) at a decent frame rate, but I truely believe that it achieves that on a "fat" basis, without being smart. It requires high-end hardware because the engineers couldn't (or wouldn't, perhaps) spend the time to make it efficient. If you know better, then please correct me, but I believe that the 3D engine is a hog because it's not very good. Pretty, yes. Effective, also. Intelligent? Dumb as a brick.

    Now, let us go on to networking. I've done a few game networking protocols in my time, the principles stay the same (in a nutshell, keep everybody updated with as little information as possible whilst staying flexible)... but what concerns me the most is the server browser... "Why do you pick on such a small item?!", I hear you cry. Notice it freeze when you click on a server? That little spinning "2" icon?

    One of the GOLDEN rules of network programming, is that you do not do your network processing on the same thread as the user-interface. Otherwise you'll get a clunk-clunk experience, as is displayed by the BF2 browser. It was thrown together in a couple of days, I'm serious. It's not difficult to do asynchronous socket programming, and I hope to hell their actual in-game network programming isn't using a synchronous model, but sometimes I wonder, but that might just be me.

    The reason you don't do this is simple. Whilst the network library is resolving hostnames, getting information, it doesn't happen straight away in the blink of an eye (according to the software). Good engineers put this on a different thread, use I/O completion ports or (even worse, but still better) windows messages to determine when these operations are completed. Using this method, your browser remains interactive and responsive.

    bad engineers could respond with "But, what if the user clicks on another server whilst you're collecting data on the first one they clicked on!? huh?"... again, it's down to good design patterns. They exist, they're not that hard...


    EA/DICE do have a good product. I had to rant a little because they've evidently not thought about some principles that a commercial game in this day and age, should really be exhibiting.


    Rant off, I'm waiting for the flames, and I'll respond as best I can. Peace out :)
  • a1pointguard

    #2
    Re: Why EA is not entirely to blame for the lack of foresight that is BF2

    I didn't read all of it. But all of the BF games are RAM whores.

    Comment

    • L3adcannon

      #3
      Re: Why EA is not entirely to blame for the lack of foresight that is BF2

      Originally posted by Vasquez
      what he said
      Well this is probably the smartest post around here.
      Now i wanna souind smart too and ask. Why did they use zip to pack all that stuff. Like, there has to be smthing better and faster out there

      Comment

      • Vasquez

        #4
        Re: Why EA is not entirely to blame for the lack of foresight that is BF2

        Originally posted by L3adCannon
        Well this is probably the smartest post around here.
        Now i wanna souind smart too and ask. Why did they use zip to pack all that stuff. Like, there has to be smthing better and faster out there
        This is one that confused me. By compressing levels in to ZIP files, they drastically reduce the amount of space required on a HD to store the stuff. Vectors and images compress good, so you get great space-savers.

        However they require that the computer that BF2 is run on be superhuman in all other respects other than HD space, which is interesting. A good approach would have been for the loader to detect whether a .zip file exists OR whether a decompressed version exists and load that instead. That would mean that those of us with spare HD space could have all the levels decompressed, giving us faster loading-times. Those with little to spare can keep them zipped, but with longer loading times.

        Again, it's down to lack of foresight. It's easier to load stuff that is not compressed, so it wouldn't have been difficult to put in some code that looked for both...

        Comment

        • imported_Fig

          #5
          Re: Why EA is not entirely to blame for the lack of foresight that is BF2

          Vasquez, I'm no programmer, but I get the jist of what you are saying.

          In a nutshell: BF2 is bad at memory management, it doesn't do it intelligently, it just keeps everything that is in one level in your RAM at the same time.

          Would this explain memory leakage? In the rare lapses of time I've played BF2 for more than 4 hours straight, I notice my fps has dropped from 45 to 35 on average... (I have a 6800GT at Ultra clockings, 2 gigs RAM and AMD 3500+ processory, so its not me.)

          I understand what you mean with the server searching client as well. Its crap. When it is searching for stuff, your FPS actually go down. Fraps shows it go down from 75 to 2 or 1, I've even got 0 a couple times (which means its so low that fraps is rounding it to 0) while its searching for servers. Not to mention the fps drop whenever you click on any sort of function in the server browser. ANY.

          An example of an efficient engine would be somethign like Half life 2, no? It can run levels with more detail, better graphical and audio quality (smaller levels though) at double the fps of BF2 on my comp.

          I hereby post the second on topic response. Other than Lead, the rest of you numnuts, you are the kind of guys who ruin and waste away forums, posting worthless **** like: "I'm sleepy" and "That was long." Tottally pointless, don't add anything to the conversation. Go home.

          Comment

          • o0|REDRUM|0o

            #6
            Re: Why EA is not entirely to blame for the lack of foresight that is BF2

            Has anyone tried unzipping the files? I remember in Doom 3 that you could decompress all the files to their default location for a good performance increase. I wonder if it would work with BF2? I would try it myself, but after spending about 15 hours to get patched to 1.03 and getting online, im not risking doing that over again.

            Comment

            • imported_Fig

              #7
              Re: Why EA is not entirely to blame for the lack of foresight that is BF2

              I nominate uber coder Vasquez to anaylze and possibly test that.

              Comment

              • Jesse

                #8
                Re: Why EA is not entirely to blame for the lack of foresight that is BF2

                Bravo! A nice read indeed. Anyone who can read something called multiple paragraphs, it IS worth your time. If you come out of that saying BF2 is perfect, you have problems and I suggest professional help in the form of a doctor, counselling, or both. :P

                But yeah, I've thought for some time that DICE doesn't really have the know-how in efficient programming. BF2 to me looks like they did everything in the "brute-force" sort of way, and the computers have to pay the price. The server browser should at LEAST be able to sort things 99.999% of the time (there are times when things screw up in computers, so I'm allowing for that error in that %) it's nothing but simple string comparison, which C++ provides functions for in it's standard library. There's NO EXCUSE for DICE to not be able to code that right, they don't even have to write most of the functions for it as it's already built into the language they wrote BF2 in.

                I've also wondered about the .zip files ever since....the demo? I looked at it and was rather disappointed. I miss the .rfa format to say the least. But if these .zip files could be completely unzipped into a folder, this would not only help on the machines but modders as well as they don't have to deal with them and can directly edit. Best of both worlds. No idea why the game went this way. =/

                Comment

                • soraflair

                  #9
                  Re: Why EA is not entirely to blame for the lack of foresight that is BF2

                  Good job man, this truely points out the flaws of the game in a mature way. Go post this on E.A.'s forums. Im sure Proganist will do something about it. Make sure you make the title about what you said here. (Programing and whatnot)

                  Comment

                  • o0|REDRUM|0o

                    #10
                    Re: Why EA is not entirely to blame for the lack of foresight that is BF2

                    Originally posted by Fig
                    I nominate uber coder Vasquez to anaylze and possibly test that.
                    I second the nomination.

                    All in favor say I......

                    Comment

                    • imported_goya

                      #11
                      Re: Why EA is not entirely to blame for the lack of foresight that is BF2

                      i'm not genious all would agree, but why did they not use the code from bf1942?

                      Comment

                      • imported_Fig

                        #12
                        Re: Why EA is not entirely to blame for the lack of foresight that is BF2

                        Originally posted by soraflair
                        Good job man, this truely points out the flaws of the game in a mature way. Go post this on E.A.'s forums. Im sure Proganist will do something about it. Make sure you make the title about what you said here. (Programing and whatnot)
                        I second THAT motion.

                        Post it on the official UK forums, I bet you within 3 days the thread will be deleted or moved into archives (or somehow otherwise unnacesible).

                        If you post exactly what you posted here there, you'll get about 60% of people replying being retards with comments like "uhh...." and 30% people who are basically saying "yup, i understand that, and you are right" and 10% people who try to say "stop dissing DICE"

                        Protaganist will likely have little comment other than he thinks its rude to insult the DICE coding abilty or something like that.

                        Comment

                        • -(PK)-DarkIllusion

                          #13
                          Re: Why EA is not entirely to blame for the lack of foresight that is BF2

                          Originally posted by goya
                          i'm not genious all would agree, but why did they not use the code from bf1942?
                          cuz the game would look like DC.. i dont think we would of bought it...
                          anyways...


                          i've read the same thing on another thread a long time ago.. bout y the loading times r long.. cuz the game has to unzip all the files...

                          Comment

                          • imported_goya

                            #14
                            Re: Why EA is not entirely to blame for the lack of foresight that is BF2

                            Originally posted by -(PK)-DarkIllusion
                            cuz the game would look like DC.. i dont think we would of bought it...
                            anyways...


                            i've read the same thing on another thread a long time ago.. bout y the loading times r long.. cuz the game has to unzip all the files...
                            i'm not talking about the game. i'm talking about the network code and the server browser code. that seem to work fine in bf1942.

                            Comment

                            • Thameth

                              #15
                              Re: Why EA is not entirely to blame for the lack of foresight that is BF2

                              Originally posted by goya
                              i'm not talking about the game. i'm talking about the network code and the server browser code. that seem to work fine in bf1942.
                              BF42 had rants about bad browser and netcode too, everything else in the game was done well.

                              Comment

                              Working...