Bối cảnh và vấn đề nghiên cứu

Sự phát triển của công nghệ số đã thúc đẩy sự đa dạng hóa các phương thức tiếp cận nội dung giải trí của người dùng, đặc biệt trong các lĩnh vực truyện tranh, trò chơi điện tử và phim ảnh. Trong xu hướng này, truyện tương tác (interactive stories), nổi bật là thể loại tiểu thuyết trực quan (visual novel), đóng vai trò là một hình thức đọc bán tương tác (semi-interactive fiction). Thể loại này cho phép người chơi tham gia trực tiếp vào tiến trình phát triển nhân vật và khám phá cốt truyện thông qua các quyết định xử lý tình huống, từ đó tạo ra các nhánh rẽ và nhiều kết thúc khác nhau cho cùng một tác phẩm.

Mặc dù thị trường đã ghi nhận nhiều sản phẩm thành công như Doki Doki Literature Club!, If My Heart Had Wings hay Disco Elysium, phần lớn các tác phẩm visual novel thương mại đều do các hãng sản xuất trò chơi chuyên nghiệp phát triển với quy trình đồ sộ từ khâu lên ý tưởng, thiết kế đồ họa đến lập trình biên tập. Đối với các tác giả truyện độc lập hoặc người sáng tạo nội dung phổ thông, việc tiếp cận quy trình này gặp nhiều rào cản kỹ thuật. Các công cụ hỗ trợ sáng tác hiện hành như KiriKiri, NVList, Visual Novel Maker hay Ren'Py chủ yếu được thiết kế để vận hành trên môi trường máy tính để bàn (desktop). Dù một số công cụ như Ren'Py cho phép xuất bản phẩm sang định dạng di động (Android, iOS), quy trình đóng gói và phân phối lên các kho ứng dụng (Google Play, App Store) vẫn đòi hỏi nhiều thao tác kỹ thuật phức tạp, thiếu một hệ sinh thái tập trung hỗ trợ đồng thời khâu sáng tác và khâu tiếp nhận của độc giả trên cùng một nền tảng di động.

Trước thực trạng đó, đề tài khóa luận "Xây dựng thư viện truyện tương tác trên thiết bị di động" của sinh viên Lâm Sơn Hải và Phan Hồng Quân (ngành Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM, dưới sự hướng dẫn của ThS. Trần Anh Dũng) được thực hiện nhằm giải quyết bài toán đơn giản hóa quy trình sáng tác và đọc truyện tương tác trên môi trường di động.

Mục tiêu nghiên cứu của đề tài gồm các điểm cụ thể:

  1. Xây dựng môi trường hỗ trợ người sáng tạo nội dung tạo lập và lưu trữ các câu chuyện tương tác theo phương thức trực quan, không đòi hỏi kiến thức lập trình chuyên sâu.
  2. Cung cấp nền tảng mở cho phép độc giả trải nghiệm, đánh giá và tương tác với các tác phẩm do cộng đồng đóng góp.
  3. Đảm bảo ứng dụng vận hành ổn định trên các dòng thiết bị di động phổ biến chạy hệ điều hành Android và iOS, tối ưu hóa giao diện và trải nghiệm người dùng trên màn hình cảm ứng nhỏ.

Nhiệm vụ nghiên cứu được phân chia thành ba nhóm công việc:

  1. Nhiệm vụ nghiên cứu lý thuyết: Tìm hiểu tổng quan về trò chơi điện tử và tiểu thuyết trực quan; khảo cứu lịch sử phát triển, phân loại trò chơi; phân tích các trò chơi điển hình (If My Heart Had Wings, 7 ngày tồn vong!) và các công cụ hỗ trợ (Ren'Py, Visual Novel Maker).
  2. Nhiệm vụ nghiên cứu công nghệ: Khảo sát game engine Unity (ngôn ngữ C#); nghiên cứu nền tảng Firebase (Firebase Authentication, Cloud Firestore, Firebase Storage); tìm hiểu các thư viện bổ trợ và giải pháp nén dữ liệu hình ảnh.
  3. Nhiệm vụ xây dựng ứng dụng: Đặc tả yêu cầu phần mềm; thiết kế kiến trúc hệ thống, cơ sở dữ liệu và giao diện người dùng; lập trình hoàn thiện các chức năng đọc truyện, sáng tác truyện (My Studio), quản lý tài nguyên nhân vật và phân hệ quản trị viên (Admin).

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Quy trình thiết kế và triển khai hệ thống phần mềm thư viện truyện tương tác; các kỹ thuật hiển thị đồ họa, phân nhánh kịch bản và quản trị dữ liệu đám mây trên thiết bị di động.
  • Phạm vi môi trường: Hệ điều hành di động Android và iOS.
  • Phạm vi thời gian thực hiện: Từ ngày 01/09/2022 đến ngày 22/12/2022.
  • Phạm vi chức năng: Xác thực người dùng (Email, Google, Facebook); tra cứu và tìm kiếm tác phẩm; trình đọc truyện phân nhánh; công cụ biên soạn cốt truyện và thiết lập vị trí nhân vật; quản lý kho tài nguyên cá nhân và cộng đồng; phân hệ quản trị trạng thái tác phẩm.

Cơ sở lý thuyết và phương pháp

Khóa luận thiết lập nền tảng lý thuyết thông qua việc hệ thống hóa các khái niệm chuyên ngành về trò chơi điện tử và tiểu thuyết trực quan. Theo định nghĩa từ điển Oxford được trích dẫn trong văn bản, trò chơi điện tử là trò chơi được vận hành thông qua các hình ảnh điều khiển điện tử do chương trình máy tính tạo ra trên màn hình hiển thị. Tiến trình lịch sử trò chơi điện tử được tác giả phân kỳ qua các mốc:

  • Giai đoạn hình thành (1947–1966): Khởi đầu từ thiết bị giải trí bằng ống phóng tia cực âm (1947) của Thomas T. Goldsmith Jr. và Estle Ray Mann; các thử nghiệm đồ họa trên máy tính TX-0 tại MIT (1959–1961) như Mouse in the Maze, HAX, Tic Tac Toe; trò chơi Chase (1966) của Ralph Baer và Bill Harrison mở đầu khả năng hiển thị trên màn hình tivi.
  • Giai đoạn suy thoái (1972–1977): Bắt đầu từ sự ra đời của Pong (Atari, 1972), sự bùng nổ của các bản sao chép do thiếu bảo hộ sáng chế dẫn đến khủng hoảng thừa và sụt giảm thị trường năm 1977.
  • Giai đoạn phục hồi và kỷ nguyên vàng (1978–1983): Space Invaders (1978) của Toshihiro Nishikado vực dậy ngành công nghiệp; sự tái định vị thị trường của Nintendo tại Bắc Mỹ (1983) với máy chơi game Famicom đổi tên thành NES (Nintendo Entertainment System).
  • Giai đoạn bùng nổ công nghệ và phân phối số: Thập niên 1990 đánh dấu sự xuất hiện của đồ họa 3D, bộ vi xử lý đồ họa (GPU), phương tiện lưu trữ đĩa quang CD-ROM; đầu thế kỷ 21 mở ra xu hướng kết nối Internet và phân phối trực tuyến (Digital distribution).

Hệ thống phân loại trò chơi trong khóa luận được cấu trúc thành hai trục: Loại trò chơi (Game types) và Thể loại cốt truyện (Game genres) dựa theo tài liệu tham khảo học thuật:

STT Loại trò chơi (Game Type) Đặc trưng cốt lõi
1 Hành động (Action) Đòi hỏi phản xạ nhanh, kỹ năng thao tác; gồm thể loại bắn súng (shooters), ẩn nấp (stealth) và thể thao.
2 Phiêu lưu (Adventure) Tập trung vào khám phá thế giới và giải quyết câu đố; tiêu biểu với Myst, Syberia.
3 Giải đố (Puzzle) Lấy câu đố làm trung tâm cơ chế chơi; tiêu biểu với Tetris, Lemmings, Minesweeper.
4 Nhập vai (Role playing) Người chơi hóa thân vào nhân vật, quản lý chỉ số và cốt truyện kéo dài (Fable, Warcraft).
5 Mô phỏng (Simulation) Tái lập các tình huống thế giới thực (chiến đấu, đua xe, mô phỏng xã hội như The Sims).
6 Chiến lược (Strategy) Vận dụng tư duy suy luận, quản lý tài nguyên và giải quyết vấn đề chiến thuật.
STT Thể loại cốt truyện (Game Genre) Tác phẩm minh họa trong văn bản
1 Chính kịch (Drama) Max Payne
2 Tội phạm (Crime) Grand Theft Auto
3 Giả tưởng (Fantasy) Kingdom Hearts
4 Kinh dị (Horror) Resident Evil
5 Khoa học viễn tưởng (Sci-fi) Doom, Half-Life
6 Chiến tranh (War) Metal Gear Solid
7 Huyền bí (Mystery) Indigo Prophecy
8 Phương Tây / Viễn Đông / Biên giới (Western/Eastern) Ninja Gaiden

Về tiểu thuyết trực quan, văn bản dẫn giải nguồn gốc từ thị trường Nhật Bản với các dấu mốc: The Portopia Serial Murder Case (Yuji Horii thiết kế), Otogirisō của Chunsoft và To Heart của Leaf, định hình cấu trúc giao diện đặc trưng gồm hộp thoại văn bản đặt ở cạnh dưới hoặc giữa màn hình, kết hợp phông nền (background) và hình ảnh đồ họa 2D của nhân vật (sprite).

Phương pháp nghiên cứu thực nghiệm và công nghệ:

  • Phương pháp phân tích tài liệu: Khảo cứu các chuẩn kiến trúc phần mềm, tài liệu đặc tả API và các nghiên cứu liên quan.
  • Phương pháp phân tích so sánh sản phẩm đối sánh: Phân tích cấu trúc kịch bản và cơ chế chơi của If My Heart Had Wings (Pulltop) và 7 ngày tồn vong! (Buff Studio); so sánh khả năng biên tập kịch bản giữa công cụ mã nguồn mở Ren'Py và công cụ thương mại Visual Novel Maker.
  • Phương pháp mô hình hóa và thiết kế phần mềm: Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để lập sơ đồ Use-case tổng quát, biểu đồ phân rã Use-case và thiết kế lược đồ cơ sở dữ liệu phi quan hệ.
  • Nguồn dữ liệu: Dữ liệu văn bản, tập tin hình ảnh mẫu và thông số kỹ thuật thu thập từ tài liệu chính thức của Unity Technologies, Google Firebase, cùng các dự án trò chơi được khảo sát.

Thiết kế và triển khai

Hệ thống được xây dựng theo mô hình Client - BaaS (Backend-as-a-Service), phân tách giữa ứng dụng chạy trên thiết bị đầu cuối và các dịch vụ đám mây quản lý dữ liệu tập trung:

[Thiết bị di động Android / iOS]
[Google Firebase Cloud Platform]

Công nghệ ứng dụng và thư viện bổ trợ

  • Môi trường phát triển giao diện và logic client: Unity Engine phiên bản hỗ trợ C#. Tác giả lựa chọn Unity dựa trên bảng phân tích so sánh với Unreal Engine về độ gọn nhẹ, tính thích ứng cao đối với các ứng dụng 2D trên thiết bị di động, và khả năng quản lý tài nguyên linh hoạt qua các thành phần: Scene, Asset, Component, Script, Prefab, Animation và Audio.
  • Hệ thống quản lý dịch vụ nền (Backend): Nền tảng Google Firebase gồm:
    • Firebase Authentication: Cung cấp giải pháp đăng ký/đăng nhập qua Email/Mật khẩu và tích hợp cơ chế ủy quyền OpenID Connect cho các nhà cung cấp định danh bên thứ ba (Google, Facebook).
    • Cloud Firestore: Cơ sở dữ liệu NoSQL định dạng tài liệu (document-oriented) dùng để lưu trữ dữ liệu người dùng, cây kịch bản phân cảnh, các tùy chọn rẽ nhánh và trạng thái xuất bản của truyện.
    • Firebase Storage: Quản lý các tập tin nhị phân dung lượng lớn gồm hình ảnh nhân vật, tranh nền và ảnh bìa.
  • Các thư viện và thuật toán tích hợp:
    • UniRx (Reactive Extensions for Unity): Triển khai mô hình lập trình phản ứng (reactive programming) nhằm xử lý các tác vụ bất đồng bộ, lắng nghe sự thay đổi dữ liệu thời gian thực từ Firestore và đồng bộ giao diện.
    • DOTween: Thư viện hỗ trợ tính toán chuyển động nội suy (tweening), tối ưu hóa hiệu ứng chuyển cảnh mượt mà giữa các khung thoại.
    • Native Gallery: Cung cấp cầu nối trung gian (bridge) cho phép ứng dụng đọc và tải tập tin hình ảnh từ bộ nhớ thiết bị di động lên hệ thống.
    • ImageMagick cùng các thuật toán nén ảnh: Ứng dụng thuật toán biến đổi cosin rời rạc (Discrete Cosine Transform - DCT) và thuật toán nén không mất dữ liệu LZ77 để giảm dung lượng ảnh trước khi truyền tải lên máy chủ lưu trữ.

Thiết kế cơ sở dữ liệu

Lược đồ cơ sở dữ liệu trên Firestore được thiết kế phi quan hệ với các bộ sưu tập (collections) chính:

  • Bảng User: Lưu trữ mã định danh người dùng (UID), tên hiển thị, địa chỉ email, ảnh đại diện, vai trò tài khoản (User hoặc Admin).
  • Bảng Story: Lưu trữ thông tin truyện gồm tiêu đề, mô tả tóm tắt, ảnh bìa, tác giả tạo lập, trạng thái kiểm duyệt, lượt xem và danh sách các chương/cảnh.
  • Bảng Character: Lưu trữ danh mục nhân vật do người dùng tạo ra, gồm tên nhân vật, mô tả, và danh sách liên kết hình ảnh biểu cảm tương ứng.
  • Bảng Scene và Choice: Quản lý các nút nội dung trong cây kịch bản phân nhánh, bao gồm nội dung văn bản thoại, chỉ định hình nền, vị trí xuất hiện của nhân vật (trái, giữa, phải), các điều kiện nhảy nhãn kịch bản và danh sách các nút bấm lựa chọn dẫn sang cảnh tiếp theo.
  • Bảng Image: Quản lý siêu dữ liệu đường dẫn (URL) lưu trên Firebase Storage.

Thiết kế giao diện và luồng tương tác

Hệ thống triển khai các màn hình nghiệp vụ chính:

  • Màn hình Đăng nhập / Đăng ký: Cung cấp biểu mẫu xác thực tài khoản và các nút đăng nhập nhanh qua Google/Facebook.
  • Màn hình Thư viện (Gallery): Chia thành hai phân khu chức năng gồm Explore (khám phá các tác phẩm được cộng đồng chia sẻ, tra cứu theo danh mục) và Collection (quản lý danh sách tác phẩm yêu thích của cá nhân).
  • Màn hình My Studio: Khu vực làm việc của người sáng tạo, gồm thẻ My Stories (danh sách truyện đang biên soạn) và thẻ Character (kho tài nguyên nhân vật cá nhân).
  • Giao diện Đọc truyện tương tác: Hiển thị hoạt cảnh toàn màn hình với hình nền, nhân vật xuất hiện theo vị trí tọa độ, khung hội thoại bán trong suốt và bảng tùy chọn tình huống khi cốt truyện đến điểm rẽ nhánh.
  • Giao diện Biên tập truyện (Story Editor): Hỗ trợ tác giả tạo phân cảnh, nhập văn bản hội thoại, chọn nhân vật và biểu cảm từ kho lưu trữ, đặt vị trí hiển thị và thiết lập các liên kết rẽ nhánh trực tiếp bằng thao tác chọn.
  • Màn hình Quản trị viên (Admin): Hiển thị danh sách người dùng, thống kê tác phẩm và phê duyệt trạng thái truyện được xuất bản trên thư viện chung.

Nội dung chính theo từng chương

Chương 1: Giới thiệu về đề tài

Chương 1 thiết lập bức tranh tổng quan về sự phát triển của giải trí kỹ thuật số và vị trí của tiểu thuyết trực quan trong bối cảnh công nghệ hiện đại. Tác giả tiến hành phân tích thực nghiệm hai tựa game visual novel đại diện trên thị trường:

  • If My Heart Had Wings (Pulltop / MoeNovel): Tác phẩm visual novel thương mại của Nhật Bản khai thác đề tài thanh xuân và câu lạc bộ hàng không Soaring club. Văn bản phân tích yêu cầu cấu hình máy tính (Windows Vista/7/8, card đồ họa rời hoặc tích hợp, ổ cứng trống từ 3 GB trở lên), phong cách đồ họa anime, kỹ thuật lồng tiếng chuyên nghiệp, thời lượng hoàn thành dài (50–60 giờ) và giới hạn độ tuổi 18+.
  • 7 ngày tồn vong! (7 Days! - Buff Studio): Tựa game indie phát hành trên di động (Android và iOS) với nhân vật chính Kirell và thần chết Charon. Trò chơi sử dụng đồ họa 2D tông màu tối, cơ chế la bàn định vị kích hoạt khi có người chết, cốt truyện sinh tồn kéo dài 7 ngày với các lựa chọn tâm lý nặng tính rẽ nhánh, được gắn nhãn độ tuổi 12+.

Đồng thời, chương này đi sâu khảo cứu hai công cụ chuyên dụng dùng để xây dựng tiểu thuyết trực quan:

  • Ren'Py: Công cụ mã nguồn mở viết bằng Python và Cython (phiên bản 8.x). Tác giả trích xuất và phân tích cú pháp mã nguồn kịch bản của Ren'Py, bao gồm câu lệnh thiết lập phông nền (scene bg meadow), hiển thị nhân vật (show sylvie green smile), ẩn nhân vật (hide), hiệu ứng chuyển cảnh (with dissolve, with fade), định vị nhân vật (at right, at left, at center), cùng cấu trúc điều hướng phân nhánh thông qua bộ ba từ khóa menu, jump và label.
  • Visual Novel Maker: Phần mềm thương mại của nhà phát triển Andre Radomski (phân phối trên Steam với giá 480.000 VNĐ). Công cụ hỗ trợ giao diện kéo thả, tương thích nhiều hệ điều hành (Windows, macOS, Linux, SteamOS, Android, iOS) và cho phép can thiệp hệ thống mã nguồn thông qua CoffeeScript và JavaScript.

Từ các phân tích trên, tác giả khẳng định khoảng trống công nghệ: các công cụ hiện tại chưa cung cấp một giải pháp trọn gói vận hành trực tiếp trên thiết bị di động để người dùng phổ thông có thể sáng tác truyện mà không cần viết mã. Từ đó, chương 1 chốt lại đối tượng, phạm vi nghiên cứu (môi trường Android/iOS) và kế hoạch thực hiện 3 giai đoạn (01/09/2022 đến 22/12/2022).

Chương 2: Nghiên cứu lý thuyết

Chương 2 tập trung xây dựng cơ sở lý luận học thuật cho toàn bộ đề tài:

  • Lịch sử trò chơi điện tử được tái hiện chi tiết từ thiết bị ống phóng tia cực âm (1947), máy tính TX-0 (1959–1961), trò chơi Chase (1966), Pong (1972), sự kiện Space Invaders (1978) mở đầu kỷ nguyên vàng, cuộc khủng hoảng sụt giảm 97% doanh thu ngành và vai trò phục hồi của Nintendo NES (1983).
  • Phân loại học về trò chơi được chuẩn hóa qua hai bảng phân loại: Bảng 2-1 (6 loại trò chơi gồm Hành động, Phiêu lưu, Giải đố, Nhập vai, Mô phỏng, Chiến lược) và Bảng 2-2 (8 thể loại nội dung gồm Chính kịch, Tội phạm, Giả tưởng, Kinh dị, Khoa học viễn tưởng, Chiến tranh, Huyền bí, Viễn Tây/Phương Đông).
  • Khái niệm truyện tương tác và tiểu thuyết trực quan được định nghĩa thông qua các yếu tố tự sự và cơ chế tương tác, dẫn chứng sự tiến hóa giao diện qua các tựa game lịch sử như The Portopia Serial Murder Case, Otogirisō và To Heart.
  • So sánh công nghệ: Đánh giá chi tiết giữa hai game engine hàng đầu là Unity và Unreal Engine, luận chứng việc chọn Unity nhờ tính phù hợp vượt trội với đồ họa 2D di động và dung lượng cài đặt tối ưu.
  • Nghiên cứu nền tảng Firebase: Trình bày kiến trúc xác thực của OpenID Connect, cơ chế đồng bộ thời gian thực của Cloud Firestore và giải pháp lưu trữ của Firebase Storage.
  • Kỹ thuật bổ trợ: Phân tích nguyên lý của thư viện lập trình phản ứng UniRx, thư viện hoạt cảnh DOTween, cầu nối Native Gallery; phân tích thuật toán nén ảnh DCT và thuật toán LZ77 thông qua ImageMagick nhằm xử lý bài toán dung lượng tài nguyên di động.

Chương 3: Xây dựng ứng dụng

Chương 3 trình bày chi tiết toàn bộ quá trình kỹ thuật xây dựng sản phẩm:

  • Đặc tả yêu cầu phần mềm:
    • Bảng danh sách các Actor: Xác định các tác nhân tương tác hệ thống gồm Khách (Guest), Người dùng đã đăng ký (User), Tác giả sáng tạo (Creator) và Quản trị viên (Admin).
    • Bảng danh sách và đặc tả chi tiết 6 Use-case trọng tâm: Use-case "Đăng nhập", Use-case "Đăng ký", Use-case "Quản lý tài khoản", Use-case "Quản lý trạng thái truyện", Use-case "Thư viện truyện tương tác" và Use-case "My studio".
  • Thiết kế hệ thống: Xây dựng mô hình kiến trúc giao tiếp Client - Firebase, thiết lập luồng dữ liệu hai chiều giữa Unity và Firestore thông qua UniRx.
  • Thiết kế cơ sở dữ liệu: Trình bày sơ đồ tổng quát và đặc tả chi tiết cấu trúc các bảng dữ liệu user, image, story, character, scene.
  • Thiết kế giao diện và hiện thực hóa chức năng:
    • Màn hình đăng nhập/đăng ký tích hợp xác thực email và nhà cung cấp bên thứ ba.
    • Phân hệ Thư viện (Gallery) gồm giao diện Explore duyệt danh mục và Collection theo dõi truyện cá nhân.
    • Phân hệ My Studio cung cấp công cụ tạo truyện mới, soạn thảo kịch bản hội thoại, tải ảnh đại diện nhân vật qua Native Gallery, thiết lập vị trí hiển thị (trái, giữa, phải) và tạo bảng lựa chọn tình huống rẽ nhánh.
    • Phân hệ Đọc truyện (Reader Engine) hiện thực hóa việc tái hiện hoạt cảnh, chuyển cảnh mượt mà bằng DOTween và ghi nhận lựa chọn của người đọc để chuyển nút kịch bản.
    • Phân hệ Admin quản lý danh sách người dùng và duyệt trạng thái truyện trước khi công khai lên thư viện chung.

Kết luận và hướng phát triển

Phần kết luận đánh giá mức độ hoàn thành so với đề cương ban đầu và đề xuất các định hướng nghiên cứu tiếp theo để nâng cấp ứng dụng.


Kết quả và đóng góp

Khóa luận đã hoàn thành việc nghiên cứu và xây dựng trọn vẹn sản phẩm phần mềm "Thư viện truyện tương tác trên thiết bị di động" đáp ứng các mục tiêu đề ra trong đề cương chi tiết:

  1. Xây dựng thành công ứng dụng di động hoàn chỉnh vận hành trên nền tảng Unity (C#) kết hợp máy chủ dữ liệu Firebase đám mây (Authentication, Firestore, Storage).
  2. Hiện thực hóa đầy đủ các phân hệ chức năng nghiệp vụ theo đặc tả Use-case:
    • Hệ thống xác thực đa kênh (Email cá nhân, Google, Facebook) thông qua cơ chế OpenID Connect của Firebase Authentication.
    • Thư viện truyện tương tác hỗ trợ tra cứu, tìm kiếm, hiển thị danh mục và đọc truyện trực tuyến với cơ chế phân nhánh tình huống hoàn chỉnh.
    • Bộ công cụ sáng tác trực quan "My Studio" tích hợp ngay trên thiết bị di động, cho phép người dùng tự thiết kế nhân vật (sử dụng Native Gallery để tải ảnh từ bộ nhớ máy), xây dựng các cảnh truyện, gán vị trí nhân vật (trái, giữa, phải), nhập lời thoại và cấu hình cây phân nhánh kịch bản mà không cần viết mã lệnh.
    • Phân hệ quản trị (Admin) hỗ trợ kiểm duyệt nội dung và quản lý trạng thái phân phối truyện trên hệ thống.
  3. Về mặt học thuật và kỹ thuật:
    • Khóa luận hệ thống hóa cơ sở lý thuyết về lịch sử phát triển trò chơi điện tử và tiểu thuyết trực quan, cung cấp khung phân loại chi tiết giữa loại hình chơi (game type) và thể loại cốt truyện (game genre).
    • Đề xuất giải pháp kiến trúc dung hòa giữa khả năng biên tập kịch bản phân nhánh phức tạp và tính trực quan, đơn giản hóa giao diện thao tác trên màn hình di động cỡ nhỏ.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của đề tài được ghi nhận dựa trên phạm vi nghiên cứu và tài liệu báo cáo:

  • Ứng dụng phụ thuộc vào kết nối mạng Internet liên tục trong quá trình đọc và biên tập truyện để đồng bộ dữ liệu thời gian thực với Cloud Firestore và tải tài nguyên hình ảnh từ Firebase Storage.
  • Tính năng đọc truyện ngoại tuyến (offline reading) và cơ chế tải trước (caching) toàn bộ gói tài nguyên đa phương tiện xuống bộ nhớ cục bộ vẫn đang ở mức thiết kế nền tảng, chưa được tối ưu hóa toàn diện cho các thiết bị có dung lượng lưu trữ thấp.
  • Trải nghiệm xây dựng các cây kịch bản phân nhánh có quy mô lớn (hàng trăm cảnh rẽ nhánh phức tạp) trên màn hình cảm ứng di động gặp những giới hạn nhất định về không gian thao tác so với môi trường máy tính để bàn.

Hướng phát triển tiếp được đề xuất trong văn bản:

  • Hoàn thiện module tải dữ liệu ngoại tuyến, cho phép đóng gói toàn bộ kịch bản và hình ảnh của một tác phẩm để đọc khi không có kết nối mạng Internet.
  • Tối ưu hóa sâu hơn hiệu năng ứng dụng thông qua việc nâng cấp thuật toán nén ảnh (DCT, LZ77) và áp dụng cơ chế quản lý bộ nhớ đệm thông minh.
  • Phát triển thêm các tùy chọn đa phương tiện phong phú hơn cho My Studio, bao gồm chèn âm thanh nền, lồng tiếng và các hiệu ứng chuyển cảnh hoạt ảnh nâng cao.
  • Nghiên cứu tích hợp hệ thống thương mại hóa và chia sẻ doanh thu nhằm khuyến khích cộng đồng tác giả đóng góp nội dung chất lượng cao.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo hữu ích cho các nhóm đối tượng sau:

  • Sinh viên ngành Công nghệ Phần mềm và Khoa học Máy tính: Tài liệu cung cấp ví dụ thực tế về việc áp dụng quy trình kỹ thuật phần mềm hoàn chỉnh, từ khâu khảo sát nghiệp vụ, phân tích yêu cầu (Actor, Use-case), thiết kế kiến trúc Client-Server đến hiện thực hóa ứng dụng trên Unity và Firebase.
  • Người nghiên cứu phát triển trò chơi (Game Developers): Cung cấp các nghiên cứu chi tiết về cách thức triển khai visual novel engine trên di động, kỹ thuật tích hợp các thư viện UniRx, DOTween và giải pháp tương tác với bộ nhớ thiết bị qua Native Gallery.
  • Các tác giả nghiên cứu lý luận trò chơi: Phần tổng quan lịch sử trò chơi điện tử và các bảng phân loại chuẩn hóa giữa Game Type và Game Genre tại Chương 2 là nguồn tư liệu tổng hợp có giá trị tham khảo học thuật cao.

Câu hỏi thường gặp

1. Khóa luận sử dụng các công nghệ và dịch vụ đám mây cụ thể nào để xây dựng ứng dụng?

Khóa luận sử dụng game engine Unity với ngôn ngữ lập trình C# để phát triển giao diện và logic phía client trên thiết bị di động. Phía máy chủ sử dụng nền tảng Google Firebase gồm: Firebase Authentication (xác thực người dùng qua Email, Google, Facebook dựa trên chuẩn OpenID Connect), Cloud Firestore (cơ sở dữ liệu NoSQL lưu trữ thông tin người dùng, truyện, phân cảnh, nhánh lựa chọn) và Firebase Storage (quản lý lưu trữ tập tin hình ảnh).

2. Sự khác biệt cốt lõi giữa công cụ Ren'Py được khảo sát và ứng dụng được phát triển trong đề tài là gì?

Ren'Py là công cụ mã nguồn mở chạy trên desktop, yêu cầu tác giả phải trực tiếp viết mã kịch bản bằng cú pháp Python/Cython (sử dụng các từ khóa như scene, show, hide, menu, jump, label) và quy trình đóng gói ứng dụng để đưa lên Google Play hoặc App Store tương đối phức tạp. Ngược lại, ứng dụng trong khóa luận đưa toàn bộ quy trình sáng tác lên giao diện trực quan của thiết bị di động, cho phép chọn nhân vật, đặt vị trí và thiết lập nhánh rẽ kịch bản bằng thao tác chạm, đồng thời tự động xuất bản tác phẩm lên thư viện chung mà không cần viết mã.

3. Những thư viện bổ trợ và thuật toán nào được tích hợp trong ứng dụng Unity?

Ứng dụng tích hợp ba thư viện chính gồm: UniRx (lập trình phản ứng để xử lý luồng dữ liệu bất đồng bộ từ Firebase), DOTween (tính toán chuyển động và hiệu ứng chuyển cảnh mượt mà), Native Gallery (truy xuất bộ sưu tập hình ảnh trên thiết bị di động). Ngoài ra, hệ thống khảo sát việc ứng dụng ImageMagick kết hợp thuật toán biến đổi cosin rời rạc (DCT) và thuật toán nén LZ77 để giảm dung lượng hình ảnh trước khi lưu trữ.

4. Hệ thống phân chia các vai trò người dùng (Actor) và Use-case trung tâm như thế nào?

Theo Chương 3, hệ thống xác định các tác nhân gồm Khách (Guest), Người dùng (User), Tác giả sáng tạo (Creator) và Quản trị viên (Admin). Các Use-case cốt lõi bao gồm: "Đăng nhập", "Đăng ký", "Quản lý tài khoản", "Quản lý trạng thái truyện", "Thư viện truyện tương tác" và "My studio".

5. Hai tựa game visual novel nào được nhóm tác giả phân tích chi tiết để rút ra kinh nghiệm thiết kế?

Nhóm tác giả đã khảo sát hai tựa game: If My Heart Had Wings của Pulltop (visual novel truyền thống của Nhật Bản trên PC, phong cách anime, thời lượng 50–60 giờ, nhãn 18+) và 7 ngày tồn vong! (7 Days!) của Buff Studio (game indie nhập vai visual novel trên di động, tông màu tối, lối chơi sinh tồn phân nhánh cao với nhãn 12+).


Kết luận

Khóa luận tốt nghiệp "Xây dựng thư viện truyện tương tác trên thiết bị di động" của sinh viên Lâm Sơn Hải và Phan Hồng Quân đã giải quyết trọn vẹn bài toán tích hợp giữa công cụ sáng tác trực quan và nền tảng đọc tiểu thuyết trực quan trên môi trường di động. Bằng việc kết hợp game engine Unity (C#) với nền tảng điện toán đám mây Google Firebase và các thư viện chuyên dụng (UniRx, DOTween, Native Gallery), công trình đã hiện thực hóa thành công một hệ sinh thái mở cho phép người dùng sáng tạo và trải nghiệm truyện phân nhánh mà không đòi hỏi kỹ năng lập trình. Đề tài thể hiện tính ứng dụng thực tiễn cao trong lĩnh vực công nghệ phần mềm giải trí, đồng thời cung cấp tài liệu kỹ thuật có giá trị tham khảo rõ ràng cho các định hướng phát triển ứng dụng tương tác trên thiết bị thông minh.