Wednesday, June 22, 2005


Yesterday the producer of Battlefield2 answered some questions in a chat. I particularly took notice of the following.

*Importfan85* how many different game types will there be?

[EA]ScottyRotten: Battlefield 2 is conquest only. We've been asked before why that is and the question is basically user interest. We measured the number of people playing the other game modes (Deathmatch, etc.) in BF1942 and the numbers were quite small. Therefore we decided on focusing on other parts of the game like the teamplay features.

Ok. So they looked at Battlefield 1942 and BFV, found that almost nobody played Deathmatch given a choice between Conquest and Deathmatch ( there really aren't more gamemodes ).

I can fairly understand that they scraped Deathmatch for this. But how they made the connection that Conquest would be the only thing gamers ever wanted to play is a miracle to me.

Tuesday, June 21, 2005

Shit infestation

Warning, if you think ATL and MFC are enjoyable API expiriences, you should not read this.

I'm working in a project making a product that needs to cross-compile against both Solars and Windows. For this you obviously need unified interfaces for containers.

Trough some history I'm glad not to have been involved, the choice fell on the Microsoft flavor of containers and API's, coming from ATL and MFC.

Obviously I'm not a fan of these APIs. I'm hardly a fan of the STL, but I hink its interface is as close as you get to coherent and nice as is possible in a language like C++.
Of course I think coherent and nice are important properties in code, if you disagree there's again no point in reading along, go troll some Blogs about how great Windows XP is.

The choice to take proprietary containers from M$ not only led to the lamentable situation that these actually had to be implemented on unix by this project. It also lead to a complete mess whenever you start using std:: containers. For this reason std:: containers are shunned, and everything that works on them.
If you don't know ATL, rest assured, iterators are not supported.
No! You can't go and iterate like for( contType::iterator i=x.beg(); i!=x.end(); i++ ) (of course this is a far cry from "for x in y" of python) but hey, as good as it gets aye?

Well the point of this post? I'm annoyed. Even though I'm not on windows, and even though what we programm right now is never going to work on windows, I still have to cope with their moronic excuse of containers.

That's what the natives from where I come call a shit infestation.

Sunday, June 19, 2005

Battlefield 2 Modding

I'm toying with modding Battlefield 2, and for that purpose I'm putting up a reference page of it.

It's a lot of work specially documenting the stuff that isn't there as source. I also noticed that there's rather an abundance of API's the engine exposes, that aren't used at ally by any python.
I also came by some classes that seem to be created dynamically by C++ code, or be plugged together by other means. Thinking about it now, I've the suspicion more then what is visibile already in the Demo is scripted in python. I'll try to explore that later on.

Wednesday, June 15, 2005

Battlefield 2

This post is going to be about three things: Battlefield 2, my new hardware to play it and the python embedding they do.

Battlefield 2
This is simply an awesome game. A demo has just come out, and it is in many many aspects so much more and better then the previous battlefield. There are some issues I have, which would namely be the ingame browser and a bit of the loading slowness spread everywhere. But apart from that it's absolutely superb.

Battlefield 2 hardware
I was merrily happy before with a geforce 5900ultra on a nforce2 board. So this time I went for an nforce4 board. I was buying the geforce 6800ultra. At the time I decided cutting back for the processor is pointless, and bought a Clawhammer fx-55. Beeing trough that decision I thought it's silly to cut back at all, and bought the second 6800ultra for the SLI setup.
Bear with me, I know that for some things the SLI setup is a bit slower then the fastest ATI cards, but there's many considerations for me why I buy only geforces. I won't bore you however with them. I needn't be told either that the price/performance comparision for this setup is quite shitty.
Well, a friend of mine summarized it pretty good. "Dude you've just spend 400$ on a graphics card, and you've a surplus of fourty times that money, run for it or let it be!"
I'm still amazed about my own buying decisions not based on any practical considerations :D

Battlefield 2 and python
I was amazed to see that to some extend battlefield 2 uses python. I'm still figuring out the details, and digging my way trough the classes and interfaces. I have quite high hopes that this will make for some very interesting modding.

Friday, June 10, 2005

Full text indexer

It took me 15 minutes today to write a simple full-text indexer for source code, using shlex and zodb. It accesses a 20Mb database below a notable delay. It will save me endless hours of using find/grep on the ~3600 header files I find myself searching pretty often.

Implementation time: 15 minutes. Retriever 15 lines of code. Indexer 37 lines of code. Time not spend using find/grep, priceless.

Thursday, June 09, 2005

Negative reinforcement works!

Yet again I work in a C++ project. The deadline looms closer. We've no working system, a lack of specification, people working on their modules in autism mode and general confusion about what we're doing anyway.
Personally I've been struggling with an impossibly retarded build-system for the past three weeks, I tried to get the "big picture" to compile so I can work against something that runs. I too will resort to implement an interfaces that understand the protocol instead of trying to integrate.
Ahead of us lays undoudbtedly a big-crunch integration-havoc and possibly worse things.

Blame can be laid partly to a development/source control system that easely breaks, and is very slow to operate due to sheer size and bad setup. ( honorable mention of sniff+, Sun Workshop and Synergy CMS )

Part of the blame firmly rests at the fact that 5 weeks before the deadline nobody who worked on the previous prototype is present, the chief developer has just taken off on a 3 weeks vacation and 20% of the team are noobs to this project.

We ( meaning the noobs, including me ) still struggle to grasp the system, while our deadline is 2 1/2 weeks ahead of us.

Regardless of expirience in this project, we all have no clue what's supposed to happen and how we get there.

Oh, and I should mention that I've two deadlines, one for my implementation task, and one for the completion of something completely different ( packaging stuff we should assume responsibility for after customer decided that this should be our task ).
Lo and behold, both deadlines accidentally fall to the same day. Of course for the packaging stuff I'm equally clueless as anybody, and the guy who did this before will embark on a three-week vacation a week before the deadline.

Sometimes I figure I got the short-straw in the game, whatever it is. Ah that reminds me of the fact that I still have 5 weeks of vacation to kill this year. I wonder if this would be a good time...

Wednesday, June 08, 2005

Darwin Award

My todays nominees would be the people who try to fly in the wheel well of an airplane.
Obviously there's multiple dangers awaiting the eager well-traveler there.

-You can get crushed by the wheels
-You can get crushed by the doors closing/opening
-You can freeze do death
-Die of oxygen deprivation in airy hights
-You can fall do death
-Slide to death ( in case you fell out at a couple of hundreds of miles per second while the airplane is still on ground )

Surprisingly as it sounds, there seem to be records of hundreds such incidents, few of which survived.

I don't know what's mor baffling, how people actually find themselves doing such an incredibly stupid thing, or that some of em actually manage to survive.