반응형

게임 22

[전 프로젝트 이야기] "레전드 오브 아레나"

히스토리도 남길 겸 예전에 개발했던 프로젝트를 소개하고자 합니다. 인디개발을 시작하고 2번째 프로젝트로써 출시 후 1만 누적 다운로드와 영광의 구글 피처드에 등록되었던 나름 괜찮은 성적을 보여준 게임이다. 심지어 광고도 처음으로 요청해봤다. https://youtu.be/DQrFJ0zXQ98 식은땀 흘리면서 본 기억이.. 이래저래 게임개발과 서비스에 있어서 많은 경험을 안겨준 효자같은 게임이었습니다. 3인 개발 인디게임 개발기간: 3개월 사용기술 : Unity, C# 제한된 공간안에서 오랫동안 살아남는 캐주얼 서바이벌 게임 누적 다운로드 1만, ‘금주의 신규 추천게임’ 구글 피처드 등 가장 많은 반응을 받은 게임 출시 후 다양한 마케팅 업체와 함께 SDK 연동 경험 구글 , 페이스북 애널리틱스를 처음으로..

개발 프로젝트 2021.08.28

[디자인패턴] 7. 유니티에서 데코레이터 패턴

오늘의 디자인 패턴은 데코레이터 패턴입니다. 데코레이터 패턴의 정의는 객체에 추가적인 요건을 동적으로 첨가한다는 것입니다. 그리고 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공해줍니다. 이번에 핵심적으로 다루는 객체지향 디자인 원칙은 OCP(Open-Closed Principle)으로써 클래스는 확장에 대해서는 열려있어야하며, 코드변경에 대해서는 닫혀있어야 한다는 원칙입니다. 위의 두가지를 고려해보면 어떤 클래스의 추가적인 요건을 동적으로 첨가할때 코드변경에 대해 닫혀있는 방식이 바로 데코레이터 패턴이라고 할수있습니다. 게임을 구현하는데 있어서 그렇게 자주 볼 수 있는 패턴은 아닌 것 같지만 해당패턴을 적용시켜 아이템을 꾸며보았습니다. // 데코레이터 패턴으로 꾸며질 객체 ..

[유니티 C#] PhotonNetwork 기본 콜백함수 찍먹하기

포톤네트워크를 사용해 함수를 구현하시면 편리하게도 서버에 입장하고, 로비, 룸에 입장할때 호출되는 콜백 함수들이 있습니다. 오늘은 서버에 접속해서 방에 들어가기까지 대략적인 파악정도만을 위해 작성하고 추후에 디테일한 UI 구성까지 함께 파보겠습니다! 인게임에 들어가기전에 아웃게임에서 크게 챕터를 나누자면 접속, 로비, 룸 이렇게 나뉘는 것 같습니다. 1. 서버 연결 및 연결해제 파트 public void OnConnect() { // 서버 접속 함수 PhotonNetwork.ConnectUsingSettings(); } public void OnDisconnect() { // 접속 종료 함수 PhotonNetwork.Disconnect(); } public override void OnConnectedT..

게임 개발/Unity 2021.06.09

개발중이던 게임을 출시했어요ㅎㅎ

안녕하세요! 그동안 개발관련글도 못올리고 해왔던 인디게임개발을 드디어 마무리가 되었습니다 (사실 이제부터 시작이라는....ㅠㅠㅠㅠㅠㅠ) 이번에 저희팀에서 “해적왕: 오렌지의 저주”라는 이름으로 로그라이크 카드게임을 출시했습니다ㅎㅎ 카드를 모아서 오렌지 친구들과 일대일 막고라하는 게임이라고 생각해주시면 좋을 것 같아요!!ㅎㅎ 캐릭터마다 개성있는 플레이가 준비되어있고, 가볍게 즐기실 수 있는 게임입니다ㅎㅎ 카드게임을 좋아하신다면! 한번씩 플레이 부탁드립니다. 감사합니다ㅎㅎ 약 6개월정도 진행해온 프로젝트인데ㅋㅋ 몇년은 개발했던 기분이...ㄷㄷ 고생도 많이했지만 공부도 많이 되었던 것 같아요ㅎㅎ 출시까지 진행하기 힘들다는 국룰에도 불구하고 어떻게 출시까지 결과를 낸게 가장 큰 결실이지 않나 생각이 드네요ㅎㅎ ..

개발 프로젝트 2020.01.31

[Unity C#] FSM 디자인 패턴 적용시켜보기

FSM in Unity 이전에 공부했었던 FSM, finite state machine을 유니티 상에서 구현해 캐릭터의 idle, move 상태를 구현했습니다.이러한 디자인패턴을 기반으로 캐릭터들을 구현하게된다면 좀더 아름다운 코드가 나올수있을것같습니다. 완벽하게는 아니지만 각 객체의 역할을 분리할수있었다는 점에서 편리할수있을것같습니다. 우선 앞으로 정의할 상태들의 인터페이스 IState를 만들었습니다. public interface IState{// 인터페이스로 구현함으로써 player클래스에서 이 인터페이스로 호출합니다.void OnEnter(Player player);void Update();void OnExit();} OnEnter는 상태가 시작될때 호출됩니다. player클래스를 파라미터로 받아..

게임 개발/Unity 2019.03.03

[디자인패턴]02. - FSM (Finite State Machine) 유한상태기계

FSM(finite state machine): 유한상태기계 정의유한한 갯수의 상태들로 구성된 기계를 말합니다.특정 객체의 상태를 관리하기위한 패턴입니다.이벤트를 받고 그에 따라 현재상태에서 다음상태로의 전이가 이뤄집니다. 게임에서 npc의 행동AI에 주로 사용됩니다. 특징유한한 수의 상태들만을 가집니다.자신은 하나의 상태만을 가지고 있습니다. 행동을 하나의 객체로 모듈화 하는것을 목표로 합니다.자신의 현재상태를 확인 할수 있어야합니다.외부로부터의 입력, 즉 이벤트를 받습니다. 자신의 현재상태와 받아온 이벤트로 정해진 논리에 따라 자신의 상태를 변경할 수 있습니다. FSM과 statePattern의 차이 상태패턴(stateParrern)은 객체지향 방식으로 상태기계를 구현하는 행위, 디자인패턴을 말합니다..

[디자인패턴]01. 빌더패턴(builder pattern)

빌더 패턴 위키백과: https://ko.wikipedia.org/wiki/%EB%B9%8C%EB%8D%94_%ED%8C%A8%ED%84%B4 1. 빌더패턴 빌더패턴이란 복합객체의 생성과정과 표현방법을 분리하여 동일한 생성절차에서 서로 다른 표현 결과를 만들 수 있게하는 패턴이다. 즉, 어떠한 복합적인 정보를 지녀야할 객체를 생성하는 과정과 각기다른 정보를 표현하여 보여주는것을 분리하여 비슷한 형태를 가졌지만 서로 각기 다른것들을 표현하는 객체를 생성하는 패턴이라고 정리했습니다. 경험적인 예시로 팝업창이 있었습니다. 다른표현을 하지만 형태는 비슷한 이런 팝업창이 그 예시가 되지않을까 생각핬습니다. 호출되는 형식은 아래와 같이 두종류가 될것입니다.// 메소드체이닝을 하지않은 형태 const builder ..

[unity, c#]01. inspector 변수표시

유니티의 편리한 기능중 하나인 에디터의 오브젝트 인스펙터안에 클래스의 public 변수들이 노출되어 실행중에도 값을 편집하여 볼수있는 기능이 있습니다. 하지만 private변수는 보통 인스펙터에 숨겨진 상태라서 노출이 되지않습니다. 이렇게 private변수도 확인하고싶은 순간이 있을때 확인하는 방법이 있습니다. 첫번째 방법은 SerializeField로 원하는 변수위에 달아주는 방법이있습니다.이렇게 해주면 정확하게 원하는 변수만 확인이 가능하도록 만들어줍니다. 두번째 방법은 오브젝트 인스펙터의 debug모드를 활성화시켜 확인하는방법입니다.메뉴의 debug아이콘을 클릭하면 바로활성화되어 모든 변수를 인스펙터에 표시가 가능하게됩니다. 두가지 모두 유용한 방법이므로 이번에 알게된 이후로 자주사용하게 될것 같습..

게임 개발/Unity 2019.02.23

[cocos-creator]-02. LifeCycle정리

이번에는 코코스 크리에이터에서 말하는 LifiCycle이 무엇인지 알아보려고 합니다. LifeCycle 즉 생명주기란 게임내에서 하나의 노드가 생성되고 그리고 삭제되기까지를 말하며 코코스 크리에이터는 그에 따른 자동으로 호출하는 콜백함수들을 제공해 사용할수있게 해줍니다. 아래는 모두 스크립트에 작성했을시 방문하는 순서를 확인한것이고 다음으로 각 콜백함수들을 정리해봤습니다. 1. onLoad()- 씬이 로드되고 노드가 생성되는 가장 처음에 스크립트내에서 단 한번만 호출하는 콜백함수입니다. 일반적으로 여기서 초기화를 해주시면 됩니다. 2. onEnable()- 노드의 active가 활성화될때마다 호출되는 콜백함수입니다. 물론 씬이 로드되고 이노드가 활성화되어있다면 실행됩니다. 주로 노드의 활성화를 켜주고꺼줄..

[유니티5-C#]-3.카메라 터치로 이동, 터치 2개로 줌인 줌아웃 (안드로이드빌드)

방학이라 폭풍작업입니다ㅎㅎ 오늘은 안드로이드로 빌드했을때에손가락터치로 카메라의 이동과터치2개로 줌인,줌아웃하는것을 만들어 봤습니다. 일단 우리가 필요한 변수들을 초기화 해주시고중요한점은 배열을 이용해 위치값을 가져오려고합니다.터치가 없을때는 배열안에 위치값을 null로 초기화작업을 합니다. 터치가 하나일때는 카메라의 이동이 진행되고 터치가 두개일때는 카메라의 줌인 줌아웃이 진행됩니다. 카메라이동할때의 범위지정입니다. 제가 제작한 게임의 전반적인 모습입니다. 저상태에서 터치가 이뤄지면 이동은 물론 줌인줌아웃도 동작합니다ㅎㅎ 오늘은 여기까지ㅎㅎ

게임 개발/Unity 2017.07.13
반응형