Roguelike là kiểu phần mềm giải trí đặt tên theo Rogue, một chương trình chạy trên máy Unix năm 1980: mỗi lần chơi là một hầm ngục mới do máy tự sinh, nhân vật thua là mất hẳn, phải làm lại từ đầu. Từ những ký tự chữ trên màn hình đen, lối thiết kế này lan sang hàng nghìn sản phẩm, và từ cuối thập niên 2010 kết hợp với cơ chế xây bộ bài thành một nhánh rất được ưa chuộng. Cốt lõi của nó là ý "mỗi lượt một bản đồ mới": không thuộc lòng được, chỉ hiểu luật mới thắng.
Rogue ra đời ở đâu
Rogue được viết khoảng năm 1980 bởi Michael Toy và Glenn Wichman, khi đó là sinh viên ở Đại học California, Santa Cruz. Ken Arnold, người viết thư viện curses để điều khiển màn hình chữ, về sau tham gia hoàn thiện chương trình. Rogue được phân phối kèm một số bản BSD Unix, nhờ vậy lan rộng trong các trường đại học, nơi sinh viên có máy tính chia sẻ thời gian.
Máy thời ấy không có đồ hoạ. Toàn bộ hầm ngục vẽ bằng ký tự: tường là dấu gạch, sàn là dấu chấm, cửa là dấu cộng, nhân vật chính là ký hiệu @, quái vật là các chữ cái. Người chơi đi xuống từng tầng, tìm cầu thang, nhặt đồ, đánh quái, với mục tiêu lấy được Bùa Yendor ở tầng sâu và mang lên mặt đất.
Cái tên "Rogue" nghĩa là kẻ lang bạt, tay phiêu lưu đơn độc. Thể loại về sau được gọi là "roguelike", tức "giống Rogue".
Ba ý tưởng làm nên Rogue
Bản đồ tự sinh
Các phần mềm phiêu lưu trước đó thường có bản đồ cố định, chơi vài lần là thuộc. Toy và Wichman muốn chính họ cũng bất ngờ khi chơi chương trình mình viết. Vì vậy mỗi tầng hầm ngục được máy sinh ngẫu nhiên: vị trí phòng, hành lang, quái, đồ vật đều khác nhau mỗi lần. Ngày nay người ta gọi kỹ thuật này là sinh nội dung theo thủ tục (procedural generation).
Chết là hết
Trong Rogue, nhân vật chết thì tệp lưu bị xoá. Không có chuyện tải lại để thử nước đi khác. Người chơi hiện nay gọi là "permadeath". Luật này làm mọi quyết định nặng ký: uống một lọ thuốc chưa rõ tác dụng có thể cứu mạng hoặc kết liễu cả một buổi chơi.
Theo lượt, trên lưới ô
Mỗi lần bạn đi một bước, quái vật cũng đi một bước. Không có phản xạ tay nhanh, chỉ có suy nghĩ. Điều này làm Rogue gần với cờ hơn là với các phần mềm hành động cùng thời.
Dòng họ roguelike: mốc chính
| Năm | Tên | Điểm đáng nhớ |
|---|---|---|
| Khoảng 1980 | Rogue | Bản đồ tự sinh, chết là hết, theo lượt, đồ hoạ bằng ký tự |
| Đầu thập niên 1980 | Hack | Một trong những bản phát triển tiếp từ ý tưởng Rogue |
| 1983 | Moria | Lấy cảm hứng từ thế giới Trung Địa của Tolkien |
| 1987 | NetHack | Phát triển từ Hack bởi một nhóm người góp mã qua mạng; nổi tiếng vì vô số tương tác giữa đồ vật |
| 1990 | Angband | Phát triển từ Moria, hầm ngục rất sâu |
| 2008 | "Diễn giải Berlin" | Một hội thảo của cộng đồng làm roguelike thử liệt kê các đặc điểm "chuẩn" của thể loại |
| 2017–2019 | Slay the Spire | Ghép roguelike với xây bộ bài, mở thử năm 2017, bản chính thức 2019 |
NetHack là một trường hợp đặc biệt: nó vẫn được cộng đồng duy trì sau mấy chục năm, và nổi tiếng vì gần như mọi thứ đều tương tác với nhau theo cách người viết đã lường trước. Giới chơi có câu "nhóm phát triển đã nghĩ tới mọi thứ" để nói về sự chu đáo này.
Roguelike và roguelite: tranh cãi về tên gọi
Năm 2008, tại một hội thảo của những người làm roguelike tổ chức ở Berlin, người ta đưa ra một danh sách đặc điểm, sau này gọi là "Diễn giải Berlin" (Berlin Interpretation). Các đặc điểm quan trọng gồm: bản đồ tự sinh, chết là hết, theo lượt, di chuyển trên lưới, nhiều cách giải một tình huống, quản lý tài nguyên, đánh quái, khám phá.
Về sau xuất hiện rất nhiều sản phẩm chỉ giữ một phần: bản đồ tự sinh và chết là làm lại, nhưng chơi theo thời gian thực, hoặc cho giữ một ít tiến bộ giữa các lần chơi. Nhiều người gọi nhóm này là roguelite để phân biệt. Cuộc tranh cãi tên gọi vẫn tiếp diễn; trên thực tế, chữ "roguelike" hiện được dùng rộng hơn nhiều so với định nghĩa Berlin.
Khi roguelike gặp bộ bài
Vì sao hai thứ này hợp nhau đến vậy? Vì bộ bài chính là một dạng ngẫu nhiên có kiểm soát. Trong Rogue, may rủi đến từ bản đồ và đồ vật. Trong một bộ bài, may rủi đến từ thứ tự rút, nhưng người chơi được quyết định bộ bài có những lá gì.
Lối ghép phổ biến nhất:
- Mỗi lần chơi bắt đầu với bộ bài nhỏ, yếu.
- Bản đồ chia nhánh, người chơi chọn đường: đánh quái thường, quái mạnh, nghỉ, cửa hàng, sự kiện bí ẩn.
- Thắng một trận được chọn một trong vài lá để thêm vào bộ, hoặc bỏ qua.
- Có cơ hội loại bỏ lá yếu, nâng cấp lá mạnh.
- Thua là mất bộ bài, làm lại từ đầu với bản đồ mới.
Điều thú vị là quyết định "không lấy lá" quan trọng ngang quyết định lấy lá nào. Bộ bài dày lên thì lá mạnh khó lên tay. Đây chính là bài học "pha loãng" của thể loại xây bộ bài bàn, chuyển sang màn hình.
"Hạt giống" và chuyện ngẫu nhiên trong máy tính
Máy tính không tự sinh được ngẫu nhiên thật. Chúng dùng bộ sinh số giả ngẫu nhiên: một công thức xuất phát từ một con số gọi là hạt giống (seed) rồi tạo ra chuỗi số trông như ngẫu nhiên. Cùng hạt giống thì cùng chuỗi số, nghĩa là cùng bản đồ, cùng quái, cùng lá bài được đề nghị.
Nhiều sản phẩm roguelike khai thác đặc điểm này:
- Thử thách hằng ngày: mọi người chơi cùng một hạt giống trong ngày, nên có thể so cách xử lý của nhau trên cùng một bản đồ.
- Chia sẻ hạt giống: gặp một lượt chơi hay, người ta gửi số hạt giống cho bạn bè thử lại.
- Kiểm thử: nhà phát triển dùng hạt giống để tái hiện lỗi.
Hiểu chuyện hạt giống cũng giúp người chơi bớt mê tín kiểu "máy đang chơi xấu mình". Kết quả là toán học, không có ý đồ.
Bài học thiết kế từ roguelike
- Thất bại phải có ý nghĩa. Vì thua là mất hết, mỗi lần thua phải dạy người chơi một điều. Thiết kế tốt cho thấy rõ vì sao mình thua.
- Ngẫu nhiên phải đọc được. Người chơi chấp nhận may rủi nếu họ thấy trước rủi ro và có cách giảm nó, như chọn đường tránh quái mạnh.
- Lựa chọn nhỏ, hệ quả dài. Một lá bài lấy ở tầng một có thể quyết định trận cuối.
- Không lặp lại hai lần. Bản đồ tự sinh làm kinh nghiệm thay thế trí nhớ: người giỏi không thuộc bản đồ, họ hiểu luật.
Góc nhìn hôm nay
Rogue và NetHack vẫn còn chạy được, và nhiều bản mã nguồn mở có sẵn cho máy tính hiện nay. Đọc mã nguồn hay đọc tài liệu cộng đồng về cách sinh hầm ngục là một bài nhập môn lập trình rất thú vị: chia ô, nối phòng bằng hành lang, đặt quái theo độ sâu.
Với người thích bài lá, có thể thử tự làm một "roguelike giấy": một bộ lá quái xáo ngẫu nhiên làm "bản đồ", một bộ bài nhỏ của nhân vật, mỗi lần thắng được chọn một lá. Làm vài ván là hiểu vì sao lối thiết kế này cuốn người ta tới vậy, và vì sao cân bằng nó lại khó.
Nếu con nhỏ trong nhà mê thể loại này, hãy để ý thời gian ngồi màn hình. Cấu trúc "thua thì làm lại ngay" rất dễ kéo dài thêm "một lượt nữa". Đặt giờ trước khi bắt đầu là cách đơn giản và công bằng.
Câu hỏi thường gặp
Roguelike là gì?
Roguelike là kiểu phần mềm giải trí đặt theo tên Rogue (khoảng năm 1980), có bản đồ do máy tự sinh mỗi lần chơi, nhân vật thua là mất hẳn, thường đi theo lượt trên lưới ô. Người chơi không thể thuộc bản đồ mà phải hiểu luật để thắng.
Rogue ra đời năm nào và ai làm?
Rogue được Michael Toy và Glenn Wichman viết khoảng năm 1980 tại Đại học California, Santa Cruz; Ken Arnold góp phần hoàn thiện sau đó. Chương trình lan rộng nhờ được phân phối cùng một số bản BSD Unix.
Roguelike khác roguelite thế nào?
Roguelike theo nghĩa hẹp giữ đủ các đặc điểm của Rogue như theo lượt, lưới ô, chết là hết. Roguelite chỉ giữ một phần, thường là bản đồ tự sinh và làm lại khi thua, nhưng cho giữ một ít tiến bộ giữa các lần hoặc chơi theo thời gian thực.
Vì sao roguelike hay kết hợp với xây bộ bài?
Vì bộ bài là ngẫu nhiên có kiểm soát: thứ tự rút là may rủi, nhưng người chơi quyết định bộ có lá gì. Mỗi trận thắng thêm một lá, mỗi lần thua làm lại, nên lựa chọn lá nào và bỏ lá nào trở thành cốt lõi.
Hạt giống (seed) trong roguelike là gì?
Hạt giống là con số khởi đầu cho bộ sinh số giả ngẫu nhiên của máy tính. Cùng hạt giống sẽ ra cùng bản đồ và cùng diễn biến ngẫu nhiên, nên người chơi có thể chia sẻ hạt giống hoặc thi thử thách hằng ngày trên cùng một bản đồ.