You are on page 1of 76

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM

TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG


KHOA CÔNG NGHỆ THÔNG TIN

PHẠM ĐỨC MINH – 51900661


LÊ QUỐC TRƯỜNG – 51900677

XÂY DỰNG GAME KINH DỊ - 3D


DÙNG UNITY

DỰ ÁN CÔNG NGHỆ THÔNG TIN 2

MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG


DỮ LIỆU

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2023


TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM
TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG
KHOA CÔNG NGHỆ THÔNG TIN

PHẠM ĐỨC MINH – 51900661


LÊ QUỐC TRƯỜNG – 51900677

XÂY DỰNG GAME 3D – KINH DỊ


DÙNG UNITY

DỰ ÁN CÔNG NGHỆ THÔNG TIN 2

MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG


DỮ LIỆU

Người hướng dẫn


ThS. Vũ Đình Hồng

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2023


i

LỜI CẢM ƠN

Lời đầu tiên, chúng tôi xin gửi lời cảm ơn đến khoa Công nghệ thông tin,
trường Đại học Tôn Đức Thắng đã tạo điều kiện thuận lợi cho chúng tôi học tập và
hoàn thành đồ án này. Đặc biệt, chúng tôi xin gửi lời cảm ơn chân thành nhất đến
ThS. Vũ Đình Hồng đã hướng dẫn và cho chúng tôi nhiều ý tưởng trong suốt quá
trình thực hiện đồ án này.

Một lần nữa, chúng tôi xin trân trọng cảm ơn ThS. Vũ Đình Hồng đã quan
tâm giúp đỡ chúng tôi trong quá trình thực hiện đồ án này.

TP. Hồ Chí Minh, ngày 2 tháng 9 năm 2023


Tác giả
(Ký tên và ghi rõ họ tên)
Phạm Đức Minh
Lê Quốc Trường
ii

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH

TẠI TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

Chúng tôi xin cam đoan đây là công trình nghiên cứu của riêng chúng tôi
và được sự hướng dẫn khoa học của ThS. Vũ Đình Hồng. Các nội dung nghiên
cứu, kết quả trong đề tài này là trung thực và chưa công bố dưới bất kỳ hình
thức nào trước đây. Những số liệu trong các bảng biểu phục vụ cho việc phân
tích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có
ghi rõ trong phần tài liệu tham khảo.

Ngoài ra, trong Dự án còn sử dụng một số nhận xét, đánh giá cũng như
số liệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích
nguồn gốc.

Nếu phát hiện có bất kỳ sự gian lận nào chúng tôi xin hoàn toàn chịu
trách nhiệm về nội dung Dự án của mình. Trường Đại học Tôn Đức Thắng
không liên quan đến những vi phạm tác quyền, bản quyền do chúng tôi gây ra
trong quá trình thực hiện (nếu có).

TP. Hồ Chí Minh, ngày 2 tháng 9 năm 2023.


Tác giả
(Ký tên và ghi rõ họ tên)
Phạm Đức Minh
Lê Quốc Trường
iii

XÂY DỰNG GAME 3D – KINH DỊ DÙNG UNITY

TÓM TẮT
Đề tài nghiên cứu này là tạo ra một trò chơi 3D kinh dị góc nhìn thứ nhất sử
dụng Unity Engine. Trong suốt quá trình phát triển, chú trọng vào việc nghiên cứu
và áp dụng các công nghệ tiên tiến được sử dụng trong các tựa game tương tự, cũng
như quy trình sản xuất game từ giai đoạn xây dựng cốt truyện, dựa trên tâm lý phổ
quát của người chơi, để tạo ra một trải nghiệm thú vị và phù hợp với sở thích của
người chơi thể loại kinh dị.
Nghiên cứu sẽ tập trung vào việc khám phá các yếu tố tạo nên thành công
của các tựa game kinh dị trước đây, từ gameplay sâu sắc, thiết kế môi trường đáng
sợ đến cách tạo áp lực tâm lý và kích thích cảm xúc cho người chơi. Từ những học
được từ những tựa game này, chúng ta có thể xây dựng nền tảng cho việc phát triển
sâu hơn và áp dụng những phát hiện tâm lý vào trò chơi của chúng ta.
Cuối cùng, dự án này sẽ sử dụng kiến thức và kết quả nghiên cứu để phát
triển một phiên bản demo của trò chơi. Demo này sẽ bao gồm đầy đủ các yếu tố
chất lượng, từ môi trường mặt đất kịch tính đến sự sử dụng thông minh của âm
thanh và ánh sáng để tạo ra không gian đáng sợ. Đồng thời, cũng sẽ áp dụng các
công nghệ và kỹ thuật đã được phân tích và thử nghiệm trong quá trình nghiên cứu.
Với việc kết hợp sự hiểu biết về công nghệ và sự tập trung vào tâm lý của
người chơi, mục tiêu của đề tài là nghiên cứu và tạo ra một trò chơi kinh dị 3D góc
nhìn thứ nhất đầy sự hấp dẫn và độc đáo.
iv

DEVELOPING A 3D HORROR GAME USING UNITY

ABSTRACT
The research topic aims to create a first-person 3D horror game using the
Unity Engine. Throughout the development process, there is a focus on researching
and applying advanced technologies utilized in similar games, as well as the game
production process from crafting the storyline, drawing from the universal player
psychology, to deliver an engaging and appealing experience that aligns with the
horror genre enthusiasts.
The research will be concentrated on exploring the key elements contributing
to the success of previous horror games, ranging from immersive gameplay,
unsettling environment design, to generating psychological pressure and eliciting
emotions in players. Building upon insights gained from these games, a foundation
will be established for a deeper development, integrating psychological discoveries
into the game design.
Ultimately, the project will leverage the acquired knowledge and research
outcomes to develop a demo version of the game. This demo will encompass
various high-quality elements, from intense ground environments to the astute
utilization of sound and lighting to craft a chilling atmosphere. Additionally, the
project will implement the analyzed technologies and techniques experimented with
throughout the research process.
By merging technological understanding with a focus on player psychology,
the goal of this research is to delve into the creation of a unique and captivating
first-person 3D horror game.
v

MỤC LỤC
Không tìm thấy mục nào của mục lục.
vi

DANH MỤC HÌNH VẼ


Hình 1–1 Unity Engine (https://tuhoclaptrinh.edu.vn/)..............................................2

Hình 2–1 Collider trong unity (https://www.lukupp.com/)........................................4

Hình 2–2 Reflection probe (https://forum.unity.com/)...............................................6

Hình 2–3 Bump mapping (https://joannelaidlow.wordpress.com).............................7

Hình 2–4 Paralax occlusion mapping (https://blenderartists.org)...............................8

Hình 2–5 LOD (https://www.cgspectrum.com)..........................................................9

Hình 2–6 Frustum Culling, Occlusion Culling (https://www.researchgate.net/figure)


...................................................................................................................................10

Hình 2–7 Navmesh AI (https://www.researchgate.net/figure).................................11

Hình 3–1 Usecase tổng quát.....................................................................................15

Hình 3–2 Usecase newgame.....................................................................................16

Hình 3–3 Usecase Continuegame.............................................................................16

Hình 3–4 Usecase Quitgame.....................................................................................17

Hình 3–5 Usecase setting..........................................................................................17

Hình 3–6 Usecase changesetting.............................................................................18

Hình 3–7 Usecase Pickup item.................................................................................18

Hình 3–8 Usecase examine item...............................................................................19

Hình 3–9 Usecase unlock door.................................................................................19

Hình 3–10 Usecase Read item..................................................................................20

Hình 3–11 Usecase Open..........................................................................................20

Hình 3–12 Close door...............................................................................................21


vii

Hình 3–13 Usecase Open inventory.........................................................................21

Hình 3–14 Usecase Use item....................................................................................22

Hình 3–15 Usecase Combine item............................................................................22

Hình 3–16 Usecase Pause game...............................................................................23

Hình 3–17 Usecase Savegame..................................................................................23

Hình 3–18 Usecase Useshortcut item.......................................................................24

Hình 3–19 SD Newgame..........................................................................................24

Hình 3–20 SD Continue game..................................................................................25

Hình 3–21 SD Quit game..........................................................................................25

Hình 3–22 SD New game.........................................................................................25

Hình 3–23 SD Pickup Item.......................................................................................26

Hình 3–24 SD Examine item....................................................................................26

Hình 3–25 SD Use shortcut item..............................................................................27

Hình 3–26 SD Unlock door......................................................................................27

Hình 3–27 SD Open door.........................................................................................28

Hình 3–28 SD Use Item............................................................................................28

Hình 3–29 SD Combine item....................................................................................29

Hình 3–30 Game cập nhật nhiệm vụ cho player khi tiến vào bên trong...................30

Hình 4–1 Một đoạn nhỏ trong player controller.......................................................31

Hình 4–2 Một đoạn nhỏ trong footstep controller....................................................32

Hình 4–3 Health manger...........................................................................................33

Hình 4–4 Một phần code rất nhỏ trong NPC behaviour AI......................................33

Hình 4–5 Tổng quan của npc footstep......................................................................34


viii

Hình 4–6 Đoạn khởi tạo UI trong game manager.....................................................35

Hình 4–7 UI khi nhận new input...............................................................................35

Hình 4–8 UI quản lý khi có input được nhận và gọi event.......................................36

Hình 4–9 Một phần của floating icon.......................................................................37

Hình 4–10 Cutscreen manager..................................................................................38

Hình 4–11 Objective manager..................................................................................38

Hình 4–12 Inventory item.........................................................................................39

Hình 4–13 Inventory.................................................................................................39

Hình 4–14 Option controller.....................................................................................40

Hình 4–15 Input handler device setting....................................................................41

Hình 4–16 Save handler............................................................................................42

Hình 4–17 Hình ảnh player trong game....................................................................43

Hình 4–18 Model thực tế của player trong editor.....................................................43

Hình 4–19 Player leo thang.......................................................................................44

Hình 4–20 Các chi tiết cơ bản của NPC...................................................................45

Hình 4–21 Tìm đường đi tiếp theo............................................................................46

Hình 4–22 Setting general........................................................................................47

Hình 4–23 Menu setting Graphic..............................................................................47

Hình 4–24 Menu setting key.....................................................................................47

Hình 4–25 Main menu UI.........................................................................................48

Hình 4–26 Inventory menu.......................................................................................48

Hình 4–27 Pause game menu....................................................................................49

Hình 4–28 Menu tương tác vật phẩm.......................................................................49


ix

Hình 4–29 Examine item..........................................................................................50

Hình 4–30 Khi đọc nội dung của note......................................................................50

Hình 4–31 Keypad lock............................................................................................51

Hình 4–32 một số lưu ý của password......................................................................51

Hình 4–33 Lock number...........................................................................................52

Hình 4–34 End scene................................................................................................53

Hình 4–35 End game scene.......................................................................................53


x

DANH MỤC BẢNG BIỂU


Bảng 3-1 Bảng usecase.............................................................................................14
xi

DANH MỤC CÁC CHỮ VIẾT TẮT

SD Sequence Diagram
1

CHƯƠNG 1. GIỚI THIỆU VÀ TỔNG QUAN ĐỀ TÀI


1.1 Lý do chọn đề tài

Trong thế kỷ 21, ngành công nghiệp game đã trở thành một phần không thể
tách rời trong văn hóa giải trí, tạo ra hàng tỷ đô la doanh thu hàng năm và tạo nên
những trải nghiệm tương tác độc đáo cho người chơi. Thể loại game kinh dị luôn
nắm giữ một vị trí đặc biệt, đưa người chơi vào những trải nghiệm tâm lý sâu sắc và
đầy ám ảnh. Khả năng tạo ra cảm xúc cực đoan, tạo ra sự hấp dẫn khác thường và
khám phá những khía cạnh tăm tối của tâm hồn con người đã làm cho game kinh dị
trở thành một thể loại có sức hút mạnh mẽ.
Dự án này tập trung vào quá trình phát triển một game kinh dị, từ ý tưởng
đến thực tế. Trong quá trình này, sẽ tập trung vào xây dựng nghệ thuật và kỹ thuật
cần thiết để gợi cảm xúc kinh dị một cách hiệu quả. Những yếu tố này không chỉ tạo
ra sự ám ảnh và kích thích mà còn tạo ra một môi trường tương tác độc đáo, khám
phá cảm xúc con người và tạo nên trải nghiệm đáng nhớ.

1.2 Mục tiêu thực hiện đề tài

Mục tiêu của dự án này là tìm hiểu sâu hơn về các yếu tố kinh dị và tạo ra
được một game kinh dị cơ bản. Cụ thể, dự án này sẽ tập trung vào các khía cạnh
sau:
Thiết kế Gameplay và Tương tác: Phân tích cách thiết kế gameplay để tạo
ra sự hấp dẫn và tạo cảm giác căng thẳng trong game kinh dị.
Tạo cảm xúc Kinh dị: Khám phá cách tạo ra cảm xúc kinh dị thông qua
việc sử dụng âm nhạc, âm thanh, đồ họa, và hiệu ứng đặc biệt.
Thiết kế Môi trường: Nghiên cứu cách thiết kế môi trường game để tạo ra
một không gian đen tối, đầy ám ảnh và thách thức người chơi.
Tạo cốt truyện Gây hấp dẫn: Phân tích cách xây dựng cốt truyện và tạo ra
các tình huống gây hấp dẫn, mang tính đột phá để tạo nên trải nghiệm kinh dị.
2

Phản ứng của Người chơi: Nghiên cứu cách người chơi tương tác với game
kinh dị, phản ứng tâm lý của họ và cách họ tạo ra lựa chọn trong tình huống căng
thẳng.

1.3 Giới thiệu về Unity Engine

1.3.1 Tổng quát về Unity Engine

Unity Engine là một trong những công cụ phát triển game mạnh mẽ và phổ
biến nhất trên thị trường hiện nay. Được phát triển bởi Unity Technologies, Unity
Engine đã trở thành sự lựa chọn hàng đầu cho nhiều nhà phát triển game, từ những
người mới bắt đầu cho đến các công ty lớn trong ngành công nghiệp game. Unity
Engine cung cấp môi trường phát triển tích hợp và linh hoạt cho việc tạo ra các trò
chơi đa dạng trên nhiều nền tảng khác nhau.

Hình 1–1 Unity Engine (https://tuhoclaptrinh.edu.vn/)


1.3.2 Tính năng chính

Unity Engine cung cấp một loạt các tính năng mạnh mẽ cho việc phát triển
game:
3

● Đa nền tảng: Unity cho phép bạn phát triển game cho nhiều nền tảng

khác nhau như PC, điện thoại di động, máy tính bảng, console và
thậm chí cả thực tế ảo và thực tế tăng cường.
4

● Đồ họa và Hiệu ứng: Unity hỗ trợ đồ họa 3D và 2D với các công cụ

tạo mô hình, đổ bóng, ánh sáng và hiệu ứng đặc biệt để tạo ra môi
trường và nhân vật sống động.

● Cộng đồng và Tài liệu: Unity có một cộng đồng lớn và nhiều tài liệu

hỗ trợ, từ hướng dẫn, video học, đến diễn đàn, giúp bạn tìm hiểu và
giải quyết các vấn đề trong quá trình phát triển.

● Lập trình dễ dàng: Unity sử dụng ngôn ngữ lập trình C#, là một ngôn

ngữ phổ biến và dễ học. Điều này giúp nhà phát triển tạo ra các cơ chế
gameplay phức tạp và tương tác người chơi.

● Asset Store: Unity có một cửa hàng tài sản (Asset Store) với hàng

ngàn tài nguyên sẵn có như mô hình, hiệu ứng, âm thanh và nền tảng
hỗ trợ, giúp tiết kiệm thời gian và công sức.

● Thời gian thực: Unity cho phép tạo game thời gian thực với các yếu tố

như ánh sáng động, hiệu ứng vật lý và phản ứng người chơi.

● Kéo và Thả (Drag and Drop): Unity hỗ trợ công cụ kéo và thả cho

việc tạo giao diện người chơi và thiết kế môi trường.

1.3.3 Ứng dụng trong phát triển game kinh dị

Đối với việc phát triển game kinh dị, Unity Engine cung cấp một nền tảng
mạnh mẽ để tạo ra không gian đen tối, ám ảnh và hiệu ứng độc đáo. Sử dụng các
tính năng như ánh sáng đặc biệt, hiệu ứng âm thanh đáng sợ, và tạo cảm xúc kịch
tính, bạn có thể tạo ra một trải nghiệm game kinh dị tương tác và đáng nhớ.
Tóm lại, Unity Engine đã thể hiện sức mạnh của mình trong việc phát triển
game kinh dị và nó là một công cụ hữu ích để thực hiện ý tưởng và tạo ra những trải
nghiệm gây ám ảnh cho người chơi.
5
6

CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
2.1 Các thành phần cơ bản khi làm game 3D cùng unity

2.1.1 Component tương tác vật lý

Colliders: là vật mà engine vật lý sẽ dùng để có thể nhận ra sự va chạm,


không giống như các mesh, chúng nhận biết được mỗi khi va chạm với nhau. Đa số
collider có hình dạng đơn giản nhằm mục đích tính toán đơn giản và dễ dàng hơn,
phần lớn các object trong Unity sẽ được gắn collider mỗi khi tạo ra, với Cube là
Box Collider, Sphere là Sphere Collider, Cylinder là Capsule Collider. Dùng để xử
lý va chạm giữa đạn với các mục tiêu là quái vật, kẻ thù.

Hình 2–2 Collider trong unity (https://www.lukupp.com/)


RigidBody: có tác dụng điều khiển vị trí của vật thể thông qua hệ thống mô
phỏng vật lý của Unity, không cần bất kỳ script nào nó cũng có thể di chuyển và xử
lý hướng khi va chạm (nếu có Collider). Đồng thời cũng có thể tác động vào
Rigidbody bằng script như điều chỉnh vận tốc (velocity), vận tốc xoay (angular
velocity),…
7

2.1.2 Component hiệu ứng

Animation là một hình ảnh động mô tả một đối tượng nào đó trong game.
Một animation trong unity bao gồm một hoặc nhiều hành động, một hành động là
một clip. Việc tạo animation giúp cho trò chơi nhìn đẹp mắt, sinh động, hấp dẫn
hơn.
Hệ thống âm thanh Unity phức tạp và mạnh mẽ. Unity có thể nhập định
dạng tập tin âm thanh, sở hữu các chức năng phức tạp để chơi nhạc trong môi
trường 3D, tùy chọn với hiệu ứng tiếng vang và lặp tiếng. Unity có thể cũng ghi âm
trên máy người dùng để sử dụng trong quá trình chơi hoặc để lưu trữ và chuyển
giao.

2.2 Các hệ thống nâng cao và quan trọng trong unity 3d

2.2.1 Đổ bóng

Reflection Probe là một kỹ thuật trong đồ họa máy tính được sử dụng để tạo
hiệu ứng phản xạ (reflection) chân thực trên các bề mặt trong môi trường 3D. Kỹ
thuật này giúp tái hiện các yếu tố môi trường xung quanh một đối tượng, như ánh
sáng môi trường, đối tượng khác, hay cảnh quan, trên bề mặt của đối tượng đó.
Reflection Probe hoạt động bằng cách tạo ra một "khuôn ảnh" của môi
trường xung quanh một vị trí cụ thể trong cảnh 3D. Khuôn ảnh này được sử dụng để
tính toán các giá trị phản xạ tại các điểm trên bề mặt của đối tượng. Khi đối tượng
di chuyển hoặc ánh sáng môi trường thay đổi, Reflection Probe cũng có thể được
cập nhật để tái tạo các hiệu ứng phản xạ thích hợp.
Các ứng dụng của Reflection Probe rất rộng rãi trong việc tạo hiệu ứng phản
xạ chân thực trong các trò chơi điện tử, đồ họa kiến trúc và đồ họa sản phẩm. Khi
kết hợp với các kỹ thuật khác như PBR (Physically Based Rendering), Reflection
Probe giúp tạo ra hình ảnh có cảm giác thực tế và tạo sự tương tác giữa các đối
tượng trong môi trường 3D.
8

Hình 2–3 Reflection probe (https://forum.unity.com/)


2.2.2 Hình ảnh

Component shader là một phần quan trọng của việc tạo hiệu ứng hình ảnh
trong trò chơi 3D, tuỳ thuộc vào thể loại game nhưng đại đa số game xem đây là
vấn đề quan trọng nhất chỉ sau gameplay và cốt truyện của game. Shader là các
chương trình được thực thi trên GPU để điều chỉnh cách mà mỗi pixel trên màn
hình được hiển thị. Trong trò chơi kinh dị 3D, các component shader như "bump
mapping" và "parallax occlusion mapping" được sử dụng để tạo bề mặt sống động
và chi tiết. Điều này tạo cảm giác đặc trưng cho môi trường và làm tăng sự ám ảnh.

2.2.2.1 Bump mapping

Bump mapping là một kỹ thuật trong đồ họa máy tính được sử dụng để tạo ra
hiệu ứng 3D trên bề mặt các đối tượng mà không cần thay đổi thực sự cấu trúc hình
học của chúng. Kỹ thuật này giúp tạo ra ảo ảnh của các chi tiết nhấn nhá trên bề mặt
đối tượng mà thực tế không có trong mô hình hình học.
Bump mapping hoạt động bằng cách thay đổi cách ánh sáng tương tác với bề
mặt của đối tượng dựa trên các thông tin được lưu trữ trong bản đồ bump (bump
map). Bản đồ bump là một loại hình ảnh đặc biệt, trong đó mỗi pixel chứa thông tin
về sự thay đổi tương đối của bề mặt so với bề mặt ban đầu của đối tượng.
Khi áp dụng bump mapping, ánh sáng sẽ được tính toán dựa trên thông tin
trong bản đồ bump để tạo ra hiệu ứng đổ bóng và chi tiết nhấn nhá trên bề mặt, mặc
9

dù thực tế không có sự thay đổi thực sự trong hình học của đối tượng. Kết quả là,
bạn có thể thấy được những vết nổi, lõm, vết nứt hoặc các chi tiết nhỏ khác trên bề
mặt mà không cần thay đổi tới cấu trúc hình học chính của đối tượng.

Hình 2–4 Bump mapping (https://joannelaidlow.wordpress.com)


2.2.2.2 Paralax occlusion mapping

Parallax occlusion mapping (POM) là một kỹ thuật nâng cao của bump
mapping được sử dụng trong đồ họa máy tính để tạo ra hiệu ứng chi tiết 3D trên bề
mặt đối tượng một cách chân thực hơn. POM cải thiện tích hợp giữa chi tiết hình
học và ánh sáng so với bump mapping thông thường.
Trong POM, bản đồ đổ bóng (shadow map) và bản đồ độ cao (height map)
được sử dụng để mô tả cả sự thay đổi chiều cao và cường độ ánh sáng trên bề mặt.
Thay vì chỉ dựa vào thông tin độ cao như trong bump mapping, POM còn tích hợp
thông tin về góc độ và khoảng cách giữa người nhìn và bề mặt, từ đó tạo ra hiệu ứng
thị giác tridimensional.
POM hoạt động bằng cách dịch chuyển mỗi mẫu pixel trên bề mặt dọc theo
hướng tầm nhìn để tạo ra ảo ảnh của các rãnh, nếp gấp, hoặc vết lõm. Điều này tạo
ra một ảnh 3D giả mạo nhưng tương đối thuyết phục mà không thay đổi thực sự cấu
trúc hình học của đối tượng.
10

Hình 2–5 Paralax occlusion mapping (https://blenderartists.org)


2.2.3 Hiệu suất hình ảnh game

Đối với một game nặng về mảng hình ảnh hay nói cách khác sử dụng hình
ảnh để hù doạ và gây sợ hãi trong đề tài này việc tối ưu hoá hình ảnh để tăng hiệu
suất game là việc cực kỳ quan trọng.

2.2.3.1 LOD (Level of details)

LOD viết tắt của "Level of Detail," là một khái niệm trong đồ họa máy tính
và các ứng dụng liên quan đến việc hiển thị đối tượng 3D. LOD áp dụng việc sử
dụng các phiên bản đối tượng có độ chi tiết khác nhau dựa trên khoảng cách giữa
đối tượng và người nhìn hoặc camera.
Trong mô hình 3D, đối tượng thường được tạo ra với một số lượng chi tiết
hình học cao để đảm bảo chất lượng hình ảnh khi được xem từ gần. Tuy nhiên, khi
đối tượng xa khỏi người nhìn, việc duy trì tất cả các chi tiết này không cần thiết và
gây tốn tài nguyên tính toán và hiệu suất.
LOD giải quyết vấn đề này bằng cách cung cấp các phiên bản đối tượng với
độ chi tiết khác nhau. Khi đối tượng ở xa, phiên bản có ít chi tiết hơn được sử dụng,
giúp tiết kiệm tài nguyên và cải thiện hiệu suất. Khi đối tượng được tiếp cận gần
11

hơn, phiên bản với chi tiết cao hơn sẽ được chuyển sang để đảm bảo chất lượng
hình ảnh.
Cách thực hiện LOD có thể khác nhau tùy theo ứng dụng và môi trường sử
dụng. Đối với trò chơi điện tử, ví dụ, LOD có thể được thực hiện bằng cách thay đổi
số lượng đỉnh và tam giác trong mô hình đối tượng. Trong đồ họa 3D, LOD cũng có
thể kết hợp với các kỹ thuật khác như mipmapping để tối ưu hóa việc hiển thị hình
ảnh trên các mức độ khoảng cách khác nhau.

Hình 2–6 LOD (https://www.cgspectrum.com)


2.2.3.2 Culling (Frustum Culling, Occlusion Culling)

Culling (loại bỏ) là một kỹ thuật trong đồ họa máy tính được sử dụng để loại
bỏ các phần không cần thiết của một cảnh 3D, giúp tối ưu hóa hiệu suất bằng cách
chỉ tính toán và hiển thị những phần thực sự cần thiết. Hai kỹ thuật phổ biến của
culling là Frustum Culling và Occlusion Culling.
Frustum Culling: Frustum culling dựa trên một hình hộp cắt (frustum) là
tập hợp các khung nhìn được tạo ra bởi camera. Bất kỳ đối tượng nào nằm ngoài
hoặc cắt qua hình hộp cắt này (không nằm trong khung nhìn của người nhìn) có thể
được loại bỏ khỏi việc tính toán và hiển thị. Điều này giúp giảm tải cho GPU và
CPU, vì không cần phải xử lý và vẽ những thứ không thể nhìn thấy.
12

Occlusion Culling: Occlusion culling đề cập đến việc loại bỏ những đối
tượng bị che khuất bởi các đối tượng khác. Thay vì tính toán và hiển thị những đối
tượng bị che khuất, occlusion culling xác định những vùng không thể nhìn thấy bởi
người chơi và loại bỏ chúng. Điều này bao gồm việc sử dụng các bản đồ khuếch tán
hoặc phân tán (occlusion maps) để biết được vùng bị che khuất.

Hình 2–7 Frustum Culling, Occlusion Culling (https://www.researchgate.net/figure)


2.3 NPC AI

NavMesh (Navigation Mesh) là một kỹ thuật trong lĩnh vực đồ họa máy tính
và trò chơi điện tử được sử dụng để tạo ra các đường đi và quản lý việc di chuyển
của đối tượng trong môi trường 3D. NavMesh giúp cho các nhân vật hoặc đối tượng
có khả năng tự động di chuyển (AI characters) có thể tìm đường tốt nhất để đi qua
các vùng của môi trường mà không va chạm vào các vật thể khác.
NavMesh là một mạng dạng lưới được tạo ra trên bề mặt của môi trường 3D,
trong đó mỗi ô (cell) của lưới biểu diễn một phần không gian được nhận dạng là an
toàn để di chuyển. Các ô này thường được gắn nhãn với thông tin về khả năng di
chuyển, độ khó, và thông tin va chạm.
13

Khi các nhân vật hoặc đối tượng cần di chuyển, NavMesh sẽ được sử dụng
để tìm đường đi an toàn từ vị trí hiện tại đến vị trí đích, tránh các vật thể và vùng
cấm. Các thuật toán tìm đường như A* (A Star) thường được sử dụng để tìm đường
đi hiệu quả trên NavMesh.

Hình 2–8 Navmesh AI (https://www.researchgate.net/figure)


2.4 Cơ sở lý thuyết về tâm lý người chơi thể loại game kinh dị

2.4.1 Sử dụng Jumpscare gây hoảng sợ tức thì

Các phân đoạn jumpscare trong game được thực hiện bằng các trigger action
animation cổ điển kết hợp với âm thanh và hình ảnh bất ngờ có thể khiến cho người
chơi hoảng sợ trong khoảng khắc khi game quá tĩnh lặng.
Xây Dựng Không Gian Ám Ảnh: Trước khi thực hiện jump scare, xây
dựng không gian đầy ám ảnh và căng thẳng. Sử dụng component shader để tạo hiệu
ứng ánh sáng và bóng tối đặc trưng, tạo không gian kỳ quái và đáng sợ.
Tạo Tính Tương Tác: Sử dụng NavMesh để tạo lối đi cho người chơi, tạo
cảm giác họ không thể thoát ra khỏi tình huống căng thẳng. Điều này làm tăng sự đe
dọa và tạo cảm xúc sợ hãi.
14

Áp Dụng Kỹ Thuật Kịch Tính: Thực hiện jump scare tại những thời điểm
đáng kỳ vọng nhất, chẳng hạn như khi người chơi đang tập trung vào việc khám phá
hoặc tương tác với môi trường. Sử dụng các hiệu ứng âm thanh và hình ảnh bất ngờ
để gây choáng váng và kích thích.
Tạo Cảm Giác Không Kiểm Soát: Jump scare thường gây ra cảm giác
không kiểm soát và bất ngờ trong người chơi. Sự tương tác giữa âm thanh, ánh sáng
và đối tượng đáng sợ tạo ra một trải nghiệm đột ngột, khiến người chơi trở nên lo
lắng và căng thẳng.

2.4.2 Ambient gây lo lắng và áp lực liên tục

Các loại trigger để kích hoạt âm thanh tạm thời hoặc event là phần chủ yếu
của thiết kế môi trường trong game, phần nhiều các sự kiện dể gây ra sự hoảng loạn
hoặc nâng sự cao trào trong game đều phải có. Kết hợp từ các trigger In và Out khi
player di chuyển hoặc khi kích phát một event, đoạn này sử dụng tương tự cho việc
thay đổi nhiệm vụ vả hướng dẫn người chơi.
Tạo không gian đáng sợ: Âm thanh môi trường có thể tái hiện các âm thanh
như tiếng gió thổi, tiếng cây rơi, tiếng động động vật hoặc tiếng rên rỉ của môi
trường bị bỏ hoang. Tất cả những âm thanh này kết hợp lại tạo nên không gian âm
thanh đáng sợ và đầy ám ảnh, tạo cảm giác nguy hiểm cho người chơi.
Tạo cảm xúc và sự căng thẳng: Âm thanh môi trường có thể sử dụng để tạo
ra sự kích thích tâm lý cho người chơi. Tiếng vọng đầy ám ảnh, tiếng động lạ hoặc
tiếng khóc rên từ xa có thể khiến người chơi tưởng tượng ra những tình huống kinh
dị, làm tăng sự căng thẳng và lo lắng.
Điều chỉnh tâm trạng của người chơi: Âm thanh môi trường có thể tạo ra
không gian tâm trạng riêng biệt cho từng phần của trò chơi. Từ âm thanh yên bình
và bình thường trong các phần không nguy hiểm, đến âm thanh kịch tính và kinh dị
trong các phần căng thẳng, âm thanh môi trường giúp điều chỉnh tâm trạng của
người chơi và tạo ra trải nghiệm tương xứng.
15

2.4.3 Truy đuổi thúc đẩy tình huống game lên cao trào

2.4.3.1 Mục đích

Tạo áp lực tâm lý: Truy đuổi cao trào tạo ra áp lực tâm lý mạnh mẽ cho
người chơi. Sự tận diệt không ngừng của thực thể đuổi theo khiến người chơi cảm
thấy lo sợ và căng thẳng, đồng thời thúc đẩy họ đưa ra quyết định nhanh chóng và
đúng đắn.
Kích thích tình huống khẩn cấp: Trong truy đuổi cao trào, người chơi
thường phải đối mặt với nguy cơ mất mạng hoặc bị bắt nếu không làm gì đó. Điều
này tạo ra tình huống khẩn cấp và tạo sự thú vị cho trò chơi, khi người chơi cảm
thấy mình phải hoạt động nhanh chóng để tồn tại.
Tạo sự tham gia tương tác: Truy đuổi cao trào thường yêu cầu người chơi
tham gia tương tác trong quá trình trò chơi. Họ cần phải tìm cách tránh bị bắt và sử
dụng môi trường để che giấu hoặc điều khiển thực thể đuổi theo. Điều này tạo ra sự
tương tác giữa người chơi và trò chơi, làm tăng độ chân thực và kịch tính.

2.4.3.2 Trong unity

Thiết kế môi trường kịch tính: Xác định các môi trường đầy kịch tính và
có nhiều khả năng che giấu. Những nơi này cho phép người chơi tìm cách tránh sự
truy đuổi của thực thể đáng sợ, tạo nên sự lo sợ và căng thẳng.
Thiết kế thực thể đuổi đáng sợ: Tạo ra thực thể đáng sợ và khả năng truy
đuổi mạnh mẽ. Điều này đảm bảo rằng người chơi thực sự cảm nhận sự nguy hiểm
và căng thẳng khi bị truy đuổi.
Tạo sự không chắc chắn: Trong truy đuổi cao trào, người chơi thường
không biết chính xác thời điểm nào họ sẽ bị truy đuổi. Tạo ra sự không chắc chắn
về thời gian và vị trí của thực thể đuổi, tạo nên cảm giác khó kiểm soát.
Tạo cảm giác không kiểm soát: Trong truy đuổi cao trào, người chơi
thường phải đối mặt với cảm giác không kiểm soát và bất ngờ. Điều này tạo ra sự
16

kích thích và thú vị khi người chơi phải đưa ra quyết định nhanh chóng để tránh
nguy hiểm.
17

CHƯƠNG 3. PHÂN TÍCH THIẾT KẾ


3.1 Sơ đồ chức năng và usecase hệ thống

3.1.1 Các usecase trong hệ thống

Tên use case Mô tả

1. New game Người chơi bắt đầu mới trò chơi

2. Continue game Người chơi bắt đầu từ lần trước chơi

3. Quit game Người chơi thoát game

4. Setting Người chơi mở menu setting

5. Change setting Người chơi lưu thiết lập setting

6. Pickup item Người chơi nhặt item trong game

7. Examine item Người chơi xem xét một item trong


game

8. Unlock door Người chơi mở khoá cánh cửa

9. Read paper Người chơi đọc nội dung của một tờ


giấy

10. Open Người chơi mở cửa

11. Close Người chơi đóng cánh cửa

12. Open inventory Người chơi mở túi đồ

13. Use item Người chơi sử dụng một item từ túi đồ

14. Combine item Người chơi ghép hai vật phẩm từ túi đồ

15. Pause game Người chơi ấn tạm dừng trong game

16. Save game Người chơi save game trong menu tạm
dửng game
18

17. Use shortcut item Người chơi chuyển đổi nhanh vật phẩm
sử dụng được đặt trong hotkey.

Bảng 3-1 Bảng usecase

3.1.2 Sơ đồ uscase tổng quát

Sơ đồ tổng quát các usecase trong demo dự án. Sơ đồ bao gồm các tương tác
giữa player và hệ thống không bao gồm các usecase không phải do player cố ý tác
động.
19

Hình 3–9 Usecase tổng quát


20

3.2 Sơ đồ hoạt động

3.2.1 Usecase Newgame

Usecase khi người chơi ấn nút new game và xác nhận bắt đầu trò chơi mới.

Hình 3–10 Usecase newgame


3.2.2 Usecase continue game

Khi người chơi có một bản save sẽ có thể chọn continue game để tiếp tục
màn chơi cũ.
21

Hình 3–11 Usecase Continuegame


3.2.3 Usecase Quitgame

Hình 3–12 Usecase Quitgame


3.2.4 Usecase Setting

Hình 3–13 Usecase setting


22

3.2.5 Usecase Changesetting

Khi người dùng vào menu setting và thực hiện thay đổi trong menu setting,
sau đó người chơi ấn vào xác nhận thay đổi.

Hình 3–14 Usecase changesetting


3.2.6 Usecase Pickup item

Hình 3–15 Usecase Pickup item


23

3.2.7 Examine Item

Hình 3–16 Usecase examine item


3.2.8 Unlock door

Hình 3–17 Usecase unlock door


24

3.2.9 Usecase Read item

Hình 3–18 Usecase Read item


3.2.10 Open door

Hình 3–19 Usecase Open


25

3.2.11 Close door

Hình 3–20 Close door


3.2.12 Open inventory

Hình 3–21 Usecase Open inventory


26

3.2.13 Usecase Use item

Hình 3–22 Usecase Use item


3.2.14 Usecase Combine item

Hình 3–23 Usecase Combine item


27

3.2.15 Usecase Pause game

Hình 3–24 Usecase Pause game


3.2.16 Usecase Savegame

Hình 3–25 Usecase Savegame


28

3.2.17 Usecase UseShortcut item

Hình 3–26 Usecase Useshortcut item


3.3 Sơ đồ tuần tự

3.3.1 Newgame sequence

Hình 3–27 SD Newgame


29

3.3.2 SD Continue game

Hình 3–28 SD Continue game


3.3.3 SD Quit game

Hình 3–29 SD Quit game


3.3.4 SD New game

Hình 3–30 SD New game


30

3.3.5 SD Pickup item

Hình 3–31 SD Pickup Item


3.3.6 SD Examine read Item

Hình 3–32 SD Examine item


31

3.3.7 Use Shortcut Item

Hình 3–33 SD Use shortcut item


3.3.8 SD Unlock door

Hình 3–34 SD Unlock door

3.3.9 SD Open door


32

Hình 3–35 SD Open door


3.3.10 SD Use Item

Hình 3–36 SD Use Item


3.3.11 SD Combine item
33

Hình 3–37 SD Combine item

3.4 Các Trigger hệ thống do player tác động không trực tiếp

Trong game các hiệu ứng môi trường như sấm chớp hay bàn ghế tự động di
chuyển sẽ được kích hoạt khi player tác động (di chuyển vào) một vùng nào đó
trong game được định sẵn từ đó có thể kích hoạt các trigger hệ thống. Ví dụ như các
hoạt cảnh jumpscare, hay cửa tự động khoá,.. tất cả các đoạn script đấy trong đề tài
này sẽ được liệt kê như usecase không do chủ ý của player ví dụ như tự động save
game.
Như trong ảnh dưới có thể thấy khi player đi đến nơi nhất định sẽ kích hoạt
một case tại đó nhưng player lại không chủ động thực hiện việc này thay vào đó là
bị động tác động đến.
34

Hình 3–38 Game cập nhật nhiệm vụ cho player khi tiến vào bên trong
35

CHƯƠNG 4. HIỆN THỰC GAME


4.1 Cài đặt thực nghiệm

Vì để bài báo cáo dự án tốt và tập trung cung cấp đầy đủ thông tin quan trọng
nên sẽ chỉ có một phần bắt đầu code của các module (mỗi một module đều ít nhất
hơn ngàn dòng code quan trọng), nên mục này sẽ bao gồm phần mô tả tổng quát và
một phần code tượng trưng của module đó.

4.1.1 Phần code quan trọng player

Player controller trong phần thực nghiệm này game sử dụng new input
system của unity, một hệ thống input mới chuyên dùng để hỗ trợ đa nền tảng nên
game có thể sử dụng cho các hệ máy tay cầm console. Trong hình 4-1 là một phần
nhỏ của Player controller thể hiện việc cách nhận input thông qua event listener
trong game manager sẽ được đề cập ở mục ui manager.

Hình 4–39 Một đoạn nhỏ trong player controller


36

Footstep controller khi player di chuyển tùy thuộc vào state trong player
controller mà Footstep controller tạo ra âm thanh vào môi trường xung quanh theo
bán kính cho sẵn từ đó khi các NPC có thể nhận được âm thanh và tính toán có truy
đuổi theo nguồn âm thanh hay không. Hình 4-2 là một đoạn cơ bản trong Footstep
controller.

Hình 4–40 Một đoạn nhỏ trong footstep controller


Player health manager module này sẽ được dùng cho tính toán nhận sát
thương cũng như đảm nhận việc tính toán hồi phục và khi nào player tử vong. Về
mục này module sẽ nhận dữ liệu từ một phần trong controller để xem xét các state
hiện tại của player từ đó kết toán thông qua hàm apply Dmg để tính toán kết quả
Dmg nhận vào ( Phần lớn là miễn giảm sát thương khi player đang đối diện với npc
xem như là đối đầu trực diện sẽ nhận ít thương tổn hơn khi player quay bỏ chạy
nhưng lại bị tấn công).
Trong hình 4- 3 là phần handle dmg của module này.
37

Hình 4–41 Health manger


4.1.2 Các đoạn code quan trọng NPC

AI behavior như tên, module của npc này sẽ thực hiện toàn bộ các việc như
di chuyển, tuần tra, truy đuổi (nhận thông số từ navmesh agent của unity) và hai
mục quan trọng của npc cũng do nó đảm nhận là phát hiện được player trong tầm
nhìn và nhận biết âm thanh (trong thực nghiệm đã hạn chế một chút về các năng lực
này của npc để dễ dàng hơn trong việc test cũng như trải nghiệm nhanh các tính
năng của game).
38

Hình 4–42 Một phần code rất nhỏ trong NPC behaviour AI
NPC Footstep, Health gần như tương tự như player nhưng đơn giản hơn và
phát tán ra âm thanh vào xung quanh để player có thể nghe được chuyển động của
npc khi player đang ẩn nấp.
Về health cũng như footstep đều là bản đơn giản hóa của player, có một số
hàm quản lý cơ bản và nhận dmg.
39

Hình 4–43 Tổng quan của npc footstep


4.1.3 Các nguồn quan trọng quản lý

Game manager mục này được gắn vào đối tượng quản lý chung với ui của
game, đây là thành phần quan trọng nhất của game dù không thực hiện nhiều các
việc xử lý nhưng là module liên kết toàn bộ các module khác UI, player, npc và
quản lý việc load new scene.
40

Hình 4–44 Đoạn khởi tạo UI trong game manager


UI manager quản lý các input của player tương tác với UI, toàn bộ các mục
liên quan tới ui đều sẽ do module này quản lý, trong ảnh là đoạn bật menu thông
qua gọi từ các hàm trong new input system của unity.
41

Hình 4–45 UI khi nhận new input

Floating icon manager module nhỏ này sẽ quản lý bao gồm việc thêm và
hiển thị các icon nhặt vật phẩm trong game. Đoạn code trong ảnh xử lý phần hiển
thị các icon nếu player bước vào một khoảng cách gần nhất định và xoay chiều icon
cho phù hợp với góc nhìn của player. Hình 4–46 Một phần của floating icon là code
của module này.
42

Hình 4–46 Một phần của floating icon


Objective manager một module quan trọng trong việc xử lý các nhiệm vụ
đưa ra cho player, thông qua module này mới có thể hoàn thành hoặc them mới một
nhiệm vụ khi player hoàn thành một mức nhất định ở một địa điểm cụ thể nào đó.
Trong ảnh là module khi thực hiện hiển thị ra các chuỗi nhiễm vụ hiện tại.
Đi kèm module này là cutsceen manager. Chuyên dụng để thực hiện các
đoạn cutscene thông qua việc di chuyển vị trí các camera
43

Hình 4–47 Cutscreen manager

Hình 4–48 Objective manager


Inventory là một module lớn bao gồm tổng hợp và dữ liệu từ nhiều module
khác như inventory container và inventory edit. Là một module quan trọng trong
game quản lý toàn bộ các danh sách sản phẩm các bộ cặp khóa hoặc pin và các vật
44

phẩm có thể sử dụng đặc biệt đều do module này quản lý và chỉnh sửa thông qua
inventory container để tạo mới một item.
Một số các module phụ trợ khác như inventory deselect hay sort đều là các
module hỗ trợ quan trọng cho inventory khi player thực hiện quản lý túi đồ.
Module hỗ trợ quan trọng kể đến tiếp theo là slot script này quản lý các slot
có trong inventory bao gồm thể hiện ra slot đó còn trống hay đã có đồ cũng như
quản lý các vật phẩm ở trong ô đó của inventory. Module này sẽ giúp inventory
hiển thị ra được các vật phẩm trong túi đồ và dữ liệu của vật phẩm khi UI cần dùng
đến như mở khóa các cánh cửa hay vật phẩm giải đố.

Hình 4–49 Inventory item


45

Hình 4–50 Inventory


Option controller một module nằm trong UI quản lý các cài đặt về hình ảnh
hay điều khiển âm thanh của trò chơi. Trong ảnh là đoạn code hiển thị các tùy chọn
cài đặt và thực thi chọn cài đặt.

Hình 4–51 Option controller


46

Input handler module này xử lý toàn bộ các việc liên quan tới input và thiết
lập các event để các module có thể sử dụng hoặc liên kết tới input đó, cũng như thay
đổi cài đặt phù hợp với điều khiển được kết nối trong game. Trong hình 4-15 là
đoạn code thay đổi input device.
Các device được hỗ trợ trong đoạn code lần lượt là keyboard + mouse.
Controller xbox và PS4. Mỗi một controller sẽ có một đoạn liên kết event input
khác nhau để có thể hỗ trợ toàn bộ cho việc như mở menu hay thực hiện các thao
tác trong như di chuyển nhảy hoặc xem xét vật phẩm.

Hình 4–52 Input handler device setting


47

4.1.4 Save game

Là một module rất lớn cũng như giữ chức năng quan trọng là save game,
không giống như các game cơ bản, đây là một game có nhiều vật thể cần phải sao
lưu và vị trí của chúng cũng như nhận biết được vật phẩm nào cần sao lưu. Do đó
module là một bộ module giống như inventory đảm nhận vai trò quan trọng và được
cấu thành từ nhiều module hỗ trợ khác lần lượt.
Save editor đây là module hỗ trợ việc thiết kế các dữ liệu của vật phẩm cần
lưu, ví dụ như vị trí trạng thái và các chỉ số hiện tại. Như player hoặc npc, một số
quan trọng khác như các cửa khóa hay các khu trigger kích hoạt một lần như
jumpscare hay objective module sẽ hỗ trợ tạo ra các mục cần lưu như thế.
Một module nhỏ khác là save extension hỗ trợ việc chiết xuất file save và
giải quyết các vấn đề về ghi lên ổ đĩa của máy player.
Trong hình 4-16 là đoạn code tìm kiếm các vật thể có thể save bằng module
khác.

Hình 4–53 Save handler


48

4.2 Game thực tế

4.2.1 Player

Player sẽ thiết kế như một nhân vật bình thường và đặt camera ở đầu cho
cảm giác chân thật của góc nhìn thứ nhất.
Player sẽ có tốc độ nhanh hơn NPC một chút và tự động hồi máu khi không
bị tấn công trong một khoảng thời gian, player có thể leo trèo và ngồi xỏm hoặc bò
cũng như nhảy lên.

Hình 4–54 Hình ảnh player trong game

Hình 4–55 Model thực tế của player trong editor


49

Hình 4–56 Player leo thang


4.2.2 NPC

Về NPC sẽ đơn giản hơn do chỉ có các phần về di chuyển và tìm đường.
Trong hình 4-20 là các collider và các hướng hiển thị waypoint mà NPC sẽ di
chuyển để tuần tra khi. Trong hình 4-20 gạch đỏ dưới chân tượng trưng cho tầm
nhìn trong khi khung vàng sẽ là khoảng cách nghe thấy của NPC.
NPC có tổng cộng 4 trạng thái lần lượt là: Idle, threat, sleep, patrol cụ thể
như sau:
 Idle npc sẽ không di chuyển và đứng im thực hiện animation idle.
 Sleep npc sẽ thực hiện animation và giảm chỉ số “hear”.
 Threat npc sẽ vào trạng thái truy đuổi mục tiêu sau khi tìm được và
khoá vào mục tiêu thích hợp.
 Patrol npc sẽ di chuyển theo các way point liên tục để tìm kiếm các
“threat”
50

Hình 4–57 Các chi tiết cơ bản của NPC


Nếu không phát hiện player khi NPC di chuyển tới mục tiêu định sẵn sẽ bắt
đầu tìm đường di chuyển tới điểm tiếp theo trong hình 4-21 là các mũi tên nhỏ sẽ
hướng và di chuyển tìm kiếm để tạo ra một đường đi tới điểm tiếp theo (navmesh
agent).
Một số khác như npc sẽ từ bỏ truy đuổi khi bị khuất tầm nhìn trong khoảng
thời gian cố định thì sẽ từ bỏ threat và vào trạng thái alert (đây không phải là trạng
thái cụ thể chỉ là một phần trong patrol trong trạng thái này npc khi tìm thấy threat
lần nữa sẽ trực tiếp truy đuổi mà không thực hiện animation cảnh báo).
51

Hình 4–58 Tìm đường đi tiếp theo


4.2.3 UI trong game

Main menu Hình 4–62 Main menu UI thiết kế đơn giản bao gồm các tùy
chọn như setting, new game, continue (khi player có file save) và quit game.
Trong menu setting sẽ có thêm một menu setting riêng biệt.
52

Hình 4–59 Setting general

Hình 4–60 Menu setting Graphic

Hình 4–61 Menu setting key


53

Hình 4–62 Main menu UI


Inventory, khi player ấn key inventory thì game sẽ mở inventory UI.

Hình 4–63 Inventory menu


54

Pause game menu là menu sẽ hiện ra khi player ấn vào key pause game

Hình 4–64 Pause game menu


Menu tương tác vật phẩm trong map

Hình 4–65 Menu tương tác vật phẩm


Menu đọc và khi xem xét (examine) một vật, khi player tiến tới chỉ con trỏ
vào một vật phẩm có thể tương tác và ấn vào examine vật phẩm đó game sẽ phóng
55

to và player có thể xem xét tứ phía của vật phẩm bằng cách điều khiển hướng tùy
thuộc vào điều khiển hiện tại của mình.

Hình 4–66 Examine item


Read item, một số vật phẩm như note có thể hiển thị menu đọc vật phẩm
hiển thị nội dung trong đoạn note có thể cung cấp thông tin hoặc cốt truyện.
56

Hình 4–67 Khi đọc nội dung của note


57

Keypad, có một số sở hữu khóa mật khẩu yêu cầu tương tác đặc biệt của
player như trong Hình 4–68 Keypad lock. Player có thể tìm được pass thông qua
note hoặc ký hiệu đặc biệt.

Hình 4–68 Keypad lock


Lock number là một loại ổ khóa là khóa số, tương tự như keypad cần phải
có đúng mật mã và nhập vào đúng thứ tự sẽ có thể mở khóa. Để chỉnh được số
player phải click hiển thị cursor (lý do phải hỗ trợ cho tay cầm)
Đối với các mật mã loại này cần phải đọc note và tìm kiếm chính xác mục
tiêu được đề cập để có password.

Hình 4–69 một số lưu ý của password


58

Hình 4–70 Lock number

End game scene, khi player tiến được vào vùng endgame sẽ chuyển sang
scene endgame sau một khoảng thời gian player sẽ được chuyển về mainmenu
scene. Trong Hình 4–71 End scene và Hình 4–72 End game scene là hình ảnh khi
kết thúc game player sẽ nhìn thấy after credit của demo và sau khoảng 10 giây khi
các dòng chữ chạy hết player sẽ được trả về main menu.
59

Hình 4–71 End scene


Sau đó dòng chữ sẽ tiếp tục chạy để hiện ra phần credit bên dưới ở

Hình 4–72 End game scene


60

CHƯƠNG 5. TỔNG KẾT


5.1 Kết luận

5.1.1 Ưu điểm

Game sở hữu đồ hoạ ở mức tốt, có nhiệm vụ mục tiêu rõ ràng, gameplay đơn
giản nhưng không chán trong suốt quá trình trải nghiệm, làm được những pha hù
doạ gây căng thẳng thứ mà mục tiêu ban đầu đề ra cũng như cảm xúc mà những
người chơi tham gia thể loại game này mong muốn. Game được xây dựng và áp
dụng những kiến thức của các tựa game đi trước nên về mặt gameplay vẫn có
hướng đi rõ ràng.
Game được tối ưu hoá theo các kỹ thuật nghiên cứu kể trên nên có thể đáp
ứng được nhiều cấu hình máy thấp hơn và chạy tốt hơn trên các máy khác, không
giật lag bất ngờ.

5.1.2 Nhược điểm

Tuy có đồ hoạ ở mức tương đối nhưng do giới hạn về mặt kỹ thuật và nhân
lực nên game không được trau chuốt quá nhiều ở phân đoạn môi trường và các chi
tiết nhỏ trên map.
Số lượng quái không đa dạng như mục tiêu đề ra vì nhóm không đủ phí tiếp
tục mua những model có animation khác. Shader ánh sáng trong game không được
tốt dù texture trong game lại ở mức đẹp làm tổng thể đồ hoạ game bị kéo xuống,
gameplay giải đố có phần đơn giản.

5.1.3 Những mục tiêu đã hoàn thành

Các cấu trúc game cơ bản của thể loại kinh dị hành động lén lút đều đã hoàn
thành gần như đầy đủ. Hệ thống âm thanh và hình ảnh được chăm chút cũng như
xây dựng được một core gameplay hoàn chỉnh có phần kết thúc.
Về mặt nhân vật tuy NPC không đa dạng nhưng lại sở hữu các chi tiết sống
động và đầy đủ về mặt player nhân vật chính được hoàn thành cực kì tỉ mĩ và tinh
61

chỉnh đầy đủ về hoạt ảnh hay di chuyển để đảm bảo người chơi có cảm giác chân
thật nhất khi áp dụng chung trong góc nhìn thứ nhất.
Về đồ hoạ game, game áp dụng rất nhiều kỹ thuật về tối ưu hoá hình ảnh và
nâng cao chất lượng hình ảnh, tuy vẫn còn hạn chế khá nhiều về ánh sáng.

5.1.4 Những khó khăn và mục tiêu không hoàn thành

Model của game là việc khó khăn nhất trong việc thực hiện một game 3D và
đây là một nhỏ nên việc tìm các model phù hợp là việc khó dẫn đến thiếu sự đa
dạng của các NPC cũng như các chi tiết trên map.
Về phần hình ảnh có một phần cản trở do kỹ thuật của bản thân về xử lý ánh
sáng không có kinh nghiệm nên các ánh sáng trong game rất tệ hại thậm chí làm cho
hình ảnh bóng bẩy của game bị dìm mất làm giảm đi chất lượng của game rất nhiều.

5.1.5 Đánh giá chung về đề tài

Đề tài tập trung vào việc phát triển một trò chơi kinh dị 3D góc nhìn thứ nhất
thông qua việc sử dụng Unity Engine. Thể loại game này đang ngày càng phổ biến
và đầy triển vọng trong ngành công nghiệp game. Dự án nghiên cứu này mở ra cơ
hội cho việc tìm hiểu và nâng cao sự hấp dẫn của thể loại này.
Trong quá trình nghiên cứu và phát triển, đã có việc tìm hiểu sâu về việc sử
dụng Unity Engine để tạo nên trò chơi 3D. Điều này liên quan đến việc đương đầu
với những thách thức cụ thể trong việc thiết kế môi trường, cùng việc áp dụng hiệu
ứng âm thanh và hình ảnh để tạo ra không gian đầy căng thẳng và hấp dẫn. Khảo sát
tâm lý của người chơi và cách áp dụng cốt truyện để kích thích sự hoảng sợ cũng là
một phần quan trọng trong việc phát triển trò chơi kinh dị. Tầm quan trọng của dự
án không chỉ giới hạn trong lĩnh vực nghiên cứu, mà còn mở ra cơ hội áp dụng kiến
thức vào nhiều lĩnh vực khác trong ngành Công nghệ Thông tin. Đơn cử như xử lý
ảnh và hoạt ảnh cũng như lên kịch bản tình huống.
Phương pháp hướng tới trải nghiệm tương tác hấp dẫn có thể áp dụng vào
nhiều ứng dụng khác nhau, từ ứng dụng tương tác đến trải nghiệm thực tế ảo, và có
khả năng tác động tới cách giảng dạy và đào tạo. Tổng cộng, dự án nghiên cứu này
62

không chỉ thể hiện khả năng kỹ thuật trong việc xây dựng trò chơi 3D mà còn thể
hiện sự thông thạo trong việc áp dụng kiến thức nghiên cứu vào thực tế, góp phần
đáng kể vào nhiều lĩnh vực khác nhau trong ngành Công nghệ Thông tin

5.2 Hướng phát triển

Tiếp tục hoàn thiện gameplay như thêm các vật cản trốn cho player và tăng
độ khó của việc giải đố tìm các vật phẩm để tiến vào sâu trong cốt truyện, thêm
giọng kể truyện và lời thoại cho các NPC. Hoàn thiện phần âm thanh của game
đang còn một số hạn chế. Phát triển và thêm nhiều vào kiểu hù doạ khác nhau và
quan trọng nhất nâng cao chất lượng ánh sáng trong game từ đó có thể khiến hình
ảnh trong game trở nên hoàn hảo hơn.
63

TÀI LIỆU THAM KHẢO


Tiếng anh

Equilibrium, A. (2021, Feb 4). Abandoned psychiatric Hospital. Retrieved from Unity

asset store:

https://assetstore.unity.com/packages/3d/environments/urban/abandoned-

psychiatric-hospital-188270

Games, V. (2018, Mar 29). Sewer underground modular pack. Retrieved from Unity asset

store: https://assetstore.unity.com/packages/3d/environments/sewer-underground-

modular-pack-v4-0-112692

Studio, T. (2017, Mar 14). Horror FPS Kit. Retrieved from Unity Asset Store:

https://assetstore.unity.com/packages/templates/systems/horror-fps-kit-

82643#releases

You might also like