GAME(17)
-
supabase - 애플 로그인을 위한 secret key 생성 루비 스크립트
아래 코드에서 본인의 정보(Team ID, Service ID, Key ID, Key 내용)를 수정하신 후, 터미널창에 통째로 복사해서 붙여넣고 엔터를 누르면 긴 텍스트가 나오는데 이걸 supabase 에서 secret key 에 넣으면 된다.=====require 'jwt'require 'openssl'# --- 여기에 본인 정보를 입력하세요 ---team_id = 'YOUR_TEAM_ID'client_id = 'cohttp://m.appswayd.TodoWeatherGlobal.sid'key_id = 'YOUR_KEY_ID'private_key_content = -----BEGIN PRIVATE KEY-----여기에 .p8 파일 내용을그대로 붙여넣으세요-----END PRIVATE KEY-----ST..
2026.05.12 -
Supabase 애플 로그인 연동, 패키지명만 넣으면 안 되는 이유 (Services ID 설정 필수!)
오늘은 Supabase에서 애플 로그인(Apple Auth)을 연동할 때 많은 개발자가 삽질하는 'Client ID' 설정에 대해 정리해 보려 합니다.구글링을 해보면 단순히 "iOS 패키지명(Bundle ID)만 입력하면 된다"는 글이 상단에 뜨는 경우가 많습니다. 하지만 실제로는 Services ID를 생성해서 함께 등록해 주어야 웹이나 서버 환경에서 인증 오류 없이 정상 작동합니다. 그 이유와 정확한 설정법을 공유합니다.1. 왜 패키지명(Bundle ID)만으로는 부족할까?네이티브 iOS 앱 자체에서만 로그인을 처리한다면 패키지명으로 충분할 수 있습니다. 하지만 Supabase는 서버 대 서버(Server-to-Server) 방식으로 애플 인증 서버와 통신하여 사용자 정보를 검증합니다.이때 애플은 보..
2026.05.12 -
[스카이콩콩] 다시 활성화, 최신 환경 최적화 및 시스템 업데이트 완료
한동안 스토어에서 만나볼 수 없었던 ****이 오랜 준비 끝에 최신 개발 환경에 맞춰 최적화를 마치고 다시 스토어에 올렸습니다. 단순히 서비스를 재개하는 것을 넘어, 플레이어분들께 보다 긴장감 넘치고 공정한 게임 환경을 제공하기 위해 핵심 시스템을 개선했습니다.🛠 주요 업데이트 사항1. 최신 개발 환경 최적화오랫동안 관리가 중단되었던 엔진과 라이브러리를 최신 버전으로 업데이트했습니다.최신 안드로이드 기기에서도 끊김 없이 매끄러운 플레이가 가능하도록 안정성을 확보했습니다.2. 캐릭터 최대 체력(HP) 제한 도입기존의 무제한 체력 증가 시스템을 폐지하고, 캐릭터마다 고유의 최대 체력치를 설정했습니다.이제는 단순히 오래 버티는 것을 넘어, 한정된 자원 속에서 얼마나 효율적으로 컨트롤하느냐가 고득점의 핵심이 ..
2026.04.04 -
택티컬 커맨더스 - 에일리언 행성 시스템
택컴팀에서 바라 본 택컴은 실시간 PvP 전투를 지향하는 게임이니 성장형 컨텐츠보다는 최대한 수평적인 PvP 밸런스를 추구하는 기조였습는데요. 그래서 어떤 컨텐츠, 어떤 아이템을 기획하더라도 RPG 처럼 성장에 도움을 주는 검이나 갑옷 같은 장비 아이템들은 지양하고 수평적인 컨텐츠 위주로 컨텐츠를 개발하는 방향을 가져갔고 그래도 당시 엄청난 인기를 끌고 있던 스타크래프트처럼 인기가 많아지면 될 거라 생각을 했었던 것으로 기억합니다. 개발자로서는 상당히 멋진 방향이었지만... 현실은 당연히 녹록치 않았습니다. 방향이 틀렸다기보다는 일단 스타크래프트의 반의 반의 반의..... 쿨럭... 반면에, 옆 파티션에 있던 바람의 나라는 자고 일어나면 동접 경신을 하고 있고... (부럽다...) 그래서, 특명이 나옵니..
2026.03.30 -
유니티 에러 해결 : System.NotSupportedException: Could not register to wait for file descriptor 1024
오랜만에 다시 게임을 만들고 있다. 스카이콩콩을 만들때는 윈도우즈에서 작업했었는데 iOS 용으로 빌드하려면 다시 맥으로 옮겨서 빌드하는게 번거로워 작년에 구매한 맥북 프로 m4 (24g) 에서 작업을 하고 있다. 그런데 유니티 에디터에서 뜬근없이 이런 에러가 떴다. 오잉? "the build error System.NotSupportedException: Could not register to wait for file descriptor 1024" 이 에러의 핵심 원인은 프로세스가 열 수 있는 파일 디스크립터(File Descriptor)의 개수 제한(보통 1024)을 초과했기 때문이라고 한다. 해결방법은 터미널에서 아래와 같이 제한을 올려서 실행하면 해결되는 것 같다. 유니티 설치 방법 혹은 버전에 따..
2026.02.19 -
택티컬 커맨더스 - 북미 서비스의 독립
당시 택컴의 데이터 테이블 구조는 유닉스 서버에 텍스트 파일 그대로 노출되어 있는 형태였다. 상황이 이렇다 보니 현지 서비스 운영자들이 유저들의 밸런스 조정 요청을 직접 듣고는, 한국 개발팀의 최종 확인 없이 임의로 수치를 변경하는 일이 종종 발생했었다. 개발팀 입장에서는 일관된 시스템 관리를 위해 테이블을 패키징하여 직접적인 수정이 불가능하도록 보안을 강화하기도 했었지만 이미 오픈된 구조 속에서 유연하게 운영해오던 현지 운영사 입장에서는 이런 조치가 큰 반발로 다가왔다. 서비스의 유연성이 떨어진다는 것이 이유였다. 한국 개발팀으로서는 국가별로 쏟아지는 서로 다른 요청사항을 하나의 일관된 버전으로 통합 관리해야 했기에, 각국 운영사들과 접점을 찾는 일은 매 순간이 고비였다. 이런 복잡한 상황 속에서 ..
2026.02.18 -
택티컬 커맨더스 - 추억 (4) 뮬런의 림보를 아시나요?
택컴은 행성과 행성 내에 4개 국가가 기본이었는데 국가들중에서는 뮬런, 탄탈, 고그, 크롬이 기억에 남는다. 지구 행성의 국가들로 시작부터 함께 해서인지 여러 국가들 중에서도 기본인 느낌이다. 2000년도 택컴의 지구 행성의 슈퍼 파워 유저는 림보라는 유저였다. 림보의 주력 유닛은 오리온이었고 그의 오리온은 당시 택컴 내 최고렙이었다. 당시 택컴은 렙업이 쉬운 게임은 아니었다. 이유는 잘 기억이 나지 않는다. 렙업이 쉽지 않았음에도 같은 오리온이지만 괜히 달라보이기까지 했다. 게다가, 유저들로부터 덕망까지 얻고 있었는데 택컴팀에 있을때 유저 모임에 초대되서 강남역 모퉁이에 있는 건물 2층 호프집에서 20명 정도의 택컴 유저분들을 만난 적이 있었고 그 자리에 림보가 있었다. 강남역에서 만난 유저분들은 다양..
2023.10.13 -
첫 자작 게임 런칭 - 스카이콩콩 (SkyKongKong)
2020년 겨울에 코로나로 집에만 있게 되서 리액트 네이티브라는 ios + aos 를 묶어서 개발해 줄 수 있는 프로그래밍 언어를 배워서 간단하게 일정과 날씨를 한번에 쉽게 확인할 수 있는 앱을 만들었었다. 2021년 11월이 되니 역시 코로나로 인해 제주에서도 비슷한 상황이 되어서 유니티로 게임을 만들어 보기로 했다. 유니티 게임 개발을 디렉팅했던 경험은 있지만 1인 개발로 직접 개발을 한 적은 없어서 맨땅에 헤딩하듯이 온갖 구글링을 통해 게임을 만들었다. 참고가 되었던 옛날 지그재그 게임에 캐릭터성과 점프를 곁들여서 몬스터를 밟으면 몬스터를 퇴치할 수 있게 했다. 몬스터와 충돌했을 때 튕겨 오는 느낌이 괜찮아서 이를 살려보기로 했고 이걸 기본 게임성으로 만들기로 했던 것. 여기에 길 위에 있는 골드를..
2022.02.12 -
Unity - Google admob banner 연동
구글 애드몹 전면 광고는 손쉽게 연동되었는데 배너 광고는 원하는대로 연동이 잘 안되었다. 대기화면에서만 배너가 보이고 게임을 시작하면 배너가 사라져야 하는데 계속해서 남아 있던 것. 구글링을 해보니 여러 구현 방법이 나왔지만 구글 공식 문서 방식대로 하면 아래와 같다. public void RequestBanner() { if (bannerView != null) { // banner 생성 전에 clean-up bannerView.Destroy(); } AdSize adaptiveSize = AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(AdSize.FullWidth); bannerView = new BannerView(adBanne..
2021.11.07 -
Unity - Device Simulator 와 Application.platform
Unity 에 Android Studio 처럼 모바일 에뮬레이터 기능이 추가되었다. 다만, 유니티는 에뮬레이터라고 하지 않고 Device Simulator 라고 하는 것 같다. 입력 관련 코딩을 하다가 Unity Play mode 에서는 잘 되는데 실제 모바일 기기에서만 발생하는 버그가 생겼는데 매번 빌드하기에는 시간이 오래 걸려서 이 Device Simulator 를 사용해보기로 했는데 수정해도 반영이 안되는 것 같아서 작은 착각(?)이 있었다. 이전 코드에서는 아래처럼 전처리기를 사용해서 컴파일 단계에서 분기되게 코딩했었는데 Unity Device Simulator 도 UNITY_EDITOR 로 인식된다. 컴파일 단계에서는 에디터에서 돌기 때문에 Device Simulator 를 돌려도 결국엔 에디터..
2021.11.07 -
유니티에서 SHA-1 Key 생성 방법
유니티로 간단한 하이퍼캐쥬얼 게임을 만들어보고 있는데 보통 모바일 게임에 있는 구글 플레이 리더보드 정도는 있으면 좋을 것 같다는 생각이 들었다. 관련해서 구글 플레이 콘솔에서 차근차근 진행을 하고 있는데 구글 클라우드 플랫폼에서 클라이언트 ID 를 발급받으려면 SHA-1 지문이 필요하다. 예전에 react native 로 투두날씨를 개발할 때는 이 SHA-1 key 를 만들 때 네이티브가 아니라서 생성툴을 찾느라 시간을 좀 썼었는데 유니티는 에디터 자체에서 제공해준다. 이래서 엔진이 좋구만! 유니티에서 SHA-1 Key 생성 방법은 간단하다. 유니티 상단 메뉴 Build Setting > Android > Project Settings > Player > Publishing Settings > Keys..
2021.11.05 -
unity - git 연동 에러 : because the tip of your current branch is behind...
로컬에서 git push 를 하려니 아래와 같은 에러가 나왔다. 원인을 찾아보니 git 에서 데이터 유실 염려가 있어서 띄우는 오류라고 한다. git pull 을 해봐도 오류가 해결되지 않아서 임시 방편으로 강제 푸쉬로 해결했다. + 를 써서 아래와 같이 커맨드창에서 입력, > git push -u origin +main 100% completed 로그가 찍혀서 잘 된 것 같은데 이후에 데이터 유실 되는 게 정말 있으면 case by case 로 해결하기로...
2021.11.05