Notice
Recent Posts
Recent Comments
Link
관리 메뉴

λͺ©λ‘μ „체 κΈ€ (1096)

KoreanFoodie's Study

[C++ κ²Œμž„ μ„œλ²„] 2-9. Object Pool

[C++ κ²Œμž„ μ„œλ²„] 2-9. Object Pool 핡심 : 1. ObjectPool 을 μ‚¬μš©ν•˜λ©΄, 각 νƒ€μž…λ³„λ‘œ 풀을 λ§Œλ“€κ²Œ λ˜μ–΄, λ©”λͺ¨λ¦¬ μ˜€μ—Ό μ΄μŠˆκ°€ λ°œμƒν–ˆμ„ λ•Œ 문제의 원인을 νŒŒμ•…ν•˜κΈ°κ°€ μ‰¬μ›Œμ§„λ‹€. 2. μ»€μŠ€ν…€ν•œ μ‚­μ œμžλ₯Ό 객체 λ©”λͺ¨λ¦¬λ₯Ό 풀에 λ°˜λ‚©ν•˜λŠ” ν˜•μ‹μ„ 넣은 MakeShared λ₯Ό ν™œμš©ν•˜λ©΄, ObjectPool 을 μ‚¬μš©ν•˜λŠ” 슀마트 포인터λ₯Ό μ‰½κ²Œ λ§Œλ“€ 수 μžˆλ‹€. 3. Allocator λ₯Ό StompAllocator 둜 μ‰½κ²Œ ꡐ체할 수 μžˆλ„λ‘ #define 문법을 μ‚¬μš©ν•˜λ©΄, ν…ŒμŠ€νŠΈμš©μœΌλ‘œ StompAllocator λ₯Ό μ‰½κ²Œ 적용 κ°€λŠ₯ν•˜λ‹€. μš°λ¦¬λŠ” μ΄μ „κΉŒμ§€ λ©”λͺ¨λ¦¬ 풀에 λŒ€ν•΄ μ•Œμ•„λ³΄μ•˜λŠ”λ°, λ©”λͺ¨λ¦¬ 풀은 λ©”λͺ¨λ¦¬ 크기에 따라 객체듀이 μ•Œμ•„μ„œ 풀을 같이 μ‚¬μš©ν•œλ‹€. 집단 μƒν™œμ΄ 으레 κ·Έλ ‡λ“―, κΈ°μˆ™μ‚¬ μƒν™œμ—μ„œλ„ 문제..

Game Dev/Game Server 2023. 9. 15. 11:39
C++ DevNote : μƒμ„±μžλ₯Ό private ν•˜κ²Œ λ§Œλ“œλŠ” 이유 (feat. make_shared λŒ€μ‹  new λ₯Ό μ‚¬μš©ν•œλ‹€κ³ ?)

C++ 에 λŒ€ν•΄ κ³΅λΆ€ν•œ 것과, κ°œλ°œν•˜λ©΄μ„œ μ•Œκ²Œ 된 것듀을 λ‹€λ£Ήλ‹ˆλ‹€ μƒμ„±μžλ₯Ό private ν•˜κ²Œ λ§Œλ“ λ‹€κ³ ? 슀마트 포인터에 λ°°μš°λ‹€ 보면, make_shared 와 new λ₯Ό μ΄μš©ν•΄ 슀마트 포인터λ₯Ό λ§Œλ“œλŠ” 방식에 λŒ€ν•΄ 배우게 λœλ‹€. μ΄λ•Œ, νš¨μœ¨μ„±μ„ μœ„ν•΄ make_shared λ₯Ό new 보닀 μ„ ν˜Έν•˜λΌλŠ” 말을 λ“£κ²Œ λ˜λŠ”λ°, κ·Έ μ΄μœ λŠ” λͺ…ν™•ν•˜λ‹€(νž™ 할당이 2번 λŒ€μ‹  1번 이루어지며, 같은 λ©”λͺ¨λ¦¬ 쑰각에 λ†“μ΄λŠ” 데닀가, new μ—μ„œ μ˜ˆμ™Έκ°€ λ°œμƒν–ˆμ„ λ•Œμ˜ λ©”λͺ¨λ¦¬ λˆ„μˆ˜λ„ 막을 수 μžˆμœΌλ‹ˆκΉŒ). 그런데... κ·ΈλŸΌμ—λ„ λΆˆκ΅¬ν•˜κ³  new λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” 경우λ₯Ό 보면, 크게 2가지 μ΄μœ κ°€ λ‚˜μ˜¨λ‹€. μ»€μŠ€ν…€ μ‚­μ œμžλ₯Ό μ‚¬μš©ν•˜λŠ” 경우 μƒμ„±μžκ°€ private 인 경우 100번 μ–‘λ³΄ν•΄μ„œ, 1λ²ˆμ€ κ·Έλ ‡λ‹€ 쳐도, 2λ²ˆμ€ μ§κ΄€μ μœΌλ‘œ 와닿지가 ..

Tutorials/C++ : Expert 2023. 9. 14. 19:31
[C++ κ²Œμž„ μ„œλ²„] 2-6. λ©”λͺ¨λ¦¬ ν’€ #1

[C++ κ²Œμž„ μ„œλ²„] 2-6. λ©”λͺ¨λ¦¬ ν’€ #1 핡심 : 1. λ©”λͺ¨λ¦¬ 풀을 μ΄μš©ν•˜λ©΄, λ©”λͺ¨λ¦¬ νŒŒνŽΈν™”λ₯Ό ν”„λ‘œκ·Έλž˜λ° λ ˆλ²¨μ—μ„œ μ–΄λŠ 정도 ν•΄μ†Œν•¨μœΌλ‘œμ¨ λ©”λͺ¨λ¦¬λ₯Ό μ’€ 더 효율적으둜 μ‚¬μš©ν•  수 μžˆλ‹€. 2. 할당에 ν•„μš”ν•œ λ©”λͺ¨λ¦¬ 쑰각의 크기에 따라 λ©”λͺ¨λ¦¬ 풀을 각각 λ§Œλ“€μ–΄ μ‚¬μš©ν•˜λŠ” κ²½μš°κ°€ 있고, 같은 μ‚¬μ΄μ¦ˆλ§Œ μ‚¬μš©ν•˜λŠ” λ©”λͺ¨λ¦¬ 풀을 ν™œμš©ν•  μˆ˜λ„ μžˆλ‹€. 3. λ©€ν‹° μ“°λ ˆλ“œ ν™˜κ²½μ—μ„œ λ©”λͺ¨λ¦¬ 풀을 ν™œμš©ν•œλ‹€λ©΄, ν’€ μ ‘κ·Ό μ‹œ Lock 을 잘 μž‘μ•„μ£Όλ„λ‘ ν•˜μž. 였브젝트 풀링은 μ•„μ£Ό.. 였래된 μœ μ„œ κΉŠμ€ 기법이닀. μ£Ό λͺ©μ μ€ λ©”λͺ¨λ¦¬ νŒŒνŽΈν™”λ₯Ό μ΅œμ†Œν™”ν•˜κΈ° μœ„ν•΄ ν”„λ‘œκ·Έλž˜λ° λ ˆλ²¨μ—μ„œ λ©”λͺ¨λ¦¬λ₯Ό 효율적으둜 κ΄€λ¦¬ν•˜κΈ° μœ„ν•¨μΈλ°, 사싀 μ£Ό 골격은 κ°„λ‹¨ν•˜λ‹€. λ©”λͺ¨λ¦¬ 쑰각을 담을 'ν’€'을 λ§Œλ“€κ³ , λ©”λͺ¨λ¦¬κ°€ ν•„μš”ν•  λ•Œ μƒˆλ‘­κ²Œ λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ήν•˜κ³ , ν• λ‹Ήν•œ λ©”..

Game Dev/Game Server 2023. 9. 11. 17:25
[언리얼] UI μ—μ„œ μ• λ‹ˆλ©”μ΄μ…˜μ˜ μ΄λ²€νŠΈκ°€ λλ‚¬μŒμ„ μ•Œλ €μ£ΌλŠ” 방법

[언리얼] UI μ—μ„œ μ• λ‹ˆλ©”μ΄μ…˜μ˜ μ΄λ²€νŠΈκ°€ λλ‚¬μŒμ„ μ•Œλ €μ£ΌλŠ” 방법 핡심 : 1. UI 에 μ‚½μž…λœ μ• λ‹ˆλ©”μ΄μ…˜μ—μ„œ 이벀트λ₯Ό μΆ”κ°€ν•˜κ³ , κ·Έλž˜ν”„μ—μ„œ μ΄λ²€νŠΈκ°€ λ°œμƒν–ˆμ„ λ•Œ ν˜ΈμΆœν•  ν•¨μˆ˜λ₯Ό C++ μ—μ„œ κ²€μƒ‰ν•΄μ„œ μ—°κ²°ν•΄ μ£Όλ©΄ λœλ‹€. 가끔 그런 κ²½μš°κ°€ μžˆλ‹€. μ½”λ“œλ‘œ ν’€μ–΄μ•Ό ν•˜λŠ” λ™μž‘κ³Ό μ—°μΆœμ„ ν•¨κ»˜ μ‚¬μš©ν•΄μ•Ό ν• λ•Œ, νŠΉμ • λ™μž‘μ„ μ—°μΆœμ΄ λλ‚˜λŠ” 타이밍에 μ˜μ‘΄ν•΄μ•Ό ν•˜λŠ” κ²½μš°κ°€. λŒ€ν‘œμ μœΌλ‘œ μ• λ‹ˆλ©”μ΄μ…˜μ΄ μžˆλŠ”λ°, μ• λ‹ˆλ©”μ΄μ…˜μ΄ μ™„μ „νžˆ λλ‚˜κ±°λ‚˜, νŠΉμ • μ‹œμ μ— 왔을 λ•Œ μ½”λ“œμ—μ„œ νŠΉμ • λ™μž‘μ„ μˆ˜ν–‰ν•˜λ„λ‘ λ§Œλ“€μ–΄μ•Ό ν•˜λŠ” μΌ€μ΄μŠ€κ°€ μ™•μ™• 생기곀 ν•œλ‹€. 보톡 μŠ€ν‚¬ μͺ½ κ΅¬ν˜„μ„ ν•˜λ‹€λ³΄λ©΄, Notify 같은 κ±Έ λ§Œλ“€μ–΄μ„œ 이λ₯Ό ν•΄κ²°ν•˜κΈ°λ„ ν•˜μ§€λ§Œ.. UI 의 κ²½μš°μ—λŠ”, 이벀트 트리거λ₯Ό 톡해 이λ₯Ό ν•΄κ²°ν•  수 μžˆλ‹€. 이제 μ˜ˆμ‹œλ₯Ό 보자. 일단 μ›ν•˜λŠ” UI λ₯Ό ..

Game Dev/Unreal C++ : Dev Log 2023. 9. 8. 19:15