728x90
반응형

 

 

 

 

 

앱을 개발하다보면 Staging, Debug, Release 등에 따라 빌드를 다르게 해야하는 값들이 있습니다.

ex) api 의 base url

 

단순히 #if DEBUG 등 으로도 사용할 수 있겠지만 코드 수정없이 조건에 따라 다른 값을 설정할 수 있는 build configuration을 소개합니다.

 

 

Build Configurations

 

앱의 프로젝트 설정에 들어갑니다.

 

+를 누르면 어떤 설정을 복사할지 물어보는데 저는 Staging을 만들기 위해 Duplicate "Debug" Configuration 을 선택했습니다.

 

모두 Shared를 체크해줍니다.

 

 

Manage Schemes... 를 눌러줍니다.

 

기존의 schemes 를 duplicate 해줍니다. 이름은 앱 이름이 MyTestApp 이므로 MyTestApp-Staging 으로 지었습니다.

Debug용으로도 똑같이 duplicate 하고 이름을 지어줍니다.

 

 

 

 

각각 scheme 의 설정에서 Run의 Build Configuration을 해당하는 값으로 변경해줍니다.

(Test나 Analyze, Archive 등 다른 옵션도 필요하다면 변경해줍니다.)

 

이제 각 Build 별 값을 저장할 파일을 만들겠습니다.

New file 을 선택하고 Configuration Settings File 을 선택해서 생성합니다.

이때 Targets에 체크하면 안됩니다.

 

각 Build별 사용할 파일을 만듭니다.

 

각 파일에 key = value 의 형식으로 값을 작성합니다.

저는 예시로 BASE_URL 에 각 build name을 적었습니다.

 

이제 값들을 적용하기만 하면 사용할 수 있습니다.

다시 프로젝트 설정으로 돌아가서 Configurations로 갑니다.

Configurations의 각 Based on Configuration File 에 설정을 해줍니다.

 

이제 info.plist 설정을 해줘야합니다.

프로젝트 설정에서 TARGETS를 선택하고 Info에서 +를 눌러 추가해줍니다.

 

추가하면 다음과같이 Info.plist 파일이 생성되었을 것 입니다.

Key, Value 를 아까 입력한 key를 이용해서 다음과 같이 수정해줍니다.

 

이제 설정이 완료되었습니다.

방금 설정한 값은 아래의 코드로 불러올 수 있습니다.

Bundle.main.object(forInfoDictionaryKey: "BASE_URL") as? String ?? ""

 

 

 

 

완성

 

각각의 Scheme 로 실행해보면 같은 코드지만 configuration 에 의해 다른 값이 나오는 것을 볼 수 있습니다.

 

 

 

 

 

728x90
반응형
728x90
반응형

 

 

서론


디스코드 개발자 콘솔을 열기위해 Ctrl + Shift + I 를 했는데도 안열릴 경우 해결방법입니다.

예전에는 그냥 열렸으나 사람들이 오남용해서 디스코드에서 비활성화했다고합니다.

 

해결법

 

해결방법은 간단합니다.

 

%appdata%/discord 안에 있는 settings.json 에 한줄을 추가해주면됩니다.

"DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING": true

 

 

사진의 부분만큼 추가해주면됩니다.

json 이기 때문에 , (콤마) 를 잊으시면 안됩니다.

 

 

 

discord developer console

728x90
반응형
728x90
반응형

 

 

2021-12-05 (v 0.1.9) 패치노트입니다.

 

폭탄마

 

 

이전의 폭탄마는 폭탄을 던져둔 집의 플레이어가 사망하거나 추방당하면 폭탄이 터지지 않았습니다.

 

그러나 이번 업데이트를 통해 플레이어가 있던 없던 반드시 폭탄은 폭발하게 수정되었습니다.

이 업데이트로 인해 폭탄마가 몇개의 폭탄을 던졌는지 가늠할 수 있게 됬습니다.

 

 

그외 여러가지..



  • 연결 끊김 현상의 원인을 찾기위해 로그 변경

  • 모든 서버를 아마존 서버로 옮겼습니다.

  • 한명에게 모두 연결된 구조의 방에서 그 한명이 나가면 모두가 나가지는 현상 수정

 

 

원문


This week we mainly focused to improve our servers and solve bugs related to connection issues. Here you can see the list of items fixed/updated this week.

  • We started to keep a log of new data points to analyse and find the root cause of a blocker bug that is causing some of our players to experience game disconnects.
  • We have a new visual improvement for Bomber. Now when the bomber detonates his/her bomb(s) it will also detonate the houses that are owned by the players who have been already killed or sent out of the town. So all of your bombs will detonate no matter what and this will also make it visible to everyone how many times you placed a bomb in the town so far.
  • We carried all of our servers to amazon servers.
  • We fixed a bug that was causing all of the players in one slave to get disconnected from feign at the start of the game

 

 

728x90
반응형
728x90
반응형

 

아마 일전에 코딩을 좀 배웠다 하시는 분들은 이미 Visual Studio community 가 깔려있을 겁니다.

 

이 글에서는 이미 깔려있는 Visual Studio community 와 Unity 를 연결하는 방법을 알려줍니다.

 

연결이 된건지 안된건지?

 

 

유니티에서 스크립트를 편집을 하기위해 창을 띄웠을 때 위의 그림과같이 MonoBehaviour 가 초록색으로 안나오면 연결이 안된 것입니다.

 

이때는 그냥 텍스트파일 열듯이 연 것이라서 자동완성 등 여러가지 기능을 지원하지 않습니다.

 

 

Unity 에서 설정

 

 

Edit - Preferences... 를 들어갑니다.

 

 

 

External Tools - External Script Editor 에서 Visual Studio 2019 를 선택해줍니다.

(Code 도 가능하긴 한데 Community 를 추천합니다)

 

 

만약 목록에 Visual Studio 2019가 없을 경우

 

 

Browse... 를 선택해줍니다.

 

 

 

Visual Studio 의 기본 설치 경로

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE

 

Visual Studio 의 설치경로로 가서 devenv.exe 를 선택해줍니다.

 

 

연결 완료

 

 

정상적으로 연결이 되있으면 위의 그림과 같이 MonoBehaviour 색깔이 초록색으로 나오고 유니티 연결 버튼이 있습니다.

 

 

728x90
반응형
728x90
반응형

 

 

TCP 패킷 구조

 

 

  • Source Port
    보내는 시스템의  애플리케이션 Port 입니다. 일반적으로 0 ~ 1023 까지는 예약되어있습니다.
    ex) HTTP(80)

  • Destination Port
    받는 시스템의 애플리케이션 Port 입니다. 위와 동일합니다.

  • Sequence Number
    패킷의 순서를 표시합니다.
    단위는 바이트로 표시되며 이 패킷이 데이터의 몇번째 바이트 부터인지를 나타냅니다.
    ex) 300byte 의 데이터를 100byte 씩 나눠서 보낼 때 첫 패킷은 0, 두번째는 100, 세번째는 200 이다.

  • Acknowledgement Number
    패킷을 받고 그에 대답을 할때 사용됩니다. 주로 패킷을 잘 수신 받았다는 대답과 같습니다.
    이전에 받은 Sequenc Number 의 다음 번호입니다.
    ex) 위의 예시와 같이 seq : 0 인 100byte 데이터를 수신하면 0~99byte 의 데이터를 받았으므로
         다음으로 필요한 100을 송신합니다.

  • Header length
    헤더의 길이가 가변이므로 총 헤더의 길이를 표시합니다. 단위는 바이트(byte)입니다.

  • Reserved
    현재는 사용되지않지만 미래를 위해 남겨둔 공간입니다.

  • Flags
    TCP 의 여러가지 속성들을 설정할 수 있는 비트들 입니다.

  • Window
    윈도우의 크기를 나타냅니다.
    윈도우란? 한번에 보낼 수 있는 최대 버퍼수를 말합니다.
    이 버퍼수에 따라 한번에 보내는 양이 정해지게됩니다.

  • Checksum
    error bit 검출을 위한 값입니다.

  • Urgent Pointer
    우선순위가 더 높은 데이터의 마지막 바이트 위치를 나타냅니다.

 

 

특징


TCP(Transmission Contrio Protocol)는 transport 계층에서 사용되는 대표적인 프로토콜입니다.

하위 계층인 IP와는 다르게 흐름제어(Flow control), 혼잡제어(Congestion control), 에러검출을 하기 때문에 신뢰성있는(reliable) 연결이 가능합니다. 따라서 신뢰성이 요구되는 에플리케이션에서 주로 사용합니다.

 

 

 

728x90
반응형
728x90
반응형

 

 

2021-11-28 (v 0.1.8) 패치노트입니다.

 

밀고자 너프

 

 

밀고자가 너프 되었습니다.

기존의 모두에게 직업을 공개하던 능력에서 자신 혼자만 보는 능력으로 너프 되었습니다.

 

사실 이전에는 좋기는 했는데 이번 너프 되면서 한 번밖에 못 보는데 자신 혼자만 보면 음...

 

 

폰트 문제 해결

 

 

뭔가 이상한 거 느껴지지 않나요?

그렇습니다. 드디어 한글이 인게임에서 네모네모가 아닌 진짜 한글로 보입니다!

몇몇 언어 글꼴을 업데이트해서 사각형 현상을 해결했습니다.

 

 

 

투표시스템 업데이트

 

투표시스템이 업데이트되었습니다.

이제부터 가장 많은 표를 받은 플레이어만 마을에서 추방당합니다.

그리고 투표를 하지 않은 사람의 표는 건너뛰기 투표로 계산됩니다.

투표가 동점일 경우 아무도 쫓겨나지 않습니다.

 

예시

사람 A (3표) - 사람 B (4표) - 건너뛰기 (1표) - 투표하지 않은 사람 (4표)

 - 아무도 추방되지 않는다. (건너뛰기 5표 가장 높음)


사람 A (3표) - 사람 B (4표) - 건너뛰기 (1표) - 투표하지 않은 사람 (2표)

 - 사람 B는 마을에서 추방된다. (사람 B 4표 가장 높음)


사람 A (4표) - 사람 B (4표) - 건너뛰기 (1표) - 투표하지 않은 사람 (1표)

 - 아무도 추방되지 않는다. (4표 4표 동표이므로 추방 X)


사람 A (4표) - 사람 B (2표) - 건너뛰기 (1표) - 투표하지 않은 사람 (3표)

 - 아무도 추방되지 않는다. (사람 A 4표, 건너뛰기 4표 동표 추방 X)

 

 

그 외 여러가지...

 

서버의 안정성을 위해 역할 사용, 투표 등 여러가지 활동을 초당 최대 6번만 전송하도록 수정되었습니다.

 

 

 

원문 패치노트

 

>> https://store.steampowered.com/news/app/1436990/view/3114798182500803679 <<

 

This week we mainly focused on game mechanics and worked on several backend requirements for the mobile version of Feign. Here you can see the list of items fixed/updated related to the game mechanics.

  • We have seen that spamming of some actions were affecting game stability so we limited these actions up to 6 times per second as a maximum (Role usage at night, voting and pressing space to show you are talking )
  • Snitch is nerfed
    Now only the Snitch sees the actual role now of the snitched person. It is up to you to believe him or not.
  • Language font support is upgraded to solve unsupported fonts that were causing squares to appear for names of players and for messages in lobby chat.
  • Voting system is updated. Now a person is kicked out of the town only if he/she receives majority of the votes. Also votes that were not being used until the timer runs out are counted as skip votes. Also in the event of a tie of votes no one is kicked out of the town. So a couple of voting examples are here to make it easier to understand:
    [**] Person A (3 Votes) - Person B (4 Votes) - Skip (1 Vote) - #of alive and not voted people (4) = No one is kicked out of the town
    [**] Person A (3 Votes) - Person B (4 Votes) - Skip (1 Vote) - #of alive and not voted people (2) = Person B is kicked out of the town
    [**] Person A (4 Votes) - Person B (4 Votes) - Skip (1 Vote) - #of alive and not voted people (1) = No one is kicked out of the town
    [**] Person A (4 Votes) - Person B (2 Votes) - Skip (1 Vote) - #of alive and not voted people (3) = No one is kicked out of the town

 

 

 

728x90
반응형
728x90
반응형

 

 

FEIGN 소개

 

 

장르 : 마피아게임

가격 : 5500 won

최대 인원수 : 12 players

 

 

전형적인 마피아게임입니다.

아기자기한 캐릭터들과 각자의 집에서 다른 플레이어의 집을 방문한다는 특징이 있습니다.

이러한 특징 때문에 방해자, 트레퍼 등 다른 마피아게임에서는 볼 수 없는 직업이 있습니다.

그리고 "어릿광대"라는 매우 특이한 직업이 있습니다.

 

 

 

 

직업소개

 

Feign 에는 시민, 임포스터, 중립 3가지 팀이 있습니다.
기본적으로 Feign 에는 몇몇 직업을 제외하고는 시민, 임포스터공용 직업입니다.

 

모든 직업은 여러 명이 가질 수 있습니다.

임포스터는 밤에 사람을 죽이거나 능력을 사용하거나 둘 중에 한 가지밖에 못합니다.

임포스터나 연쇄 살인마의 타겟이 되면 자신의 능력을 사용하지 못하고 죽습니다.

 

  • 의사

    시민팀 전용 직업입니다.
    밤에 플레이어를 선택합니다.
    만약 선택한 플레이어가 공격받을 경우 다시 살립니다.
    선택한 플레이어는 누군가 왔다간 것을 알 수 있습니다.


  • 어릿광대 (정신이상자)

    시민팀 전용 직업입니다.
    이 게임의 매우 특이한 직업입니다.
    게임 시작 시 본인은 다른 평범한 직업으로 표시됩니다.
    그러나 사실 해당 직업의 능력을 사용해도 무효가 됩니다.
    진짜 정신이상자처럼 자신이 능력을 썼다고 믿게 됩니다.
    조사관, 밀고자 등에 의해 역할이 밝혀지더라도 가짜 역할이 밝혀지게 됩니다.
    진짜 어릿광대인지 알려면 죽음으로써 역할이 밝혀지는 방법밖에 없습니다.
    시민팀이긴 하지만 사실상 트롤(?)입니다.


  • 청소부

    임포스터팀 전용 직업입니다.
    선택한 플레이어를 청소합니다.
    만약 청소당한 플레이어가 사망할 경우 플레이어의 직업이 알 수 없음 으로 표시됩니다.
    청소를 한번이라도 당했다면 나~~중에 죽어도 알 수 없음 으로 표시됩니다.


  • 패인터

    임포스터팀 전용 직업입니다.
    선택한 플레이어의 집에 물감(?)을 뿌립니다.
    해당 플레이어가 사망할 경우 임포스터팀으로 표시됩니다.
    한번 뿌리면 효과는 지속됩니다.




  • 경찰

    시민, 임포스터 공용 직업입니다.
    밤에 선택한 플레이어가 집에서 나오지 못하게 합니다.
    방해자는 선택한 플레이어가 집에서 나오려고 했는지 알 수 있습니다.
    선택한 플레이어는 밤에 누군가에게 블로킹 당한 것을 알게 됩니다.


  • 관찰자

    시민, 임포스터 공용 직업입니다.
    밤에 선택한 플레이어에게 어떤 플레이어가 찾아오는지 봅니다.
    선택한 플레이어에게 찾아오는 플레이어의 색이 보입니다.
    연쇄 살인마는 볼 수 없습니다!


  • 조사관

    시민, 임포스터 공용 직업입니다.
    밤에 선택한 플레이어의 직업을 유추할 수 있습니다.
    선택한 플레이어에게 두 개의 직업이 표시되며 해당 플레이어는 두 개의 직업 중 한 개입니다.
    만약 어릿광대를 선택했다면 어릿광대가 아닌 가짜 직업이 보입니다.


  • 트레퍼

    시민, 임포스터 공용 직업입니다.
    밤에 선택한 플레이어의 집 앞에 덫을 설치합니다.
    다른 플레이어가 선택한 플레이어에게 찾아오면 덫에 걸려서 능력을 사용하지 못하고 다시 돌아갑니다.
    여러 명이 방문할 경우 랜덤으로 1명만 막습니다.


  • 밀고자

    시민, 임포스터 공용 직업입니다.
    밤에 선택한 플레이어를 조사합니다.
    다음날 아침 선택한 플레이어의 직업을 공개합니다.
    ( 0.1.8 패치 ) 다음날 아침 선택한 플레이어의 직업을 자신만 봅니다.
    아침에 자신이 누굴 봤는지 표시가 됩니다.
    어릿광대(정신이상자)의 경우 어릿광대로 표시되지 않고 가짜 직업으로 표시됩니다.


  • 선동자

    시민, 임포스터 공용 직업입니다.
    밤에 선택한 플레이어를 선동(?)합니다.
    다음날 아침에 선택한 플레이어는 2표를 받고 시작합니다.

    아침에도 1표 투표할 수 있습니다.

    이 능력은 한 게임당 2번 사용할 수 있습니다.




  • 생존자

    중립 직업입니다.
    밤에 최대 3회까지 공격받지 않습니다.
    생존자는 어떤 진영이든 승리 조건이 만족되면 함께 승리합니다.


  • 연쇄 살인마

    중립 직업입니다.
    밤에 선택한 플레이어를 공격합니다.
    마지막에 혼자 살아남으면 승리입니다.
    관찰자에게 보이지 않습니다.


  • 폭탄마

    중립 직업입니다.
    밤에 폭탄 설치하기, 폭탄 터뜨리기 두 가지 행동 중 하나를 할 수 있습니다.
    폭탄 설치는 선택한 플레이어의 집에 폭탄을 설치합니다.
    폭탄 터뜨리기는 설치한 폭탄을 모두 터뜨립니다.
    마지막에 혼자 살아남으면 승리합니다.


  • 도둑

    중립 직업입니다.
    밤에 선택한 플레이어를 공격한 후 직업을 뺏습니다.
    만약 선택한 플레이어가 모종의 이유로 죽지 않았을 경우 직업 뺏기는 실패 합니다.
    직업 뺏기를 실패하면 다시 능력을 사용할 수 있습니다.
    직업을 빼앗은 이후에는 해당 직업의 역할을 수행하면 됩니다.
    만약 도둑이 공격해서 직업을 빼앗으면 죽은 플레이어는 알 수 없음 으로 표시됩니다.

 

 

후기


언뜻 보면 평범한 마피아 게임처럼 보이지만 집에서 나가서 다른 집을 간다는 시스템과 어릿광대(정신이상자)라는 직업으로 인해 상당히 새롭습니다. 어릿광대를 넣은 게임은 대부분의 시민이 자신의 직업을 믿지 못하는 재미난 상황이 연출되기도 합니다. 또한 임포스터도 시민과 같은 직업을 가질 수 있어서 거짓말을 치기도 쉬우며 필요에 따라 공격을 하지 않고 능력을 사용해서 유리한 상황을 만들어낼 수도 있습니다. 만약 아직 플레이해보지 않으셨다면 친구들과 함께 구입해서 플레이해보기를 바랍니다.

 

 

728x90
반응형
728x90
반응형

 

 

IPv6

 

 

IPv6 의 구조입니다.

 

  • Version
    IP 의 버전을 나타내는 값입니다. IPv6 이므로 6 가 들어있습니다.

  • DS
    IPv4 의 TOS 와 비슷합니다.
    이 패킷의 우선순위를 나타내는 값입니다. 이 값에 따라 패킷이 먼저 전송되거나 나중에 전송됩니다.
    이 값을 통해 QoS(Quality of Service) 를 구현하기 위해 사용됩니다.
    예를들어 실시간 인터넷 전화같은 경우 QoS가 만족되어야하므로 우선순위가 더 높을 것입니다.

  • ECN
    목적지 노드에게 현재 네트워크의 혼잡도를 알리는 값입니다.

  • Flow Label
    IP프로토콜을 연결 지향형으로 사용하기 위한 기능입니다.
    Src 부터 Dst 까지 패킷의 흐름을 나타냅니다.

  • Payload Length
    Payload (데이터) 의 길이입니다.
  • Next Header
    IPv4 의 Protocol 과 비슷합니다.
    IP 계층보다 더 상위 계층의 type 를 알려주는 값입니다.
    예로 ICMP(1), IGMP(2), TCP(6), UDP(17) 입니다.

  • Hop Limit
    IPv4 의 TTL 과 비슷합니다.
    네트워크 특성상 여러 AP 들을 거쳐서 패킷이 전달됩니다. 이렇게 AP를 하나 거칠때 마다 이 값이 1씩 떨어지고 0에 도달하게되면 패킷이 버려지게됩니다. 이 기능이 필요한 이유는 패킷이 전달되지 못하고 빙글빙글 돌거나 통신이 끊겼다면 네트워크내에 패킷이 계속 남게되는데 이런 현상을 막기위해 존재합니다.

  • Source IP Address
    출발지의 IP 주소값 입니다.

  • Destination IP Address
    도착지의 IP 주소값 입니다.

 

 

특징

 

IPv6 는 초창기 네트워크와는 다르게 멀티미디어를 많이 소비하는 현대 네트워크에 맞게 설게된 프로토콜입니다.
IPv4의 단점들을 보완하고, 연결지향적으로 바꾼게 바로 IPv6 입니다.

그래서 빠른 패킷처리를 위해 상당히 간단해졌습니다.

728x90
반응형

+ Recent posts