Trong phần trước, mình đã giới thiệu sơ qua về các vai trò cơ bản trong một game studio. Ở phần này, mình sẽ nói kỹ hơn về công việc của mình, một lập trình viên, cũng như xen vào một vài bài học mà mình đã học được trong những ngày đầu tiên đi làm. Là một sinh viên đi thực tập, dĩ nhiên mình khó có thể tránh khỏi cảm giác bỡ ngỡ do sự khác biệt giữa môi trường chuyên nghiệp và môi trường đại học mang lại.

Khác biệt đầu tiên, đó là sự hỗ trợ của đội ngũ artist đông đảo và hung hãn. Nếu như khi làm bài tập lớn ở trường, mình phải tự đi tìm tài nguyên để mà làm. Do các bộ tài nguyên này được tổng hợp từ nhiều nguồn, kiếm được các bộ có phong cách tương tự nhau để cho sản phẩm có sự thống nhất về mặt đồ hoạ là rất mệt và tốn thời gian. Đôi khi mình và đồng bọn team bài tập lớn còn phải ngồi chỉnh lại đám tài nguyên này sao cho hợp với nhu cầu, vì có tìm tiếp cũng chẳng tìm ra bộ nào hợp hơn. Với lũ sinh viên kỹ thuật chẳng biết gì về hội hoạ, việc mở Photoshop ra chỉnh kích thước ảnh thôi đã là một cực hình, đừng nói đến việc vẽ thêm xoá bớt . Thế nên được làm việc với các hoạ sĩ là điều mình thấy rất khoái, khi mà mình có thể tập trung phát triển kỹ năng lập trình của mình nhiều hơn.

Lan man chút, trước có bạn nào thắc mắc với mình là liệu lập trình viên có cần biết “thiết kế đồ hoạ” không, mình trả lời luôn là tuỳ vào môi trường của bạn. Nếu bạn thích làm kiểu một mình cân cả thế giới, làm mọi công đoạn từ A-Z thì dĩ nhiên là bạn phải biết rồi. Ngược lại, nếu như bạn làm việc cùng các hoạ sĩ ở các studio chuyên nghiệp thì hoàn toàn không cần thiết. Tuy nhiên nếu bạn muốn tìm hiểu thêm thì cũng chẳng vấn đề gì .

Trước khi quay lại vấn đề về công việc, mình kể qua một chút, thời điểm đó phần lớn công ty Emobi tập trung vào các tựa game online mang chủ đề kiếm hiệp của Tàu, phát hành trong nước. Cùng lúc đó, công ty vẫn muốn phát triển hướng ra thế giới, nên có hai team đánh lẻ, một là team phát triển của Toy Odyssey, một tựa game PC trên Steam. Team còn lại là team mình được phân vào, có nhiệm vụ phát triển các tựa game mini trên mobile. Thành phần gồm, như đã kể từ trước, một game designer, hai hoạ sĩ 2D, một lập trình viên và một lập trình viên thực tập là mình.

Được làm việc cùng hoạ sĩ và game designer, lẽ tất nhiên là mình được hoàn toàn tập trung vào lập trình, công việc mà mình thấy thoải mái và yêu thích. Cần thêm hình thì cứ báo với hoạ sĩ. Mô tả game có những tính năng gì, thông số gì,… đã có game designer lo cho. Khi bí chỗ nào có thể thoải mái đi hỏi các anh đi trước, nếu các anh biết thì các anh chỉ, nếu không thì các anh gợi ý từ khoá cho mà google. Nhờ những yếu tố này mà trình độ mình tăng rất nhanh trong thời gian thực tập tại Emobi. 

Nói một qua chút về mối quan hệ giữa game designer và lập trình viên. Game designer sẽ tưởng tượng rằng trong game sẽ có những gì và mô tả ra cho lập trình viên thực hiện. Tuy nhiên không bao giờ các game designer có thể hình dung ra được toàn bộ các chi tiết từ đầu, nên thường thì khi lập trình viên bắt tay vào thực hiện các ý tưởng đó sẽ có những vấn đề phát sinh. Khi ấy hai bên sẽ phải ngồi với nhau, đào sâu vào vấn đề và đảm bảo rằng hai bên đã hiểu ý nhau. Hồi ấy mình non trẻ, sợ người ta đánh giá mình kém, nên khi gặp vấn đề mô tả chưa rõ, mình thường suy diễn ra theo ý mình hiểu chứ không ra hỏi lại anh game designer. Thế là mấy lần phải xoá đám code mà mình đã dày công thực hiện từ thiết kế đến lập trình. Xoá toàn bộ. Làm lại .

Sau rút kinh nghiệm, bất cứ chỗ nào thấy mô tả có chút thiếu sót hoặc chưa sẵn sàng để mình bắt đầu lập trình, mình sẽ ra trao đổi trực tiếp với người yêu cầu, trao đổi đến khi rõ thì mới bắt tay vào làm. Lần đầu tiên trong đời thấy cái gọi là kỹ năng giao tiếp nó quan trọng như thế nào. Không hề cao siêu như cái mà bọn đa cấp rêu rao. Hết sức gần gũi và đời thường. Lợi ích thì rất to lớn, tiết kiệm công sức cho cả mình và mọi người.

Thế nhưng vấn đề đôi khi không dừng lại ở đó. Game designer chỉ có thể cung cấp cho lập trình viên tài liệu mô tả các tính năng và các thông số của game. Trong tưởng tượng của họ, game như thế sẽ hay, sẽ hấp dẫn. Lập trình viên nhận tài liệu này và tiến hành phát triển con game. Đến khi chơi thử, hai bên đều gật gù với nhau rằng game chơi… không vui như tưởng tượng . Điều này là rất bình thường, vì vốn khoảng cách từ ý tưởng trên giấy đến sản phẩm thực tế cách nhau rất xa. Có hai giải pháp cho tình trạng này.

Đơn giản nhất là dẹp quách nó đi, khỏi làm lụng gì nữa. Đôi khi ý tưởng của bạn nghe có vẻ hay, nhưng khi đưa lên làm thì nó không đem lại cảm giác hứng thú như mong muốn. Khi các phương án cải tiến không giúp nâng cao chất lượng, hoặc quá tốn kém, việc kết thúc sớm đôi khi còn tránh khỏi tình trạng sa lầy, để thời gian hiện thực hoá ý tưởng khác. Hầu hết các ý tưởng mà mình được giao nhiệm vụ thực hiện trong thời gian thực tập tại Hiker đều kết thúc theo cách này. Nhìn cảnh sản phẩm mà mình đổ rất nhiều tâm huyết vào bị quăng vào sọt rác cũng buồn lắm, đến giờ gặp tình trạng đó mình vẫn buồn, nhưng mình hiểu đó là điều cần phải làm .

Cách thứ hai, là phân tích xem game chưa đúng kỳ vọng ở chỗ nào, chưa hay ở đâu. Anh em ở Emobi rất lỳ đòn, lại tiếc công sức bỏ ra, nên bao giờ cũng tìm cách cải tiến sản phẩm trước khi thừa nhận rằng đến lúc dừng việc phát triển nó lại. Vài sản phẩm qua được các bước gắt gao này, sống sót ra đến ngoài thị trường, cũng là sản phẩm của rất nhiều lần dượt đi dượt lại cho đến khi hài lòng của toàn bộ anh em trong team. Những sản phẩm này khác biệt rất nhiều với ý tưởng ban đầu. Thế nên một bài học nữa mà mình rút ra đó là ý tưởng chẳng là gì. Công sức và nỗ lực mà mọi người đổ vào đáng quý gấp nghìn vạn lần cái ý tưởng.

Quá trình thực tập tại Emobi Games cũng làm mình ngộ ra thêm một điều nữa, đó là việc học đại học, cụ thể là Bách Khoa, rất đáng quý, mà trước đó mình ngu ngơ không nhận ra. Khoảng cách từ trường học đến công ty không phải quá lớn. Mình sẽ kể thêm về việc này ở phần tiếp theo.