Minimalist Forum Reader
Fen này học cả C++ cơ à
e học cource C++ trước bác, do hùi đó có học lập trình C cho arduino.
1723720174592.png

cho e hỏi là e xem thì thấy mọi ng hay chọn 1 trong 4 mục khoanh vàng rất nhanh, nhưng e xem đi xem lại vẫn ko hiểu.
Object Reference khác Class như thế nào ạ?
Và Soft phía trước nó lại khác như thế nào nữa ạ? Cảm ơn mọi người xem tin.
View attachment 2632244
cho e hỏi là e xem thì thấy mọi ng hay chọn 1 trong 4 mục khoanh vàng rất nhanh, nhưng e xem đi xem lại vẫn ko hiểu.
Object Reference khác Class như thế nào ạ?
Và Soft phía trước nó lại khác như thế nào nữa ạ? Cảm ơn mọi người xem tin.

Nếu bạn nắm được lập trình hướng đối tượng thì khái niệm object vs class trong hình này nó chính là khái niệm đó: object là thực thể của class, ví dụ class Mều thì có các object Mều_1 (mèo mướp), Mều_2 (mèo đen), Mều_3 (mèo đen nhưng béo)... Trong UE thì class này có thể được định nghĩa với C++ (phải có decoration macro USTRUCT hoặc kế thừa từ UObject và có macro UCLASS) hoặc với Blueprint.

"Soft" trong UE là asset sẽ không được load tự động vào trong bộ nhớ, mà phải được load một cách tường minh trước khi sử dụng. Các object/class reference thông thường được gọi là 'hard ref", khi mà các asset liên quan được tự động load vào bộ nhớ. Dùng soft pointer hợp lý là cách để tối ưu việc sử dụng bộ nhớ trong UE, chi tiết hơn thì bạn xem ở mấy link này:

Nếu biểu diễn bằng C++ thì nó trông như thế này:
C++:
AActor* ObjectReference; // TObjectPtr<AActor> ObjectReference; cũng được
TSubclassOf<AActor> ClassReference;
TSoftObjectPtr<AActor> SoftObjectReference;
TSoftClassPtr<AActor> SoftClassReference;
Reactions: buitruong1689 and Củ khoai lang nho nhỏ
Nếu bạn nắm được lập trình hướng đối tượng thì khái niệm object vs class trong hình này nó chính là khái niệm đó: object là thực thể của class, ví dụ class Mều thì có các object Mều_1 (mèo mướp), Mều_2 (mèo đen), Mều_3 (mèo đen nhưng béo)... Trong UE thì class này có thể được định nghĩa với C++ (phải có decoration macro USTRUCT hoặc kế thừa từ UObject và có macro UCLASS) hoặc với Blueprint.

"Soft" trong UE là asset sẽ không được load tự động vào trong bộ nhớ, mà phải được load một cách tường minh trước khi sử dụng. Các object/class reference thông thường được gọi là 'hard ref", khi mà các asset liên quan được tự động load vào bộ nhớ. Dùng soft pointer hợp lý là cách để tối ưu việc sử dụng bộ nhớ trong UE, chi tiết hơn thì bạn xem ở mấy link này:

Nếu biểu diễn bằng C++ thì nó trông như thế này:
C++:
AActor* ObjectReference; // TObjectPtr<AActor> ObjectReference; cũng được
TSubclassOf<AActor> ClassReference;
TSoftObjectPtr<AActor> SoftObjectReference;
TSoftClassPtr<AActor> SoftClassReference;
tr ơi, e cám ơn bác k hết luôn. chúc bác 1 ngày tốt lành!!!!
Việc làm về game bằng unreal ở Hà Nội có nhiều không các bác nhể
View attachment 2632244
cho e hỏi là e xem thì thấy mọi ng hay chọn 1 trong 4 mục khoanh vàng rất nhanh, nhưng e xem đi xem lại vẫn ko hiểu.
Object Reference khác Class như thế nào ạ?
Và Soft phía trước nó lại khác như thế nào nữa ạ? Cảm ơn mọi người xem tin.
Nếu bạn nắm được lập trình hướng đối tượng thì khái niệm object vs class trong hình này nó chính là khái niệm đó: object là thực thể của class, ví dụ class Mều thì có các object Mều_1 (mèo mướp), Mều_2 (mèo đen), Mều_3 (mèo đen nhưng béo)... Trong UE thì class này có thể được định nghĩa với C++ (phải có decoration macro USTRUCT hoặc kế thừa từ UObject và có macro UCLASS) hoặc với Blueprint.

"Soft" trong UE là asset sẽ không được load tự động vào trong bộ nhớ, mà phải được load một cách tường minh trước khi sử dụng. Các object/class reference thông thường được gọi là 'hard ref", khi mà các asset liên quan được tự động load vào bộ nhớ. Dùng soft pointer hợp lý là cách để tối ưu việc sử dụng bộ nhớ trong UE, chi tiết hơn thì bạn xem ở mấy link này:

Nếu biểu diễn bằng C++ thì nó trông như thế này:
C++:
AActor* ObjectReference; // TObjectPtr<AActor> ObjectReference; cũng được
TSubclassOf<AActor> ClassReference;
TSoftObjectPtr<AActor> SoftObjectReference;
TSoftClassPtr<AActor> SoftClassReference;
Bổ sung thêm là dùng Soft Reference là một cách để tránh technical debts trong các large-scale UE projects. Sử dụng Hard Reference là nguyên nhân chính gây ra Assets Dependencies trong game development.

Điều này sẽ dẫn đến việc editor loading time, cooking/packaging time quá lâu. Cosume quá nhiều memory cho dù map nhỏ, do engine load toàn bộ dependencies của object đấy vào memory.

Tuy nhiên dev ít kinh nghiệm sẽ không chú ý đến điều này vì nó không thực sự impact game performance một cách rõ ràng, nhưng nó lại ảnh hưởng nghiêm trọng đến game development. Người ta chỉ nhận ra khi quá muộn, khi project bắt đầu lớn dần, chứa đến hàng nghìn đến chục nghìn assets thì họ mới bắt đầu thấy hệ quả của việc này.

Tham khảo:


Reactions: Củ khoai lang nho nhỏ and buonnguqua10
Việc làm về game bằng unreal ở Hà Nội có nhiều không các bác nhể
Duy nhất 1 công ty game mobile Hàn Quốc tuyển
Còn lại là 1 công ty làm ở lĩnh vực NFT GameFi úp bô
Nhưng nếu mùa đông crypto tan băng thì lại rầm rộ tuyển quân Unreal dev ngay :sure:.
Vừa có 1 con HR của team GameFi tận Thổ Nhĩ Kỳ mail cho tôi bảo làm 1 game Metaverse trông artwork giông giống LOL, yêu cầu 3 năm kinh nghiệm làm trong dự game AAA, đm mình phải mail chửi lại là thằng có kinh nghiệm làm game AAA thì éo phải làm remote cho bọn úp bô tài chính như chúng mày
Reactions: AnhSeVe, buitruong1689 and Củ khoai lang nho nhỏ
Bổ sung thêm là dùng Soft Reference là một cách để tránh technical debts trong các large-scale UE projects. Sử dụng Hard Reference là nguyên nhân chính gây ra Assets Dependencies trong game development.

Điều này sẽ dẫn đến việc editor loading time, cooking/packaging time quá lâu. Cosume quá nhiều memory cho dù map nhỏ, do engine load toàn bộ dependencies của object đấy vào memory.

Tuy nhiên dev ít kinh nghiệm sẽ không chú ý đến điều này vì nó không thực sự impact game performance một cách rõ ràng, nhưng nó lại ảnh hưởng nghiêm trọng đến game development. Người ta chỉ nhận ra khi quá muộn, khi project bắt đầu lớn dần, chứa đến hàng nghìn đến chục nghìn assets thì họ mới bắt đầu thấy hệ quả của việc này.

Tham khảo:


em cảm ơn bác chia sẽ.
Nhưng nếu mùa đông crypto tan băng thì lại rầm rộ tuyển quân Unreal dev ngay :sure:.
Giờ người ta biến tướng bằng cách làm game dưới dạng nhiệm vụ trên web, nhúng được vào telegram để úp pô. Đánh nhanh rút gọn, chi phí dev lại rẻ nữa. Làm Unreal thì đỡ sao. :big_smile:
Duy nhất 1 công ty game mobile Hàn Quốc tuyển
Còn lại là 1 công ty làm ở lĩnh vực NFT GameFi úp bô
Nhưng nếu mùa đông crypto tan băng thì lại rầm rộ tuyển quân Unreal dev ngay :sure:.
Vừa có 1 con HR của team GameFi tận Thổ Nhĩ Kỳ mail cho tôi bảo làm 1 game Metaverse trông artwork giông giống LOL, yêu cầu 3 năm kinh nghiệm làm trong dự game AAA, đm mình phải mail chửi lại là thằng có kinh nghiệm làm game AAA thì éo phải làm remote cho bọn úp bô tài chính như chúng mày
Học làm games dễ ko lão? Dạo này muốn đổi gió tí
YhCyC2n.png
Học làm games dễ ko lão? Dạo này muốn đổi gió tí
YhCyC2n.png
Học thì không khó, cơ mà để làm ra được một game hoàn chỉnh trau chuốt thì khó :big_smile:
Duy nhất 1 công ty game mobile Hàn Quốc tuyển
Còn lại là 1 công ty làm ở lĩnh vực NFT GameFi úp bô
Nhưng nếu mùa đông crypto tan băng thì lại rầm rộ tuyển quân Unreal dev ngay :sure:.
Vừa có 1 con HR của team GameFi tận Thổ Nhĩ Kỳ mail cho tôi bảo làm 1 game Metaverse trông artwork giông giống LOL, yêu cầu 3 năm kinh nghiệm làm trong dự game AAA, đm mình phải mail chửi lại là thằng có kinh nghiệm làm game AAA thì éo phải làm remote cho bọn úp bô tài chính như chúng mày
Thím cho em hỏi sao crypto lại dùng Unreal ạ :oh:
Em nghĩ crypto thì dùng những thứ như Unity, không thì Cocos cho nhanh gọn chứ:oh:
Mình mới học UE5, đây là cách mình viết cho animation attack
1726766448226.png

Nhưng animation chỉ chạy 1 lần do biến isAttack ở lần chạy thứ 2 đã trả về true
Và sau đó mình tạo blueprint notifies như thế này, sau đó add blueprint này vào notify timeline của animation để khi animation sắp kết thúc thì isAttack trả về false
1726766533204.png

1726766559727.png


Anim hoạt động đúng như mình muốn, vậy cho mình hỏi là cách mình làm như thế này có đúng ko nhỉ. Các pro thường tạo animation cho attack như nào để tránh spam attack nhỉ
Thím cho em hỏi sao crypto lại dùng Unreal ạ :oh:
Em nghĩ crypto thì dùng những thứ như Unity, không thì Cocos cho nhanh gọn chứ:oh:
Tại vì asset trong Unreal Marketplace nó đủ để đám trade coin nhìn vào nghĩ là game đó khủng mới tạo ra Fomo
Crypto là đa cấp và scam mà bạn
Chưa kể 1 game MMORPG NFT của Hàn Mir4 cũng làm bằng Unreal, profile ngon choét để nhà đầu tư nghĩ là cứ làm bằng Unreal chắc chắn ngon
Mình mới học UE5, đây là cách mình viết cho animation attack
View attachment 2691952
Nhưng animation chỉ chạy 1 lần do biến isAttack ở lần chạy thứ 2 đã trả về true
Và sau đó mình tạo blueprint notifies như thế này, sau đó add blueprint này vào notify timeline của animation để khi animation sắp kết thúc thì isAttack trả về false
View attachment 2691953
View attachment 2691954

Anim hoạt động đúng như mình muốn, vậy cho mình hỏi là cách mình làm như thế này có đúng ko nhỉ. Các pro thường tạo animation cho attack như nào để tránh spam attack nhỉ
Cách này có đặc tính là nếu anim attack dừng trước frame chứa cái anim notify kia thì trạng thái isAttack không được set. Đặc tính này thì tùy game, nếu đặc thù của game là anim attack không bao giờ bị ngắt thì cách này ổn.

Nếu anim attack có thể bị ngắt thì có một cách tương tự là dùng một cái anim notify state, khi ấy việc set isAttack thành false cho cái BP kia được đảm bảo. Còn nếu game phức tạp hơn thì phải có hệ thống quản lý trạng thái anim cho nhân vật cụ thể hơn, cái này chắc không đúng ngữ cảnh lắm.
...

Anim hoạt động đúng như mình muốn, vậy cho mình hỏi là cách mình làm như thế này có đúng ko nhỉ. Các pro thường tạo animation cho attack như nào để tránh spam attack nhỉ
Trong trường hợp nhân vật bị tác động khiến chuyển animation giữa chừng thì cái notify kia đâu có được gọi?

Ví dụ nhân vật đang attack thì bị stun-> chuyển sang stun anim. Cái BP_EndAttack noti kia ko bao h được gọi đến->sau khi hết stun thì nhân vật không thể tiếp tục attack được nữa.

Nếu mà combat system của bạn ko có yếu tố nào làm gián đoạn anim của nhân vật thì logic như vậy có thể chấp nhận được. Chứ combat system mà phức tạp hơn thì bạn phải implement một system riêng để manage states của character.
Reactions: Củ khoai lang nho nhỏ
Học làm games dễ ko lão? Dạo này muốn đổi gió tí
YhCyC2n.png
Dễ ấy mà, với thâm niên gõ code của fen thì chỉ cần yêu cầu phát ra là game thế này thế này là class diagram hiện sẵn trong đầu rồi thì cứ thế mà viết thôi
Cái phiền của làm games đó là sự chau chuốt trong animation, tỉ mỉ trong từng giây, yêu cầu sự phối hợp giữa dev + animator + VFX, cái này mới tốn thời gian
Reactions: RPG29
Dễ ấy mà, với thâm niên gõ code của fen thì chỉ cần yêu cầu phát ra là game thế này thế này là class diagram hiện sẵn trong đầu rồi thì cứ thế mà viết thôi
Cái phiền của làm games đó là sự chau chuốt trong animation, tỉ mỉ trong từng giây, yêu cầu sự phối hợp giữa dev + animator + VFX, cái này mới tốn thời gian
Giờ muốn học làm web games thì học cái gì hả fen?
Làm web games để bổ trợ mấy thứ đang làm thôi chứ ko có mộng lớn làm mobile games hay AAA
URoiprO.png
Giờ muốn học làm web games thì học cái gì hả fen?
Làm web games để bổ trợ mấy thứ đang làm thôi chứ ko có mộng lớn làm mobile games hay AAA
URoiprO.png
Typescript và chọn lấy 1 game engine, đọc doc, xem sample của nó rồi làm thôi
V4LJmmN.jpeg
Reactions: Củ khoai lang nho nhỏ and RPG29
Hôm nay mới mò code C++ của mấy cái sample. Nhìn file header với file CPP đã thấy mệt mỏi rồi. Tại sao bao nhiêu năm C++ không hợp nhất được header với cpp vầy :amazed:
Reactions: buitruong1689, RPG29 and Củ khoai lang nho nhỏ