Reading the comments from last part, I detect a certain impatience... Some of you want
me to stop fooling around with details and put out a game. By now, you might be wondering
if I'm ever going to produce something playable. I'll admit to some serious concerns:
I've had the feeling that you only get one shot at announcing a new game. If the
graphics or gameplay stink, people just write you off and never visit again. Ironically,
the one thing people do seem to tolerate is lots of bugs. I always try to remove bugs
as I go, so I don't tend to have a huge debugging/alpha period at the end.
If a lot of people start playing, I will need a serious amount of server support, which
costs money. I had originally planned to make the game peer to peer, but that's still
far in the future.
If I attract griefers, I will need to harden the server and do more administration to
keep the community healthy.
Once the game goes live, there will be lots of new features requested. I'll have to
stop working on long term ideas and spend a lot of my very limited time putting in
features. I might get so diverted from my original plan that none of the big stuff
gets done.
If the landscape of the game world isn't done right at the start, I can't revise it
without destroying work people have done.
On the Other Hand...
Fig 1: Part 39 readers over time
Fig 2: Total hits over time (not including RSS)
On the other hand, I could spend months more on this and still not have anything
playable. And there are answers to these concerns:
The current group of readers is fairly small. I can't tell how many exactly.
I get 1000-1500 hits on each part--about 300 right away, and the rest trickling
in over the next couple of weeks (see Figures 1 and 2). About 350 of you eventually play
the videos according to YouTube. Perhaps 100 download the demos.
That's enough for thorough testing and would not overload the server. Anyone still
reading after a year has to be pretty patient and probably won't leave in a huff if
the game isn't instantly spectacular.
On the other hand, one link from Shamus Young or a big site like Rock, Paper, Shotgun
would generate thousands of new users and probably kill the server. We'd be skating
on thin ice.
The current trivial server has been running for nearly a month and not been
attacked. It has no security at all. So perhaps we can run a site for awhile
without it being trashed. I don't know how many people like to run around
and wreck stuff. The TwentySided Minecraft site got trashed at least once, I think.
My programming time is constrained by my health. There's no point in working on
code when I'm short of sleep or full of aches and pains -- I create so many more bugs
that it's a net loss. But I don't need to be completely alert to administer the site.
I could come up with another 10 hours a week for that kind of thing.
Finally, I thought of a way to handle the landscape problem. I can start
the game off with a single asteroid, instead of trying to create a planet, moon, etc.
Then even if I changed my landscape algorithm, I can retain that one asteroid
unchanged in the new version. It can just be an exception to the general algorithm for
creating asteroids, if necessary.
I can put all the game play elements in with a single asteroid, and then
add the other asteroids, generation ships, planet, moon, and ring as I get the chance.
This makes for a less interesting environment at the start, but eliminates any
problem with rebuilding the world and destroying existing buildings.
What Needs to be Done
I have most of the pieces I need. Here's a list of the major work items:
Convert the Part 28 landscape code to work on a sphere.
Use the latest code for walking in spherical coordinates.
Put interference checking and gravity back in.
Add a tool for raising/lowering the heightmap landscape. This lets
the player create a building site. Holes in the ground, but no caves.
Use the latest brick display code from Part 37 to display buildings.
Implement block selection using the Part 31 code.
Write a simple world database for storing buildings.
Add the UI for adding/deleting bricks and a palette of brick types,
like Minecraft creative mode.
I need a file dialog for import/export.
Add export to the Minecraft viewer.
Add import to the game.
Do a server version, with code to distribute building data
to users as they move, with updates as the world is edited.
If I want some protection against griefers, I also need to add some security
features:
Periodic saves of world files and ability to restore ruined areas.