From translator
I love Blizzard games very much and, having stumbled upon the blog of one of the creators of the Warcraft series - Patrick Wyat, I decided to translate the third article about the creation of the first part of this great game. Translation of the first two (
first ,
second ) is already on Habré.
So, you are waiting for a story about the sources of funding for Blizzard, how Stu Rose gave a design coup, about the fog of war and, most importantly, about the author’s impressions of the very first multiplayer game and its unexpected results.
Behind all this welcome for habrakat.
This is my first translation, so I will be glad to receive all the error messages, comments and corrections.
The very first multiplayer game in Warcraft turned into a crushing victory, a terrible defeat and a draw, all at once. But how did this become possible? There is something to tell about. This story will include a description of the AI, the economy of the game, the fog of war, and much more. Read if you have a lot of free time.
This is the third part of the story.
Part 1 ,
Part 2
After six months of development, which began in September 1993, Warcraft: Orcs vs. Humans was finally turned from an advanced technology demonstration into a game.
For several months, I was the only employee fully engaged in this project, which severely limited the speed of development. Fortunately, other members of the company helped me with the design, including Ron Millar, Stu Rose and others. And a few more artists who prototyped the artwork when they found time between the Myllestone on other projects.
')
There were so few people in the team, because the development of Warcraft was sponsored by the company itself from its profits, received for developing games for third-party publishers, such as Interplay or SunSoft, therefore the accumulations of the company were small.
At this time, we were developing four 16-bit console games: The Lost Vikings 2 (continued to our well-met, but poorly selling side scroller), Blackthorne (side scroller, where the main character runs with shotguns), Justice League Task Force (clone Street Fighter in the DC Comics universe, and Death and Return of Superman (side scroller based on the comics series of the same name in the DC universe).
With the money received for the development of these games and for other occasional part-time work, the company was able to pay the initial cost of development.
Game development economics
Throughout the history of the gaming industry, independent studios - game developers (those studios that are not owned by publishing companies) usually pay for their projects by signing contracts with these publishing companies. Publishers give an advance on the development of the project. In addition to advancing, publishers are responsible for public relations, marketing, manufacturing, distribution, customer support, and so on.
In the 90s there were a lot more publishers than today, but the increase in development costs and, especially, the publishers of games caused a chain of bankruptcies and takeovers, which led to a large number of business associations. Therefore, today, speaking of game publishers, you most likely mean Activision-Blizzard, EA or Ubisoft instead of a myriad of medium-sized companies that existed twenty years ago.
As elsewhere, contract terms are in favor of people with money. There is a golden rule: "the one who has money sets the rules." Despite the fact that, in theory, these agreements are organized in such a way that the developer is rewarded when the game sells well, just as in the music and film industries, the publisher collects most of the profits, and the developer, if lucky, gets enough money to live to the next signing a contract.
Although I mentioned an “advance” paid by the publisher, a more correct term would be “an advance instead of royalty” when the developer actually receives a loan that will be paid out of the fee for selling the game. It sounds great: develop a game, get paid for each copy sold. But the mechanism is designed in such a way that most games will never earn as much money as is necessary to pay an advance. Since studios often have to give up rights to their games and their continuations, these agreements are often hidden agreements on contract work.
To obtain more favorable terms of the agreement, the developers usually used the following scheme: they developed the initial prototype of the game with their own funds, then used this prototype to “push” the deal with the publisher. The longer the developer can pay for the development himself, the better the contract terms will be.
Perhaps the best example of this strategy is Valve Software, where Gabe Newell used the money he earned at Microsoft to pay for the development of Half Life. Thus, he obtained the necessary control over the release time of the game: instead of rushing to release the game only to fulfill the quarterly revenue goals, as Sierra Entertainment (the game publisher) wanted, he released the game only when it became high-quality product. More importantly, Gabe’s savings made it possible to get Half Life's network distribution rights, while digital distribution became a viable strategy for selling games, which ultimately led the studio to a smash hit.
The disadvantage of such a self-payment prototype is the risk that the publisher does not sign a contract for the release of the game, which very often leads to the death of the studio.
The company I worked for (at that time it was called Silicon and Synapse) paid Warcraft along with another project called Games People Play, which was supposed to include crossword puzzles, boggles and other similar games that can be found on the shelves at the airport for the entertainment of poor travelers.
By developing two games that were aimed at completely different audiences, the owners of the company hoped to create several sources of income, which would be less risky than if the company aimed only at the core of the entertainment market (avid gamers like you or me).
Of course, the distribution of bets between different game genres also has risks, due to the fact that the prestige of the company's brand can be blurred by those products that do not meet the expectations of its audience. One of the main advantages of Blizzard today is that users will buy their game even before they play it, because they believe in the vision and reputation of the company. Such a reputation would be much harder to create if the company released low-cost casual crafts and high-budget AAA + class games, as Sierra Entertainment did, which went bankrupt after repeated attempts to find its audience.
Anyway, the creation of Games People Play was a mistake, because the development of a casual entertainment product demoralized the main programmer so much that the project never reached a mature stage and was later canceled. Or maybe it wasn’t a mistake, because the combination of Warcraft and Games People Play convinced Davidson & Associates, which was the second largest educational software company at the time, to acquire Silicon & Synapse.
Our new overlords
Davidson & Associates, founded by Jane Davidson, later joined by her husband, Bob, was a multilateral company whose growth was driven by the success of the Math Blaster game, in which the player solved mathematical examples to blow up the asteroids before they destroyed the player’s ship. It was a good combination of education and entertainment, and the company received many awards for it.
Digression: Math Blaster could have some educational value if used correctly, but I happened to see its horrendously stupid use. In high school, our journalistic group wrote articles for a school newspaper in the computer room, which we shared with the training class for those who are lagging behind. We watched in horror as these students played Math Blaster with calculators. When asteroids containing expressions like “3 + 5” or “2 * 3” approached, these students quickly drove these expressions into calculators and then entered the results to destroy the asteroids. They may have been learning something, suggesting that they are cheating on teachers, but I am not sure that this was the best use of the time that remained before their rapidly approaching entry into adulthood.
With a good manager and aggressive leader, Math Blaster has developed into a manufacturer (creation and packaging), a distributor (sent to retailers and intermediate distributors) and a direct supplier of educational materials for schools. They saw for themselves the possibilities of expansion and entertainment business, but their early estimates of creating entertainment products on their own convinced them that it’s more profitable to buy an experienced developer studio than to continue developing their games with a team that knows more about training than about swords and magic .
So financial problems that impeded the growth of the Warcraft development team were suddenly solved by acquiring the company. Davidson & Associates finances enabled Silicon & Synapse (which was renamed Blizzard after the acquisition) to focus on their own development, rather than looking for low-profit deals with other game publishers. And they were really low-profit: in 1993, even creating two highly valued games that brought the company the title “Developer of the Year for Nintendo”, the company received no royalties.
Development has been greatly accelerated, using the money from the acquisition to hire new ones, and to attract to the project the employees already working in the company.
"Process" design
The approach to the design and construction of games in Blizzard in his early years can best be described as "natural." It was a chaotic process that also took place during formal design meetings, but mainly during spontaneous meetings in the lobby or at lunch.
Some features came from design plans, while others were added by the programmers themselves. Some of the artworks for the game were planned and regularly created, while other works were created late at night, because the artist had a great idea or he just wanted to try something else. Some elements were complete improvisation, for example, the history of the world of Warcraft was finally formed only in the last few months before launch.
Despite the fact that the process was unpredictable, the results were impressive. Since the team consisted of computer game fans, our games evolved during development into something gamers wanted to play, play and play. And Warcraft, our first personal game for the IBM PC, which showed the best (and sometimes the worst) features of this process, definitely turned out to be an exemplary game (at least for its days).
How did the system for creating units in Warcraft
Biologists know that the evolution process involved false starts, when entire branches of the evolutionary tree were unsuccessful. The same thing happened during development. Since we didn’t have verified specifications, we had to experiment a lot and reject entities that didn’t work. I want to say that in each case it was a verified, meaningful process, but many times it began with accidents, disputes and conflicts.
One case that I remember well is related to the creation of game units. During the early development phases, units were created using the codes dialed in the console, because there was no other user mechanism to create them. While discussing the best way to produce units, various ideas were suggested.
Ron Millar, an artist who did a lot in terms of creating ideas and design for early Blizzard games, suggested the following idea: players will have to build farms, and (as in Populous) these farms will periodically produce working units called peyzans (for people) and peons (for orcs). The player will have the opportunity to use these units for the extraction of gold, wood and the construction of buildings, but they will not be as good as military units.
The player can send these "peons" to a military training in the hut, where they will disappear for a while from the map and, as a result, appear as trained fighters. Other training areas will be used to create more advanced military units, such as catapults or wizards.
The idea was not completely ready, which was one of the main drawbacks of our design process: there was no final documentation that was supposed to explain how the idea should be implemented. So it was discussed by the entire design team (which was the majority of the company's employees) before we started coding (programming) the implementation.
Before we started working on the code, Ron went to the trade show (possibly to the winter CES - Consumer Electronics Show) along with Allen Adam, the company's president. And during their absence, an event occurred that set the direction for the entire Warcraft series, an event that I call "success in designing Warcraft."
Stu Rose, another artist who joined the company at the very beginning (worker No. 6, I guess) came to my office one afternoon to suggest a different approach. Stu felt that the mechanism for creating units, proposed by Ron, had many unresolved implementation difficulties. Moreover, this approach is directly opposite to the type of control that we have to give players in the RTS.
In this new genre, the requirements for players were much stricter than in others, and the attention of players cannot be focused on one place for a long time. This is due to the fact that there are many tasks: planning a tree of buildings / improvements, monitoring the development of the economy, creating units, placing buildings, scouting maps, controlling the battle and applying the abilities of each unit. In the RTS, the most limited resource is the player's attention, so adding an indirect mechanism for creating units will increase the attention deficit and the complexity of the game.
To build a "grant" - the main combat unit of the game will need to select an idle worker and send it to train. Such a process without any need (according to Stu) adds complexity to the game.
I was a grateful listener for such reflections, as I had similar (albeit less thoughtful) concerns, and I did not think that the creation of units was an area where we should invent serious changes. Dune 2, the game from which Warcraft game mechanics was inherited, had a much simpler mechanism for creating units: just press a button in the panel of a factory building, and the unit appears after a while. This was not their innovation - the idea was copied from even older games, but it worked.
Stu insisted that we should use this approach and, instead of further discussion, just take it and make it. So for the next couple of days and evenings, I expanded the code of the game and the user interface to implement the mechanism for creating units, so our idea became a fait accompli. By the time Ron and Allan returned, the game could already be played in single player mode, if you do not take into account the fact that the AI ​​was extremely far from complete.
Now Warcraft has become a game that is easy, and, more importantly, fun to play. We never looked back.
First Warcraft multiplayer game
In June 1994, after ten months of development, the game engine was ready for multiplayer. With an ever-increasing sense of excitement, I made changes in the code that allowed me to play the first multiplayer game in Warcraft. While I was writing the core of the game logic (event loop, unit management, finding the path, tactical AI for the units, status bar, inside the game interface, high-level network code), other programmers worked on the components for the network game.
Jessie MacReynolds, a Caltech graduate, wrote a low-level network library for forwarding IPX packets over a local network. The code was written using knowledge gained from the Doom source code, which was later discovered by John Carmack from idSoftware. Although the IPX interface layer consisted of only a few hundred lines of code, it was code that interacted with the network card driver to make sure that messages created in one game client would be sent to another player.
And Bob Flitch, who earned a master’s degree from Cal State Fullerton, designed screens for creating and connecting to a multiplayer game. My office was directly across from Bob's office, which was very convenient, since it was necessary to work closely together to integrate his code into mine.
After making the changes, I compiled the game client and copied it to the network drive, while Bob ran back to his office to start the game. It was a small miracle: the code we just wrote, worked and we had the opportunity to play the very first online game in Warcraft.
When we started to play, I felt a lot of excitement that I had never felt while playing other games. Part of the excitement was caused by the fact that I wrote this code myself, but there were also other factors that created a feeling of fear: that I played against a living person, and not against computer AI, and because of the fog of war I didn’t knew what the enemy was doing.
Fog of war
One of the ideas borrowed from the early games was the idea of ​​hiding units and buildings from the gaze of an enemy player. Dark fog hid areas of the game map until a friendly unit explored these areas, which was intended to emulate the piece of information that the general receives about enemy operations and troops during these battles.
Empire, a turn-based multiplayer strategy, written almost seventeen years before the magnificent Walter Bright (creator of the programming language “D”), used the fog of war for the same purpose. When the map area was reconnoitered, it remained visible forever, so an important part of the strategy was to scout out a large enough piece of the map to get information about the movement of enemy troops before they could cause damage to an important infrastructure or economy.
The horror caused by the ignorance of the actions of the enemy, has caused the death of many generals in history. Adding such an element to the RTS genre is a great way to increase your level of passion (and fear). Thanks to Walter and the creators of Dune II - the guys from Westwood for their ingenuity.
Computer AI
As many gamers know, in strategies, a player running computer artificial intelligence (AI) is often weak. Players are used to finding strategies that the AI ​​was not programmed to counteract and this allowed them to destroy the computer player without much trouble. So in order to represent a serious opponent for a player, AI usually relies on superiority in troops, position, or on “asymmetrical rules”.
At the start of most of the missions in Warcraft computer players are given entire cities and armies. Moreover, Warcraft contains several asymmetric rules that make it easier for computer players to fight, although perhaps most players will find these rules a direct deception.
One of the rules that we introduced to help computer AI is to reduce the amount of gold that is withdrawn from the mines. , 100 , , . , , 8 , 100 .
: «» , , , , . , , .
Secondly, when a player destroys the base of a computer, there is still gold there that can be collected. This makes the game faster and more interesting than if the victory had to earn with a limited number of resources.
Most players are aware of more serious violations of the spirit of fair competition: computer AI can see through the fog of war, the AI ​​knows exactly what the player is doing at a particular moment. In fact, this is not a big advantage for a computer and, basically, served to make it not look too stupid.
Interestingly, for a long time the popularity of Starcraft (it was released more than 14 years ago and it is still played) a group of AI programmers arranged a contest for writing non-cheating AI. Using the BWAPI LibraryThese programmers have written code that can insert commands directly into the StarCraft engine. Programmers staged a competition between their AIs in order to determine the winner. Despite the fact that these AIs are good, an experienced player easily defeats the best of them.
Game against man
, ( ) Warcraft, . , , , . Eastern Front, Atari 800 , (!) - .
, , , , . - , Warcraft.
, , , , , , . , , , Warcraft, .
, , , , , , , , .
It was not just a match for testing the game engine, I knew that he felt the same desire to get the title of the winner of the first ever multiplayer game in Warcraft. Moreover, earlier, when we played in the Doom office together, I won a certain fame after the end of a rather intense game, Bob got so angry with me that I often killed him from the rocket, that he promised never to play with me again . I knew that he was eager to recoup.
, . , . , , , , .
… :
, , , , , . DOS4GW « », Windows. Windows , , « », .
, : « !», : «… !». , : , .
, , , , , , « »: . Those. , .
, , , Warcraft . Those. . , , , , Warcraft, 600 , .
, 2400 , . , , , . , , , .
Battle Chess DOS Windows, , . , - , , , , .
, , . , , , , , . , - – .
A synchronization error occurs when two computers simulating a game select different answers to the same question and thus diverge further and further. In time travel films such as Back to the Future, small changes made by time travelers lead in the past to completely different futures. Similarly, games diverge when playing Warcraft. On my computer, my elven archer will see your orc peony and attack, while on your computer the peon will not notice the attack and go to gather wood. Without a mechanism to detect and correct such discrepancies, our two games will quickly become completely different.
So the first game in Warcraft ended in a draw, but at the same time it became a huge victory for the whole team - it was incredibly interesting! Soon, the rest of the team played it online and found it was like Blue Sky, the purest methamphetamine produced by Walter White from Breaking Bad. After people got addicted to a multiplayer game, nothing else could compare with it. Even with regular departures, we knew that we were doing something big.
All we needed was to finish the game.
Soon we made an even more unpleasant discovery: we had not only countless synchronization errors, but these errors also had numerous reasons. If all such errors were caused by similar conditions, we would try to eliminate the only source of problems. Instead, it turned out that we have a huge number of different types of problems, each of which causes its own type of error, and each needs a separate solution.
Why are synchronization errors occur?
Warcraft , , , , « №5», « 650,1224», « 53». , .
: , , , . , , -, , , . .
I have not yet implemented a mechanism to control synchronization between computers, so that any error in the game code, due to which computers will make different choices, will cause the game to “split”, i.e. split into two weakly connected worlds, which will continue to exchange information, but move away from each other with ever-increasing speed.
Obviously, creating a system for detecting situations of desynchronization was the next task in my long list of things that need to be done to release the game.
You know the end of the story: Warcraft came out only five months later. It seemed like an eternity, because we worked for so many hours every day, overcame so many obstacles, overcame so many challenges, and created something that we cared for so anxiously. I will continue to review these remaining months in the next articles of my blog, since so many things fit in at this time that it is impossible to shove these memories into this already too long article.