Jobs System, QuadTree, Morton Code - Siêu tối ưu thuật toán Boid bằng đa luồng và cây tứ phân

  Рет қаралды 4,796

Học Game Dễ

Học Game Dễ

Күн бұрын

Пікірлер: 45
@NhutQuangLe-iv3yk
@NhutQuangLe-iv3yk 4 ай бұрын
Thật bổ X 👌 Mong sốp ra series về DSA & Toán mà ứng dụng vào làm game luôn thì quá là tuyệt vời luôn.
@hocgamede
@hocgamede 4 ай бұрын
thanks b nhiều lắm, DSA và Toán thì có mấy tay to khác đã làm video r nên mình đang cân nhắc trước khi lội vô xD. btw có thể mình sẽ làm riêng cho mảng game thui, như vậy có thể khác mấy kênh khác tí
@Ajax-oq7ml
@Ajax-oq7ml 4 ай бұрын
Quá tuyệt vời, em cũng đang muốn học DOTS ECS mà chưa thấy kênh tiếng Việt nào làm, cảm ơn anh rất nhiều ❤
@hocgamede
@hocgamede 4 ай бұрын
thankiu e 🥰
@TinHo....
@TinHo.... 3 ай бұрын
UNITY đc phát triển theo kiểu ECS đó
@lamemilie7943
@lamemilie7943 4 ай бұрын
Qúa hay luôn á mong kênh sẽ phát triển hơn
@hocgamede
@hocgamede 4 ай бұрын
Cảm ơn bạn
@hienhuynh5058
@hienhuynh5058 4 ай бұрын
Hay quá bạn! Hy vọng bạn sẽ làm thêm 1 video về tối ưu batches nữa. Mình làm game chơi thôi mà mấy cái tối ưu performance này mệt thật sự.
@hocgamede
@hocgamede 4 ай бұрын
Cảm ơn bạn. Cái DrawInstance đúng không :))
@uyen67-hotrucphuong70
@uyen67-hotrucphuong70 2 ай бұрын
Bạn học code game và những kiến thức cao cấp này ở đâu vậy, chỉ mình với
@trungtrieule6789
@trungtrieule6789 4 ай бұрын
Tuyệt vời
@hocgamede
@hocgamede 4 ай бұрын
cảm ơn b 😁
@JamesPhanJP
@JamesPhanJP 4 ай бұрын
Đỉnhhhhhhhh 🎉🎉🎉
@hocgamede
@hocgamede 4 ай бұрын
Cảm ơn bạn nhe
@manhcao3403
@manhcao3403 2 ай бұрын
ad cho mình hỏi với hàm IntersectsCircle trong QuadBounds.cs phần return bị sai đúng ko phải là math.lengthsq(Radius) vì mình đang so sánh 2 số bình phương, mình hơi mắc chỗ này ạ
@Sqrt-i2z
@Sqrt-i2z 2 ай бұрын
Các engine game bây giờ đều hỗ trợ quadtree/octree đỗi với 2D/3D object để tìm va chạm, collision rồi, vậy nên việc bạn implement 1 thứ đã có sẵn là điều ko cần thiết. Thay vào đó bác có thể sử dụng ngay hệ thống ray/trace của engine luôn cũng được. Trừ khi bác implement vào để sử dụng thuật toán trên GPU thay vì CPU.
@hoangvu2227
@hoangvu2227 2 ай бұрын
Collision của Game Engine thì thường sẽ implement cho những trường hợp chung nhất rồi nên có những trường hợp cần tối ưu không đạt hiệu quả bằng việc tự code. Ví dụ như có 1000 object, và mỗi object không được đè lên nhau khi di chuyển. Trong trường hợp 1000 object đó va chạm cùng lúc với nhau, nếu sử dụng Collision của Engine nó sẽ check ra worst case là 1000^2 va chạm. Nhưng nếu tự implement, có thể tự giới hạn số lượng object tối đa va chạm với nhau, và số lượng check tối đa chỉ còn là 1000* hằng số
@Sqrt-i2z
@Sqrt-i2z 2 ай бұрын
@@hoangvu2227 Bạn ko hiểu vấn đề à? Tôi đang nói đến vấn đề ở đây là Engine họ hỗ trợ sẵn các loại cast (trace) trong physic engine để detect object rồi. Và nó cũng dùng quadtree - octree bạn hiểu vấn đề không? Bạn có thể tự code khi sử dụng hệ thống đấy và tự giới hạn tùy bạn, chứ ko cần phải implement lại làm gì cả. Trừ khi bạn muốn sử dụng nó với GPU để tăng hiệu suất tính toán thì nó lại là 1 câu chuyện khác, nhưng ở đây bạn làm clip lại dùng CPU để tính mấy cái này. Còn chuyện tôi nói detect va chạm là ví dụ thôi, nhưng cũng chả bao giờ có chuyện 1k object mà từng object lại va chạm với 999 thằng còn lại cả. Bạn cho tôi cái ví dụ được không chứ tôi làm game cả chục năm r mà chưa bao giờ thấy vụ này? Bạn cũng nên nhớ quad hay octree trong physic chỉ để tối ưu vụ query object - position xung quanh thôi, chứ detect va chạm thực sự nó vẫn phải loop lại cả đống đấy trong 1 quad, và tính distance từ 2 điểm gần nhất trên collider để xác định xem 2 vật có va chạm vào nhau hay ko đấy. Thế nên cái ví dụ của bạn nói nó cũng chả lien quan gì đến 2 cái tree này cả.
@03_phamphucbinh20
@03_phamphucbinh20 4 ай бұрын
Quá hay luôn bro ^^ Cho mình hỏi mình muốn apply thử qua 3D dùng Octree thì có khả thi ko?
@hocgamede
@hocgamede 4 ай бұрын
Cảm ơn bạn. Khả thi á bạn, bảng tra cứu mảng MortonLookup chỉ cần thay đổi lên từ 16bit lên 32bit và tăng lên 1 node cha quản lý 8 node con, tìm kiếm logic OcBound theo không gian 3D.
@bonmat_discovery
@bonmat_discovery 2 ай бұрын
Bro có ý định làm content dạng này thành tiếng anh không, đằng nào cũng dùng giọng AI nên ko lo phần thuyết minh nữa :)))))
@nguyenhoangminhtrung2779
@nguyenhoangminhtrung2779 4 ай бұрын
áp dụng quad tree vào sẽ thành N Log N chứ nhỉ? vì kiểu gì mình cũng phải loop qua các boid mà?
@hocgamede
@hocgamede 4 ай бұрын
Nếu không chia đa luồng thì N Log N á bạn.
@ThaoNguyễnVăn-n7o
@ThaoNguyễnVăn-n7o 4 ай бұрын
nếu 1000 cá thể trên mobile device low -> high thì giữ mức FPS bao nhiêu thế anh. 60FPS thì quả thật là thuật toán tuyệt vời!!!
@hocgamede
@hocgamede 4 ай бұрын
Nếu low-end mobile devices CPU có khoảng 2 - 4 luồng thì tầm 30-60FPS ấy bạn, tùy vào model object và GPU nữa. Còn high 6 - 8 luồng thì trên 60FPS nha. Nếu có áp dụng ECS thì cao nữa: kzbin.info/www/bejne/pZXLln2cmZeSrNk
@TienPham-ne8uf
@TienPham-ne8uf 4 ай бұрын
hóng ECS
@hocgamede
@hocgamede 4 ай бұрын
Ôke bạn ơi
@Nbl-dzvn
@Nbl-dzvn 4 ай бұрын
Game 3d bằng Godot ko a 🙇🙇🙇😅
@hocgamede
@hocgamede 4 ай бұрын
Từ từ mình vọc sau :3
@Nbl-dzvn
@Nbl-dzvn 4 ай бұрын
​@@hocgamede‡)))
@amas9036
@amas9036 4 ай бұрын
Ông ơi, trong video ông code nhanh quá. Ông share code để tụi tui đối chiếu lại được không :')
@hocgamede
@hocgamede 4 ай бұрын
Tại edit video phân tua x5 á, chứ để bình thường chắc 3 tiếng. Còn code thì...
@amas9036
@amas9036 4 ай бұрын
@@hocgamede đã 12 tiếng trôi qua, tôi vẫn không biết lỗi chỗ nào khi clone lại code của bro. Please share it. Ông có thể tạo video đòi supcribe để lấy, hoặc tạo telegram các thứ cũng được mà :'). Please share it...
@hocgamede
@hocgamede 4 ай бұрын
Mình đoán là bạn lỗi bên phần QuadTree nhỉ, tại vì phần đó hơi nâng cao, link đây bạn: github.com/HocGameDe/BoidSimulation
@amas9036
@amas9036 4 ай бұрын
@@hocgamede tui không rõ bị sai sót chỗ nào lúc chép lại code của bro, nhưng hoạt động rồi. Cảm ơn bro nhiều
@amas9036
@amas9036 4 ай бұрын
@@hocgamede anyway, khi nào xong con Bunny Survival ông ping tui với nhé. Phần attack speed của nó đang bug lắm
@tranngochung7556
@tranngochung7556 4 ай бұрын
Não to thực sự, tìm hiểu mấy cái này mất thời gian lắm, ko biết bạn chủ kênh bao nhiêu tuổi và kinh nghiệm coding như nào?
@hocgamede
@hocgamede 4 ай бұрын
Bí mật hehe, mà mình hiểu 2 tháng.
@TienPham-ne8uf
@TienPham-ne8uf 4 ай бұрын
10d
@hocgamede
@hocgamede 4 ай бұрын
cảm ơn b 😄😄
@lanTruong-yg4ee
@lanTruong-yg4ee 4 ай бұрын
thật tay mơ ko hiểu bạn nói cái gì luôn . mấy kiểu này nên bắt đầu từ đâu bạn. chắc bạn phải có kinh nghiệm tầm 10 năm mới làm được thês này
@quannguyenanh7394
@quannguyenanh7394 4 ай бұрын
Lập trình cơ bản, kiến trúc máy tính, OOP, Hệ điều hành, CTDL&GT
@hocgamede
@hocgamede 4 ай бұрын
Không đến 10 năm đâu b, XD. Để làm được game thì b học cơ bản về C# -> Unity -> Jobs là được (thêm 1 tí về cấu trúc máy tính nữa để hiểu sâu hơn). Còn Quadtree thì bạn phải nắm CTDL&GT 1 tí (về cây, đệ quy,...) sau đó làm thử trên project trống là đc b
Neat AI does QuadTree Boids
8:21
Neat AI
Рет қаралды 26 М.
Neat AI does Spatial Hash Boids
8:10
Neat AI
Рет қаралды 17 М.
人是不能做到吗?#火影忍者 #家人  #佐助
00:20
火影忍者一家
Рет қаралды 20 МЛН
Don’t Choose The Wrong Box 😱
00:41
Topper Guild
Рет қаралды 62 МЛН
VIP ACCESS
00:47
Natan por Aí
Рет қаралды 30 МЛН
Hệ thống Addressables và cách ứng dụng trong Unity
14:51
Học Game Dễ
Рет қаралды 6 М.
ECS tại sao nhanh hơn OOP?
11:01
Học Game Dễ
Рет қаралды 4,8 М.
Quy trình làm game - Game được tạo ra như thế nào
5:37
Học Game Dễ
Рет қаралды 8 М.
Let's simulate THOUSANDS of Boids in Realtime [Unity]
14:19
Code With Ajay
Рет қаралды 1,4 М.
Vì Sao PS5 PRO Lại Bị CHÊ?
12:32
Game Cực Hay
Рет қаралды 208 М.
Hệ thống Addressables 2: Cập nhật game từ server với Unity
20:30