OSWorlds - 게임 블로그 📌 게임 프로그래밍 📌 게임소식 🔑 로그인 📝 회원가입

게임 프로그래밍

게임 프로그래밍 방법, Asset 제작방법

게임 프로그래밍

언리얼 엔진 Damage System 만들기|Apply Damage 사용법

캐릭터가 공격을 받으면 체력이 감소하고, 체력이 0이 되면 사망하는 기능은 액션 게임에서 가장 기본적인 시스템입니다. 처음에는 공격 블루프린트에서 상대 체력 변수를 직접 가져와 빼는 방식으로 구현하기 쉽지만, 프로젝트가 커지면 공격마다 체력 감소 로직이 반복되고 플레이어와 적의 처리도 뒤섞이게 됩니다. 언리얼 엔진은 이러한 문제를 줄일 수 있도록 Apply Damage, Event AnyDamage, Damage Type 같은 기본 데미지 […]

게임 프로그래밍

언리얼 엔진 Event Dispatcher 사용법|블루프린트 이벤트 전달하기

게임을 만들다 보면 하나의 사건을 여러 블루프린트에 동시에 알려야 하는 상황이 자주 생깁니다. 보스를 처치했을 때 문이 열리고, 전투 음악이 멈추며, 퀘스트 UI가 갱신되는 상황이 대표적인 예입니다. 이 기능들을 보스 블루프린트에서 직접 하나씩 실행하도록 만들 수도 있지만, 연결되는 기능이 늘어날수록 보스가 문과 UI, 사운드 시스템을 모두 알고 있어야 합니다. 프로젝트가 커지면 블루프린트 사이의 의존성이 복잡해지고

게임 프로그래밍

언리얼 엔진 Event Tick을 남발하면 안 되는 이유

언리얼 엔진 블루프린트를 배우다 보면 가장 먼저 만나게 되는 이벤트 중 하나가 Event Tick입니다. 별도의 호출 없이 계속 실행되기 때문에 캐릭터 상태를 확인하거나 오브젝트를 움직일 때 무척 편리해 보입니다. 하지만 모든 기능을 Event Tick에 연결하기 시작하면 프로젝트가 커질수록 성능이 떨어지고 블루프린트 구조도 복잡해질 수 있습니다. 그렇다고 Event Tick을 무조건 사용하면 안 된다는 뜻은 아닙니다. 중요한

게임 프로그래밍

언리얼 엔진 Blueprint Interface와 Cast To 차이

언리얼 엔진 블루프린트로 상호작용 기능을 만들다 보면 Cast To 노드를 자주 사용하게 됩니다. 문을 열 때도 Cast To, 적에게 공격을 전달할 때도 Cast To, 아이템을 획득할 때도 Cast To를 사용하다 보면 Event Graph 곳곳에 서로 다른 Cast 노드가 늘어나기 시작합니다. 이때 자주 추천되는 기능이 Blueprint Interface입니다. 하지만 Cast To를 모두 Interface로 바꿔야 하는지, 두 기능이

게임 프로그래밍

언리얼 엔진 GameMode,GameState,PlayerState 차이

언리얼 엔진으로 게임을 만들다 보면 처음에는 대부분의 기능을 Character나 PlayerController 안에 넣게 됩니다. 게임 시작, 제한 시간, 점수, 킬 수, 스테이지 진행 상태까지 한 블루프린트에서 처리하는 경우도 많습니다. 싱글플레이 게임에서는 이렇게 만들어도 당장 큰 문제가 보이지 않을 수 있습니다. 하지만 프로젝트가 커지거나 멀티플레이 기능을 추가하면 “이 변수는 어디에 저장해야 하지?”라는 고민이 시작됩니다. 특히 이름이 비슷한

게임 프로그래밍

언리얼 엔진 PlayerController와 Possess 사용법|캐릭터 조작이 안 될 때 확인할 것

언리얼 엔진에서 Character 블루프린트를 만들고 이동 입력까지 연결했는데 캐릭터가 움직이지 않는 경우가 있습니다. Character는 정상적으로 레벨에 배치되어 있고 입력 노드도 실행되는데, 키보드나 마우스 입력에 반응하지 않는 것입니다. 이때 가장 먼저 확인해야 할 대상이 바로 PlayerController와 Possess 상태입니다. PlayerController는 사람의 입력을 받아 게임 속 Pawn이나 Character를 조종하는 클래스입니다. Character가 게임 월드에 존재하는 몸이라면 PlayerController는 그 몸을

게임 프로그래밍

언리얼 엔진 Actor, Pawn, Character 차이 쉽게 이해하기

언리얼 엔진에서 블루프린트 클래스를 만들면 가장 먼저 마주치는 선택지가 있습니다. 바로 Actor, Pawn, Character 중 어떤 부모 클래스를 선택할 것인가입니다. 세 클래스는 서로 완전히 별개가 아니라 다음과 같은 상속 관계를 가집니다. Actor → Pawn → Character 즉, Pawn은 Actor의 기능을 물려받고, Character는 Pawn의 기능을 물려받습니다. 그렇다고 항상 기능이 많은 Character를 선택하는 것이 정답은 아닙니다. 플레이어가

게임 프로그래밍

언리얼 엔진 프로그래밍 입문|블루프린트와 C++ 차이와 초보자 공부 순서

언리얼 엔진으로 게임 개발을 시작하면 가장 먼저 만나게 되는 고민 중 하나가 “블루프린트만 배워도 될까, 아니면 C++부터 공부해야 할까?”​라는 질문입니다. 프로그래밍 경험이 없는 사람이라면 C++이라는 단어 자체가 어렵게 느껴질 수 있고, 반대로 개발 경험이 있는 사람은 블루프린트를 단순한 보조 도구로 생각하기도 합니다. 하지만 언리얼 엔진에서는 두 방식을 경쟁 관계로 생각하기보다 서로 다른 장점을 가진 개발

게임 프로그래밍

언리얼 엔진 5.8 직접 프로젝트를 업데이트해봤습니다|업데이트 후 발생한 문제와 주의점

언리얼 엔진 5.8 직접 프로젝트를 업데이트해봤습니다|업데이트 후 발생한 문제와 주의점 언리얼 엔진으로 프로젝트를 계속 개발하다 보면 언젠가는 엔진 버전을 업데이트해야 할 때가 옵니다. 새로운 기능을 사용할 수 있고 기존 버그가 수정된다는 장점도 있지만, 이미 어느 정도 개발이 진행된 프로젝트라면 무작정 최신 버전으로 올리는 것도 부담스럽습니다. 저 역시 기존에 작업하던 프로젝트를 Unreal Engine 5.8 환경으로 업데이트했습니다.

게임 프로그래밍

언리얼 엔진 6 출시일과 새로운 기능 총정리|UE5 개발자가 UE6를 기다려야 할까?

언리얼 엔진 5가 출시된 이후 Nanite, Lumen, World Partition 등 게임 개발 환경에 많은 변화가 있었습니다. 최근에는 자연스럽게 언리얼 엔진 6(Unreal Engine 6)에 대한 관심도 높아지고 있습니다. 언리얼 엔진 6는 언제 출시될까요? 그리고 현재 UE5로 프로젝트를 개발하고 있다면 UE6를 기다리는 것이 좋을까요? 저 역시 현재 Unreal Engine 5 환경에서 프로젝트를 개발하고 있기 때문에 새로운 엔진

위로 스크롤