본문 바로가기
반응형

분류 전체보기442

1인 개발 가디언 슬래시 출시 후기 5 1인 개발 가디언 슬래시 출시 후기 5 이번 포스트에서는 개발 과정과 더불어서 출시 진행 과정 그리고 1인 개발 현실과 수익에 대한 내용을 중점적으로 다뤄 보고자 합니다. 첫 시작처음 시작은 단순한 기획으로 시작했습니다. "건물 부수기류 모바일 게임을 만들자 !" "출시까지 해보자 !"와 같은 의지 하나로 시작하게 되었고 꽤 간단한 기획이었습니다. 처음 그림을 보면 엄청 단순하게 벽돌과 함께 캐릭터밖에 없었습니다. 뭐 큰 그림은 비슷하긴할지도... 처음 기획에는 방패가 있었지만.. 마음에 드는 이미지도 없고 에셋도 없고, 그리기도 힘들고... 애니메이션도 복잡해지고... 무너지던 한 순간이었습니다. 큰 그림을 잡고 핵심 리소스를 찾는게 가장 먼저였습니다. 없으면... 시작부터 진행하지를 못하니..다행이도.. 2025. 1. 1.
1인 개발 가디언 슬래시 출시 후기4 1인 개발 가디언 슬래시 출시 후기4 이번 포스트에서는 서버에 대한 내용을 조금 작성해볼까 합니다.가디언 슬래시를 개발하면서 서버에 대해 처음 접하고 개발한 만큼 지식의 크기는 남들과 다르지는 않습니다.다만 서버를 개발하고 실제 프로젝트에 적용하기까지 많은 시행착오가 있었고 경험을 쌓았다는 것이 큰 재산이 된 것 같습니다. 백문이 불여일견이라는 말처럼 한 번 경험해보니 생각보다 조심해야할 것도 많고 고민해야할 것도 많았습니다. 가디언 슬래시 프로젝트에서는 TCP/IP 프로토콜을 사용했습니다. 데이터의 일관성이 중요한 만큼 UDP 보다 신뢰도가 높은 TCP 프로토콜을 선택하는 것이 알맞았습니다. 물론 UDP 를 이용해서 TCP 처럼 신뢰도가 강한 연결을 만들수는 있겠지만, 직접 만들어서 처리하는 것이 더 .. 2025. 1. 1.
1인 개발 가디언 슬래시 출시 후기3 1인 개발 가디언 슬래시 출시 후기3 이번 포스트에서는 아이템에 관련된 내용을 기술해보겠습니다. 아이템은 첫 포스트에서 확인했듯이 무기, 목걸이, 반지 3 종류가 있습니다.아이템은 공통적으로 장착할 수 있는 기능이 포함됩니다. 인터페이스로 나눠놨다면 좀 더 확장성 있는 코드를 작성할 수 있었을텐데하는 아쉬움도 있지만 이 프로젝트에서는 객체지향설계가 목적이 아닌 개발 프로세스를 체득하는 것에 의의를 두고 진행했기 때문에 넘어간 부분들이 꽤 많습니다.무기 강화무기의 경우 공격력과 수량이 표시됩니다.(현재는 강화레벨도 표시됩니다.)강화를 위한 수량과 재화를 클래스 내에서 포함하고 있고, 강화를 진행하기 위해서는 3단계의 과정을 거칩니다.먼저 서버에게 부담을 주지 않기 위해 (서버에서 진행해도 큰 부담은 없지만.. 2025. 1. 1.
1인 개발 가디언 슬래시 출시 후기2 1인 개발 가디언 슬래시 출시 후기2 이전 글에서는 서버의 선택과 데이터베이스에 대한 내용을 적었습니다.본 글에서는 클라이언트의 입장에서 게임을 어떻게 구성해왔는지 적어보겠습니다.  게임 플레이 영상  게임의 인터페이스 구성은 생각보다 단순합니다.보이는 것처럼 스코어, 체력, 진행도, 블록 체력, 콤보, 데미지, 캐릭터 조작 등으로 인터페이스가 구성되어 있습니다.그 외에도 점프와 착지 효과, 공격 효과, 블록 파괴 효과, 블록 감속 효과, 다이아 획득 효과 등 다양한 파티클을 구성해 놨으며, 보이지 않는 곳에는 풀링 시스템과 사운드 시스템, 전투 시스템, 게임 컨트롤 시스템 등 다양한 기능들이 숨겨져 있습니다. 캐릭터 구현게임을 구현하면서 가장 처음 했던 작업은 캐릭터의 구현이었습니다. 2D 스프라이트 .. 2025. 1. 1.
1인 개발 가디언 슬래시 출시 후기 1인 개발 가디언 슬래시 출시 후기 게임 이름 : 가디언 슬래시플랫폼 : 구글 플레이 스토어 (안드로이드)출시 날짜 : 2024년 12월 19일  2024년 12월 19일 구글 플레이 스토어에 첫 게임을 출시하였습니다.처음 게임을 기획할 때에는 어렸을 때 즐겨 했던 건물 부수기를 모티브로 잡고 모바일 환경에 맞춰 여러가지 기능을 추가하면서 시작했습니다. 건물 부수기 게임은 하늘에서 떨어지는 건물을 스틱맨이 검을 휘둘러 부수는 것과 건물을 막아 떨어지는 속도를 늦출 수 있는 것이 이 게임의 재미라고 판단하였고, 재미 요소와 더불어 여러가지 성장 요소(스테이지, 아이템)를 추가하면서 게임의 틀을 잡아나갔습니다. 가디언 슬래시 프로젝트를 진행하면서 가장 욕심냈던 부분은 게임 개발 프로세스의 이해와 응용이었습니.. 2025. 1. 1.
Unity 6 Challenge 참여 후기 – 노마드 코더 튜토리얼로 나만의 게임 만들기 Unity 6 Challenge 참여 후기 – 노마드 코더 튜토리얼로 나만의 게임 만들기안녕하세요! 이번 포스트에서는 Unity 6 Challenge에 참여한 후기를 공유해보려고 합니다. 이 챌린지는 Unity Korea와 노마드 코더가 함께 준비한 이벤트로, 초보자도 쉽게 게임을 만들 수 있도록 다양한 리소스와 가이드를 제공해 주었습니다.🎯 Unity 6 Challenge란?Unity 6 Challenge는 Unity 6 버전의 기능을 체험하고 누구나 게임을 만들어 볼 수 있도록 유도하는 프로그램입니다. 특히 노마드 코더의 튜토리얼을 활용하면 Unity에 대한 경험이 부족해도 손쉽게 게임을 제작할 수 있었어요.기간: 2024년 12월 15일 ~ 2025년 1월 30일참여 방법:Unity 6을 설치하고.. 2024. 12. 18.
CentOS 7에서 systemd로 게임 서버 관리하기 CentOS 7에서 systemd로 게임 서버 관리하기CentOS 7 환경에서 게임 서버를 안정적으로 관리하기 위해 systemd를 활용하는 방법을 정리했습니다. 이 글에서는 서비스 파일을 작성하고, 서버를 실행 및 관리하는 과정을 설명합니다. 또한, 서버의 오류 로그만 출력하는 방법과 프로그램 수정 후 반영하는 절차도 포함했습니다.1. 게임 서버 서비스 파일 생성systemd는 Linux에서 서비스 관리에 널리 사용됩니다. 게임 서버 프로그램(program.dll)을 서비스로 등록하면 부팅 시 자동으로 시작되며, 오류가 발생해도 자동 재시작이 가능합니다.서비스 파일 작성서비스 파일 생성아래 명령어로 서비스 파일을 생성합니다:sudo vi /etc/systemd/system/game_server.serv.. 2024. 11. 29.
Unity IAP JNI 에러 해결 사례 Unity IAP JNI 에러 해결 사례Unity를 사용해 인앱 결제를 개발하면서 다양한 상황에서 문제가 발생할 수 있습니다. 특히 Android 환경에서 Unity IAP를 활용하는 과정 중 JNI: Init'd AndroidJavaObject with null ptr! 에러를 만나게 되면 문제를 파악하고 해결하는 데 시간이 걸릴 수 있습니다. 이번 포스트에서는 제가 겪었던 문제와 이를 해결한 사례를 공유하고자 합니다.문제 상황: Unity IAP에서 발생한 JNI 에러Unity IAP를 사용해 결제를 처리하던 중, android logcat에서 아래와 같은 JNI 관련 에러를 확인했습니다.Error Unity Exception: JNI: Init'd AndroidJavaObject with null .. 2024. 11. 28.
MySQL Timeout Error: The client was disconnected by the server because of inactivity MySQL Timeout Error: The client was disconnected by the server because of inactivityMySQL을 사용할 때 다음과 같은 에러를 본 적이 있을 것입니다:The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.이 에러는 클라이언트가 MySQL 서버에 연결된 후 일정 시간 동안 아무 작업도 수행하지 않을 경우 서버가 연결을 종료하면서 발생합니다. 이번 포스트에서는 이 에러의 원인, 해결 방법, 그리고 관련된 코드 최적화 방법을 소개합니다.1. 에러 원인MySQ.. 2024. 11. 25.
MySQL 프로시저에서 변수와 컬럼명이 충돌할 때 발생하는 문제 해결하기 MySQL 프로시저에서 변수와 컬럼명이 충돌할 때 발생하는 문제 해결하기1. 들어가며MySQL에서 프로시저를 작성하다 보면 테이블의 컬럼 이름과 프로시저 안에 선언된 변수 이름이 대소문자만 다른 경우, 의도치 않은 충돌 문제가 발생할 수 있습니다. 이로 인해 데이터베이스 쿼리가 예상대로 동작하지 않거나, 잘못된 데이터가 처리되는 경우가 생길 수 있습니다. 이 글에서는 이 문제의 원인과 해결 방법을 살펴봅니다. 2. 문제 상황 설명다음과 같은 MySQL 프로시저를 예로 들어보겠습니다:DELIMITER $$CREATE PROCEDURE UpdateUserCurrency(IN UserID INT, IN currency INT)BEGIN DECLARE Currency INT; SELECT Curren.. 2024. 11. 24.
SCP를 이용한 파일 및 폴더 전송 가이드 SCP를 이용한 파일 및 폴더 전송 가이드scp는 SSH를 기반으로 안전하게 파일 및 디렉토리를 복사할 수 있는 유용한 도구입니다. 이 포스트에서는 scp를 사용하여 파일과 폴더를 로컬에서 원격 서버로 전송하거나, 반대로 서버에서 로컬로 다운로드하는 방법을 단계별로 설명하겠습니다.  1. SCP란?SCP(Secure Copy Protocol)는 SSH를 통해 파일과 디렉토리를 안전하게 전송하기 위한 프로토콜입니다. scp 명령어는 보안 연결을 설정하여 파일을 복사하며, 로컬 시스템과 원격 서버 간의 파일 이동에 널리 사용됩니다. 2. SCP 명령어 기본 형식scp [옵션] [출발지 경로] [사용자명]@[서버 주소]:[목적지 경로] 구성 요소 설명 scp파일 전송 명령어옵션전송 시 추가적인 설정(예: -.. 2024. 11. 23.
리눅스 CentOS에서 파일 삭제 방법 총정리 리눅스 CentOS에서 파일 삭제 방법 총정리리눅스 CentOS에서 파일을 삭제하는 방법은 다양하며, 파일의 유형, 위치, 접근 권한, 삭제 대상의 크기에 따라 적합한 방법이 다를 수 있습니다. 아래는 파일 삭제와 관련된 다양한 상황과 해결 방법을 정리한 내용입니다.1. 기본 파일 삭제 명령어가장 기본적인 파일 삭제 명령어는 rm입니다.1.1 단일 파일 삭제rm filename filename: 삭제할 파일의 이름을 지정합니다.삭제 확인 메시지는 표시되지 않습니다.1.2 삭제 확인 메시지 표시rm -i filename삭제 전 사용자 확인을 요구합니다.rm: remove regular file 'filename'? 와 같은 메시지가 출력됩니다.1.3 여러 파일 삭제rm file1 file2 file3공백으.. 2024. 11. 23.
반응형