데브허브 | DEVHUB | Refactoring a Big Ol' MESS - Live Godot Game DevelopmentRefactoring a Big Ol' MESS - Live Godot Game Development
- 개발자는 풀타임 인디 개발자로서 자신의 게임 'Gunforged'와 Godot 4 멀티플레이어 Udemy 강좌를 홍보하며 지원을 요청합니다. 🎮
- 현재 게임의 복잡한 카드 시스템을 대규모 리팩토링하는 중이며, 이는 순환 참조 및 공유 참조 문제로 인한 심각한 버그를 해결하기 위함입니다. 🛠️
- 기존 카드 시스템은 세 가지 클래스(기본 카드, 카드 스탯, 시각적 표현)로 나뉘어 있었고, Refcounted 객체가 메모리에서 제대로 해제되지 않는 문제가 있었습니다. 🐛
- 리팩토링 계획은 순환 참조를 피하고, 카드 표현 클래스를 두 개(데이터/로직 + 시각적 구성 요소)로 줄이며, '카드 스탯' 객체를 제거하는 것입니다. 📉
- 특히, CardEventHub와 같은 새로운 시스템은 약한 참조(weak references)를 사용하여 Refcounted 객체가 더 이상 필요 없을 때 메모리에서 해제되도록 하여 메모리 누수를 방지합니다. ♻️
- '데미지 컨텍스트 객체'는 데미지 관련 모든 속성(양, 유형, 치명타 여부, 가해자, 대상)을 단일 객체에 담아 데미지 처리 로직을 간소화하고 코드의 신뢰성과 확장성을 높이는 방법입니다. 💥
- C#은 컴파일러 오류를 통해 리팩토링 시 변경해야 할 부분을 명확히 알려주어 GDScript보다 대규모 리팩토링에 유리하다는 점을 강조합니다. 💻
- 초보 개발자에게는 작은 게임을 만들고 다시 방문하거나, 계속해서 새로운 게임을 만드는 두 가지 학습 방식 모두 유효하며, 흥미를 잃지 않고 꾸준히 배우는 것이 중요하다고 조언합니다. 💡
- 스트리밍 중 고양이의 방해와 같은 일상적인 요소들이 방송에 재미를 더하며, 후원자들에게 감사를 표합니다. 🐈