Minimax 알고리즘이 뭐에요?Minimax는 두 플레이어가 번갈아 가며 수를 두는 게임에서 많이 사용되는 알고리즘이다.AI는 최대한 좋은 선택을 하려하고 (Maximizer)상대방은 AI에게 최대한 불리한 선택을 하려고 한다 (Minimizer)이 때 가능한 모든 경우의 수를 탐색해서 최적의 수를 결정하는 방식이다.모든 경우의 수를 내다 보고 가장 높은 점수가 나온 수를 고르는 방식으로 복잡한 게임일수록 계산하는데 오래걸릴 수 있음!Tic-Tac-Toe로 알아보는 Minimax 알고리즘깊이 우선 탐색을 수행하며 끝까지 탐색한 뒤 결과에 따라 점수를 부여한다.즉, 발생할 수 있는 모든 경우의 수를 탐색한 뒤 결과에 점수를 부여해서 가장 높은 점수를 획득하는 수를 두는 방식이다. 모든 경우의 수를 탐색하..
Unity 프로젝트에서 메인 화면에서 게임 모드를 선택해 씬을 전환할 때, 이전 게임 상태가 유지되어 예상치 못한 동작이 발생하는 문제가 있었습니다.이번 포스팅에서는 그 원인과 해결 방법을 공유합니다.🚨 문제 상황메인 화면에서 싱글 플레이를 선택 후 게임을 진행한다.게임을 끝내거나 중간에 종료해 다시 메인 화면으로 이동한다.2인 플레이(Co-Op)를 선택하면 AI가 수를 두는 문제가 발생한다.👀 즉, 게임 모드를 변경했음에도 이전 상태가 유지되는 문제!✍ 기존 코드// ... public enum GameType { SinglePlayer, CoOpPlayer } private GameType currentGameTypeState; public void ChangeToGameScene(GameT..
싱글톤이 뭐에요?간단히 말해, “하나의 클래스 인스턴스만 존재하도록 보장하고, 그 인스턴스를 전역적으로 공유하자!” 라는 철학이 담긴 디자인 패턴이에요.우리 게임에서 사운드 매니저, 게임 매니저 같은 애들은 굳이 여러 개가 있을 필요가 없잖아요. 여기저기서 귀찮게 FindObjectOfType 같은 거 돌리지 말고, 하나만 확실하게 잡아놓고 전역으로 꺼내 쓰자… 그게 싱글톤입니다.왜 싱글톤을 써야할까?전역 접근"어디서든" Manager.Instance 이런식으로 호출할 수 있어서 편해요.특히 공통 데이터나 시스템은 여기저기서 참조가 많이 필요한데, 그럴 때 아주 간단하게 불러올 수 있어요.중복 방지사운드 매니저나 게임 매니저가 두 개, 세 개씩 생겨서 꼬이는 일을 없게 만들어줘요."이미 만들어진 싱글톤이..
Git LFS가 뭔가요? Git LFS(Git Large File Storage)는 Git으로 관리하기에는 너무 큰 파일(이미지, 동영상, 디자인 소스 등)을 좀 더 효율적으로 다루기 위한 확장 기능이다.Git은 파일 변경 이력을 전부 저장해서, 용량이 큰 파일이 자주 바뀌면 저장소 용량이 기하급수적으로 커져버린다.Git LFS는 커밋할 때 실제 파일 대신 포인터만 집어 넣고, 진짜 무거운 파일은 따로 보관해서 저장소가 너무 커지는 것을 막아준다.쉽게 말하면,"Git에는 파일의 짜잘한 정보(포인터)만 남기고, 실제 큰 데이터는 LFS 서버에 보관한다."이렇게 생각하면 된다.왜 써야하죠?대형 파일을 몇번만 수정해도 용량이 기하급수적으로 커지기 때문에 지구를 위해서라도 쓰자.1. 큰 파일로 인한 저장소 비대..