Flexman,
We had a running joke in a RPG I used to be in. I'm not evil, I'm just misunderstood. ;-)
HomeFries,
Making the data accessible just means that the game can be modded in the future and people might be interested in it longer. It may allow you to make games look better once the systems become more powerful. This isn’t what is causing games to stop working. These are two different issues. If the code that is using that data is doing stuff in a way that the operating system or drivers or whatever stop supporting certain functionality or even change the way things are done then it can cause a game to stop working or suddenly start having problem. From what I’ve seen, offloading stuff off to the graphics cards is part of the reason these problems are occurring. Every time an advancement happens with graphics cards or operating systems then they have to make a special effort to make things backwards compatible. At some point they stop worrying so much or drop it completely and that’s going to cause problems. Why was there the big cry about various printers no longer working when Vista came out? Microsoft made changes to the operating system that weren’t expected back when those printers were created and the people that owned them were just out of luck.
Back when Longbow 2 came out it was still the early days of DirectX and Microsoft was still trying to get a handle on things. The reason why 3DFX was supported initially and not DirectX for graphics is that D3D support was very inconsistent in the beginning and the 3DFX cards just did a better job. Many D3D cards only supported certain features and new drivers would come out and break things. The D3D standard was still a moving target when we switched to it yet if you wanted to be competitive you just had to take your best guess and hope things would keep working the same way. Back then there was a lot of back and forth between the game and video card developers since, effectively, the game developers wound up doing QA on the cards.
I know both JF-15 and JF/A-18 use DirectPlay for the network code. Unfortunately (from
http://en.wikipedia.org/wiki/DirectPlay ):
“In Windows Vista, DirectPlay has been deprecated and DirectPlay Voice and DirectPlay's NAT Helper have been removed.”
This means that at some point they’re going to drop DirectPlay support completely. It’s already on the way out the door and when that happens no more multiplayer in those games. I guess if we were forward thinkers we shouldn’t have gone with the networking solution that was supplied by Microsoft and part of the DirectX standard.
You mentioned the 3D cockpit as a good thing in JF/A-18. We got a ton of grief about that when it came out. We were told it’s not as pretty as a 2D cockpit, it lowers the framerate and obviously we must have been out of our minds to put it in. I can’t really argue with the first two and as for our sanity well…. You mention “Don't get too fancy, and you don't have to worry as much about incompatibilities” but this was about as fancy as you could get back then. Also, especially back then, if you didn’t get fancy then you’d lose points to the guys who did. Oops, JF/A-18 didn’t have guys running around on the deck and didn’t have a dynamic campaign, points off for you. Or more directly related, do you have dynamic lighting, particle effects, a world with x amount of terrain loaded with y amount of objects with a texture resolution of at least z and a laundry list of other things.
Hopefully now that standards are more established games will last without problems longer but I heard of enough newer products having problems with Vista that I still think part of it will be a roll of the dice. I think more than 10 years is a pretty incredible run though.
Flyboy,
The first thing to consider when considering why certain games still run without problems and why others don’t is what are they doing differently. Flight sims where always pushing boundaries of what was possible and having to create or utilize new technologies. Maybe one was using new lighting techniques, shadows or the like. Even if they’re doing the same stuff the methodologies they used may be the factor. For example differences in memory allocation can be a factor. You talk about reusing code like it’s a bad thing but consider this, that means the code has been proven so they know it works. At some point enough stuff will change that you’ll need to start over but if you start from scratch every time you’ll be out of business very soon. Fleet Defender was based off of F-15 III which was based off of F-19 and I know the Super Strike Eagle arcade game at least used the AI from F-19. JF/A-18 was based off of JF-15 and Longbow 2 was base off of Longbow. I’m pretty sure it’s the same with a lot of other games that are out there. Sure, whole segments of the code probably get changed, I totally redid the AI for Fleet Defender, but there’s lots of core stuff that might stay pretty much the same. Also if you’re restarting from scratch then it’s going to be a long time before you can start seeing how the pieces are going to interact. For Fleet Defender I could start working on the AI from day one. For JF-15 I had to wait for a basic game and graphics engine, basic terrain/world, a basic plane object, control interface (first code I worked on was getting access to DirectInput) and the first pass at the flight model. This took months.
What was switching to a different file type going to get you? It’s not like you could go out and get a 3rd party graphics engine for you game, they weren’t around and even if you did then your product wouldn’t stand out or you’d need to add functionality which might require more data which might require a new file format. As long as the code understands the data it’s reading in you’re fine.
I think you all keep putting things in today’s terms when you need to remember what it was like 14 years ago, not even the 12 for when the game came out since you have to factor in development time. There are lots of standards and tools that are around today that either didn’t exist or were just starting out.
Elf