Bravo, undefined

From Monday to Thursday, we spent our time fixing the damage caused on Sunday after the version control crash. On Friday morning, we had another software engineering lecture. In this course, we didn’t learn how to solve problems through programming, but rather how to write code that is easy to read and maintain. We learned about various best practices and conventions. I watched Elena while the professor spoke. With each new slide, it seemed like a new oxytocin was being released into Elena’s bloodstream. Finally, someone came to confirm that everything she had always done was correct and to give her many suggestions on how to make the code she writes even more beautiful. After the lecture, over coffee, we talked about what we saw in the cloud above her head during the lecture.

“Every undocumented code is an insult to the universe.”

“Software is music trapped in memory cells.”

This weekend, we were only spend one night at my place. Ian and Maxim have new suggestions. They want to change part of the user interface. Elena isn’t working on that, and they just need to convince me to participate in these changes. Since they came before Elena, they took the opportunity to present their suggestions. I agreed because the project was nearing completion, and everything they were suggesting could be done in a few hours, maybe one day at most. There would be no problem with time or deadlines. Although I immediately agreed to make the changes, they continued presenting arguments, as if I had rejected the idea and it seems that they already prepared their story to convince me. They mistakenly kept persuading me, even though I had, unexpectedly, agreed. This didn’t feel right. I managed to push this feeling aside, imagining that it hadn’t happened.

When Elena arrived, we started working on the task for the day. A part from her side was missing so we couldn’t yet test the game with all the features made so far. She completed it in an hour, and now we could finally test everything we had made as a whole. Until now, we had only tested individual modules. The player could now enter the site, choose a server, build an economy and an army, fight with another player, and everything one player did was visible to the other players. That was at least the theory, now we had to see how it worked.

We launched the game with four players, and everyone saw the introduction screen. Soon we realized that this screen would never go away. There was an error in Elena’s code, unexpectedly, as usually the errors were on our side. She fixed the mistake, and we launched the game again. The introduction screen went away, and immediately the message appeared that the game was over and the winner was “undefined.” We searched for the reason why the game ended so quickly. In the function that checks if the game is over, there was a sign “=” instead of “==.” One equals sign was missing.

We started the game again and noticed that the vehicle we had added recently wasn’t updating on the server. Once made, it stayed in the same place. The player activated the vehicle locally, but other players couldn’t see it. Also, it still showed that the winner was “undefined” when the game ended. We couldn’t fix all the errors by three a.m. when we fell asleep. On Sunday, we continued around ten a.m. and eliminated all the obvious errors by late afternoon. More testing was definitely needed, but the game was working. We agreed that the game was in alpha testing starting today, and that we would show it to friends to test, much to Max’s dismay, who still didn’t want to show it to anyone.

We noticed that the game lacked balance. The economy grows quickly, the cash fills up, and the player creates a large army and strong defenses in a short time. This needs to be slowed down. Also, the tanks in the game are too strong. They easily destroy all towers and buildings, and they are stronger than other units. There will be a lot of work adjusting units health and damage. The amount of damage a unit does to each type of unit needs to be defined individually. The agreement is that Max and Ian will work on the balance, while I will fix the bugs and work on the interface that has some issues. Elena will make the necessary changes on the back end. I managed to avoid working on the balance because we had already done the initial balance and there had been a lot of disagreements. There are no clear rules here, and it’s an open field for arguments.

Tonight, I have a planned walk with Boyana. I’ll tell her how our game started working.