I've had a rendering bug that has persisted for a long time. I've tried a number of times to track the bug down, but no matter what I did, after my game had been running for a long time, the scene geometry would freak out with polygons poking out all over the place. It kind of made the game look like a crazed porcupine
I use VBO's for my rendering. They contain either indices or vertices. I only had one VBO for each and had coded my renderer so that the VBO's would reallocate and expand whenever they needed to. The expansion code was sort of slow since the VBO's needed to be repopulated with vertex and index data and then transferred to the GPU whenever they grew. My thought was that I'd find out how big they needed to be during development, then set the starting size to that so they would never actually need to expand at runtime.
For a long time I had known that the graphical corruption always occurred shortly after a VBO grew so I figured there was something wrong with the code that did the expansion. I debugged and checked and checked, but no matter what, I couldn't find a problem.
Finally last week I had a breakthrough. I set the VBO's to huge sizes so they wouldn't have to ever grow, and to my great surprise, after a long time running, the porcupine came out to play. My assumption was wrong! It wasn't growing the VBO's that was the problem!
I had reason to revisit the games I worked on at EA this week. EA has a policy that defines who gets into the credits for a game. While you can see my work in all of these games, I didn't get credit for all of them. (My first official game credit was FIFA Street 2 - Woo!) Anyway, here's the games I worked on:
The summer is a challenge for a home-based entrepreneur. With my daughter home from school, I don't get the several-hours-long block of uninterrupted time I need to focus on development each day.
We did two trips this summer. Since I'm feeling the pressure to get my game out the door, I felt I needed to work through both of these "vacations". That didn't really work out.
Today I had my first ever working multiplayer session. Up until now I've been testing all my technology with just one client hooked into the servers. But today, I logged two clients in, then I had guys moving around on one machine perfectly synchronized and moving on the other PC. It is so awesome to finally see it all go. Networking is working, time synchronization is working, replication is working, camera's working, I still need to do some work on interest management, but it finally looks like a real game. Making a 2, 4 or even 32 player game work is challenging, but it is an entirely different thing to see the technology I've built to support 100,000 players running. Whee!
Tonight I got invited to a Microsoft Studios party for a new studio starting up in Vancouver. They're recruiting, and the way they describe what they're doing, it sounds like a whole lot of fun. It seems the new studio is largely populated by my old buddies from Fusion, so it was great to see so many of them. Fusion was one of the most enjoyable periods in my career, so that they seem to be doing the same thing again is really interesting. I also saw a lot of people I know from EA (and who are still working there.) It had an open bar and I got a nice new 343 Industries branded 2G USB drive and a Microsoft T-shirt. They're not saying what they're working on, but I'll bet you're going to play it.
Now if my ears would just stop ringing…
I haven't really talked about networking at all on the blog. That might seem a bit odd given that I was a 'networking guy' at EA. There's no conspiracy here though, the simple fact is that my networking code was done and dusted before I tackled the blog in earnest and I write about what I'm thinking about. Networking is a big topic, so there'll probably be other articles later.
One thing that bothers me about writing a MMO is that one day, it will be gone. SOE announced they will be shutting down Star Wars Galaxies yesterday which got me thinking. So much effort went into developing that game, players played it for years, and as of December 15, it will all be gone. Just like The Matrix Online, FIFA Online, Tabula Rasa, and so many others. Sure, from time to time a MMO comes back, Hellgate, APB, but usually once they're gone, that's it.
I have programs I worked on 25 years ago that people still use today. And nothing is preventing them from running another 25. A MMO is a different beast.
People ask the developers to open-source the servers, but often that isn't practical. The company might be closed with nobody to do the work to get the program ready for distribution. The servers might use licensed code or components that can't be made available and are expensive to strip out and replace. Perhaps the game technology is running other games and security is an issue. In many cases the servers are simply big and complicated and require experienced people with a lot of game-specific knowledge to build and maintain.
I do think its cool when people decide to write their own replacement servers like SWGEmu which brings back the old Star Wars Galaxies.
I'm not sure what I'm going to do about the inevitable future of my game. Something to think about.
Four weeks. Four-freaking-ever. That's how I'm feelin'. Tooooooo long. But pathfinding is running! It is glorious to finally see things move!
I implemented the A* algorithm which works really well for finding optimal paths. Here are some things you should consider if you are implementing A* pathfinding:
Project Line Counter is super handy, but it hasn't been updated since Visual Studio 2005. Here's how to get it to work in Visual Studio 2010…
So I drink Coke when I work. That's about as relevent as this post is going to get, but this is so mindboggling I had to share.
I have a case of 24 Coke in my 70 degree crawlspace that nobody had touched in a week. There was no visible damage on the case. It had a 12-pack of Coke Zero on top of it. I'd taken four cans out of it so far. When I went to get a couple more cans out of it on the weekend, I found the case was full of Coke - not in cans. Damn.
Digging the cans out of the Coke-soaked case, I found this can which blew my mind. The pictures are exactly as I found it (other than I rinsed the remaining Coke out of it.) Check out the ends of the vertical rip, those are horizontal tears. This Coke exploded
. Yet the top and bottom aren't bulged. I never would have imagined a Coke could burst like this.
I'm glad nobody was holding it when this happened.
You can click on the images for the full-resolution images.
Last week I attended the first Canadian Games Conference. Having attended GDC Canada the last two years, I was a little unsure what exactly to expect, but to my surprise, the conference was very good, although a little small. So if you didn't attend this year, you should reconsider for next year.
Thanks, I'm still looking for ideas of what people think could be fun to do in an open world RTS.
Sounds awesome to me, i like the idea of NPC encounters/quests etc,one thing i found when i played was you are right once you build a base and get harvesters running etc, if noone is there to fight you kinda float about waiting. Dont know what you ...
I had an absolute grand time playing this weekend. Thanks for helping me out whenever you could, Rob!
Looking forward to an awesome future
Hey Dondergod, what firewall program, and what did it complain about? It's not BitDefender
I tried to get in, but my firewall kept blocking it.
Unfortunately I did not have the time this weekend to look further into it. Probably an easy fix, but I had too much to do.
Hope I will be able to enter the next test!