If there’s one memory that stands out from the development of Beyond Divinity, then it’s the end of the process. The amount of things that went wrong in the last weeks was astounding. It all started with an email from our German distributor, telling us that the game had to ship before the end of the first quarter of 2004, or the consequences would be bad. They didn’t tell us what ‘bad’ meant in this case, but we needed their money, so we decided not to find out. Of course, we weren’t ready, so suddenly a development process that was going smooth, became a rush job
And there were a lot of environmental circumstances that conspired against us.
Notes from a diary written about the going gold process:
---
Friday
We get a letter from the electricity provider. “On Monday morning, we will cut off the electricity in this street for the entire day. We apologize for this inconvenience”. Of course, Monday is the day that we have to deliver our German master CD’s to the factory.
After some cursing, we find a firm who can install a diesel generator to provide the office with power. Luckily we find one quickly. They will install it on Saturday.
Saturday
All looks smooth. We have to burn a lot of midnight oil while fixing the last bugs, but we’re managing. The generator is installed and we get instructions on how to switch it on. We are told explicitly not to put the generator on while we still have normal power. If we do so, boom. The boom scares us a bit, and we make sure that the boom candidates (those that might cause a boom) in the office are told in excruciating detail what a boom would mean for them physically. They seem to understand.
Sunday
Sleep is a sparse commodity, but we’re nearly there. I think to myself, the generator won’t be necessary after all. The last thing to do is to write the installers and apply the copy protection. We spot a boom candidate in the vicinity of the generator. We scare him away.
Later that day the first of a series of previously unseen crash bugs shows up. We attack the bugs.
Christophe, our producer, arrives to help testing and will drive at 6:00 am in the morning to the factory to deliver the CD’s. They need to be there before 10:00am. It’s a 2 hour drive if there’s no traffic, otherwise it’s 3 hours.
Monday
We had to redo the installers seven times or so because of all kinds of bugs. Yann, the install guru, is having a hard time and hits himself each time the installer goes wrong. Time is ticking and it looks like we’ll be a couple of hours late delivering the CD’s to the factory. Still, we assume they have a buffer, so there’s no real panic.
I prepare to switch on the generator and in doing so, draw a crowd of tired developers. The problem is, I don’t remember which button I was supposed to switch on first. I think of boom. I push the button that seems to be the most logical. Good user interface design as it’s the correct one.
Our lead QA needs to test the gold master version. Instead of copying the files from the fileserver to his HD, he erases them from the fileserver. He’s pretty tired and has been working very hard, so nobody blames him. Could’ve happened to any of us. We wake ourselves up and restart the build process. An installer needs to be rewritten because Kirill absolutely wants one final music update.
The installers seem to have one final small little problem. The start menu link doesn’t work. It turns out that the copy protected executable doesn’t like its shortcut. It’s afternoon when we figure that out.
Christophe reports that the highway to the factory is closed. There’s been an accident.
Seeing that the day is conspiring against us, I call the factory and tell them that they’ll have to be creative and flexible. If they won’t, I assure them I’ll find other flexible and creative factories. They agree.
I tell the guys we have gained an extra day. Most of go to sleep with the plan of waking up in the evening, and then focus on making a perfect version. Fabrice, the programmer in charge of the copy protection says he’ll continue to talk to the copy protection people until a solution is found for the install problem.
Tuesday
We arrive shortly after midnight and to our dismay find no mail from Fabrice. I hesitate as I don’t want to wake him up, but ultimately find myself with no choice but calling him. We get a small heart rhythm failure when we hear Fabrice’s mobile phone. Then it starts to dawn on us that maybe he’s still in the office. Sure enough, we find him upstairs sleeping. He has slept two hours when we find him. He has solved all the problems and earns a lot of gratitude from us. We start building the final installers and take the extra time to solve a few bugs which David has discovered.
Christophe arrives at 6:00 am, ready to go to the factory. We’re having problems with the installer. We forgot a couple of files. We rebuild the installers.
We test the game. Sometimes it goes very slow and occasionally it hangs. We don’t know what is happening. It turns out it’s one of the copy protection routines which was added at the last moment. We change the code, rebuild the installers, burn the CD’s.
In the afternoon the copy protection people tell us that the game CD had to be of a very specific size. The CD we delivered was not of that size. We have to redo everything. Since it’s too late to give the updated version to the factory, we use the extra time to do a few tweaks. By now a number of CD burners have stopped working, plenty of the strangest bugs have popped up and a German and an English version have been mixed up.
Wednesday
At 6 am Christophe drives to the factory. Everything seems to work so we happily commence working on the English master. We declare the German version gold though we decide not to make it public until they are actually printing the damned things.
Thursday
The factory calls. There are problems with the glass masters and the copy protection. The install CD doesn’t work on their systems and when running the game, it says it’s a crack. We call the copy protection people. They say it’s the fault of the factory. The factory says it’s the fault of the copy protection people. Then they look at us and say it’s our fault.
I call a few other developers who used the same copy protection. They all had the same misery but they did all manage in the end. It seems that in their experience it was the fault of the both the factory and the copy protection people.
Ultimately, it turns out to be the fault of the factory. They declared the install CD invalid though we were able to install it on 17 CDROM drives of various makes in our office. They also managed to mess up the copy protection. They do manage to send an invoice for their extra services.
We start rebuilding everything, writing the CD’s at one speed on the highest possible quality CD’s we can find with the best burner we can get. We prepare a machine with a burner and prep Christophe and Fabrice to go to the factory armed with 5 masters on different CD’s. We further arm them with a big hammer with explicit instructions to make it very clear to the factory that nobody’s going to mess with us. We’re a crew of very tired angry developers who want their game to go into production.
In the end, it turns out that one of the masters was good enough and the game can officially be declared gold.
---
One week after this, frustration strikes. Hard. Obviously, given the rush job, there were issues with the release so we needed to release a patch, but the copy protection, the very thing that caused so much problems, prevented us from doing so.
The type of protection we used relied on encrypting the data that the engine needed to run the game. In the case of Beyond Divinity, we had about 600Mb of such data, and in theory that meant that cracks should also be at least 600Mb in size.
For ourselves, we had a special tool, which allowed us to make small patches. Except that it didn’t work. Meaning that we either had to release a 600Mb patch (unthinkable at the time), or find a way around it. After a lot of cursing, we came up with a pretty elegant solution, which boiled down to us cracking our own game.
We released a patch that used a loophole to first unencrypt all of the data, and then recompressed it without the copy protection active. We never really told people why it took so long to install the patch, nor did we tell them that installing the patch effectively meant that the copy protection was removed, but it did save the day.
For ourselves, we learned that we didn’t like DRM one bit.
Beyond Divinity went on to sell a decent amount of units, but it was nowhere near the success that Divine Divinity had been. However, this time around, we did earn money with it and Larian was officially declared saved.
It was time to set our sights on bigger things… yet it took us three years before we finally got to work.