15 Jan, 2021
Phát triển trò chơi máy tính
Roger là một sinh viên của tôi đã tốt nghiệp và làm việc cho một công ti trò chơi máy tính. Anh ấy là một trong những người phát triển chính cho trò chơi có tên “Halo”. Tuần trước anh ấy quay về CMU để tuyển sinh viên cho công ti của anh ấy. Tôi mời anh ấy tới nói chuyện cho lớp của tôi liên quan tới kinh nghiệm của anh ấy trong công nghiệp trò chơi máy tính.
Sau đây là điều anh ấy nói với lớp:
“Trò chơi là lĩnh vực đặc biệt mà nhiều người thích làm việc nhưng ít người thành công. Thứ nhất, bạn phải thích trò chơi máy tính nhưng hơn thế, bạn phải có đam mê về nó. Thứ hai, bạn phải sẵn lòng làm việc vất vả và làm thêm nhiều giờ phụ, 60 giờ một tuần hay hơn, thay vì chỉ 40 giờ thường lệ. Bạn phải cống hiến bản thân mình cho công việc của mình nếu không bạn sẽ KHÔNG đi xa được. Ngược với quan niệm rằng người phát triển trò chơi hầu hết là người lập trình, trong công ti tôi nhiều người phát triển là nghệ sĩ, người thiết kế đồ hoạ, và nhà văn, người dùng ngôn ngữ lập trình như “công cụ” để sáng tạo ra “nghệ thuật” của họ. Đặc trưng khác của người phát triển trò chơi là thái độ cạnh tranh cao trong số họ. Họ muốn có đồ hoạ tốt nhất, mầu sắc đẹp nhất, câu chuyện hay nhất, kịch bản hay nhất, âm nhạc hay nhất cho trò chơi của họ và sẽ KHÔNG thoả hiệp. Đó là lí do tại sao tất cả họ đều làm việc nhiều giờ để làm cho trò chơi của họ trở thành tốt nhất có thể được bằng việc kiểm thử chúng, làm lại công việc với chúng, chơi chúng trong nhiều giờ để “hoàn thiện” chúng. Sau khi trò chơi được đưa ra, họ chuyển sang trò chơi tiếp và hầu hết chẳng bao giờ chạm tới trò chơi cũ lần nữa.”
“Thiết kế trò chơi là điều đầu tiên phải làm khi toàn tổ làm việc cùng nhau để tạo ra cốt truyện, kịch bản, xác định cái gì làm cho trò chơi thành “vui và kích động” và làm sao họ thế “giết” trò chơi khác đang có trên thị trường. Cốt truyện và ý tưởng được trình bày cho người thiết kế cấp cao, người phân tích mọi chi tiết để đảm bảo rằng tổ có mọi thứ đã được suy nghĩ cẩn thận. Đây là hoạt động rất tàn bạo theo nghĩa nhiều ý tưởng bị bác bỏ và nhiều người KHÔNG thể trụ lại với điều đó và rời bỏ đi trong pha này. Đây cũng là chỗ người sáng tạo và người sản xuất thường tranh đấu về ý tưởng của họ. Mặc dầu nhiều dự án trò chơi là tương tự như dự án phim Hollywood, nó vẫn là phát triển phần mềm, với yêu cầu thay đổi, thiết kế thay đổi vào phút chót và nhiều việc viết mã và kiểm thử. Một cách logic, bất kì cái gì có thể được hoàn thành sớm đều nên được thực hiện sớm. Người phát triển nên để những thứ dễ dàng ra ngoài con đường, và làm việc trên những điều khó khăn nhưng logic này KHÔNG có tác dụng trong phát triển trò chơi. KHÔNG có logic ở đây bởi vì kịch bản sẽ thay đổi khi nhiều chi tiết được phát hiện ra và những ý tưởng mới tới trong cốt truyện cho nên bạn có thể phải lập trình lại nhiều công việc. Bất kì ai có “tim yếu” sẽ KHÔNG sống sót nổi với việc phát triển trò chơi bởi vì nó thực sự là trộn lẫn của sáng tạo, nghệ thuật, khám phá và công nghệ. Bất kì cái gì là chủ đề cho thay đổi như tính sáng tạo đều chảy giữa các thành viên tổ cho nên các hoạt động là kích động hôm nay và thất vọng ngày mai. Để tôi cho các bạn một ví dụ, tưởng tượng rằng bạn đang viết cuốn tiểu thuyết cùng một trăm nhà văn khác, mọi người đều có ý tưởng và tất cả họ đều muốn ý tưởng của mình là một phần của cuốn tiểu thuyết.”
Roger mỉm cười và nói với lớp: “Điều tốt về phát triển trò chơi là ở chỗ mọi người đều có ý tưởng. Điều xấu về phát triển trò chơi là ở chỗ mọi người cũng có ý tưởng. Sự kiện thú vị là bạn có thể tạo ra nó và để cho người khác chơi với nó để kiểm thử ý tưởng của bạn trước khi nó được chấp nhận vào kịch bản. Có câu mật chú: “Nghĩ về điều không thể nghĩ được; mơ về điều không thể có được; tạo ra ra điều mà không ai đã từng làm trước đây và nghi vấn mọi giả định” – đó là chỗ bạn đi tới canh tân bởi vì bạn đang tạo ra “thế giới thần” nơi không có qui tắc, và mọi thứ đều toàn là về điều bạn tưởng tượng nó là vậy.” Mức vào nghề đối với hầu hết người phát triển trò chơi là kiểm thử trò chơi. Việc này yêu cầu bạn chơi đi chơi lại trò chơi và báo cáo về ấn tượng của bạn về trò chơi cho người quản lí sản xuất. Nó “KHÔNG VUI” đâu mà là ‘hành hạ’ vì bạn phải báo cáo về ấn tượng của bạn sau một giờ, sau ba giờ, sau hai mươi bốn giờ, sau nhiều tháng chơi cùng trò chơi đó ở các mức khác nhau với các công cụ khác nhau. Tại từng bước, bạn phải hình dung rằng bạn là người chơi với mong đợi nào đó, thoả mãn hay thất vọng nào đó với hình ảnh, với mầu sắc, âm thanh và mức khi bạn đi từ dễ tới mức khó hơn, và xác định liệu bạn có nên rời bỏ hay tiếp tục. Cho dù bạn yêu thích trò chơi máy tính, bạn sẽ “ỐM” sau vài tháng chơi cùng trò chơi và viết ấn tượng của bạn vào tài liệu trò chơi. Phần lớn mọi người rời bỏ sau vài tháng trong kiểm thử và đó là lí do tại sao bạn phải có đam mê với trò chơi để tồn tại trong ngành công nghiệp này.”
“Có nhiều thứ người phát triển trò chơi phải chú ý, chẳng hạn, kích cỡ màn hình máy tính và bộ nhớ, họ phải quyết định về độ phân giải màn hình PC chuẩn, tỉ lệ làm tươi, chiều sâu mầu sắc, và các phương thức toàn màn hình so với cửa sổ và kiểm thử trò chơi với những thiết đặt đó. Với trò chơi có màn hình điều khiển, họ có nhiều thiết đặt phải lo nghĩ tới. Nếu trò chơi được bán trên toàn thế giới, họ cần giải quyết với các chuẩn khác nhau (NTSC và PAL), có nhiều độ phân giải màn hình khác nhau, tỉ lệ cạnh khác nhau và yêu cầu bộ nhớ, và tỉ lệ làm tươi khác nhau, điều có thể ảnh hưởng thời hành vi trò chơi tuỳ thuộc vào tính toán theo khung. Có các phương thức khác như EURGB60, M-PAL, 480p (quét dần) và đa mức của HDTV. Bởi vì độ phân giải PAL là khác với NTSC và tỉ số tỉ lệ cũng khác, người phát triển trò chơi phải thẩm tra rằng các yếu tố 2D nói riêng, như đầu trước, văn bản, HUD và phim là cân bằng. Độ phân giải chiều đứng cao hơn của PAL nghĩa là việc dùng bộ nhớ video lớn hơn. Nếu bạn không tính tới khối lượng thời gian thực nào đó trôi qua, trò chơi sẽ hành xử khác đi.”
Roger cười: “Phần lớn những người phát triển phần mềm ứng dụng đều không bao giờ nghĩ về điều đó. Họ không quan tâm về phần cứng hay vấn đề với các chuẩn mà chỉ viết mã và đảm bảo mã làm việc. Người phát triển trò chơi phải biết mọi thứ cho nên phải mất nhiều năm để chuyển từ người kiểm thử trò chơi sang người phát triển trò chơi. Chỉ nếu bạn rất giỏi là người lập trình trò chơi thì bạn mới có thể đi lên thành người phát triển trò chơi và cuối cùng là người thiết kế trò chơi. Yếu tố cốt yếu khác trong công nghiệp trò chơi là lịch biểu thì bao giờ cũng cố định và không thể thay đổi được. Chẳng hạn, bạn phải đưa ra trò chơi vào dịp bán hàng Nô en, mọi sự phải hoàn thành trước tháng sáu để kiểm thử và sản xuất. Phát triển trò chơi là rất nặng về lao động cho nên nó rất tốn kém. Nếu bạn chậm, bạn bỏ lỡ hạn kì nghỉ và mất kinh doanh. Có ưu thế khác, bạn bao giờ cũng làm việc với phần cứng tốt nhất, màn hình trò chơi mới nhất trước bất kì ai khác. Tất nhiên với trò chơi PC bạn có đa dạng phần cứng khác nhau, hệ điều hành và các cấu hình khác nhau để kiểm thử trò chơi của bạn. Điều này cũng đúng cho trò chơi điện thoại di động vì các đời điện thoại thay đổi theo kích cỡ màn hình và độ phân giải mầu, tỉ lệ làm tươi, bộ nhớ v.v.. Là người phát triển trò chơi giỏi hơn, bạn phải biết đủ rõ về phần cứng để giải quyết các vấn đề này. Bên cạnh đồ hoạ, bạn phải biết về âm nhạc nữa vì cái gì đi cùng đồ hoạ cũng đi với âm thanh. Bạn phải tạo ra một loại nhạc trò chơi máy tính rất đặc biệt mà khác với các kiểu âm nhạc đều đặn. Như tôi đã nhắc tới, người phát triển trò chơi là nghệ sĩ, nhà văn, người lập trình và cũng là nhạc sĩ. Chuẩn bị trò chơi cho khán giả mục tiêu cũng là quá trình khởi thảo với nhiều thử và sai sót.”
Roger kết luận: “Phát triển trò chơi là lĩnh vực chuyên môn hoá cao yêu cầu kĩ năng nhưng phần lớn tất cả những điều đó lại là về thái độ và sáng tạo của bạn. Nó thực sự là “nghệ thuật” cũng giống như nghệ sĩ vẽ tranh hay nhạc sĩ viết nhạc. Nó KHÔNG dành cho mọi người nhưng phần thưởng là mọi thứ. Cũng giống như nhà văn có hàng triệu độc giả mua sách của người đó hay như nhạc sĩ có bài hàng hàng đầu mà hàng triệu người sẽ hát. Tưởng tượng rằng bạn có một trò chơi được bán vài triệu bản và mọi nơi bạn tới, bạn thấy trò chơi của mình được mọi người đủ mọi lứa tuổi chơi. Điều đó làm bạn tự hào và cảm thấy thoải mái. Nhân tiện, người phát triển trò chơi KHÔNG làm ra nhiều tiền đâu, họ làm việc vì công ti và thu được lương cũng giống như những người phát triển phần mềm. Người chủ công ti làm ra tất cả tiền nếu trò chơi làm tốt trên thị trường. Không người phát triển nào giầu chừng nào họ còn chưa trở thành người chủ công ti. Là người phát triển trò chơi, bạn làm nó bởi vì bạn yêu thích nó, cũng giống như hầu hết các nghệ sĩ sáng tạo ra mọi thứ, họ KHÔNG nghĩ về tiền mà làm cái gì đó tuyệt vời, làm cho cuộc sống tươi đẹp, làm cho mọi người hạnh phúc. Cùng điều đó đúng với người phát triển trò chơi, thực tế họ là “nghệ sĩ máy tính” của thời đại chúng ta.
—-English version—-
Computer Games Development
Roger is one of my students who graduated and worked for a computer games company. He is one of the key developers for a game called “Halo”. Last week he returned to CMU to recruit students for his company. I asked him to give a talk in my class regarding his experience in computer games industry. Following is what he told the class:
“Computer games is a special field that many people like to work in but few succeed. First, you must like computer games but more than that, you must have passion for it. Second, you must be willing to work hard and put in a lot of extra hours, 60 hours per week or more, rather than the regular 40 hours. You must devote yourself to your work or else you will NOT go far. Contradict to the notion that game developers are mostly programmers, in my company many developers are artists, graphic designers, and writers who use programming languages as “tools” to create their “arts”. Another characteristic of game developers is the highly competitive attitudes among them. They want the best graphics, the best colors, the best stories, the best scenarios, the best music for their games and will NOT compromise. That is why they all work long hours to make their games the best possible by testing them, rework them, play them for many hours to “perfect” them. After the game is released, they move on to the next game and most never touch their old games again”.
“Game design is the first thing to do as the team works together to create the story, the scenarios, determine on what makes a game “fun and exciting” and how can they “Kill” other existing games in the market. The story and ideas are presented to senior designers who analyze every detail to ensure that the team has everything carefully thought-out. This is a very brutal activity as many ideas are rejected and many people could NOT stand it and quit during this phase. This is also where creativity and production people often fight over their ideas. Although many game projects are similar to a Hollywood film projects, it is still a software development, with changing requirements, changing design at the last minutes and a lot of coding and testing. Logically, anything that can be completed early should be done early. Developers should get easy things out of the way, and work on the difficult things but this logic does NOT work in game development. There is NO logic here because the scenarios will keep changing as more details are discovered and new ideas come into the story so you may have to reprogram a lot of works. Anyone who has a “Weak heart” will NOT survive game development because it is really a mix of creativity, artistry, discovery, and technology. Anything is subjected to change as the creativity flows among team members so the activities are exciting one day and frustrating the next day. Let me give you an example, imagine that you are writing a novel together with hundred other writers, everyone has some ideas and they all want their ideas to be part of the novel”.
Roger smiled and told the class: “The good thing about games development is that everybody has an idea. The bad thing about games development is that everybody also has an idea. The interesting fact is you can create it and let others play with it to test your idea before it is accepted into the scenarios. There is a “Mantra: “Think the unthinkable; Dream of the impossible; Create the thing that nobody ever done before and question every assumptions” – that is where you come up with innovation because you are creating a “magical world” where there are no rules, and everything is all about what you imagine it to be”. The entry level for most game developers is game tester. This job requires you to play the game over and over and report your impressions of the game to the production manager. It is “NO FUN” but ‘torturing’ as you must report your impressions after one hour, after three hours, after eight hours, after twenty four hours, after months of playing the same game at different levels with different tools. At each step, you must imagine that you are the player with certain expectations, certain satisfaction or frustration with the pictures, the colors, the sound and the level as you move from easy to more difficulty levels, and determine whether you should quit or continue. Even if you love computer games, you will get “SICK” after months of playing the same game and write your impressions on the game document. Most people quit after few months in testing and that is why you must have a passion for game to survive in this industry”.
“There are many things game developers must pay attention, For example, computer screen size and memory, they have to decide on the standard PC monitor resolutions, refresh rates, color depths, and full-screen vs. windowed modes and test the game with those settings. With console games, they have more than one setting to worry about. If the game is sold worldwide, they need to deal with different standards (NTSC and PAL), which have different screen resolutions, different aspect ratios and memory requirements, and different refresh rates, which may affect any game behavior dependent on per-frame computation. There are other modes like EURGB60, M-PAL, 480p (progressive scan) and multiple levels of HDTV. Because PAL resolution is different from NTSC and the aspect ratio is also different, game developers must verify that 2D elements in particular, such as the front end, the text, HUD and movies is balanced. The higher vertical resolution of PAL mean greater video memory usage. If you do not take in account certain real time elapsed, the game will behave differently”.
Roger laughed: “Most application software developers never have to think about that. They do not care about hardware or problem with standards but only writing code and make sure that the code works. Game developers have to know everything so it takes several years to move from game tester to game programmer. Only if you are very good as game programmer then you could move up to game developers and eventually to game designer. Another critical factor in game industry is the schedule is always fixed and cannot be changed. For example, you must release the game for Christmas sale then everything must complete by June for testing and production. Game development is labor intensive so it is very costly. If you are late, you miss the holiday dateline and lose the business. There is another advantage, you are always working with the best hardware, the latest game console before anybody else. Of course for PC games you have a variety of different hardware, operating systems, and various configurations for testing your game. This is also true for mobile phone games as phone models vary in screen size and color resolution, refresh rate, memory, etc. To be a better game developer, you must know hardware well enough to deal with these issues. Beside graphic, you must know about music too as what goes for graphics, also goes for sound. You must create very special kind of computer game music which is different from regular types of music. As I mentioned, game developers are artists, writers, programmers, and also musicians. Preparing the game for the target audience is an elaborate process with a lot of trial and errors.
Roger concluded: “Game development is a highly specialize field which requires specific skills but most of all it is about your attitude and creativity. It is really an “art” just like an artist painting a picture or a musician writes music. It is NOT for everyone but the reward is everything. Just like a writer who has million readers who buy his book or a musician who has a top hit songs that million people would sing. Imagine that you have a game that sold several million copies and everywhere you go, you see your game being played by people of all ages. It make you proud and feel good. By the way, game developers do NOT make a lot of money, they work for a company and collect wages just like software developers. The company owner makes all the money if the game do well in the market. No game developers ever get rich unless they became owner of a company. As game developer, you do it because you love it, just like most artists who create things, they do NOT think about money but make something wonderful, make life beautiful, make people happy. The same is true to game developers, actually they are the “Computer artists” of our time.