본문 바로가기
반응형

전체 글67

[슬더스2 뜯어서 공부하기] 2. 느낀점 - 최적화는 언제나 옳을까? 서론결국 슬더스를 언팩해서 보고싶었던 이유는수많은 각종 연계 효과들을- 어떻게 연계되게끔 구현하고- 어떻게 효율적으로 간편하게 카드들을 생성했고- 데이터 세팅은 어떻게 했을까?하는 의문이 들었다.실제 출시된 게임의 코드를 보는일도 드문 기회니 언팩이 가능하다는 소식을 듣고 달려갔는데....결론결론은 과하게 완벽하려 하지 말자. 였다.사실 슬더스2는 완벽하게 성능을 생각해서 코드를 만들어야 할 게임이 아니다.먼저 가장 큰 이유는 역시 턴제라는 점이고, 대규모 플레이어, 충돌, 고성능 렌더 처리보통 우리가 "무겁다" 라고 표현하는 그 어떤 기능도 들어가 있지 않다.이런 상황에서 꼭 완벽하게 최적화를 하는게 정말 좋을까?에 대한 생각을 해볼 필요가 있는 것 같다.물론, 효율적으로 수행되면 당연히 좋다.하지만.. 2026. 5. 31.
[슬더스2 뜯어서 공부하기] 1. 리소스 추출 (언팩) 개요평소 카드게임을 좋아해서 첫 프로젝트로 슬더스 모작을 했었고... 마지막 이직때도 개인 포트폴리오로 덱빌딩 게임을 만들었었는데, 과연 이번에 내부적으로 대폭 개편되었다는 슬더스2의 내부 코드는 어떻게 이루어져 있을까 알아보고자 언패킹을 해봤음.언팩이 도의적으로 괜찮은지에 대한 문제가 있을 수 있는데, 참고로 슬더스는https://www.reddit.com/r/godot/comments/1rm7ueb/slay_the_spire_2_can_be_decompiled/?tl=ko&utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button Reddit의 godot 커뮤니티: Slay the Spire 2는 디컴파.. 2026. 5. 4.
한칸 몇천원으로 장식장에 아크릴 문 설치하기 앞이 뚫린 장식장(책장)에 대충 피규어, 인형 등등을 놓다보니 정신차리고 나면 먼지가 잔뜩 쌓여있어 청소하기 힘든 상황이 나와서먼지를 열심히 닦아주다가 그냥 문을 달아야겠다고 다짐.이후 아크릴로 문을 설치하게 되는 과정을 남겨봅니다.설치 완료 영상준비물1. 아크릴 판 (문)2. 경첩3. 손잡이4. 고정을 위한 양면테이프 (또는 접착제, 나사 등)최종적으로 3칸 작업하는데 총 3만원 살짝 안되게 사용했습니다. 칸당 약 9천원?근데 전 경첩이랑 손잡이, 양면테이프를 비싼걸 써서.. 잘 찾아보면 훨씬 저렴하게도 가능할거에요.(양면테이프는 집에 있던거 쓴거라... 쿠팡가 기준으로 6천원 더했습니다.) 네이버에 "아크릴 판"이라고 검색하면 나오는 수많은 업체 중 한곳에서 경첩/손잡이/판을 모두 구매.사실 경첩이.. 2025. 7. 27.
[Git] 실수로 올린 커밋 삭제/되돌리는 방법 가끔 쓸 일이 있는데 외워질 정도로 자주는 안쓰고...쓸 때마다 검색하기 귀찮아서 올리는 글. 브랜치를 오가던 도중, 다시 작업 브랜치로 되돌아가는걸 잊고 실수로 커밋하는 경우가 있다.이때 아직 푸시 하기 전 이라면, Git Bash를 열어, git reset --soft HEAD~1 명령어를 입력하면 커밋이 사라진다. (내가 커밋한 변경점은 로컬에 그대로 남아있다. 브랜치 이동 후, 그대로 다시 커밋하면 됨,)위의 명령어에서 soft 부분을 hard로 바뀐 유사한 명령어도 있는데, 이는 내 변경점까지 모두 삭제하는 명령어이니 주의하도록 하자. 2025. 7. 18.
디자인패턴 - 전략 패턴 전략 패턴이란?동일한 문제를 해결하는 여러 알고리즘을 사용하는 객체가 실행 중에 알고리즘을 바꿀 수 있도록 하는 패턴입니다. 즉, 알고리즘을 객체로 캡슐화하고, 이를 동적으로 교체하는 방식입니다.사실 디자인 패턴이라는 말이 거창하지, 아마 예시만 봐도 아무 생각 없이 이렇게 사용하고 있었을 확률이 높다고 생각되는 패턴입니다.사용 예시대표적인 예시로는 게임에서의 "스킬 시스템"이 있습니다. 게임에서 각기 다른 스킬들을 Skill 클래스를 상속받은 다양한 클래스들로 정의하고, 각 클래스에서 StartSkill() 메서드를 오버라이드하여 스킬의 구체적인 동작을 구현합니다.이후, 스킬을 실행해야 할 상황에서는 Skill 타입의 변수로 정의한 후, StartSkill()을 실행시키면, 실제로 어떤 클래스인지에 따.. 2025. 2. 28.
[Unity] 시야 구현하기(URP) 목표1. 플레이어는 시야를 가진다.2. 해당 시야의 각도를 조절할 수 있다. (사진의 경우 360도로 설정)3. 장애물에 닿으면 그 뒷쪽은 시야가 닿지 않는다. (사진의 경우 파랑색이 벽)4. 적들은 내 시야에 들어와 있어야 보이며, 장애물 또한 시야에 닿아야 보인다.5. 내 시야가 닿지 않는 부분은 검은색으로 칠한다. 구현 방식 간단 요약1. 플레이어는 지정한 각도로 많은 광선을 쏴서 닿는곳을 체크. (장애물 없을 시 최대거리)2. 1번에서 얻은 각 광선들의 끝점을 이어 시야 오브젝트를 만듦.2-1. 추후 처리를 위해 장애물 처리가 안되는 언제나 동그란 시야 오브젝트도 생성.3. 시야 오브젝트의 스탠실값을 1로 수정.3-1. 2-1의 오브젝트의 스탠실값을 2로 수정.4. 적 오브젝트는 해당 부분의 스탠.. 2025. 1. 20.
반응형