SlideShare a Scribd company logo
1 of 36
Chơi Tennis trực tuyến với 
Wii 
Nguyen Ngoc Linh – L11TXCN1-B 
Hướng dẫn: T.S. Phạm Văn Cường 
Hanoi 26/06/2014
Nội dung 
• Nhiệm vụ của đề tài là gì? 
• Các vấn đề cần phải vượt qua? 
• Demo sản phẩm 
• Đã giải quyết như thế nào? 
• Các vấn đề còn tồn đọng
Nhiệm vụ của đề tài 
• Phát triển một game Tennis cho phép người dùng 
chơi trực tuyến với nhau.
Yêu cầu về sản phẩm 
• Cần đáp ứng được tính học thuật: Áp dụng thành 
công thuật toán nhận diện  Có các chức năng phục 
vụ việc theo dõi việc quá trình thực thi thuật toán và 
khả năng tùy chỉnh. 
• Sản phẩm phải có đặc thù gần giống các loại sản 
phẩm thương mại để thể hiện được tính thực tiễn.
Phác thảo 
• Sử dụng công nghệ 3D để thể hiện môi trường trò 
chơi. (3D live rendering & 3D physics). 
• Sử dụng giải pháp socket server để làm game online 
real-time. 
• Cần phải có một cơ chế chơi game (game mechanic) 
đơn giản tối đa đủ để coi là một game. 
• Cần phải có chức năng theo dõi và tùy chỉnh thuật 
toán nhận diện.
Công nghệ sử dụng trong đồ án
Check list các vấn đề 
• Nghiên cứu vềWiimote và tìm giải pháp cho việc 
nhận diện hành động của người chơi. 
• Thực hiện giải pháp ở mức độ thử nghiệm. 
• Dựng môi trường game và áp dụng kết quả của thí 
nghiệm vào. 
• Nâng cấp, tối ưu thuật toán và hoàn thiện sản phẩm.
Demo sản phẩm
Đã giải quyết vấn đề như 
thế nào?
Những sai lầm trong 
2 TUẦN ĐẦU TIÊN
Lầm tưởng về các tham số yaw, pitch, 
roll 
• Định áp dụng 
Levenshtein Distance.
… 
• Làm quen với yaw, pitch, roll trước bằng việc mô 
phỏng cây vợt trong môi trường 3D.
Sử dụng IR sensor để tính góc 
• Không phù hợp, IR sensor trênWiimote chỉ được 
dùng để phục vụ việc trỏ lên màn hình.
Lao vào tìm kiếm thư viện hỗ trợWii 
Motion Plus 
• Duy nhất chỉ cóWiimoteLib 1.8b hỗ trợ. Nhưng…
Quay sang tìm kiếm với từ khóa “gesture 
recognition with wiimote”… 
WiiFlash Dynamic Time Warping 
Neural algorithm Hidden Markov Model 
Waveform Matching
Tìm hiểu về 
WIIMOTE
Cấu tạo & cơ chế sử dụng củaWiimote 
• Hệ thống các nút 
• Cảm biến gia tốc 
(accelerometer) 
• Cảm biến hồng ngoại 
(IR sensor) 
• Kết nối Bluetooth
Có thể cắm thêm 
• Wii Motion Plus với 2 
con quay hồi chuyển 
(gyroscope): độ nhạy 
1:1 với chuyển động. 
• Nunchuck: với cảm 
biến gia tốc và 
joystick.
Kết nối và lấy dữ liệu từWiimote 
WiimoteLib
Việc sử dụng thuật toán 
DYNAMIC TIME WARPING
Cách làm ngây ngô 
• Cắt chuỗi tín hiệu thành từng khoảng rồi đem so sánh. 
• Kết quả: 
– Nhận diện không ổn định. 
– Giao diện đồ họa bị giật mỗi khi gọi hàm so sánh.
Khắc phục 
• Kiểm tra liên tục. 
• Kết quả: 
– Nhận diện chính xác. 
– Giao diện đồ họa gầu như đứng yên hoàn toàn.
Áp dụng concurrency giải quyết độ 
giật lag
VIỆC DỰNG GAME
Tìm kiếm & xử lý model 3D 
• Dùng Google Sketch Up 7 Pro dùng thử 30 ngày - 
công cụ tuyệt vời cho người không biết 3D và tìm 
kiếm model miễn phí trong 3D Warehouse.
Lựa chọn engine 
• 3D renderer: 
– Từ chối Flare3D, chọn Away3D vì các khái niệm căn bản 
và dễ nắm bắt hệ thống API. Mặc dù 1 dòng của Flare3D 
có thể tương đương với hàng chục dòng của Away3D. 
– Từ chối Sandy, PaperVision,… chọn Away 3D vì sử dụng 
công nghệ Stage3D tăng tốc cho Flash.
… 
• Physics: 
– Sử dụng BulletPhysics thay vì NAPE, Box2D vì thông qua 
FlashCC (Crossbridge) cho hiệu năng native.
Cơ chế chơi game (game mechanic) 
• Cần phải quăng vợt đúng lúc. 
• Chiến thuật dựa vào lựa chọn hướng đánh và độ 
mạnh cú quật bóng. 
• Quăng sớm quật nhẹ, quăng muộn quật mạnh. 
• Quăng vợt khi bóng cao thì bóng bay chúc xuống, 
quăng vợt khi bóng thấp thì bóng bổng.
Giao diện và điều khiển. 
• Hoạt động chơi game, hoàn toàn chỉ cần dùng 
Wiimote. 
• Hoạt động tùy chỉnh (chọn tay chơi, lấy mẫu) sử dụng 
chuột vào giao diện đồ họa. 
• Style giao diện lấy cảm hứng từ phim Oblivion.
Oblivion
Hàng nhái
Các vấn đề còn tồn đọng 
• Thuật toán nhận diện vẫn còn sơ 
đẳng, chưa thông minh. Cần nâng 
cấp để tạo sự dễ dàng trong tiếp 
cận ban đầu cho người chơi. 
• Thuật toán nhận diện tốn nhiều 
tài nguyên máy. 
• WiiFlash sử dụngWiimoteLib 
phiên bản cũ – tồn tại sự bất tiện 
trong việc sử dụng.
XIN CẢM ƠN
PHỤ LỤC
Hướng dẫn sử dụng
Ý nghĩa các loại chỉ số củaWiimote

More Related Content

Similar to Làm game chơi Tennis sử dụng Wiimote

Programming android game using and engine
Programming android game using and engineProgramming android game using and engine
Programming android game using and engineNGUYEN VAN LUONG
 
Hệ thống giám sát nhận diện khuôn mặt
Hệ thống giám sát nhận diện khuôn mặtHệ thống giám sát nhận diện khuôn mặt
Hệ thống giám sát nhận diện khuôn mặtGMO-Z.com Vietnam Lab Center
 
Một số lưu ý cơ bản về viết game
Một số lưu ý cơ bản về viết gameMột số lưu ý cơ bản về viết game
Một số lưu ý cơ bản về viết gameJohnny Chen
 
CG02_Graphics Systems.pdf
CG02_Graphics Systems.pdfCG02_Graphics Systems.pdf
CG02_Graphics Systems.pdfTrieuThuHuong1
 
Gắp thú online (Siêu Đạo Chích) - Poly sáng tạo 2016 - Sinh viên FPT Polytechnic
Gắp thú online (Siêu Đạo Chích) - Poly sáng tạo 2016 - Sinh viên FPT PolytechnicGắp thú online (Siêu Đạo Chích) - Poly sáng tạo 2016 - Sinh viên FPT Polytechnic
Gắp thú online (Siêu Đạo Chích) - Poly sáng tạo 2016 - Sinh viên FPT PolytechnicFPT Polytechnic
 
Thiết kế bài giảng elearning. Phần Cơ bản
Thiết kế bài giảng elearning. Phần Cơ bảnThiết kế bài giảng elearning. Phần Cơ bản
Thiết kế bài giảng elearning. Phần Cơ bảnBùi Việt Hà
 
User Interface Slides - Silicon Straits Saigon / SHIELD
User Interface Slides - Silicon Straits Saigon / SHIELDUser Interface Slides - Silicon Straits Saigon / SHIELD
User Interface Slides - Silicon Straits Saigon / SHIELDshield_vn
 
Làm game animation bằng HTML5/CSS3
Làm game animation bằng HTML5/CSS3Làm game animation bằng HTML5/CSS3
Làm game animation bằng HTML5/CSS3AiTi Education
 
Games & Apps: A New Romance
Games & Apps: A New RomanceGames & Apps: A New Romance
Games & Apps: A New RomanceJohn Wayno
 
Nghien cuu va xay dung thu nghiem 3 d engine
Nghien cuu va xay dung thu nghiem 3 d engineNghien cuu va xay dung thu nghiem 3 d engine
Nghien cuu va xay dung thu nghiem 3 d engineVcoi Vit
 
Thiết kế bài giảng elearning. Phần Cơ bản.
Thiết kế bài giảng elearning. Phần Cơ bản. Thiết kế bài giảng elearning. Phần Cơ bản.
Thiết kế bài giảng elearning. Phần Cơ bản. Bùi Việt Hà
 
Symbolic execution: The next chapter of the game
Symbolic execution: The next chapter of the gameSymbolic execution: The next chapter of the game
Symbolic execution: The next chapter of the gameKhoai Dũng
 
VMD2017 - Sử dụng React Native cho môi trường Production: khả thi đến đâu? kh...
VMD2017 - Sử dụng React Native cho môi trường Production: khả thi đến đâu? kh...VMD2017 - Sử dụng React Native cho môi trường Production: khả thi đến đâu? kh...
VMD2017 - Sử dụng React Native cho môi trường Production: khả thi đến đâu? kh...Thanh Nguyen
 
Báo-Cáo-Thị-Giác.pptx
Báo-Cáo-Thị-Giác.pptxBáo-Cáo-Thị-Giác.pptx
Báo-Cáo-Thị-Giác.pptxHuyVn58
 
Chu de 02_snag_it
Chu de 02_snag_itChu de 02_snag_it
Chu de 02_snag_itHằng Lê
 

Similar to Làm game chơi Tennis sử dụng Wiimote (16)

Programming android game using and engine
Programming android game using and engineProgramming android game using and engine
Programming android game using and engine
 
Hệ thống giám sát nhận diện khuôn mặt
Hệ thống giám sát nhận diện khuôn mặtHệ thống giám sát nhận diện khuôn mặt
Hệ thống giám sát nhận diện khuôn mặt
 
Một số lưu ý cơ bản về viết game
Một số lưu ý cơ bản về viết gameMột số lưu ý cơ bản về viết game
Một số lưu ý cơ bản về viết game
 
CG02_Graphics Systems.pdf
CG02_Graphics Systems.pdfCG02_Graphics Systems.pdf
CG02_Graphics Systems.pdf
 
Gắp thú online (Siêu Đạo Chích) - Poly sáng tạo 2016 - Sinh viên FPT Polytechnic
Gắp thú online (Siêu Đạo Chích) - Poly sáng tạo 2016 - Sinh viên FPT PolytechnicGắp thú online (Siêu Đạo Chích) - Poly sáng tạo 2016 - Sinh viên FPT Polytechnic
Gắp thú online (Siêu Đạo Chích) - Poly sáng tạo 2016 - Sinh viên FPT Polytechnic
 
Thiết kế bài giảng elearning. Phần Cơ bản
Thiết kế bài giảng elearning. Phần Cơ bảnThiết kế bài giảng elearning. Phần Cơ bản
Thiết kế bài giảng elearning. Phần Cơ bản
 
User Interface Slides - Silicon Straits Saigon / SHIELD
User Interface Slides - Silicon Straits Saigon / SHIELDUser Interface Slides - Silicon Straits Saigon / SHIELD
User Interface Slides - Silicon Straits Saigon / SHIELD
 
Làm game animation bằng HTML5/CSS3
Làm game animation bằng HTML5/CSS3Làm game animation bằng HTML5/CSS3
Làm game animation bằng HTML5/CSS3
 
Games & Apps: A New Romance
Games & Apps: A New RomanceGames & Apps: A New Romance
Games & Apps: A New Romance
 
Nghien cuu va xay dung thu nghiem 3 d engine
Nghien cuu va xay dung thu nghiem 3 d engineNghien cuu va xay dung thu nghiem 3 d engine
Nghien cuu va xay dung thu nghiem 3 d engine
 
Thiết kế bài giảng elearning. Phần Cơ bản.
Thiết kế bài giảng elearning. Phần Cơ bản. Thiết kế bài giảng elearning. Phần Cơ bản.
Thiết kế bài giảng elearning. Phần Cơ bản.
 
Symbolic execution: The next chapter of the game
Symbolic execution: The next chapter of the gameSymbolic execution: The next chapter of the game
Symbolic execution: The next chapter of the game
 
VMD2017 - Sử dụng React Native cho môi trường Production: khả thi đến đâu? kh...
VMD2017 - Sử dụng React Native cho môi trường Production: khả thi đến đâu? kh...VMD2017 - Sử dụng React Native cho môi trường Production: khả thi đến đâu? kh...
VMD2017 - Sử dụng React Native cho môi trường Production: khả thi đến đâu? kh...
 
Báo-Cáo-Thị-Giác.pptx
Báo-Cáo-Thị-Giác.pptxBáo-Cáo-Thị-Giác.pptx
Báo-Cáo-Thị-Giác.pptx
 
Chu de 02_snag_it
Chu de 02_snag_itChu de 02_snag_it
Chu de 02_snag_it
 
Chu de 02_snag_it
Chu de 02_snag_itChu de 02_snag_it
Chu de 02_snag_it
 

Làm game chơi Tennis sử dụng Wiimote

  • 1. Chơi Tennis trực tuyến với Wii Nguyen Ngoc Linh – L11TXCN1-B Hướng dẫn: T.S. Phạm Văn Cường Hanoi 26/06/2014
  • 2. Nội dung • Nhiệm vụ của đề tài là gì? • Các vấn đề cần phải vượt qua? • Demo sản phẩm • Đã giải quyết như thế nào? • Các vấn đề còn tồn đọng
  • 3. Nhiệm vụ của đề tài • Phát triển một game Tennis cho phép người dùng chơi trực tuyến với nhau.
  • 4. Yêu cầu về sản phẩm • Cần đáp ứng được tính học thuật: Áp dụng thành công thuật toán nhận diện  Có các chức năng phục vụ việc theo dõi việc quá trình thực thi thuật toán và khả năng tùy chỉnh. • Sản phẩm phải có đặc thù gần giống các loại sản phẩm thương mại để thể hiện được tính thực tiễn.
  • 5. Phác thảo • Sử dụng công nghệ 3D để thể hiện môi trường trò chơi. (3D live rendering & 3D physics). • Sử dụng giải pháp socket server để làm game online real-time. • Cần phải có một cơ chế chơi game (game mechanic) đơn giản tối đa đủ để coi là một game. • Cần phải có chức năng theo dõi và tùy chỉnh thuật toán nhận diện.
  • 6. Công nghệ sử dụng trong đồ án
  • 7. Check list các vấn đề • Nghiên cứu vềWiimote và tìm giải pháp cho việc nhận diện hành động của người chơi. • Thực hiện giải pháp ở mức độ thử nghiệm. • Dựng môi trường game và áp dụng kết quả của thí nghiệm vào. • Nâng cấp, tối ưu thuật toán và hoàn thiện sản phẩm.
  • 9. Đã giải quyết vấn đề như thế nào?
  • 10. Những sai lầm trong 2 TUẦN ĐẦU TIÊN
  • 11. Lầm tưởng về các tham số yaw, pitch, roll • Định áp dụng Levenshtein Distance.
  • 12. … • Làm quen với yaw, pitch, roll trước bằng việc mô phỏng cây vợt trong môi trường 3D.
  • 13. Sử dụng IR sensor để tính góc • Không phù hợp, IR sensor trênWiimote chỉ được dùng để phục vụ việc trỏ lên màn hình.
  • 14. Lao vào tìm kiếm thư viện hỗ trợWii Motion Plus • Duy nhất chỉ cóWiimoteLib 1.8b hỗ trợ. Nhưng…
  • 15. Quay sang tìm kiếm với từ khóa “gesture recognition with wiimote”… WiiFlash Dynamic Time Warping Neural algorithm Hidden Markov Model Waveform Matching
  • 16. Tìm hiểu về WIIMOTE
  • 17. Cấu tạo & cơ chế sử dụng củaWiimote • Hệ thống các nút • Cảm biến gia tốc (accelerometer) • Cảm biến hồng ngoại (IR sensor) • Kết nối Bluetooth
  • 18. Có thể cắm thêm • Wii Motion Plus với 2 con quay hồi chuyển (gyroscope): độ nhạy 1:1 với chuyển động. • Nunchuck: với cảm biến gia tốc và joystick.
  • 19. Kết nối và lấy dữ liệu từWiimote WiimoteLib
  • 20. Việc sử dụng thuật toán DYNAMIC TIME WARPING
  • 21. Cách làm ngây ngô • Cắt chuỗi tín hiệu thành từng khoảng rồi đem so sánh. • Kết quả: – Nhận diện không ổn định. – Giao diện đồ họa bị giật mỗi khi gọi hàm so sánh.
  • 22. Khắc phục • Kiểm tra liên tục. • Kết quả: – Nhận diện chính xác. – Giao diện đồ họa gầu như đứng yên hoàn toàn.
  • 23. Áp dụng concurrency giải quyết độ giật lag
  • 25. Tìm kiếm & xử lý model 3D • Dùng Google Sketch Up 7 Pro dùng thử 30 ngày - công cụ tuyệt vời cho người không biết 3D và tìm kiếm model miễn phí trong 3D Warehouse.
  • 26. Lựa chọn engine • 3D renderer: – Từ chối Flare3D, chọn Away3D vì các khái niệm căn bản và dễ nắm bắt hệ thống API. Mặc dù 1 dòng của Flare3D có thể tương đương với hàng chục dòng của Away3D. – Từ chối Sandy, PaperVision,… chọn Away 3D vì sử dụng công nghệ Stage3D tăng tốc cho Flash.
  • 27. … • Physics: – Sử dụng BulletPhysics thay vì NAPE, Box2D vì thông qua FlashCC (Crossbridge) cho hiệu năng native.
  • 28. Cơ chế chơi game (game mechanic) • Cần phải quăng vợt đúng lúc. • Chiến thuật dựa vào lựa chọn hướng đánh và độ mạnh cú quật bóng. • Quăng sớm quật nhẹ, quăng muộn quật mạnh. • Quăng vợt khi bóng cao thì bóng bay chúc xuống, quăng vợt khi bóng thấp thì bóng bổng.
  • 29. Giao diện và điều khiển. • Hoạt động chơi game, hoàn toàn chỉ cần dùng Wiimote. • Hoạt động tùy chỉnh (chọn tay chơi, lấy mẫu) sử dụng chuột vào giao diện đồ họa. • Style giao diện lấy cảm hứng từ phim Oblivion.
  • 32. Các vấn đề còn tồn đọng • Thuật toán nhận diện vẫn còn sơ đẳng, chưa thông minh. Cần nâng cấp để tạo sự dễ dàng trong tiếp cận ban đầu cho người chơi. • Thuật toán nhận diện tốn nhiều tài nguyên máy. • WiiFlash sử dụngWiimoteLib phiên bản cũ – tồn tại sự bất tiện trong việc sử dụng.
  • 36. Ý nghĩa các loại chỉ số củaWiimote