18 Mar, 2021
Phát triển trò chơi máy tính
Một cựu sinh viên viết cho tôi về kinh nghiệm của anh ta trong phát triển trò chơi máy tính để chia sẻ với sinh viên hiện thời.
Thưa giáo sư,
Sau khi tốt nghiệp sáu năm trước, em đã làm việc cho một công ti trò chơi máy tính nhỏ. Em bắt đầu là người kiểm thử nhưng chỉ không đầy hai năm; em được đề bạt làm người phát triển trò chơi vì công ti tăng trưởng nhanh thế và thuê nhiều người. Vì em có một số kinh nghiệm, họ chuyển em làm người phát triển vì họ cần người phát triển tạo ra nhiều trò chơi. Điều này là bất thường vì hầu hết mọi người làm việc trong công nghiệp trò chơi đều phải dành vài năm trước khi đi lên vị trí người phát triển.
Việc hiện thời của tôi là thiết kế và viết mã cho trò chơi trực tuyến nhiều người chơi. Tôi đã tạo ra thế giới ba chiều nơi hàng trăm nghìn người trên khắp thế giới chơi trò chơi phiêu lưu của chúng tôi. Là người phát triển, tôi định nghĩa qui tắc và công thức cho trò chơi. Chẳng hạn, tôi viết mã cho một vũ khí có thể gây phá hoại nhiều thế nào và tôi cho người chơi bao nhiêu điểm. Tôi cũng quyết định khi nào quỉ có thể tấn công người chơi và ai có thể giết được quỉ v.v. Tôi thích thú với qui trình phát triển trò chơi. Như một công ti nhỏ, người chủ là rất tốt với chúng tôi. Thay vì bảo chúng tôi viết mã tương ứng theo đặc tả, họ cho phép chúng tôi ra một số quyết định trong việc phát triển những đặc tả đó. Chúng tôi dành nhiều thời gian thảo luận, tranh cãi về hiệu quả của vũ khí như cung so với kiếm, súng lục so với súng máy v.v. Tôi có thể tạo ra hàng trăm vũ khí mới cho người chơi và tưởng tượng của tôi liên tục bay cao.
Tuy nhiên, làm trò chơi khác với chơi trò chơi. Bạn phải làm việc cần cù vì nó là tẻ nhạt với nhiều chi tiết. Không kiên nhẫn, bạn sẽ không kéo dài được trong ngành công nghiệp này. Làm trò chơi có bao gồm thảo luận qui định về những tính năng then chốt nào đó mà trò chơi phải có. Bạn cũng dành nhiều thời gian vào thực hiện câu chuyện của trò chơi, sửa lỗi, kiểm thử và làm tài liệu kết quả. Tôi làm việc tốt với các thành viên khác trong tổ. Làm trò chơi là công việc có sức ép cao, và nó yêu cầu làm việc tổ vì bạn làm việc với những kiểu người khác nhau. Một số là nghệ sĩ, số khác là người thiết kế vì không phải mọi thành viên tổ đều là người phần mềm. Nếu bạn làm việc tốt với người khác, bạn sẽ làm tốt.
Cách tốt nhất để học phát triển trò chơi là tương tác với mọi người. Quan sát họ làm việc và học cách họ tương tác với nhau trong văn phòng. Điều quan trọng là nhận ra rằng mọi người có các phong cách trao đổi khác nhau. Cách tiếp cận yên tĩnh có thể có tác dụng với một số người nhưng có thể không có tác dụng với những người khác. Cách tốt nhất là nhiệt tình nhưng khiêm tốn. Tôi thường hỏi nhiều câu hỏi khi tôi bắt đầu nhưng bây giờ tôi trả lời nhiều hơn hỏi, điều đó nghĩa là tôi có một số kinh nghiệm. Một điều tôi thực sự thích thú là làm việc tổ và đây là kĩ năng bản chất trong ngành công nghiệp này. Tôi đánh giá cao giáo dục mà tôi đã học ở CMU vì làm việc tổ là một phần của đào tạo ở đây. Nhiều người gặp khó khăn làm việc trong tổ. Họ chưa bao giờ nhận được đào tạo nào trong làm việc tổ cho nên vài tháng đầu, họ thường cáu khi họ tranh cãi với nhau. Cuối cùng một số người bỏ đi hay bị sa thải.
Ngôn ngữ phát triển chính ở đây là C++, nhưng tôi cũng viết mã trong Perl nữa. Là người phát triển, tôi phải theo dõi công việc của tôi để chắc nó đáp ứng với lịch biểu dự án, tôi viết và cập nhật các tài liệu cho trò chơi tôi đang làm việc trên nó. Tôi cũng chịu trách nhiệm phải chắc rằng tổ tôi có hiểu biết rõ ràng về nhiệm vụ được phân công cho họ. Phát triển trò chơi là quá trình sáng tạo vì bạn phải tưởng tượng nhiều và nghĩ về chi tiết mà người chơi sẽ thích. Người thiết kế trò chơi bảo tôi nó cũng giống như là viết tiểu thuyết và nếu tiểu thuyết của bạn không được viết kĩ, mọi người sẽ không chơi với nó. Thỉnh thoảng phát triển trò chơi là nản lòng, cho nên điều quan trọng là phải được chuẩn bị. Sau khi ngồi trước máy tính tám tới mười một tiếng một ngày, tập thể dục là mấu chốt. Tôi đi bơi đều đặn để làm nhẹ căng thẳng.
Nhiều người nghĩ người phát triển trò chơi làm ra nhiều tiền. Điều đó không đúng. Nếu tiền là quan trọng với bạn, tôi khuyên rằng bạn nên làm việc cho ngân hàng hay bắt đầu doanh nghiệp riêng của bạn. Bạn có thể làm ra nhiều tiền hơn là làm việc cho công ti trò chơi máy tính. Với tôi, thoả mãn việc làm mới là quan trọng, quan trọng hơn việc làm ra tiền. Nếu bạn muốn một việc làm làm cho bạn thoả mãn với công việc khi bạn sáng tạo ra các thứ cho mọi người tận hưởng thì tôi rất gợi ý công nghệ trò chơi. Nhân tiện tôi không giầu nhưng tôi có nhiều người chơi, người thích sự sáng tạo của tôi. Họ viết cho tôi trên Facebook và nói với nhau trò chơi hay thế và mầu sắc đẹp làm sao hay cốt truyện hay. Tất nhiên, tôi không phải là người duy nhất vì công việc làm trò chơi là nỗ lực của tổ nhưng vì tên tôi được gắn với nó, tôi lấy làm sung sướng.
Lời khuyên của tôi cho sinh viên hiện thời là “Tiếp tục học bất kì cái gì bạn có thể học.” Trong công nghiệp trò chơi, công nghệ thay đổi nhanh chóng. Nếu bạn chỉ dựa vào điều bạn đã học trong trường, trong vài năm bạn sẽ bị thay thế bởi những người chỉ mới tốt nghiệp vì họ có kĩ năng cập nhật hơn bạn. Điều quan trọng là có thái độ học cả đời vì tôi học được nhiều ở đây bằng việc đọc nhiều sách và tham gia diễn đàn trực tuyến.
—-English version—-
Develop computer games
A former student wrote to me about his experience in developing computer games to share with current students.
Dear professor,
After graduated six years ago, I worked for a small computer game company. I started as a tester but just less than two years; I got promoted to game developer because the company grew so fast and hiring more people. Since I had some experiences, they moved me to developer as they needed developers to create more games. This was unusual because most people who worked in game industry must spend several years before moving up to developer position.
Currently my job is to design and write code for multiplayer online games. I create three-dimensional worlds where hundreds of thousands of people from all around the world play our game adventures. As developer, I define the rules and formulas for the game. For example, I code how much damage a weapon can do and how many point I give to players. I also decide when a monster can attack players and who can kill the monster etc. I enjoy the process of developing games. As a small company, the owners are very nice to us. Instead of tell us to write code according to a specification, they allow us to make some decisions in developing those specifications. We spend a lot of time discuss, debate on the effectiveness of weapons such as axes versus swords, handguns versus machine guns etc. I can create hundreds of new weapons for players and my imagination continues to soar.
However, making games is different than playing games. You have to work hard since it is tedious with a lot of details. Without patient, you will not last in this industry. Making games does involve discussions postulating on the certain key features that a game should have. You also spend more time implementing the story of the game, fixing bugs, testing and documenting the results. I work well with other team members. Making games is a high-pressure job, and it requires teamwork as you work with different types of people. Some are artists, other are designers since not all team members are software people. If you work well with others, you will do well.
The best way to learn game developing is to interact with people. Watch them work and learn the way they interact with each others in the office. The important thing is to realize that people have different communication styles. A quiet approach may work for some but may not work well with others. The best way is to be enthusiastic but humble. I often ask lots of questions when I started but now I answer more than ask, it means I have some experiences. One thing I really enjoy is teamwork and this is an essential skill in this industry. I appreciate the education that I learned at CMU since teamwork is part of the training there. Many people have difficulty working in team. They never get any training in teamwork so the first few months, they often get angry as they argue with each other. Eventually some quit or get fired.
The main development language here is C++, but I also code in Perl too. As a developer, I have to track my work to make sure it meets project schedules, I write and update documents for the games that I work on. I am also responsible for making sure that my team has a clear understanding of the tasks assigned to them. Game development is a creative process as you have to imagine a lot and think of details that players will enjoy. A game designer tells me it is like to write a novel and if your novel is not well written, people will not play it. Game development sometime is frustrated, so it is important to be prepared. After sitting in front of a computer for eight to eleven hours a day, exercise is critical. I swim on a regular basis to relieve stress.
Many people think game developer makes a lot of money. It is not true. If money is important to you, I would recommend that you should work for a Bank or start your own business. You may make more money than working for a computer games company. For me, job satisfaction is important, more important than making money. If you want a job that makes you happy at work as you are creating things for people to enjoy than I highly recommend the game industry. By the way I am not rich but I do have many players who like my creativity. They write about me in Facebook and tell each other how good the game is and how beautiful the colors or the story line. Of course, I am not the only one since game work is a team effort but since my name is associated with it, I am happy.
My advice to current students is “Continue to learn whatever you can.” In the game industry, technology changes quickly. If you only rely on what you learned in school, in few years you will be replaced by people who just graduate as they have more up-to-date skills than you. It is important to have the lifelong learning attitude since I learn a lot here by reading more books and online forums.