Những Ngày Ấy (Phần 1)
Những ngày tháng ấy (Phần 1)
Ngày mai đã là kỳ nghỉ Lao Động, đồng nghiệp đều đã nghỉ ngơi. Tôi không có ý định làm thêm giờ trong kỳ nghỉ, bởi vì làm thêm cũng chẳng có việc gì để làm - những công việc hiện tại đều cần hợp tác với người khác.
Vài hôm trước, tôi đi ăn khuya cùng các đồng nghiệp mới, mọi người trò chuyện sôi nổi đến mức tôi cũng bất giác nhớ về quá khứ. Những ngày tháng tốt đẹp năm xưa giờ đã trở nên mờ nhạt trong ký ức. Tôi nghĩ hai năm nữa, có lẽ tôi sẽ không còn nhớ rõ chính xác thời gian của những ngày từng ảnh hưởng sâu sắc đến mình. Đã đến lúc ghi lại điều gì đó, như một cách tưởng niệm dành cho chính mình.
Tôi có một điểm tốt là biết chọn lọc ký ức - những hồi ức không vui thường nhanh chóng phai mờ theo gió. Những con người sống trong trí nhớ của tôi đều để lại sự biết ơn. Tôi từng rất thích viết nhật ký, từ sớm đã chuyển sang viết nhật ký điện tử, lưu trữ trên máy tính cá nhân, trên chiếc PDA của mình. Khi gặp phải những chuyện không muốn nhớ lại, tôi sẽ đặt mật khẩu cho cả tệp tin bằng một dãy ký tự dài ngoằng, đảm bảo chỉ có thể nhớ trong một khoảng thời gian ngắn. Khi quãng thời gian ấy qua đi, mật khẩu cũng biến mất khỏi trí nhớ. Những dòng chữ ấy mãi mãi không thể mở lại, đến khi thay ổ cứng mới, dù tôi có muốn nhìn lại hình bóng năm xưa của chính mình cũng bất lực, đành phải xóa đi những tệp tin đã mã hóa ấy.
Tôi nghĩ mình chính là như vậy mà trưởng thành, không có cảm giác bị vấp ngã liên tục, tất cả đều đã vứt lại phía sau. Rất sớm tôi đã hiểu rõ đạo lý: Trên đời này không có gì là không thể mất đi. Tôi từng đau lòng vì đánh mất hàng loạt mã nguồn quý giá, những bài viết tâm đắc, nhật ký trân trọng, hàng ngàn email qua các năm… Cuối cùng tôi nhận ra, tất cả chỉ là vật ngoài thân, chỉ cần giữ lại phần ký ức đẹp đẽ nhất, đó đã là hạnh phúc đặc biệt rồi.
Chính vì thế, những ghi chép dưới đây cũng chỉ là nỗ lực hồi tưởng của tôi. Có thể vì thời gian quá lâu, có chút sai lệch so với thực tế, hoặc chỉ phản ánh một góc nhìn từ góc độ của tôi. Nhưng tôi có thể cam đoan, trong cách kể chuyện không cố ý thêm thắt điều gì sai sự thật.
Vâng, tôi muốn kể một câu chuyện thật - câu chuyện về sự ra đời của một trò chơi sở hữu hàng chục triệu game thủ. Bản thân tôi không thực sự yêu thích series game này, nhưng tôi tự hào về sản phẩm ấy. Mã nguồn của tôi từng chạy trên máy tính của hàng chục triệu người dùng, với tư cách là một lập trình viên, còn điều gì khiến người ta thỏa mãn hơn thế nữa? Có lẽ chỉ có việc tăng con số ấy lên gấp mười lần.
Tôi quen “Cổ Việt” vào học kỳ cuối năm đại học (đầu năm 2000). Một hôm, anh ta bỗng hiện lên trên QQ, hỏi tôi vài điều về “Phong Hồn” - tựa game tôi từng làm những năm ấy. Thời điểm đó, tôi thường xuyên lui tới diễn đàn làm game của Sina, nơi “Phong Hồn” ra đời.
Trước đó, tôi thích viết code dưới hệ điều hành DOS. Tôi nghiên cứu thư viện phát triển game Allegro. Tôi đã dịch toàn bộ tài liệu phiên bản 3 của Allegro (vì thế mà tôi còn tự làm một công cụ hỗ trợ dịch thuật), công việc này chiếm mất rất nhiều thời gian, từ năm 1998 đến giữa năm 1999, thời gian rảnh của tôi gần như đều dành cho nó. Để đảm bảo bản dịch chính xác, tôi còn đọc qua phần lớn mã nguồn Allegro, học hỏi được nhiều tư tưởng thiết kế engine game.
Những ngày tháng ấy, tôi thường tham gia thảo luận trên mailing list của Allegro, đề xuất tối ưu hóa vài đoạn code và nhanh chóng được cộng đồng phát triển Allegro chấp nhận. Tôi cũng đưa ra nhiều ý tưởng mới. Tuy nhiên vì những ý tưởng mới đòi hỏi thay đổi giao diện API của Allegro - điều mà một thư viện trưởng thành khó có thể chấp nhận. Trong quá trình trao đổi email với Shawn - tác giả của Allegro, anh ấy đã dùng giọng điệu rất thân thiện nói: “Nếu cậu thấy cách đó tốt hơn, tại sao không tự tạo ra một thứ riêng cho mình?” Thế là tôi làm thật, thậm chí còn công bố phiên bản đầu tiên trên mailing list của Allegro. Có người nói thứ này chẳng có ý nghĩa gì, Allegro đã đủ tốt (lúc đó đã có phiên bản Windows). Shawn còn giúp tôi giải thích nữa.
À, tôi đang nói về “Phong Hồn” đây. Thậm chí chưa đầy một tháng sau, “Phong Hồn” đã có người dùng đầu tiên đến từ Hungary, anh ấy còn dùng nó để làm một game nhỏ.
Đó là khoảng thời gian từ ngày 4 đến 8 tháng 3 năm 1999. Tôi thức trắng ba đêm liền tại quán net để hoàn thành phiên bản đầu tiên của “Phong Hồn”. Tôi nhớ rõ ngày tháng như vậy vì đã tra cứu lại được một tài liệu ghi chép năm xưa. Môi trường phát triển lúc đó là MSVC 5, bởi vì tôi không muốn (cũng không đủ không gian ổ cứng) cài IE4 nên không thể cài được VC 6.0.
“Cổ Việt” chính là trưởng nhóm client của Thiên Hạ, sau này cũng là người viết phần logic chính cho client của Đại Thoại Tây Du 1. Thời ấy, người am hiểu viết game trên Windows không nhiều, tôi cũng chỉ mới làm quen thôi. Nhiều người vừa mới chuyển từ thời DOS sang, tài liệu tiếng Trung về DirectX rất ít và khó tìm. Tôi hoàn toàn hiểu được lý do họ chọn “Phong Hồn” - một sản phẩm của sinh viên: mã nguồn mở + dễ sử dụng (giao diện C đơn giản) + hiệu quả cao (trong điều kiện phần cứng hạn chế, tôi đã dành nhiều công sức tối ưu hóa phần mềm).
Công ty nhỏ Thiên Hạ lúc đó đang phát triển một game MUD đồ họa, tên là “Thiên Hạ”. Thời ấy có lẽ nhiều người mê MUD đều muốn đồ họa hóa nó, nhưng sản phẩm thực sự ra đời rất ít. Tôi chỉ nhớ có một game tên “Tiếu Ngạo Giang Hồ” gọi là MUD đồ họa, thực chất chỉ là thêm vài hình ảnh vào game văn bản. Chưa ai thực sự hoàn thành việc đồ họa hóa.
Rõ ràng đội ngũ phát triển Thiên Hạ cũng không có tiền lệ để tham khảo, thậm chí chưa từng làm game offline. Tôi không nhớ rõ “Cổ Việt” đã hỏi tôi điều gì, chỉ biết cuối cùng anh ấy muốn tôi giúp viết vài module để đơn giản hóa việc phát triển game. Công việc này có thù lao, điều này thu hút tôi. Phải biết rằng lúc ấy tôi chỉ là sinh viên nghèo, không đủ tiền mua ổ cứng, màn hình đã cũ kỹ (mua năm 1993, lúc đó đã là rác điện tử từ nước ngoài, không biết đã phục vụ bao nhiêu năm rồi). CPU trong máy tính của tôi là do công ty của một người bạn trên mạng tài trợ, bo