- Công nghệ AR:
1. Giới thiệu pokemon GO
1.1. Tóm tắt về Pokemon GO
- Pokémon Go là một trò chơi tương tác ảo được Niantic phát triển và The Pokémon Company phát hành dành cho các thiết bị iOS và Android thuộc dòng game Pokémon.
- Ý tưởng trò chơi được đưa ra năm 2013 bởi Satoru Iwata của Nintendo và Tsunekazu Ishihara của The Pokémon Company hợp tác cùng Google như một trò đùa trong ngày Cá tháng Tư có tên là Pokémon Challenge. Nhưng rồi mọi chuyện đã thành sự thật khi Nintendo và Niantic Labs quyết định hợp tác để tạo ra Pokemon Go. Ban đầu game được dự kiến sẽ ra mắt trên toàn thế giới vào cuối năm 2015 nhưng có quá nhiều lỗi trong game Niantic Labs phải đổi ngày phát hành chính thức trên toàn thế giới sang tháng 7 năm 2016.
- Trò chơi được cho ra mắt cùng với một thiết bị đeo tay nhỏ mang tên Pokémon Go Plus được Nintendo thiết kế, sẽ sử dụng kết nối Bluetooth để thông báo cho người chơi khi có Pokémon ở gần với một màn hình LED và đèn thông báo. Pokémon Go Plus được bán độc lập với ứng dụng. - Đây là một trò chơi miễn phí tải về, nhưng có hỗ trợ mua hàng trong ứng
dụng để người chơi có thể mua các vật dụng trong trò chơi..
1.2. Các kỹ thuật tương tác
Pokemon Go thành công bởi nó đã tạo được sự khác biệt so với các game tiền nhiệm của mình, thay vì việc bó buộc trong hệ máy 3DS, game đã có thể chơi trên 2 hệ điều hành phổ biến nhất thế giới đó là Android và iOS, nơi có đông đảo lượng người dùng hằng ngày
Những công nghệ đã được sử dụng trong Pokémon Go: - Định vị vị trí
+ Giống như Google Maps, "Pokemon Go" định vị điện thoại của bạn sử dụng GPS và tích hợp thông tin này vào bản đồ trong game. Trong một cuộc phỏng vấn, CEO John Hanke của Niantic cho biết một lượng lớn các dữ liệu về vị trí của Pokestop và Gyms được dựa trên thông tin từ một trò chơi AR khác của công ty, "Ingress". Rất nhiều địa điểm phổ biến và được biết đến nhiều trong “Ingress” chính là địa điểm của Pokémon Go hiện tại. + Không giống như hầu hết các trò chơi ở chế độ nhiều người chơi ở tầm này, "Pokemon Go" sử dụng một máy chủ duy nhất, do đó tất cả các thông tin người chơi đều được xử lý ở một nơi, tại mọi thời điểm. Hanke cho rằng việc này giống nhau mọi người được cập nhật với thông tin về cổ phiếu vậy. "Do mọi thứ luôn luôn thay đổi, nó giống với một hệ thống tài chính thời gian thực hơn là một trò chơi nhiều người chơi thường gặp". Vì chỉ sử dụng một server nên chế độ một máy chủ (single server) này của
Pokemon Go phải chịu tải rất lớn, đó có thể là lý do tại sao trò chơi thường hay bị lỗi nhiều như vậy.
- Quyết định Pokemon xuất hiện ở đâu, lúc nào.
Không có nhiều thông tin về thuật toán mà Pokemon Go sử dụng để phân phối vị trí quái vật trong trò chơi, nhưng Hanke - CEO của Niantic cho biết trò chơi sử dụng thông tin về vị trí địa lý để tạo ra Pokemon ở những địa điểm tương ứng với môi trường sống của các Pokemon. Việc phân phối pokemon dựa vào cả khí hậu, đất đai, loại đất đá... nhưng Hanke không cho biết những thông tin đó được lấy từ đâu. Ngoài ra, trò chơi còn sử dụng đồng hồ điện thoại của người chơi để quản lý thời gian, do đó nếu người chơi ra ngoài vào ban đêm, người chơi cũng thường xuyên gặp những loài sống về đêm hơn.
- Hiển thị Pokemon:
Trò chơi sử dụng một lượng lớn các dữ liệu từ trò chơi tiền nhiệm “Ingress” và thông tin địa điểm thời gian thực để quyết định Pokemon xuất hiện ở đâu và lúc nào. Giống như hầu hết các trò chơi thực tế ảo khác, "Pokemon Go" sử dụng camera điện thoại của bạn để đặt Pokemon vào cùng với hình ảnh của môi trường xung quanh, cùng với GPS, các cảm biến tốc độ, la bàn, giúp hình ảnh được hiện thị trùng khớp khi người chơi di chuyển điện thoại.
- Những công nghệ cụ thể mà Pokemon Go sử dụng
+ Google App Engine: Pokémon Go sử dụng nền tảng của Google App Engine như một dịch vụ cung cấp lớp truy cập dữ liệu điện thoại (tiếng anh: mobile backend) cho trò chơi.
+ Google Cloud Datastore: Niantic Lab sử dụng NoSQL Google Cloud Datastore (à một dịch vụ cơ sở dữ liệu thuộc nền tảng đám mây Google) để lưu trữ, truy cập định vị (tiếng anh: index) dữ liệu của Pokemon Go. + LibGDX: Game sử dụng Framework LibGDX (Khung ứng dụng phát triển trò chơi của nền tảng Java) và dùng các ngôn ngữ lập trình Java, C#, C++.
+ Unity3d: Game sử dụng game engine Unity3d để hỗ trợ việc tạo lập không gian của game MMO (Massive Multiplayer Online Game - trò chơi trực tuyến nhiều người chơi) sử dụng bản đồ ngoài đời thực
+ Google Analytics: Nhà phát hành đã sử dụng Google Analytics để đánh giá độ tương tác của trò chơi với người dùng.