The prototype was supposed to be opened "progressively", starting with 4 players to test the network, and up to 10-16 players after the first bugs ( note that those weren't unexpected, and indeed were present ! ) after a couple hours.
I certainly didn't expect 60 people to show up in IRC, all screaming to play...
Note: the coming "times" might not be perfectly accurate.
Saturday, 6 May, 3 PM GMT. Exactly 24 hours before release. I'm still missing fundamental features in the prototype. I'm still unable to display any form of text. No HUD. No communication window, no status bars, no crosshair. Most modelers have finished their job though, so the "content" is ready. Or not really.. although i do have all the models, i still have to write the basic shaders with bump/specular mapping, and assign a dummy metallic texture to the ships.
Sunday, 7 May. Didn't sleep a lot, maybe 7 hours ( on a week-end! gah. ). My TODO list has grown quite a lot during the night.. while trying to sleep, i had been thinking to a lot new small features to add, bugs to fix, etc.. My todo list now has 70 items on it, and i'm 6 hours away from release..
At noon, i'm still trying to integrate the sky box into the prototype. A sky box, sounds easy, doesn't it ? Well.. no. My sky boxes are taken directly as "screenshots" from the game: placing the camera at a position in orbit of a planet, then taking 6 views at 90?, forming a cube. For some reason, i cannot use 1024^2 textures. Probably a bug in the render-to-texture code. I loose an hour trying to fix it, then decide it's going to take too long, and just go for 512^2 textures. The atmosphere of the planet is missing too: i'll fix that "detail" in a patch later.
2 PM: in theory, the release is in one hour. I've fixed a lot of small items on the todo list, but it's now clear that i won't be able to finish everything. There are 2 or 3 main points that i need to complete before having a "playable" game. One of them is the ability to detect victory conditions, having a countdown, and then restart the game on-the-fly, so that the game can run in a loop. Things are crashing horribly in all the destructors of my classes.. well.. the contrary would have been surprising.
3 PM: so, i'm supposed to release the game now. I have a glance at the IRC chatroom from time to time, and i'm scared. Tens and tens of people are waiting, chatting, asking questions.. "is it out yet", being the most frequent. I still have some code to finish before it can go online. I delay the release for one hour. People take the news pretty well.
5 PM: okay, the "delay" has been closer to 2 hours than 1 hour, but i think i now have a "playable" version. I'm expecting serious errors, bugs, crashes.. but, it should be possible to play a bit. I've already uploaded the DATA files, and all the players already have it. They're now waiting for the EXE files ( separated from the data, for easier patching later ). I'm uploading the EXE files into a separate directory, and give the address to 3 other developers. Let's start progressively: if other devs cannot join, there's no need to open the "gate" for a flood of 50 players.
6 PM: no dev can join, i'm still alone on the server. Due to a miscommunication problem, i realize after 30 mins that they weren't able to download the EXE zip file at all ( they were speaking of a login/password, those were for the web directory to download the exe files, and i mistakingly thought they were speaking of the login/password to create an account on the server ). But even after that, devs can still not join: they get crashes at load time. After analysis of the log files, i realize that the client crashes at sound initialization time ( thanks to OpenAL ). Then comes the light: they don't have the OpenAL runtime installed, and i didn't include it in the EXE. Another 30 minutes lost.
7 PM: frustration in the air. Many people already left the irc chatroom, slightly annoyed. I'm really sorry for that, but they were warned that problems had to be expected. Devs can now play "okay" on the server. It's time to start a more serious test, and i give the EXE to the public.
8 PM: things are going.. more or less well. A serious amount of people are crashing. Some have configuration problems ( lacking vertex/pixel shader 2.0, no fallback implemented yet ). Some have sound problems, even with OpenAL installed. Most are disconnected from the server. I have to confess something: due to lack of time, i didn't implement error handling either on the client nor on the server. Which means that if the connection is dropped, the clients will not realize it immediately.
In order to prevent tens of players to join and play at the same time, i had implemented a few admins commands as well as a waiting line/queue on the server. When the client is launched, the player fills connection/config informations ( account name/password, IP address, graphical resolution, etc..) and pressed "OK" to connect. Because there's no error handling/confirmation, people didn't know ( even though they were warned in irc, and on the forums, that there'd be a waiting line ) that the connection was queued and still "alive". As a result, many pressed the "OK" button many times, thinking nothing was happening.
On the other side, on the server, i was being flooded by "player X has joined" and "player X has disconnected" messages. Lesson learned: never release something without proper error handling/messages.
In part III: how the test ended, what has been the outcome of that, and the next days, busy patching.
Make sure you look at the Video of the latest (0.3) release, Divx 4 + MP3, 67 Mb if you haven't done so already !