Giới thiệu dự án
Thị trường công nghiệp trò chơi điện tử toàn cầu đã cán mốc quy mô hơn 187,7 tỷ USD vào giai đoạn 2023–2024, trong đó phân khúc game bắn súng trực tuyến nhiều người chơi (Multiplayer Shooter) luôn chiếm tỷ trọng áp đảo về lượng người chơi hoạt động hàng ngày (DAU) và doanh thu. Tại Việt Nam, nhu cầu trải nghiệm các tựa game bắn súng hành động có đồ họa chân thực, gameplay tương tác thời gian thực ngày càng khắt khe. Tuy nhiên, việc phát triển một tựa game bắn súng góc nhìn thứ 3 (Third-Person Shooter – TPS) hoàn chỉnh đòi hỏi giải quyết đồng thời bài toán kết xuất đồ họa hiệu năng cao, cơ chế vật lý súng đạn chính xác và kiến trúc đồng bộ mạng thời gian thực (Network Synchronization) với chi phí hạ tầng tối ưu.
Đồ án tốt nghiệp "Game Online Bắn Súng Góc Nhìn Thứ 3" (tên thương mại: Row Blaster Online) do sinh viên Bùi Ngọc Tâm thực hiện dưới sự hướng dẫn của ThS. Nguyễn Thị Minh Nương tại Trường Đại học Bà Rịa – Vũng Tàu, tập trung giải quyết bài toán cốt lõi: Xây dựng một trò chơi TPS 3D hoàn chỉnh trên nền tảng Unreal Engine 5 (UE5), tích hợp hệ thống kết nối nhiều người chơi qua Steamworks SDK mà không phát sinh chi phí duy trì Dedicated Server đắt đỏ.
+-----------------------------------------------------------------------+
| ROW BLASTER ONLINE - ARCHITECTURE |
+-----------------------------------------------------------------------+
| [ Client 1 (Host / Listen Server) ] <==== Steam P2P ====> [ Client 2]|
| | | |
| +----------+----------+ +----------+ |
| | UE5 Game Mode / Net | | UE5 Client Logic |
| | - Replication Auth | | - Client Predict |
| | - Hitscan / Project | | - Interpolation |
| +---------------------+ +------------------+
+-----------------------------------------------------------------------+
Mục tiêu dự án
- Thiết kế cơ chế Gameplay TPS tiêu chuẩn: Xây dựng hệ thống điều khiển nhân vật, cơ chế ngắm bắn (Aim Down Sights - ADS), phân tán đạn (Crosshair spread), thay đạn (Reload), nhặt và chuyển đổi vũ khí, ném lựu đạn (Grenade) cùng hệ thống hiệu ứng tăng cường (Buff Pickup: Shield, Speed, Jump Boost).
- Xây dựng hệ thống đồng bộ Multiplayer thời gian thực: Tích hợp module
Online Subsystem Steam kết nối qua Steamworks SDK (SpaceWar API Wrapper - AppID 480) để hiện thực hóa tính năng Host/Join Lobby, Matchmaking và Replication biến trạng thái qua mạng.
- Ứng dụng công nghệ diễn hoạt nâng cao: Khai thác Unreal Engine Full Body IK (FBIK) Plugin, Animation Montages và Blend Spaces để xử lý chuyển động nhân vật mượt mà, hạn chế tối đa độ trễ phản hồi thị giác.
- Tối ưu hóa hiệu năng kết xuất đồ họa: Áp dụng hệ thống ánh sáng động toàn cục Lumen và công nghệ hình học ảo hóa Nanite, đảm bảo trò chơi duy trì ổn định $\ge 60\text{ FPS}$ trên cấu hình phần cứng tầm trung.
Phạm vi và Giới hạn
- Phạm vi triển khai: Nền tảng PC (Windows 10/11 x64), chế độ mạng hỗ trợ tối đa 4–8 người chơi đồng thời trong một phòng đấu thông qua giao thức Steam Relay Network.
- Giới hạn kỹ thuật: Dự án sử dụng mô hình Listen Server (một người chơi đóng vai trò Host kiểm soát trạng thái thế giới ảo), chưa tích hợp Dedicated Server phân tán theo khu vực địa lý và chưa hỗ trợ Cross-platform sang console hoặc mobile.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trong phát triển game nhiều người chơi hiện nay, các nhà phát triển độc lập (Indie Developers) thường đối mặt với sự đánh đổi lớn giữa hiệu năng mạng, tính năng engine và chi phí vận hành máy chủ.
| Tiêu chí so sánh |
Dedicated Server Tùy chỉnh (Photon Engine / Amazon Gamelift) |
Peer-to-Peer thuần túy (Direct P2P UDP) |
Giải pháp Đề tài: UE5 + Steamworks Online Subsystem |
| Chi phí hạ tầng |
Rất cao ($50 - $500+/tháng theo CCU) |
0 USD (Kết nối trực tiếp client) |
0 USD (Tận dụng Steam P2P Relay Network) |
| Khả năng vượt NAT/Firewall |
Xuất sắc (Thông qua Relay Server của nhà cung cấp) |
Kém (Thường xuyên lỗi mở port NAT/UPnP) |
Xuất sắc (Steam Datagram Relay tự động định tuyến) |
| Xác thực chống gian lận |
Cao (Toàn quyền kiểm soát mã nguồn Server) |
Thấp (Dễ bị tấn công Client-side Injection) |
Khá (Host kiểm soát Authority + Steam VAC API) |
| Độ trễ (Latency/Ping) |
20–50ms (Tùy vị trí Data Center) |
Phụ thuộc hoàn toàn vào đường truyền 2 máy |
30–60ms (Mạng cục bộ / khu vực P2P) |
| Thời gian tích hợp |
Trung bình đến Cao (Cần viết Server Backend riêng) |
Rất cao (Tự lập trình Socket/NAT Traversal) |
Nhanh (Tích hợp sâu sẵn có trong Unreal Engine) |
Yêu cầu người dùng theo mô hình MoSCoW
- Must have (Bắt buộc): Tạo phòng (Host Game), Tìm/Gia nhập phòng (Join Server), Hệ thống vũ khí (Pistol, SMG, Rifle, Sniper, Grenade Launcher), Cơ chế bắn/ngắm/thay đạn, Đồng bộ máu/giáp/hạ gục (Elimination) và Hồi sinh (Respawn).
- Should have (Nên có): Vật phẩm hỗ trợ (Buff tốc độ, Giáp, Nhảy cao), Hoạt ảnh Full Body IK thích ứng bề mặt địa hình, Giao diện kết quả trận đấu (Scoreboard / End-game Match Summary).
- Could have (Có thể mở rộng): Các chế độ chơi nâng cao như Chiếm cờ (Capture the Flag - CTF), Đấu đội phân chia phe (Team Deathmatch).
- Won't have (Chưa thực hiện): Hệ thống mua sắm vật phẩm thời gian thực (Microtransactions), Tùy biến trang phục nhân vật (Skin customization) qua Cloud Server.
Thiết kế hệ thống
Hệ thống được tổ chức theo kiến trúc Client-Server hướng thẩm quyền (Server-Authoritative Architecture) kết hợp cơ chế Listen Server:
+--------------------------------------------------------------------------------+
| SYSTEM COMPONENT TOPOLOGY |
+--------------------------------------------------------------------------------+
| |
| +--------------------------------------------------------------------------+ |
| | USER INTERFACE (UI) | |
| | [MainMenu HUD] [Lobby Widget] [Gameplay Overlay] [Scoreboard] | |
| +--------------------------------------------------------------------------+ |
| | |
| +--------------------------------------------------------------------------+ |
| | CORE GAMEPLAY LOGIC | |
| | - Character Controller (TPS Camera, Aim Offset, FBIK Rigging) | |
| | - Weapon System (Hitscan Tracing, Projectile Spawn, Ammo Manager) | |
| | - Health & Damage Component (Armor Mitigation, Elimination Logic) | |
| +--------------------------------------------------------------------------+ |
| | |
| +--------------------------------------------------------------------------+ |
| | NETWORK & MULTIPLAYER SUBSYSTEM | |
| | - Unreal Engine Network Driver (Actor Replication, RPCs, NetDriver) | |
| | - Online Subsystem Steam (Session Interface, Matchmaking, AppID: 480) | |
| +--------------------------------------------------------------------------+ |
| |
+--------------------------------------------------------------------------------+
Technology Stack và phiên bản chi tiết
- Game Engine: Epic Games Unreal Engine 5.3 (Build Release).
- Integrated Development Environment (IDE): Microsoft Visual Studio 2022 (v17.8+ / MSVC Toolset v143, C++20 Standard).
- Networking & Middleware: Steamworks SDK v1.58 tích hợp thông qua Plugin
OnlineSubsystemSteam của Unreal Engine.
- Giao diện người dùng: Unreal Motion Graphics (UMG) UI Designer kết hợp Widget Blueprints.
- Animation & Rigging: Full Body IK (FBIK) Solver, Control Rig, Blend Space 1D/2D, Animation Montage.
Cấu trúc dữ liệu và Schema trạng thái mạng
{
"PlayerNetworkState": {
"PlayerID": "uint64_SteamID",
"PlayerName": "FString",
"CurrentHealth": "float (0.0 - 100.0)",
"CurrentArmor": "float (0.0 - 100.0)",
"Kills": "int32",
"Deaths": "int32",
"CurrentWeaponIndex": "uint8 (0: Primary, 1: Secondary)",
"EquippedWeapons": [
{
"WeaponType": "EWeaponClass::Rifle",
"CurrentAmmo": 30,
"ReserveAmmo": 120,
"FireRate": 0.1,
"DamagePerShot": 25.0
}
]
}
}
Methodology
Dự án áp dụng quy trình phát triển linh hoạt Agile/Scrum chia thành 4 Sprint chính trong chu kỳ 16 tuần:
| Sprint |
Thời lượng |
Hạng mục công việc (Deliverables) |
Rủi ro & Chiến lược giảm thiểu |
| Sprint 1 (Tuần 1–4) |
4 tuần |
Thiết lập Base Project C++, Cấu hình Steamworks SDK, Xây dựng Controller TPS góc nhìn thứ 3. |
Lỗi tương thích Steam API $\rightarrow$ Sử dụng wrapper Spacewar AppID 480 chuẩn hóa. |
| Sprint 2 (Tuần 5–8) |
4 tuần |
Xây dựng Weapon Framework (Line Trace, Spawning Projectile), Quản lý đạn và hệ thống nhặt súng/buff. |
Lỗi Desync đạn đạo $\rightarrow$ Chuyển logic bắn lên Server RPC và Replicate trạng thái xuống Client. |
| Sprint 3 (Tuần 9–12) |
4 tuần |
Thiết lập Animation Blueprint, Full Body IK, Hệ thống UI HUD (Máu, Giáp, Crosshair), Lobby System. |
Tụt khung hình do IK phức tạp $\rightarrow$ Tối ưu hóa LOD xương và tần suất tính toán IK. |
| Sprint 4 (Tuần 13–16) |
4 tuần |
Xây dựng Level Map sinh tử, Kiểm thử Stress Test nhiều Client, Tối ưu gói mạng và đóng gói Win64. |
Latency cao giữa các node $\rightarrow$ Sử dụng Net Prioritization và nén gói tin định kỳ. |
Implementation và kết quả
Development process
Quá trình lập trình tập trung vào việc hiện thực hóa các lớp C++ cơ sở có hiệu năng cao kết hợp khả năng mở rộng linh hoạt thông qua Blueprints.
1. Thuật toán Xử lý Bắn súng Hitscan và Đồng bộ hóa Mạng (C++)
Để đảm bảo tính công bằng và tránh việc Client giả mạo sát thương, cơ chế bắn súng được thực hiện theo chu trình: Client kích hoạt $\rightarrow$ Gửi Server RPC $\rightarrow$ Server thực hiện Line Trace tính toán va chạm $\rightarrow$ Server trừ máu $\rightarrow$ Multicast hiệu ứng âm thanh/tia lửa (Muzzle Flash, Tracer VFX) cho toàn bộ Client.
// Source: RowBlasterCharacter.cpp
void ARowBlasterCharacter::Server_FireWeapon_Implementation(const FVector_NetQuantize& TraceStart, const FVector_NetQuantize& TraceEnd)
{
if (!HasAuthority() || CurrentWeapon == nullptr || CurrentWeapon->GetCurrentAmmo() <= 0)
{
return;
}
// Tiêu thụ đạn trên Server Authoritative
CurrentWeapon->ConsumeAmmo(1);
FHitResult HitResult;
FCollisionQueryParams QueryParams;
QueryParams.AddIgnoredActor(this);
QueryParams.bTraceComplex = true;
// Thực hiện kiểm tra va chạm raycast vật lý
bool bHit = GetWorld()->LineTraceSingleByChannel(
HitResult,
TraceStart,
TraceEnd,
ECC_GameTraceChannel1, // Channel dành riêng cho Weapon Trace
QueryParams
);
if (bHit && HitResult.GetActor())
{
// Áp dụng sát thương tính toán
UGameplayStatics::ApplyPointDamage(
HitResult.GetActor(),
CurrentWeapon->GetDamage(),
(TraceEnd - TraceStart).GetSafeNormal(),
HitResult,
GetController(),
this,
UDamageType::StaticClass()
);
}
// Phát hiệu ứng thị giác và âm thanh cho tất cả người chơi trong phạm vi
Multicast_PlayFireEffects(HitResult.ImpactPoint);
}
void ARowBlasterCharacter::Multicast_PlayFireEffects_Implementation(const FVector_NetQuantize& ImpactPoint)
{
if (CurrentWeapon && CurrentWeapon->FireSound)
{
UGameplayStatics::PlaySoundAtLocation(this, CurrentWeapon->FireSound, GetActorLocation());
}
// Kích hoạt hoạt ảnh bắn giật thông qua Animation Montage
PlayAnimMontage(FireMontage);
}
2. Cấu hình Cổng kết nối Steam Subsystem (DefaultEngine.ini)
Để khởi tạo mạng lưới Steam P2P, dự án cấu hình cấu trúc module mạng như sau:
[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
[OnlineSubsystem]
DefaultPlatformService=Steam
[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480
bInitServerOnClient=true
bAllowP2PPacketRelay=true
P2PConnectionTimeout=90
[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"
Testing và validation
Quá trình kiểm thử được thực hiện trên môi trường mạng nội bộ (LAN) và môi trường mạng diện rộng (WAN) thông qua Steam client giữa 4 máy trạm đồng thời.
| Kịch bản kiểm thử (Test Scenario) |
Số mẫu (Samples) |
Tỷ lệ thành công (%) |
Kết quả Benchmark trung bình |
| Khởi tạo & Tìm Session (Lobby Matchmaking) |
100 lần |
98.0% |
Thời gian tìm thấy session: $1.2\text{s} \pm 0.3\text{s}$ |
| Đồng bộ hóa Hitscan (Hit Registration) |
500 phát bắn |
96.4% |
Độ lệch vị trí va chạm: $< 4.5\text{ cm}$ ở Ping $50\text{ms}$ |
| Đồng bộ trạng thái Nhặt súng & Buff |
200 lượt |
99.5% |
Độ trễ kích hoạt thuộc tính: $35\text{ms}$ |
| Khôi phục kết nối khi Packet Loss (3–5%) |
50 lần |
94.0% |
Tự động cân bằng vị trí nhân vật (Client Correction) |
Hiệu năng Khung hình (FPS) trên các cấu hình phần cứng:
- RTX 3060 / i5-12400F (1080p Epic Settings): 115 - 130 FPS (Frame time: 8.1ms)
- GTX 1660 Super / i5-10400 (1080p High): 75 - 85 FPS (Frame time: 12.5ms)
- GTX 1050 Ti / i3-9100F (1080p Medium): 58 - 64 FPS (Frame time: 16.2ms)
Kết quả đạt được
- Hoàn thiện 100% các tính năng cốt lõi: Người chơi có thể Host/Join phòng qua Steam, tự do lựa chọn vũ khí, nhặt hòm tiếp tế, thay đạn, ngắm bắn chuẩn xác và tích lũy điểm hạ gục theo thời gian thực.
- Tối ưu hóa tài nguyên mạng: Tốc độ trao đổi dữ liệu mạng duy trì ở mức tối ưu $\sim 18 - 25\text{ KB/s}$ cho mỗi kết nối Client, không gây nghẽn băng thông đường truyền gia đình.
- Độ ổn định cao: Đạt 0 lỗi Crash hệ thống trong suốt 15 phiên đấu kiểm thử liên tục (mỗi trận 10 phút).
Đổi mới và đóng góp
- Kiến trúc Zero-Cost Steam Relay Integration: Thay vì phải thuê hệ thống Dedicated Server đắt đỏ, dự án ứng dụng thành công cơ chế ảo hóa phiên làm việc qua Steam AppID 480. Điều này giúp các nhà phát triển game độc lập có thể triển khai hệ sinh thái nhiều người chơi với chi phí duy trì máy chủ bằng 0 USD.
- Cơ chế Triệt tiêu Giật và Khử Lệch Xương (Full Body IK Weapon Alignment): Tích hợp Plugin FBIK trực tiếp vào Animation Pipeline của Unreal Engine 5 giúp hai tay của mô hình nhân vật luôn tự động bám chính xác vào tay cầm của từng loại súng khác nhau (Pistol, Rifle, Sniper) mà không cần tạo hàng chục animation rig thủ công cho từng mẫu vũ khí $\rightarrow$ Giảm 45% thời gian sản xuất hoạt ảnh.
- Cơ chế Đồng bộ Hỗn hợp Hitscan – Projectile: Hệ thống tự động phân loại đường đạn: súng trường sử dụng raycast tức thời có kiểm chứng góc ngắm (Angle Validation) để tiết kiệm tài nguyên CPU của Host, trong khi súng phóng lựu (Grenade Launcher) sử dụng Actor Component có gia tốc trọng trường thực thụ $\rightarrow$ Tăng 30% hiệu năng tính toán vật lý so với việc mô phỏng toàn bộ đạn ở dạng Actor.
Ứng dụng thực tế và triển khai
Khả năng ứng dụng thực tiễn
- Sản phẩm thương mại độc lập: Cung cấp bộ khung mã nguồn (Framework Template) hoàn chỉnh cho các nhóm phát triển game Indie tại Việt Nam muốn nhanh chóng phát triển game bắn súng TPS/FPS nhiều người chơi.
- Tài liệu đào tạo chuyên sâu: Là nguồn tài nguyên tham khảo chuẩn mực cho sinh viên ngành Công nghệ thông tin chuyên ngành Kỹ thuật Game, trực quan hóa các khái niệm trừu tượng như Network Replication, RPCs, và Rigging 3D.
Hướng dẫn triển khai dự án (Deployment Guide)
# 1. Clone mã nguồn dự án
git clone https://github.com/example/RowBlasterOnline.git
# 2. Tạo Visual Studio Project Files
"C:\Program Files\Epic Games\UE_5.3\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.exe" -projectfiles -project="RowBlasterOnline.uproject" -game -rocket -progress
# 3. Biên dịch mã nguồn C++ ở chế độ Development Editor
# Mở RowBlasterOnline.sln trên Visual Studio 2022 -> Build Solution (Ctrl + Shift + B)
# 4. Chạy game với Steam Client
# Đảm bảo Steam Desktop App đang bật ở chế độ nền (Đăng nhập tài khoản bất kỳ)
# Trong Unreal Editor: Chọn Play as Standalone Game với 2+ cửa sổ để kiểm thử Multiplayer
Phân tích Chi phí – Hiệu quả (Cost-Benefit Analysis)
- Chi phí phát triển phần mềm: 0 USD (Sử dụng Unreal Engine mã nguồn mở, Visual Studio Community, Steamworks SDK miễn phí).
- Chi phí vận hành tháng đầu (1,000 CCU): 0 USD (Nhờ hạ tầng P2P của Steam). Tiết kiệm ước tính $450/tháng so với việc thuê máy chủ ảo hóa trên AWS/Azure.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Lợi thế người làm Host (Host Advantage): Vì sử dụng mô hình Listen Server, người chơi đóng vai trò Host có độ trễ bằng $0\text{ms}$, tạo ra sự chênh lệch nhỏ về thời gian phản xạ so với các Client khác (Ping $30 - 60\text{ms}$).
- Phụ thuộc vào ứng dụng Steam: Người chơi bắt buộc phải cài đặt và đăng nhập Steam Desktop Client trước khi khởi chạy game để hệ thống nạp các dynamic link library (
steam_api64.dll).
Hướng phát triển tương lai
- Nâng cấp Dedicated Server: Biên dịch mã nguồn Server độc lập trên hệ điều hành Linux (Ubuntu Server) và đóng gói container Docker để triển khai trên các dịch vụ đám mây giá rẻ.
- Tích hợp Anti-Cheat chuyên sâu: Bổ sung Easy Anti-Cheat (EAC) hoặc Valve Anti-Cheat (VAC) nhằm ngăn chặn các hành vi can thiệp bộ nhớ RAM (Memory Hacking).
- Mở rộng kho vũ khí và chế độ chơi: Phát triển thêm bản đồ không gian hẹp (CQC - Close Quarters Combat) và chế độ Battle Royale quy mô nhỏ (16 người chơi).
Đối tượng hưởng lợi
- Sinh viên & Người học CNTT: Tiếp cận quy trình làm game chuẩn AAA từ khâu thiết kế Use Case, sơ đồ tuần tự (Sequence Diagram) đến lập trình C++ tương tác mạng trong Unreal Engine 5.
- Lập trình viên Game Indie: Sở hữu kiến trúc tích hợp Steamworks SDK thực chiến, tiết kiệm hàng trăm giờ nghiên cứu tài liệu API của Valve.
- Doanh nghiệp / Studio Game vừa và nhỏ: Nắm bắt mô hình tối ưu hóa chi phí hạ tầng mạng khi thử nghiệm các phiên bản Alpha/Beta của sản phẩm trước khi phát hành chính thức.
- Cộng đồng Nghiên cứu Đồ họa: Tham khảo giải pháp kết hợp giữa Nanite, Lumen và Full Body IK trên phiên bản UE5 mới nhất.
Câu hỏi thường gặp
1. Cấu hình phần cứng tối thiểu để chạy và đóng gói game là gì?
Để chơi game mượt mà ở mức thiết lập 1080p Medium ($\ge 60\text{ FPS}$), máy tính cần: CPU Intel Core i3-9100F / AMD Ryzen 3 3100, 8GB RAM, Card đồ họa NVIDIA GeForce GTX 1050 Ti (4GB VRAM) hoặc tương đương, ổ cứng trống 15GB SSD và hệ điều hành Windows 10 64-bit. Để mở project và biên dịch trên Unreal Editor 5.3, khuyến nghị sử dụng CPU 6 nhân 12 luồng, 16GB–32GB RAM và SSD NVMe.
2. Trò chơi có thể hỗ trợ tối đa bao nhiêu người chơi trong một trận đấu?
Với kiến trúc Listen Server hiện tại chạy qua Steam Relay Network, số lượng người chơi tối ưu cho mỗi phòng là 4 đến 8 người chơi. Khi nâng quy mô lên trên 16 người, băng thông của máy chủ Host có thể bị nghẽn dẫn đến hiện tượng trễ khung mạng (Desynchronization). Để mở rộng quy mô từ 32–64 người, hệ thống cần được chuyển đổi sang Dedicated Server chuyên dụng.
3. Làm thế nào để game kết nối được bạn bè qua Internet mà không cần mở Port modem (Port Forwarding)?
Dự án sử dụng cơ chế NAT Traversal và Steam Datagram Relay (SDR) tích hợp sẵn trong Steamworks API. Khi một người chơi Host game, Steamworks sẽ tạo một Virtual Session ID định danh qua mạng lưới máy chủ của Valve. Người chơi khác chỉ cần chọn lệnh "Join Server" trên Menu hoặc nhận lời mời qua danh sách bạn bè Steam là có thể kết nối trực tiếp mà không cần cấu hình Router hay can thiệp địa chỉ IP tĩnh.
4. Hệ thống vũ khí có hỗ trợ mở rộng thêm các loại súng mới dễ dàng không?
Có. Dự án xây dựng một lớp cơ sở trừu tượng ABaseWeapon trong C++ chứa toàn bộ logic về nạp đạn, tính sát thương và âm thanh. Khi muốn thêm súng mới (ví dụ: Shotgun hay Plasma Gun), lập trình viên chỉ cần tạo một Blueprint kế thừa từ ABaseWeapon, gán mô hình 3D (Static/Skeletal Mesh) và tùy chỉnh các tham số trên bảng thuộc tính (Damage, FireRate, Range, Spread) trong vòng chưa đầy 5 phút.
5. Chi phí phát hành tựa game này lên cửa hàng Steam thương mại là bao nhiêu?
Toàn bộ công cụ sử dụng trong đồ án đều miễn phí trong giai đoạn phát triển. Khi muốn phát hành chính thức tựa game thương mại lên Steam, nhà phát triển chỉ cần chi trả khoản phí $100 USD Steam Direct Fee cho mỗi sản phẩm trực tiếp cho Valve (khoản phí này sẽ được hoàn lại nếu tựa game đạt doanh thu trên $1,000 USD) và trích 5% doanh thu bản quyền cho Epic Games nếu doanh thu vượt mốc $1,000,000 USD.
Kết luận
Đồ án tốt nghiệp "Game Online Bắn Súng Góc Nhìn Thứ 3" của sinh viên Bùi Ngọc Tâm là một công trình nghiên cứu và ứng dụng thực tiễn xuất sắc, giải quyết thành công bài toán tích hợp giữa nền tảng đồ họa tiên tiến Unreal Engine 5 và mạng lưới trực tuyến nhiều người chơi Steamworks SDK. Tác giả không chỉ hoàn thiện một tựa game TPS có nhịp độ chiến đấu hấp dẫn, độ phản hồi xúc giác và thị giác mượt mà mà còn xây dựng được kiến trúc đồng bộ mạng Server-Authoritative chuẩn mực, giúp tiết kiệm triệt để chi phí hạ tầng.
Dự án chứng minh năng lực ứng dụng công nghệ cao của sinh viên ngành Công nghệ thông tin Việt Nam, đóng góp một tài liệu kỹ thuật có giá trị thực tiễn cao cho cộng đồng lập trình game nước nhà. Để trải nghiệm và khám phá sâu hơn về mã nguồn dự án, quý độc giả và các nhà phát triển có thể tham khảo trực tiếp cấu trúc Blueprint và C++ được tài liệu hóa chi tiết trong báo cáo đồ án tốt nghiệp chính thức.