Trong thời gian gần đây lĩnh vực VR/AR/MR rất được quan tâm, cũng được nhiều bạn trẻ lựa chọn làm con đường sự nghiệp của bản thân. Để có thêm cái nhìn thực tế về nghề này mời các bạn theo dõi bài viết Expert Talk kỳ này: "Con đường của nhà phát triển VR/AR/MR chuyên nghiệp" với phần chia sẻ của anh Đinh Trần Thái Sơn - Technical Lead các dự án phát triển VR/AR/MR - Công ty One Tech Asia.
Anh Sơn hiện đang đảm nhiệm vị trí Technical Leader - Project Manager quản lý và phát triển các dự án Game Unity, VR/MR/AR của Công ty OneTech Asia. Với kinh nghiệm làm các dự án về Game từ năm 2013 và các dự án VR/AR/MR trên nền tảng Unity từ năm 2015 anh Sơn là một trong những Expert giàu kinh nghiệm thực chiến trong lĩnh vực VR/AR tại Việt Nam.
Chủ đề EXPERTS TALK:
"VR/AR/MR - Con đường trở thành nhà phát triển VR/AR/MR chuyên nghiệp".
Để chuyển sang thì anh chỉ cần thời gian để tìm hiểu về những khái niệm công nghệ thực tế ảo, nhưng cách hoạt động của các thiết bị công nghệ, một phần mềm khi hoạt động trên đó sẽ như thế nào. Chẳng hạn như, các thiết bị thực tế ảo như Oculus, Hololens sẽ có những bộ kit trên
Khi gặp một dự án, đầu tiên sẽ là giai đoạn nghiên cứu công nghệ sơ bộ, rồi list ra các giai đoạn phát triển chính nhằm mục đích định lượng thời gian hoàn thành dự án với khách hàng.
Sau khi chốt với khách hàng, team sẽ tiến hành nghiên cứu về công nghệ và thiết bị mới nếu team chưa từng làm qua. Bước tiếp theo là tích hợp các bộ kit để công nghệ và thiết bị hoạt động sao cho team dự án có thể dựa trên đó phát triển đúng với yêu cầu của khách hàng.
Các giai đoạn trên gộp chung vào giai đoạn chuẩn bị để tiến hành vào phát triển dự án thực. Ở giai đoạn phát triển, với vai trò là nhà quản lý dự án anh tiếp tục phân bổ các nhiệm vụ cho các thành viên trong nhóm phù hợp với khả năng từng người để đạt hiệu suất làm việc cao nhất có thể.
Để có thể theo dõi dự án một cách chặt chẽ anh Sơn có chia sẻ "là bản thân phải bám sát và có xác định thời hạn cho từng nhiệm vụ rõ ràng, nếu được chính bản thân cũng cần phải bắt tay vào phát triển một vài khâu để có thể hiểu các thành viên khác đang làm như thế nào nhằm kịp thời điều chỉnh, tránh để làm xong hết mới sửa thì rất mất thời gian".
Sau khi hoàn thành các công đoạn phát triển, dự án bước vào giai đoạn kiểm tra thử nghiệm xem sản phẩm ứng dụng thực tế ảo có hoạt động tốt cũng như đúng với yêu cầu phía khách hàng không.
Trong quá trình phát triển, anh làm việc trên hệ điều hành Windows hoặc MacOS.
Còn về công cụ thì chắc chắn không thể thiếu Unity Editor, bạn phải thành thục việc sử dụng công cụ này, phần lớn thời gian phát triển bạn sẽ làm việc trên công cụ này. Hiện tại cũng là công cụ mạnh mẽ, được sử dụng nhiều nhất khi nói về phát triển VR/AR/MR. Các dự án khi bạn phát triển với Unity sẽ làm cho các công việc của bạn trở nên dễ dàng hơn, ngày cả bước kiểm tra, bạn cũng có thể cho sản phẩm hoạt động thử trên Unity trước khi đưa vào các thiết bị công nghệ như Oculus, Hololens,...
Bên cạnh đó, còn cần đến các công cụ để lập trình như hiện tại anh đang sử dụng là IDE của Microsoft.
Ý kiến đúng nhưng không hẳn chính xác. Đầu tiên, ý kiến này đúng vì công cụ Unity hỗ trợ bạn rất nhiều tác vụ, rất nhiều tools editor trong đó giúp bạn rút gọn các lệnh lập trình, giúp bạn viết code nhanh hơn hoặc thậm chí chỉ cần kéo thả mà không phải viết code.
Bạn có thể dùng Unity để làm một số demo đơn giản, mod các project sample/ template có sẵn trên Unity Asset Store hoặc thậm chí làm ra một ứng dụng/game mini mà hoàn toàn không phải code dòng nào. Nghĩa là không cần phải biết lập trình. Tuy nhiên điều này chỉ dừng lại ở sample, demo... nghịch cho vui mà thôi.
Nếu bạn dùng Unity để phát triển các phầm mềm ứng dụng thực tế ảo hoàn chỉnh, có nhiều tính năng, đặc điểm chi tiết với đầu ra không chỉ phải đáp ứng nguyện vọng của khách hàng mà còn cả người dùng cuối thì không thể nào không biết lập trình được. Nghiêm túc mà nói đây là công cụ hỗ trợ dành cho những lập trình viên, kỹ sư IT đúng nghĩa sản xuất ra sản phẩm nhanh hơn, tiếc kiệm thời gian và chi phí hơn.
Có thể nói bạn không cần phải lập trình tất cả mà ít nhất bạn phải hiểu và có thể sửa những dòng code theo ý muốn của mình. Thì như vậy mới gọi là làm một dự án nghiêm chỉnh và chất lượng. Unity đã trở thành một trong những công cụ (Engine/Framework) đa năng, mạnh mẽ và phổ biến nhất hiện nay. Các Unity developer là những lập trình viên thực thụ và họ nghiêm túc với nghề nghiệp của mình.
Thứ nhất, xu hướng của công nghệ này theo anh dự đoán là ngày càng phát triển, về sau sẽ càng tiến bộ, Vì những ý tưởng bắt nguồn từ công nghệ này đã xuất hiện trong mong muốn của chúng ta từ khoảng thời gian trước đây khá lâu rồi tầm thế kỷ 20, khi đó ý tưởng trên phầm mềm chúng ta có khá nhiều rồi, nhưng về phần cứng chưa bắt kịp nên vẫn phải kéo dài cho đến những năm gần đây khi các phần cứng, tức là các thiết bị thực tế ảo như Hololens, Oculus xuất hiện và không ngừng được cải tiến!
Và khả năng áp dụng những công nghệ VR/AR/MR là rất cao hầu như lĩnh vực nào cũng có thể áp dụng, Thế nên, trong những năm trở lại đây có rất nhiều công ty đã áp dụng công nghệ này cho sản phẩm của mình để thu hút và phục vụ khách hàng (người tiêu dùng) của họ tốt hơn. Ví dụ như tập đoàn đồ nội thất nổi tiếng IKEA họ đã có những cửa hàng thực tế ảo, có thể giúp khách hàng chọn lựa đồ nội thất ngay tại nhà một cách chân thực, khách hàng có thể chọn đồ nội thất mình có hứng thú, đặt hình ảo (đúng với tỷ lệ thật) vào căn nhà của mình để xem trước có hợp không trước khi đặt vào giỏ hàng thì đây được gọi là VR Store. Ngay tại ở Việt Nam chúng ta hiện nay cũng đã có các công ty áp dụng, như ngành bất động sản, khách hàng có thể ngồi nhà cũ mà tham quan được bên trong ngôi nhà muốn mua như thế nào.
Tại Nhật có nhiều công ty sản xuất xe ô tô, họ đã sử dụng những chiếc kính Hololens vào quá trình đo đạc các phụ tùng lắp ráp với khả năng đo đạt chính xác mà không cần dùng các loại thước kỹ thuật mà chỉ cần dùng kính Hololens đang đeo sẵn trên mắt người dùng, vì thế có thể tiết kiệm rất nhiều thời gian cũng như công sức.
Ngoài ra với sức nóng của công nghệ này, mình cũng có thể dùng để tổ chức các hoạt động triển lãm từ công nghệ cho đến nghệ thuật khác, những hoạt động này đã trở nên rất phổ biến từ trước rồi.
Thật ra cả AR/VR/MR đều là những công nghệ phía trên, còn bên dưới phần kỹ thuật lập trình thì không có sự khác nhau nhiều, vì tất cả đều dùng chung 1 engine là Unity (nếu có khác thì chỉ là khác thư viện).
Tuy nhiên cũng có 1 số điểm khác biệt đó là đối với VR, thì môi trường phát triển trên Unity Editor khá tương đồng với chạy trên device thật. Do môi trường VR tất cả đều là ảo nên Unity Editor đã làm rất tốt việc giả lập nên những behaviour, hiển thị đều khá tương đồng với device thật, do đó giảm thời gian testing cho developer.
Còn AR/MR, do đặc thù phải sử dụng camera của device, nên Unity Editor không thể giả lập hoàn toàn được (ví dụ như ARKit của iOS, dùng camera true depth của iPhone để nhận diện khoảng cách, camera trên Editor không thể giả lập được), dẫn đến thời gian debugging và testing của developer sẽ nhiều hơn so với phát triển VR. Đó là còn chưa kể đến build những thiết bị MR như HoloLens sẽ tốn thời gian build hơn nữa, làm kéo dài thêm thời gian testing.
AR là một công nghệ sử dụng camera của thiết bị và tăng cường thực tế bằng cách thêm vật thể ảo vào không gian thực, còn AI thì rất rộng, nó như là 1 tư duy trong toàn bộ lĩnh vực lập trình, và mục đích chính của nó là làm cho máy tính có thể thông minh gần bằng con người, từ đó có thể tự động hóa những công việc thủ công mà con người làm hằng ngày. Do đó có thể nói là trong AR có AI và trong AI cũng có AR.
Tức là, AR chức năng chính vẫn là tăng cường vật thể ảo vào thực tế, tuy nhiên nếu có chức năng AI thì nó sẽ "xịn" hơn và nhiều tính năng hay ho hơn. Ví dụ ngày xưa chúng ta có những app chụp ảnh rồi gắn sticker thủ công lên trên mặt, mũi,.., sau này có thêm AI vào app sẽ tự nhận diện được khuôn mặt ở đâu và gắn sticker vào trực tiếp mà không cần phải chỉnh sửa thủ công.
Còn về trong AI cũng có AR, có nghĩa là AI có thể được áp dụng ở bất kì lĩnh vực nào trong lập trình, từ web đến app, game, từ hệ thống lớn như Amazon, Google,.. đến hệ thống nhỏ như công ty OneTech Asia chẳng hạn
Do đó, có thể tóm gọn lại là AI giúp AR thông minh hơn và tiện dụng hơn, còn AR giúp visualize những công nghệ của AI lên UI để user nhìn/nghe được.
Thứ nhất, như trên anh có chia sẻ về chuyên môn bạn phải sử dụng thành thạo công cụ Unity Editor
Thứ hai, là kỹ năng lập trình, không bắt buộc phải làm tất cả nhưng nếu biết càng nhiều sẽ càng tốt cho các bạn khi giải quyết các vấn đề phát sinh trong quá trình phát triển dự án. Trong các ngôn ngữ lập trình anh đề xuất các bạn nên tập trung vào C#.
Thứ ba, sẽ nghiêng về kỹ năng làm việc một chút. Đó là kỹ năng đọc hiểu và soạn tài liệu để phát triển. Trước hết tài liệu ở đây là những yêu cầu của khách hàng được trình bày chi tiết bằng chữ và hình ảnh thiết kế mà khách hàng của dự án mong muốn ở đầu ra, và ngược lại bạn cũng cần phải biết cách diễn đạt lại như thế này để trình bày các vấn đề xảy ra trong quá trình phát triển dự án. Đây là những tài liệu rất quan trọng có ý nghĩa về mặt trao đổi thông tin công việc. Về kỹ năng này các bạn chắc chắn sẽ được làm quen và hướng dẫn bởi những người đi trước khi vào làm việc.
Đối với những bạn mới bắt đầu, chưa có cơ hội làm việc trên các thiết bị thực tế ảo, thì bạn có thể sử dụng chạy thử nghiệm bằng Google Cardboard (đây là một loại kính thực tế ảo giá rẻ được làm từ giấy bìa các tông).
Để test dễ dàng thì trước hết kinh nghiệm của anh là trong quá trình làm mình cần cẩn thận trong các dòng lập trình, không phải bất cứ loại nào có thể copy paste được, những thứ mình đặt vào thì mình phải hiểu rõ, để phòng trường hợp khi cho chạy thử nghiệm xảy ra lỗi bạn có thể nhanh chóng tìm ra nguyên nhân và nguồn gốc của lỗi. Hơn nữa, việc chia nhỏ để nắm rõ các khâu phát triển sẽ giúp các bạn tránh được những lỗi domino (lỗi này kéo theo những khâu khác sai theo) cũng như hạn chế việc sửa lại quá nhiều làm mất nhiều thời gian và công sức.
Quay lại về quy trình test thử nghiệm, thì có 2 giai đoạn. Đầu tiên sản phẩm sẽ được test trên Unity Editor, hầu hết các ứng dụng chạy được trên này thì có thể chạy được trên các thiết bị, cần test trên này trước để tiện cho việc phát hiện vấn đề.
Sau đó, các bạn sẽ test trên thiết bị thực tế ảo để xem có hoạt động tốt không. Sau bước này, cả team sẽ tổng hợp những lỗi để cùng nhau sửa và hoàn thiện sản phẩm.
Trước nhất, cũng cần thiết nhất là những tài liệu hướng dẫn sử dụng Unity, các bạn có thể tìm được những tài liệu hướng dẫn này ngay trên trang chủ của Unity. Trên trang này bạn sẽ được hướng dẫn rất chi tiết với các minh họa và ví dụ sinh động, trực quan. Đồng thời, như nhiều ngành IT khác, bất cứ công cụ hay nền tảng nào đều có các cộng động chia sẻ, và Unity cũng vậy, bạn có thể tham khảo kinh nghiệm phát triển trên Unity của rất nhiều nhà phát triển khác nhau.
Bên cạnh đó, kỹ năng search keyword để tra cứu tài liệu trên Google cũng rất quan trọng. Kỹ năng này đòi hỏi bạn có lọc được từ khóa mà mình muốn kết quả hiện thị như mong muốn, nếu không đúng từ khóa bạn sẽ mất rất nhiều thời gian để tìm ra thông tin cũng như tài liệu cần thiết để mình tìm hiểu. Để xác nhận độ tin cậy các thông tin đó, bạn nên bắt đầu với các trang web tiếng Anh rồi xem những trang có kết quả top đầu xem thông tin giữa các trang đó có nhất quán không, càng có khẳng định giống nhau thì thông tin và tài liệu đó càng đáng tin.
Ban biên tập chân thành cảm ơn anh đã dành thời gian chia sẻ kinh nghiệm quý báu đến các đọc giả của blog GrowUpWork, chúc anh sức khỏe và thành công!
Tòa nhà QCOOP, 647 Lý Thường Kiệt, Phường 11, Tân Bình, Thành phố Hồ Chí Minh 700000
Lô 3C-5, Đường số 12, KCN Long Hậu 3 (Giai đoạn 1), xã Long Hậu, huyện Cần Giuộc, tỉnh Long An, Việt Nam.
Tòa nhà QCOOP, 647 Lý Thường Kiệt, Phường 11, Tân Bình, Thành phố Hồ Chí Minh 700000