Những Ngày Ấy (Phần 4) - nói dối e blog

Những Ngày Ấy (Phần 4)

Mùa xuân năm 2001, tôi hoàn tất việc viết lại toàn bộ “Phong Hồn” bằng ngôn ngữ C++. Công việc này bắt đầu từ khi tôi còn ở Bắc Kinh. Ý tưởng đầu tiên nảy ra trong cuộc trò chuyện với Dư Tuyết Tùng về engine của kele8. Anh ấy từng làm một số bài đánh giá hiệu năng và phát hiện ra 50% thời gian CPU bị tiêu hao cho việc “lật backbuffer”, vị trí tiếp theo là xử lý chuỗi ký tự (sau này khi tôi rời Bắc Kinh, anh ấy cũng hoàn thành việc tối ưu hóa tương tự như hướng tôi từng suy nghĩ - càng làm mới càng phát hiện thêm các điểm tối ưu tiềm năng khác).

Tôi suy ngẫm vài ngày liền, rồi bỗng chốc tìm thấy cảm hứng giải pháp. Đó thực chất chỉ là thuật toán “dirty rectangle” cổ điển, nhiều người từng thử nhưng chưa ai khai thác hiệu quả. Tôi quyết định tiếp cận theo hướng tư duy hoàn toàn mới.

Điều thứ hai khiến tôi chú ý là nghiên cứu mã nguồn lớp CString trong MFC. Đông Lê từng nói rằng dù nhiều người không dùng MFC nhưng vẫn không thể rời xa lớp string này. Anh ấy đã tách riêng lớp đó ra khỏi toàn bộ framework MFC để sử dụng độc lập. Dù tôi cũng không dùng MFC, nhưng vẫn tò mò tự hỏi “Liệu có tiện lợi đến thế không nhỉ?” và liền dành thời gian đọc kỹ mã nguồn. Nhân dịp đang ôn lại kiến thức C++, tôi bắt đầu tự viết một lớp string riêng cho mình.

Hai yếu tố này khiến tôi quyết định viết lại toàn bộ dự án “Phong Hồn” bằng C++. Nhìn lại sau này, mã nguồn có phần lộn xộn thiếu hệ thống, nhưng tôi xem chúng như những bằng chứng lịch sử của hành trình phát triển kỹ thuật, vì vậy vẫn duy trì sẵn trên trang chủ để mọi người tải về.

Không có lập trình viên nào sinh ra đã viết code chín chắn điềm đạm - tất cả đều trải qua giai đoạn trẻ dại.

Cổ Việt nhắn tin từ xa cho biết muốn dùng bản C++ mới hoàn thiện của “Phong Hồn” để xây dựng client cho dự án mới. Anh ấy yêu cầu thêm vài module mở rộng, điều này vừa hay để tôi rèn luyện tay nghề, lại còn được trả lương part-time. Tiếp tục sống dựa vào gia đình mãi cũng không phải chuyện lâu dài. Điều đặc biệt là anh ấy muốn tích hợp hỗ trợ Z-Buffer, nhưng tôi cho rằng đó không phải hướng đi tối ưu. Tôi quyết định triển khai một phương pháp hoàn toàn khác để giải quyết bài toán che khuất trong 2D, vừa tiết kiệm tài nguyên dữ liệu vừa xử lý nhanh chóng.

Trước khi bắt tay vào công việc, tôi đã tính toán sơ bộ dung lượng dữ liệu hình ảnh cần thiết cho client game online lúc bấy giờ, kết quả là con số khiến tôi giật mình. Với cấu hình phổ biến chỉ 64M RAM thời đó, nếu không có giải pháp tối ưu thì dự án khó mà chạy nổi.

Sau khoảng một tháng làm việc chăm chỉ, tôi gửi toàn bộ mã nguồn cùng vài ví dụ minh họa tới Quảng Châu, và nhận được khoản lương part-time 4000 NDT. Điều này khiến tôi cảm thấy hài lòng, ít nhất đã bước đầu tự lập tài chính. Đặc biệt sau khi Thiên Hạ bị NetEase thâu tóm, Micro trở nên hào phóng hơn hẳn, cười.

Khoảng thời gian thư thả này chỉ kéo dài vỏn vẹn một tháng. Người tiếp theo tìm tới tôi là “Tiểu Béo” Tiêu Hải Đồng.

Tên tuổi Tiêu Hải Đồng từng vang danh trên mạng CFido những năm 1996-1997. Tôi thường xuyên đọc bài viết của anh ấy trong các chuyên mục kỹ thuật toàn quốc, từng có vài lần trao đổi thư từ. Trong nghề lập trình, anh ấy rõ ràng là tiền bối của tôi. Những ngày đó, chúng tôi trò chuyện rất nhiều trên mạng. Dù anh ấy tiết lộ là do NetEase giới thiệu, nhưng thực tế chúng tôi toàn nói chuyện ngoài lề. Tôi vẫn nhớ anh ấy từng chia sẻ những email cũ về đề tài dân chủ hiến pháp - chủ đề mà trước đây tôi chẳng mấy quan tâm, nhưng đọc xong lại thấy có hứng thú. Có lẽ từ khoảng thời gian ấy, tôi bắt đầu suy nghĩ nghiêm túc về các khái niệm như “tự do” và “ý chí cá nhân”.

Là cùng lớp đại học với Đinh Lỗi, lúc bấy giờ Tiêu Hải Đồng đảm nhiệm vai trò CTO của NetEase tại Quảng Châu. Dù vị trí CTO đặt ở Bắc Kinh, nhưng quyền lực chủ yếu tập trung ở Quảng Châu - nơi gần như tập hợp toàn bộ lực lượng kỹ thuật của công ty. Trong khi đó, văn phòng Bắc Kinh lại gần như bị tách biệt.

Tôi đoán Đinh Lỗi chắc không chịu nổi việc chúng tôi cứ chat phiếm suốt ngày. Chẳng bao lâu sau, anh ấy trực tiếp gọi điện thoại đến nhà. Dù không phải là người ăn nói hùng hồn, nhưng Đinh Lỗi lúc ấy vẫn thuyết phục tôi bằng lời đề nghị hấp dẫn: “Cậu chuyển xuống Quảng Châu hỗ trợ Micro đi. Công ty sẽ thuê riêng nhà gần văn phòng, có cả giúp việc dọn dẹp, máy tính đầy đủ tiện nghi, không cần chấm công.” Rồi anh ấy kết luận: “Vé máy bay sẽ gửi đến qua EMS ngay ngày mai.”

Thực tế về sau, tôi chỉ để giúp việc đến dọn duy nhất một lần, và cả cuối tuần cũng dành cho công việc. Tôi nghĩ đã làm thì phải làm tới nơi tới chốn.

NetEase thành lập năm 1997 với vỏn vẹn 7 nhân viên. Khi tôi ký vào đơn gia nhập công ty vào ngày 8/4/2001, số hiệu nhân viên là 92. Do công ty có chính sách giữ nguyên số hiệu cũ khi nhân viên nghỉ việc rồi quay lại, nên tôi đã gặp nhiều đồng nghiệp từng ra đi rồi trở lại. Riêng tôi, số hiệu trải qua các giai đoạn từ 92 → 0092 → G0092, gần như không thay đổi.

Lúc bấy giờ tôi đoán tổng số nhân viên chính thức giữa ba văn phòng Bắc Kinh - Thượng Hải - Quảng Châu chỉ khoảng năm mươi đến sáu mươi người. Nhưng thực tế khi đến văn phòng mới thấy không khí vô cùng náo nhiệt. Do quá trình thâu tóm Thiên Hạ chưa hoàn tất, nhiều nhân viên cũ đang chật vật chen chúc tại tầng 36, còn tôi thì trực tiếp gia nhập đội ngũ kỹ thuật của NetEase.

Trong văn phòng của “Tiểu Béo”, anh ấy tỏ ra

0%