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

언리얼 엔진 Accessed None 오류 원인과 해결 방법 총정리

언리얼 엔진에서 블루프린트 작업을 하다 보면 한 번쯤 반드시 만나게 되는 오류가 있습니다. 바로 **Blueprint Runtime Error: Accessed None**입니다. 처음 이 오류를 보면 블루프린트 자체가 잘못됐거나 엔진에 문제가 생긴 것처럼 느껴질 수 있습니다. 하지만 대부분은 생각보다 단순합니다. 사용하려는 Actor, Component, Widget 등의 Object Reference가 비어 있는 상태에서 해당 객체의 변수나 함수를 호출했기 때문​입니다. 저 역시 […]

게임 프로그래밍

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

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

게임 프로그래밍

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

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

게임소식

마비노기 모바일 카브락 어려움 공략|변경점과 핵심 패턴 정리

마비노기 모바일 카브락 어려움 난이도가 추가되면서 입문 난이도를 클리어했던 이용자들도 다시 패턴을 익혀야 하는 상황이 됐습니다. 단순히 카브락의 체력과 공격력만 높아진 것이 아니라, 꼬리치기와 공습, 혼돈의 부름처럼 파티원의 위치와 협력이 중요한 공격이 훨씬 위협적으로 작용하기 때문입니다. 특히 카브락은 거대한 몸과 날개로 화면을 가리는 경우가 많습니다. 보스에게 가까이 붙어 공격하다 보면 붉은 장판이나 다른 파티원의 위치를

게임 프로그래밍

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

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

게임소식

BIC 2026에서 발견한 주목할 만한 인디게임

평소 스팀이나 모바일 마켓을 둘러보다 보면 유명 게임 사이에 숨어 있는 독특한 인디게임을 발견할 때가 있습니다. 규모는 작아도 아이디어가 신선하고, 개발자가 무엇을 보여주고 싶었는지 분명하게 느껴지는 작품이 많습니다. 이런 인디게임을 한자리에서 직접 플레이하고 개발자와 이야기를 나눌 수 있는 국내 대표 행사 중 하나가 부산인디커넥트페스티벌, 줄여서 BIC입니다. 2026년 BIC 오프라인 행사는 8월 14일부터 16일까지 부산 벡스코에서

게임 프로그래밍

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

게임소식

신규 게임 플레이 해보자 | Legacy of Defense!

게임을 오래 붙잡고 있기는 부담스럽지만, 잠깐 실행해서 가볍게 즐길 만한 게임이 필요할 때가 있습니다. 이번에 플레이해 본 Legacy of Defense(레거시 오브 디펜스)​가 바로 그런 게임이었습니다. 처음 화면을 봤을 때는 횡스크롤 디펜스 게임처럼 보이지만, 실제로 플레이해 보면 뱀파이어 서바이벌 계열에서 익숙하게 봤던 성장 방식도 들어 있습니다. 몰려오는 몬스터를 공격하고, 레벨이 오르면 새로운 스킬을 선택하며, 전투가 끝난

게임소식

프리스타일 리부트 출시|원작과 달라진 점 총정리

2004년 국내 서비스를 시작한 온라인 농구 게임 ‘프리스타일’이 새로운 모습으로 돌아왔습니다. 조이시티가 개발한 신작 온라인 농구 게임 ‘프리스타일: 리부트(FreeStyle: Reboot)’가 2026년 8월 13일 국내 정식 서비스를 시작했습니다. 프리스타일 리부트는 단순히 원작의 그래픽만 개선한 버전이 아닙니다. 원작의 핵심이었던 3대3 실시간 대전과 스트리트 농구 분위기를 계승하면서 그래픽, 캐릭터 움직임, 경쟁 방식과 콘텐츠 구조를 현세대 이용자 환경에 맞게

위로 스크롤