글쓴이 보관물: 게임핥기

스팀여름할인

스팀 2021년 여름 할인 시작!

스팀 할인 2021. 6. 24. ~ 7. 8.

Steam 여름 할인이 돌아왔습니다! 6월 24일부터 7월 8일까지 대폭 할인된 수천 가지 게임들을 구매할 수 있습니다.

또한, 이번에는 처음으로 나만의 운명 찾기 이벤트가 열립니다. 운명을 결정짓는 14가지 테마의 스토리를 통해, 움직이는 스티커를 받고 운명의 배지를 획득하는 영광을 누리세요!

이 밖에도, 포인트 상점을 방문하여 새로워진 게임 프로필을 확인하세요. 게임 프로필에는 인기 게임 테마의 움직이는 배경, 미니 프로필, 아바타 및 테마 색상이 포함되어 있습니다.

최신글

문명6

문명7의 AI는 더 스마트해질 수 있을까

Firaxis의 문명 시리즈는 우리의 시간을 킬링하는 중요 게임중 하나인데요. 저도 한 2년쯤 타임워프를 타지 않았나 생각됩니다.

문명6까지의 AI(인공지능)

문명6까지 플레이해오면서 우리는 보통 AI와의 대결을 통해 게임을 즐깁니다. 특히나 문명시리즈는 PvP가 많이 힘든 게임이지요. 한번 시작하면 이틀이 걸릴수도 있으니까요. 그래서 다양한 방법으로 AI를 상대해오곤 했습니다.



하지만 아직까지 문명의 AI(인공지능)는 무척이나 뒤떨어져 있습니다. 특히 중반부를 넘어서면 말이죠.

시리즈를 더해가면서 조금 나은 부분을 보여주기도 하지만 문명6 또한 여전히 ​​개선의 여지가 많습니다. 문명6의 AI는 인간 플레이어와 같은 지능적인 플레이를 할 수 있는 기술적인 능력은 아예 없다고 볼수 있지요.

대신 게임 상의 난이도 조정을 통해 AI에게 숫자로 이득을 더 주어 우리는 게임을 플레이하고 있습니다. 예를 들어, 신 수준 난이도에서 각 AI는 과학, 문화 및 신앙 생산량에 32 % 보너스, 금 생산량 80 % 증가, 모든 유닛의 전투력 +4, 시작시 3 명의 자유 정착민을 받는 보너스를 주면서 말이죠.

이렇게 난이도로 받는 패널티를 가지고 플레이하는 것이 확실히 게임을 더 어렵게 만들지만 더 재미있지는 않습니다. 그냥 신 난이도를 돌파했다는 성취감 정도가 잠시 자나간다고 할까요.

그 외 다양한 패널티를 자신에게 부여함으로써 약간의 재미를 더하고 있지만 완벽한 해결책은 아닙니다. AI는 더 스마트해져야 유저들의 만족감을 줄 것 같습니다.

문명7의 AI는 딥러닝 기술이 쓰일까

문명6이 발매된 이후 수많은 AI 발전이 있어 왔습니다. 게임 기반 AI기술 또한 계속 발전하고 있는데요.



문명6의 경우 신 난이도에서 공격적인 문명 옆에 배치되는 경우 임요환도 이길 수 없을 것입니다. 이건 AI가 숫자의 어드밴티지를 가지고 있기에 가능한 결과이고 이제 딥러닝을 익힌 AI의 경우 어떠한 경우에도 유저가 AI를 이길 수 없는 현상이 발생할 수도 있습니다. 이미 우리가 바둑에서 경험한 해본바 있지요.

바둑과 비슷하지만 문명 시리즈와 같은 턴제 전략게임에서 AI를 활용한 딥러닝 기술을 구현하는 것은 훨씬 더 복잡합니다. 그리고 게임 용량의 크기도 문제가 되겠지요. 하지만 문명6 발매 후 8년 안에 많은 일이 일어날 수 있으며 게임 기반 AI를 주도하는 기술은 계속 발전하고 있습니다.

2017년에 엘론 머스크는 자신의 회사인 OpenAI가 OpenAI Five 도타2 AI를 세계 최고의 도타2 인간 플레이어와 대결할 때 승리하는 것을 보았는데요. AI는 10,000년에 해당하는 도타2 게임을 자신과 대결하여 ‘학습’한 다음 이 지식을 사용하여 상대에게 승리했습니다.

이러한 스마트 AI로 강화된 문명 게임은 지금까지 즐겨운 방식과는 전혀 다를것입니다.

도타2에서 볼 때 이러한 AI의 학습 기능은 문명 시리즈에서도 가능할꺼란 미래를 보여줍니다. 모든 플레이하는 사람들로부터 수십만 시간의 플레이 시간에서 수집된 데이터에 기계 학습을 적용한 AI를 구현한다면 ‘더 현명한’결정을 내리며 인간 플레이어를 박살내는 AI를 쉽게 볼 수 있을 겁니다.

물론 상용 게임에서 OpenAI 수준의 인텔리전스를보기까지는 여전히 수십 년이 걸릴 수 있습니다. 그러나 아마도 문명7에서는 기존에 우리가 해왔던 문명 시리즈와는 다른 스마트한 AI가 우리의 즐거움을 배가 시켜줄꺼란 기대는 매우 당연한 것일 겁니다.

이미 시작되었다.

바둑은 이제 AI를 이길 수 없는 넘사벽이고 이미 체스와 스타크래프트II와 같은 게임에서 딥 러닝 실험을 진행하고 있으며, 문명 시리즈 또한 딥러닝 기술이 쓰일 가장 적합한 게임입니다.



초기부터 AI가 각각의 디테일한 결정까지 적용되지 않더라도 빠른 미래 안에 광범위한 범위내에서 구현이 되지 않을까 생각해봅니다.

최신글

SENTINEL VAYNE

리그 오브 레전드 11.14패치 노트 – 스킨 추가

리그 오브 레전드 2021년 패치 일정의 후반부에 접어 들었습니다. 리그 오브 레전드 11.13 패치 가 출시되어 탐 켄치에 대한 약간의 재 작업과 함께 챔피언 및 아이템 변경 사항이 진행되었고 이제 11.14 패치에서는 스킨 추가 및 간단한 수정이 있었습니다.

현재 패치의 가장 큰 초점은 Rise of the Sentinels라는 곧 있을 이벤트입니다.이 패치는 다음 달에 출시 될 예정으로 스토리는 몰락 한 왕과 빛의 파수꾼 사이의 큰 폭발에 관한 것입니다.

그것보다 먼저 스킨이 추가되었는데요. 다이아나, 올라프, 리븐, 판테온 등의 스킨이 새로 추가되었습니다.

새로운 패치주기의 초기에 자주 그렇듯이, 아직 PBE에서 안구에 대한 챔피언, 아이템 또는 룬 밸런스 변경 사항은 없지만, 가능성이 없는건 아니므로 가끔 패치 노트를 계속 확인하시면 좋습니다.

리그 오브 레전드 패치 11.14 요약

리그 오브 레전드 2021 패치 일정에 따르면 11.14 패치는 2021 년 7 월 8 일 목요일에 적용됩니다. 시간까지는 아직 확인되지 않았지만 일반적으로 북미 서버의 경우 오전 3시 (태평양 표준시), 영국 시간으로 오전 5시에 시작됩니다. EUW 서버의 경우, EUNE 서버의 경우 오전 3시 CET이며 약 3 시간 동안 지속됩니다.

챔피언 스킨

 RUINED PANTHEON(망가진 판테온)

망가진 판테온 영상

ASCENDED PANTHEON PRESTIGE EDITION

에이센티드 판테온 프레스티지 에디션

SENTINEL DIANA(센티넬 다이아나)

센티넬 다이아나

SENTINEL IRELIA(센티넬 이렐리아)

센티넬 이렐리아

SENTINEL OLAF(센티넬 올라프)

센티넬 올라프

SENTINEL RIVEN(센티넬 리븐)

센티넬 리븐

SENTINEL VAYNE(트윗을 통한 이미지 공개)

최신글

데카론M 저랩 사냥터 추천

클래스 추천

데카론M을 처음 시작했다면 고민할 것 없이 활 클래스를 추천한다. 클래스야 나중에 400다이야에 변경할 수 있기 때문에 처음 선택하는 클래스는 크게 의미가 없다.



메크로가 하도 많아 조금만 사냥터 래벨이 올라가면 뛰어다니느라 퀘스트도 하기 버겁다. 그러니까 무조건 활 클래스, 혹은 지팡이(마법사) 클래스를 선택하셔야 한다.

초반 사냥터 추천(30레벨 이하)

아데르카 요새 아래 데네브 묘지

활 클래스를 선택했다면 초반사냥터는 데네브 묘지를 추천한다. 언데드 계열이라서 미스릴 화살을 쓰면 추가 데미지를 주기 때문에 초반에 레벨업을 수월하게 할 수 있다.

그리고 해골 궁사가 루브라라는 활을 주는데 안전 6강화해서 초반 기준 사용할만하다. 초반 랩업 구간이 지난다면 경매장에서 모든 녹템 무기는 거의 10다이야에 팔기 때문에 아라크니라는 활을 사서 사냥하길 바란다. 10강 아라크니 정도면 8테라스메인(희귀활)보다 투력이 더 나온다.



무과금으로 사냥한다면 이 루트에서 30레벨 이상 찍고 다른 사냥터를 이동하면 되겠다.

최신글

닷넷을 운용할 수 있는 프로그래밍 언어

닷넷은 다음 세 가지 프로그래밍 언어를 지원합니다.

C#

C#은 형식이 안전한 최신 개체 지향 프로그래밍 언어입니다. C#은 C 언어 제품군에서 시작되었으며 C, C++, Java 및 JavaScript 프로그래머에게 친숙할 것입니다.

F#

F# 언어는 함수형, 개체 지향 그리고 명령형의 프로그래밍 모델을 지원합니다.

Visual Basic

닷넷 언어 중에서 Visual Basic 구문이 일반적인 인간 언어와 가장 유사하여 쉽게 배울 수 있습니다. Microsoft에서 새로운 기능을 적극적으로 개발하고 있는 C# 및 F#과 달리 Visual Basic 언어는 안정적입니다. 웹앱에서는 Visual Basic이 지원되지 않지만 Web API에서는 지원됩니다.

최신글

닷넷을 운용할 수 있는 플랫폼 정리

닷넷은 다양한 플랫폼에서 운용이 가능합니다. 아래 목록은 닷넷을 운용할 수 있는 플랫폼입니다.

플랫폼 종류

  • Windows
  • macOS
  • Linux
  • Android
  • iOS
  • tvOS
  • watchOS

지원하는 프로세서 아키텍처

  • X64
  • x86
  • ARM32
  • ARM64

닷넷을 사용하면 운영 체제 API와 같은 플랫폼별 기능을 사용할 수 있습니다. 예를 들어 Windows의 Windows Forms 및 WPF, Xamarin과 각 모바일 플랫폼 간의 기본 바인딩 등이 있습니다.

최신글

닷넷으로 간단한 애플리케이션 만들기

이 문서에서는 “Hello World!” .NET 앱을 만들고 실행해보려고 합니다. .NET이 무엇인지 잘 몰라도 그냥 한번 따라해봅니다.

애플리케이션 만들기
먼저 컴퓨터에 .NET SDK를 다운로드하여 설치합니다.

그다음 명령 프롬프트(윈도우키 + cmd) 같은 터미널을 엽니다. 다음 dotnet 명령을 입력하여 C# 애플리케이션을 만들고 실행합니다.

dotnet new console --output sample1
dotnet run --project sample1


그럼 다음과 같이 출력이 됩니다. 출력

Hello World!

간단한 닷넷 애플리케이션을 만들어보았습니다.

최신글

디버거란 무엇인가?

코드 에러

개발자로서 작업하다 보면 이따금 내 코드가 작동하지 않을 때가 있습니다.

내 코드가 왜 작동하지 않을까….

개발-수정-개발-수정은 개발자에게 일상입니다. 가장 짧은 시간 내에 실패를 최소화하면서 버그를 찾아 수정하는 데 익숙해지는 것이 개발자에게는 매우 중요합니다. 프로그램에 버그가 있으면 보통 자신만의 방법으로 문제를 처리하게 되는데 아마도 디버깅 방법 중 하나 이상을 이미 시도해 봤을 겁니다.

  • 프로그램이 ‘작동해야’ 하므로 프로그램을 다시 실행해 봅니다.
  • 고무 오리 인형에게 문제를 설명합니다.
  • 문제를 찾기 위해 코드를 다시 읽어봅니다.
  • 산책하면서 머리를 식힙니다.
  • 코드에서 몇 개의 Console.WriteLine("here") 메시지를 무의미하게 채웁니다.

이러한 방법은 효과적일 수도 있고 그렇지 않을 수도 있습니다. 일반적으로 가장 효과적인 방법은 디버거를 사용하는 것입니다. 하지만 디버거란 정확히 무엇일까요?

디버거

디버거는 분석 방법으로 프로그램의 실행 흐름을 관찰하고 제어하는 데 사용되는 소프트웨어 도구입니다. 설계 목표는 버그의 근본 원인을 찾고 해결하도록 돕는 것입니다. 디버거는 자체 실행 프로세스에서 프로그램을 호스팅하거나 .NET과 같이 실행 중인 프로그램에 연결된 별도의 프로세스로 실행되는 방식으로 작동합니다.

디버거는 다양한 버전으로 제공되며 명령줄에서 직접 작동하는 경우도 있고 그래픽 사용자 인터페이스와 함께 제공되는 경우도 있습니다. 이 모듈에서는 Visual Studio Code의 통합 그래픽 디버거를 사용합니다.

디버거를 사용하는 이유

디버거를 통해 코드를 실행하지 않는 경우 프로그램에서 발생하는 상황을 ‘추측’하는 것일 수 있습니다. 디버거를 사용할 경우의 주요 혜택은 프로그램 실행을 ‘조사’할 수 있다는 것입니다. 프로그램 실행을 한 번에 코드 한 줄씩 추적할 수 있으며, 이러한 방식을 통해 잘못된 추측을 방지합니다.

모든 디버거에는 고유한 기능 세트가 있습니다. 거의 모든 디버거와 함께 제공되는 가장 중요한 기능 두 가지는 다음과 같습니다.

  • 프로그램 실행 제어. 프로그램을 일시 중지하고 한 단계씩 실행하여 실행되는 코드와 프로그램 상태에 미치는 영향을 확인할 수 있습니다.
  • 프로그램 상태 관찰. 예를 들어 코드를 실행하는 동안 언제든지 변수 값과 함수 매개 변수를 확인할 수 있습니다.

숙련된 디버거 사용은 개발자의 중요한 기술이지만 간과되는 경우가 많습니다. 능숙하게 사용하면 보다 효율적으로 코드에서 버그를 추적할 수 있으며 프로그램 작동 방식을 신속하게 파악할 수도 있습니다.

최신글

.NET 프로젝트에서 종속성 업데이트 관리

앱에 사용하는 종속성은 자주 업데이트할 수 있으며 새 기능, 버그 수정, 중요한 보안 업데이트를 포함할 수도 있습니다. 만든 앱은 소규모이고 종속성이 하나뿐입니다. 앱을 업데이트하는 것은 간단합니다. 최신 기능을 활용하려면 앱을 업데이트할 수 있는지 확인합니다.

앱 종속성 업그레이드

DotNetDependencies.csproj 파일에서 dependencies를 확인합니다. 다음 코드와 같이 표시됩니다.

<ItemGroup>
     <PackageReference Include="Humanizer" Version="2.7.9" />
</ItemGroup>

설치된 종속성을 확인

.NET CLI

dotnet list package

그러면 요청된 버전과 최종 확인된(설치된) 버전이 출력됩니다.

Top-level Package      Requested   Resolved
> Humanizer            2.7.9        2.7.9

오래된 종속성을 확인

.NET CLI

dotnet list package --outdated

다음 출력과 같을 수 있습니다. Latest 열에 다른 값이 표시될 수도 있습니다.

Project `DotNetDependencies` has the following updates to its packages
   [net5.0]:
   Top-level Package      Requested   Resolved   Latest
   > Humanizer            2.7.9       2.7.9      2.8.26

Latest 버전 업데이트

.NET CLI

dotnet add package Humanizer 

출력은 다음과 같습니다.

출력복사

info : PackageReference for package 'Humanizer' version '2.8.26' updated in file 'C:\Users\jamont\Desktop\DotNetDependencies\DotNetDependencies.csproj'.

이 출력은 프로젝트 종속성이 업데이트되었음을 명시합니다.

특정 버전의 종속성으로 업그레이드하려는 경우 --version 매개 변수에 추가하고 특정 버전을 지정할 수 있습니다.

.NET CLI

dotnet add package Humanizer --version 2.8.26

마지막으로 --prerelease 매개 변수에 추가하여 최신 시험판 패키지를 설치할 수도 있습니다.

.NET CLI

dotnet add package Humanizer --prerelease

결과는 약간 다를 수도 있습니다. 나열되는 버전은 사용 가능한 최신 패키지 버전에 해당합니다.

최신글

닷넷 패키지 검색 및 설치

패키지 설치

패키지를 설치하는 데는 몇 가지 방법이 있습니다. 비쥬얼스튜디오에는 기본 제공되는 패키지 관리자 명령줄과 그래픽 사용자 인터페이스가 있습니다. 프로젝트 파일에 패키지 참조를 수동으로 추가할 수 있습니다. 또는 Paket이나 닷넷 Core CLI 같은 CLI(명령줄 인터페이스) 도구를 통해 설치할 수 있습니다.

닷넷 Core CLI은 터미널에서 명령을 호출하여 .NET 프로젝트에 패키지를 추가할 수 있습니다. 일반적인 설치 명령은 dotnet add package <name of package>와 같습니다. add package 명령을 실행하면 명령줄 도구는 전역 레지스트리에 연결되고 패키지를 가져와서 모든 프로젝트가 사용할 수 있는 캐시된 폴더 위치에 저장합니다.

패키지 검색

개별 개발자는 NuGet.org에서 전역 레지스트리를 사용하여 앱에 필요한 패키지를 찾고 다운로드할 수 있습니다.

패키지는 전부 공개될수도 일부만 공개적으로 제공될 수도 있습니다. 일부는 제한되어 특정 기업의 직원에게만 제공될 수도 있습니다. 패키지가 있을 수 있는 위치는 다음과 같습니다.

  • 레지스트리 : NuGet.org 레지스트리와 같은 전역 레지스트리를 예로 들 수 있습니다. 프라이빗 또는 퍼블릭일 수 있는 고유한 레지스트리를 호스트할 수 있습니다. GitHub 및 Azure DevOps 같은 서비스는 프라이빗 레지스트리를 사용 가능하게 만듭니다.
  • 파일 : 로컬 폴더에서 패키지를 설치할 수 있습니다. 고유한 닷넷 라이브러리를 개발하려고 하고 로컬에서 패키지를 테스트하려고 하거나 특정 이유로 레지스트리를 사용하지 않으려는 경우에는 패키지에서 설치하는 것이 일반적입니다.

닷넷 명령어 상세

닷넷 Core CLI에는 매우 많은 명령이 있습니다. 이러한 명령은 패키지 설치, 패키지 작성, 닷넷 프로젝트 초기화 등의 작업에 도움이 됩니다. 허나 모든 명령을 자세히 알 필요는 없습니다. 닷넷을 사용하기 위해선 일부 명령어만 알면 되고 닷넷 사용이 많아질수록 나도 모르게 다양한 범주의 명령을 사용하게 될 겁니다.

기본적으로 “종속성 관리”, “프로그램 실행”, “패키지 작성 및 게시” 쪽의 몇가지 명령어 정도만 숙지하면 좋을 것 같고 모든 명령의 자세한 목록을 보려면 터미널에 dotnet --help를 입력하면 찾아볼 수 있습니다.

패키지 설치 명령어

dotnet add package <dependency name> 명령을 사용하면 애플리케이션의 일부로 사용되어야 하는 일반 종속성을 설치합니다.

폴더에 있는 패키지를 확인하려면 dotnet list package를 입력하면 됩니다.

종속성 복원

프로젝트를 만들거나 복제하는 경우 포함된 종속성은 프로젝트 빌드 시까지 다운로드되거나 설치되지 않습니다. dotnet restore 명령을 실행하여 프로젝트 파일에 지정된 프로젝트 특정 도구뿐만 아니라 종속성도 수동으로 복원할 수 있습니다.

종속성 삭제

패키지가 더 이상 필요없거나 더 나은 패키지를 발견했을때 기존의 패키지는 삭제해야 퍼포먼스에 도움을 줍니다. 이때 어떤 이유로든 사용하지 않는 종속성 또한 삭제되어야 합니다.

프로젝트에서 패키지를 제거하려면 dotnet remove package <name of dependency>와 같이 remove 명령을 사용합니다. 이 명령은 프로젝트의 .csproj 파일에서 패키지를 제거합니다.

최신글