📜 ⬆️ ⬇️

Post-mortem: Baldur's Gate: Enhanced Edition

image

Want to hear a story about how the classic role-playing games on the PC could be reborn as a multiplatform project, and even in the form of an “extended edition”? One of the founders of Bioware, Trent Oster (today, the president of Beamdog / Overhaul Games, which was engaged in the development of reissues), is ready to take us backstage and tell how it all happened.

So, the conversation will go about Baldur's Gate: Enhanced Edition (inside the studio we affectionately call it BG: EE), which was released on the PC on November 28, 2012, and on the iPad - on December 8, and aroused great interest among the players, which allowed it to rise to second place in the US App Store and before the first - in the App Store in several other countries.

Our initial plan was almost simultaneous launch on all possible platforms; Now it becomes clear how naive this decision was, given the size of our team and the amount of work ahead. Now we are hard at work on versions for all remaining platforms and we hope that the cross-platform multiplayer in BG will become a reality. The game has achieved significant success on the PC and iPad, we were greeted by successful sales and a positive response from fans, so that the remaining platforms did not take long to wait.
')
The development of Baldur's Gate: Enhanced Edition has become an interesting adventure. We experienced an unforgettable feeling when we first launched Baldur's Gate on a tablet and proved our theory - as we thought, BG and tablets were simply made for each other. There were moments of inspiration - we discovered a lot from those experiences when we attracted people from the modders community and gave them a chance to try the beta versions. There were moments of despair - for example, when it turned out that the originals of art were irretrievably lost, or when we had to make concessions in order for the transaction to take place. There were moments when we experienced terrible stress - for example, when we had to renew the contract for the release of the game from September to November. Every day we waited for permission to publish any new information about the game - so communication with the fans turned into a real torture. We tried to come to an agreement as quickly as possible, but because of the fuss with the signatures, our schedule was rolling further down the slope.

We experienced some great moments as a team - for example, when we first saw the new UI in the game itself, or when the new music written by Sam finally played in one of the locations. Thanks to all this exciting adventure, we became a strong team of thirteen people and realized that we are capable of great things. Worked with such professionals as Mark Mir, John Halakher and Sam Hulik (BioWare staff - respectively, voice acting actor, concept artist and composer - comment of the translator ). The opportunity to work with a magnificent original demanded that we be able to create something equally good - familiar, but at the same time unlike. In short, Baldur's Gate: Enhanced Edition was a challenge for us, but we were able to finish the development without going crazy, and even more so - with an excellent understanding of the game mechanisms, game engine technology and everything that made Baldur's Gate a true legend. .

image

What went well


1. Fans and community

We knew from the very beginning that the key element of Enhanced Edition success is in attracting the maximum number of people from the Baldur's Gate community and mod authors. Working together with them and carefully listening to their ideas, we were able to make the game better, make the right choices and satisfy the desires of the fans (it reminds us of how Bioware worked on the original game: the developers were constantly present at the major CRPG fan forums, carefully examining the players' wishes regarding games and CRPG as a whole - largely because of this they knew exactly what to do, and Baldur's Gate was obviously a hit even before it appeared on store shelves - this makes it a little clearer why so many people had to play Kusu - note of the translator).. Our first attempts to build teamwork were rather rude and inept - Reddit for invitations, direct e-mails - but everything became much better when we launched the official game forum where we were able to directly express our thoughts and listen to fan considerations. We shared with them all the new content as soon as it was possible and tried to respond to their feedback. A closed beta helped us in this - we constantly uploaded new beta versions, and fans honestly told us about what they liked and what they didn’t.

The core of the community was formed quickly enough, and it happened by itself - mainly it consisted of people who stood out for their healthy criticism and thoughtful proposals. We read all the feedback in general, but first of all we reacted to deep and serious criticism - in the community they quickly prowled it and everyone began to delve into the project. The entire closed beta was formed just among the members of this active “thoughtful” group.

And yes, we all our lives will be grateful to those who have fought with us on the forum to make Baldur's Gate better.

2. Past working ties

Our situation was complicated by the number of companies involved in this project: Atari, Hasbro, Wizards of the Coast, BioWare, EA and we (Beamdog). When we finally settled the basic terms of the deal and convinced everyone that the world was waiting for the opportunity to once again plunge into the world of Baldur's Gate, we had the opportunity to start collecting all interested parties together. Our past connections helped us to quickly deal with everything. It took me more time to get through the Atari indifference and talk to the right people, more time than most of the work on the game. I remember when I met a man at GDC who for several months did not want to allow me to talk to the company management. When we saw each other, he said, “You must be hating me.” To which I replied, "Already there."

I am glad that among my friends were Richard Ivanyuk, Greg Zichuk and Ray Music. They helped to contact everyone who was required to obtain signatures in a more or less reasonable time. Richard was able to bring all the key authors "at the end of the line" together and helped us defend our decisions regarding the game. Derek French helped from BioWare - he helped us not to drown in the depths of the code and with the artwork assets during the whole development process. (The lesson we learned from this was that without a person who would be associated with each of the groups of authors, we could not have done anything.)

I worked at BioWare for 15 years and was happy to meet old friends again. I began as one of its original founders, working on design, programming and art on the Shattered Steel project. And I am the same person who spent Neverwinter Nights from one line in the contract “anything you want in a box labeled D & D” to what it eventually became - in seven years of development and two big additions. I continued my journey as a technology director, and shortly before leaving in 2009, I returned to the love of all my life - project development management. The greatest advantage of game development is the people who do it. I hope that someday I will be able to repay them for all that they have done for us — to know more how to do this.

3. iPad and touch interface

We have proved that the tablet market is ready for the arrival of serious and large RPGs. The success was impressive, as were the reviews from the Touch Arcade and Pocket Tactics editions - and the feedback from regular players was no worse. (There is a belief that the audience treats tablets and other mobile devices as a platform for small entertainment games, treating announcements of serious games almost as an insult. Players (for example, Kickstarter) still do not believe that AAA-title can visit tablets . - translator comment )

Co-founder of Beamdog and veteran developer Cameron Topher went crazy with the tablet version from the start. The iPad version was launched and worked half a year before it was released. Each new build introduced radical changes - as we learned a way to connect logical actions in Baldur's Gate, using the principles of tach control.

In the end, Cameron’s approach came down to isolating the most frequent actions in the game and simplifying their management. In BG, the most popular action is scrolling the screen, so we used for it the photo drag applied in the application. The next most popular is the movement / interaction that we tied to a simple tap. At first we tried to make a group choice, but after several attempts it was convenient to implement this function in the slightest degree, we came to the conclusion that most of the actions in BG are performed with one character or the whole group at once, therefore in the end we removed it to a separate button. If you tried the tablet version of BG: EE, then you should like the control - it has a certain logical unity.

image

At about the same time, we added the improvement, which we called the “smart radius”. Smart radius allows you to get precise control of the mouse on a less accurate control of the fingers, making it easier to enter buildings, pick up objects from the ground and everything in the same spirit.

We continue to think about how to make management even better - this process is an iteration. From the point of view of the overall UI design, we wanted to preserve the original sensations from the game, but to adapt it to the new resolution of 1024x768. My priority in the UI was to create as large user portraits. We wrote out all the elements of the UI and slowly reworked all the art and all the panels around the new sizes of portraits, while trying to follow the requirements for Apple's UI - for example, trying to make the buttons more than 44 pixels in height (we could not do it only in a few places - for example on the class selection screen). This process was like a competition - because we had to work with the UI code, while trying not to touch the rest of the complex application code - and this was a damn closely integrated code with the UI system - damn you, Scott Craig!

4. Beta testing

Beta test game was about six months. All this time, we received just an incredible feedback stream - we found and fixed bugs at a fast pace, and even experienced mod authors sometimes offered their solutions to save our time.

We believe beta was a key element in the success of the project. Feedback about our content was wonderful, thanks to her we found many strange moments when quests broke in the most unpredictable way. Due to the complexity of Baldur's Gate, we needed to do a lot of testing: first, the testers looked for possible ways to break the quest, then we quickly fixed the problem and again gave the game to them to be torn apart.

Since we adhered to the structure of game archives and asset formats used in the original, we were able to involve the community of developers, and not just our team, to the project. As mentioned above, beta testers were recruited from our forums - we chose those who had a lot of experience in communicating with the original game, so all feedback was quick and rigorous in the case. Beta testers had access to our bug tracker, and therefore we immediately saw all the new bugs received.

In addition, we hired a third-party tester company iBeta, and she helped us with the completion of the version for the iPad - including making sure that all specific places are covered with tests. They conducted something like “pre-certification” for us and helped us learn about the differences in the “iron” stuffing of different iPad generations.

5. Our own digital distribution service

Beamdog consists of two parts; the online distribution service and our game development team, which we call Overhaul Games. We developed Beamdog Store in order to directly sell our games to users - without intermediaries, problems with support and other things - so that everything happens only between the developer and the buyer. Direct sales and pre-orders allowed us to earn the first money months before we received them from royalties - this was great for a small self-financing developer. Of course, there were small “jambs” with the users' software and obsolete SSL certificates on their computers, but the system still worked perfectly.

By the time the game was launched, we were able to run servers in Germany, Singapore, and on the west and east coasts of the USA, and send hundreds of terabytes to our users. We use our internal service to distribute all game builds - without it we could not make patches so flexibly, effectively monitor version control or quickly distribute the game - after all, we use this service even to distribute working versions of the game for OSX, iPad and Android. We plan to expand its functionality in the future.

image

Something went wrong


1. Epic code complexity

Work on the project took the ga va year. At first, we planned to “get inside as a ninja, fix it a little here and there, replace the entire schedule and wind up”. When we started working with the game code, several problems with the performance and stability of the engine immediately surfaced. We decided to track some of the problems ... and all the tracks eventually led us to the flow model implemented in the Infinity engine.

The fact is that Infinity was multithreaded even when there were no processors with parallel code execution. As a result, the engine was designed around a flow model that does not actually exist. Its main problem was that all the streams shared the same data set; all these threads were created, accessed the same memory and eventually blocked each other - all threads stopped until the current one was executed.

The code was also freaked out using critical sections, which in some cases spent up to 70% of working time on idle time. Our long-term solution was to cut them as if with the help of a machete and remove the streams - thus cutting out a couple of hundred thousand lines of code from the game. The result was more stable and less likely to cause a drop in performance. The ninja-style approach was tested by us in other places, and each time it ended the same way — we always rested on very complex problems that existed in the 90s and did not exist today. We still continue to find such places in the code and remove them as we work on the patches.

2. Complicated data and code dependencies

I have my own joke about the developers, which I like to repeat often. It sounds like this: "The worst of the atrocities are committed when the programmer is sure that he is smart." The Infinity Engine is full of these "wise" tricks. For example: character rendering on the screen begins with the fact that with the help of a wildly cumbersome resource management system, the correct frame and the direction of the character's sprite are loaded from the resource file. Then, with the sprite, color conversion is performed using a 256-color color swap (“palette swap”). After this transformation with the sprite, any number of further manipulations with the palette can occur (this is required, for example, for stones). Then the sprite is rendered, taking into account the potentially overlapping elements nearby.

The final result is sent to the screen in 64x64 tiles for rendering. The whole system works under the guidance of dynamic management, which marks 64x64 tiles as updated and draws them or — if there are no changes — draws the tile stored in the buffer. The number of ingenious shifts and tricks produced by a simple sprite, it becomes almost impossible to track. In some cases, manipulations may require accessing .2da files that are responsible for anything from animation of changing weapons to changing sprites from a regular person to a dwarf. It is clear that the RPG code of this scale could not be easy - but, nevertheless, such nuances significantly limited us in our creative flight, without allowing us to make the necessary architectural changes.

3. Lost sources of art

Initially, the deal was made in the hope that we will make Baldur's Gate: HD. Our plan was simple: we take the original artwork, clean it, re-render it in high resolutions and with the best materials - and thus we get great versions of locations that are painfully familiar to everyone. We also planned to take character models and re-render them too - add more frames to all animations, new directions of movement - in general, to make the game more “smooth”. We have been discussing all this among ourselves for a long time, we have already prepared for the start of work, and here we received the first package with AsseWets from BioWare.

A few days later, we noticed a huge hole in the place where the artwork sources were supposed to be - there were not enough 3DS Max models and textures. "Not a problem," I said, and contacted Derek French from BioWare, who rummaged through the bins and sent us more data. We began to study them - and again did not find the source of art. I agreed with Derek and the BioWare IT department about visiting them - and, taking a removable hard disk with me, I went in search of lost assets.

After two days of uninterrupted searches, we came to a terrible discovery - it turned out that all the source codes for the game were stored on a regular network drive, and not on the project disk, and backups from it were done very rarely. We reviewed all the backups, but our efforts were in vain. The original art was irretrievably lost.

The time has come to report our discovery to Atari - and we understood that now the project has no chance. Cameron and I spent several weeks reinventing the concept of reissue. We suggested that Atari do not "HD" version, and "Extended Edition." We discussed the possible consequences of releasing a project with old graphics, and significantly cut royalties - and all in order to return to the project. Simply put, we completely threw out our old plans and started everything from scratch - and this after a whole year of negotiations, which were also wasted.

image

What is the result? Well, the graphic "beauty" was smaller than we originally planned, but it all turned into an unexpected bonus - we had more time to change the rest of the contents of the game. What is worth learning from this? Never panic and always keep a towel with you - you never know where another surprise is hidden ... so the towel is always useful.

4. OpenGL support on Intel integrated graphics cards.

When we started developing BG: EE, we clearly decided to use the OpenGL 2.0 specification from 2004 — so that the compatibility of functionality on all devices is the same. We quickly ran tests on PC, Mac, iPad, Android - like check marks in front of the names in the store's shopping list. Raspberry Pi ... Raspberry-his-Pi mother with support for OpenGL 2.0! Here, one more tick.

We expanded the group of beta testers and (perhaps the whole point is that all the participants in the test were also enthusiastic by nature) we thought that we had practically no performance problems. Now it seems to me that the whole thing was that we dealt with gamers who, by nature, prefer expensive video cards, which, of course, with the support of OpenGL for the old specifications, of course, everything is so good. Closer to the release date, we saw the first reports that things were not so good on Intel integrated cards, especially on older laptops. We tried to find out what was the matter, and here we had another “pleasant” discovery - it turns out that many of the manufacturers of notebooks did not update the drivers for them for years.

At this time we just released the game on the PC. And immediately began to receive more reports of poor performance and problems with graphics. Of course, we managed to find several ways to solve problems - for example, forcing Intel cards to update drivers to the latest version (manufacturers, for a minute, very often they did not even try to sign). Our further research led to a terrible conclusion - most of the old Intel cards did not have full support for OpenGL 2.0. Why, there - they often could not support OpenGL 1.0 as it should.

We, the developers, were ambushed. We spent the entire budget allocated for development (and even added on top), and now we have angry users who cannot play the game for which they paid their money - and all because of problems with the drivers. In the end, we were able to come up with a solution for this problem and in the future we are going to spend a considerable amount of time and money on completely rewriting the rendering system in BG: EE to compensate for the functionality that is missing in the problematic drivers.

After talking with the guys from Intel, we learned where we turned from the right path to the curved path - and we have a new plan how to correct the mistakes made. However, the amount of code that we need to rewrite is very large - so we hope that the fans will show patience and wait for the moment when we solve all the problems.

What is the lesson from all this? Even if you have a lot of testers, it still does not mean that you were able to cover all the available hardware well. Perhaps your project works well on the latest equipment of enthusiasts - but this is not all equipment. What initially seemed to be a problem with a very old iron, turned out to be much more of a nuisance. And yes, just imagine, the specification from 2004 and the “industry standard” do not mean that you will not have any problems with the drivers.

We had to test everything on all available hardware before. The variety on the PC platform is a good thing, because it allows iron manufacturers to create their own products and compete with each other - and this has a positive effect on prices, reducing them. But what a nightmare for a developer is - after all, there is always a chance of another surprise, when on a certain configuration everything begins to be terribly slow. I have been working on PC development since 1994 (yes, I am so old), and on every project I encountered at least one problem due to hardware. Therefore, new generations of PCs bring me no more joy than a cobra crawling to bed.

5. iOS 6

A little bit later, we started testing the game on the beta of iOS 6 coming out soon. We couldn’t understand what Apple had changed in the graphics engine on iOS (iOS Core Graphics), but as a result we lost FPS on all iPads with the first to the third generation - it became simply impossible to play on these tablets. According to good tradition, this surprise came to light when less than a month remained before the official release date of the game.

What could we do? We quickly moved the bulk of our efforts from other parts of the project to performance problems. I had to cut it alive - after all, the choice was between picture quality and an increase in frame rate. How did it all end? Our main developers lost a lot of time on an unplanned task, and as a result - most of the time we spent on bug fixing went into the fight against performance, and as a result, the quality of the product suffered - users faced a whole lot of bugs. The lesson was learned - now we understand that the time must always be slightly increased in the expectation of unplanned changes and problems. In addition, a little more time should be allocated for testing the project on the current and beta versions of iOS.

Conclusion


In the end, the resulting BG: EE is the ageless quality of the original BG, to which a small team of indifferent admirers put their hands. We could have completed the development faster and, possibly, put together a smaller bunch of bugs if we decided to make major changes in the game - but we initially planned to take on the role of a “keeper of traditions”. We were not going to touch Baldur's Gate in order to show ourselves or leave our mark in the world of game development - no, we wanted to make the great game even better and bring it to new platforms. The success of the game with critics and the public - including the commercial one - hints that we are not going to dwell on this and have already firmly decided that we want to see Baldur's Gate 2: Enhanced Edition.

From translator


From the moment of writing, the post-mortema managed to go through several months, and today things at Beamdog, alas, are not too good.

In the second half of June, Beamdog was forced to withdraw BG: EE from sale from its website and from the mobile App Store. Then the studio explained this fact conflict with the publisher Atari.Studios had to stop developing a patch for Baldur's Gate, as well as versions of the game for Android and Baldur's Gate II Enhanced Edition. The fate of Baldur's Gate III, which the studio planned to create, has become uncertain. Oster then noticed that the developers were "demoralized", but hoping for the best.

Source: https://habr.com/ru/post/184930/


All Articles