I bought "The Sims" yesterday. For an eating, sleeping, and urinating simulator, it sure is addictive. Kinda ironic how the game has you managing the health, hygiene and social life of the little dudes while causing you to neglect your own.
I share a house with three other guys, so I decided to simulate our household to determine our fates. I created a family of four with our attributes, built a house similar to ours, started the sim, and went to dinner. When I came back, the scene was grim. Three of us were dancing around in our pajamas, another of us was asleep standing up in the kitchen, we had no jobs or money, and since the maid quit there were piles of rancid garbage all over the house! It took about 2 sim-weeks to clean up this disaster area.
I don't think the game is not supposed to be educational, but after seeing the scene of sim-sloth, I promised to clean up my dishes more often ;-)
2 D's Better Than 3?
The reason I mention "The Sims" is because of its house-building facilities. I've been prototyping a similar kind of isometric level-building tool, and Maxis has a very good system in their game. I like the way walls fold away when you move the cursor into a room, and moving and rotating furniture is very easy.
There are a couple of things that wouldn't work for my game, however. In "The Sims", houses can have two levels, and you press a button to toggle between viewing the first or second floor. It's not hard to figure out, but in my game you can construct several levels with varying ceiling heights. It'd be a lot harder to visualize how things are supposed to be laid out and line up. This wouldn't be a problem for an experienced level designer, but level-building is an integral part of the game, and I it accessible to everyone.
Another problem with multilevel structures is that you can't see everyone running around inside at the same time. This kind of bugs me in "The Sims", because much of the fun is in watching all the activity going on in your house.
So I've decided to forget isometric and go with a pure 2D design (think "SimTower"). This will allow for maximum ease in level-building, and allow the player to see the entire world (or whatever fits on their screen) at once. I think these benefits outweigh the coolness and "correctness" of a true 3D isometric world. And what's even better, you can edit a level with a plain ASCII editor! ;-)
But now I have to live with the limitations imposed by 2D-game physics. Rooms have height and width, but no depth, so obstacles must be climbed over instead of walked around. Occupants will seem to pass through each other as they meet in the hallways. There will be lots of other things which change the game mechanics in unnatural ways. But fortunately the art of 2D game making is relatively mature after 20 years, so there's plenty of prior art to draw from.
Question for you out there: Anybody know any other build-your-own-building type games that have a side view? All I can think of now is SimTower, but I'm sure there's something on the Amiga that I'm missing.
I have a new development process. Instead of hacking away at a C++ program until a game pops out, I'm going to make a really messy prototype in Java, and plan to throw it away. Here's an picture of the isometric building tool I started, written with Java and Swing.
Why might this be a good idea? For me, Java is a much easier language to program in. Your results may vary, but the package system is just wonderful, not having header files is bliss, and build times are non-existent. Also, I know the language well enough that I don't have to run to my "More Effective C++" book to look up an arcane bit of misimplemented STL trivia.
After the prototype is game-like in nature, I plan to port the whole shebang over to C++. This is not as bad as it sounds. Once you have the major algorithms designed and tested, recoding the game in another language should take a fraction of the time it took to write it in the first place. The important thing is to accelerate the unpredictable design-code-test-review-repeat phase of game development.
But there are pitfalls in using Java, even for prototyping:
I'm using JBuilder 3 (free from www.borland.com) and JDK 1.2.2. I must say, the latest JDK is much much faster than I remember. In JDK 1.1 you might have multi-second pauses as the garbage collection did its thing; in 1.2.2 you barely see a hiccup. The IDE is written in Java, and thus a bit flaky and piggy -- but no more than Windows itself ;-)
Back To Simwork
Well, now it's time to put on my pajamas and dance to Latin music on the boombox, while the maid steals my toaster oven and my friends sleep on the front step. Maybe later I'll admire the lava lamp, or play chess with myself. Is this a game? Is it real life? Who knows...