슈퍼마리오 멀티플레이어 개발 후기

coolspeed

왓 스튜디오 팀 합류 과제로 게임제작 미션을 받았다.

나는 과제로 “슈퍼마리오 멀티플레이어 게임”을 만들었다:

EnemyCD.gif

과제 결과물을 왓 스튜디오의 허락을 받고 소스코드를 Github 에 공개하였다:

https://github.com/coolspeed/MarioMultiplayer

관심 있으신 분들은 별표 하나씩 찍어 즐찾해주시길 부탁립니다.

게임 룰: 위의 GIF 움짤  그대로. 먼저 상대방을 밟는 쪽이 이긴다.

 

과제가 1차, 2차로 나뉘는데 1차에서는 싱글 플레이어 슈퍼마리오를 만들었고 2차에서는 그것을 멀티플레이어 게임으로 발전시켰다.

최종 클라 Java (Processing) 1500 줄, 서버 C# 22줄로 짜여졌다.

클라

Processing 으로 만들었다. 왜?

  1. Processing 이 좋아서. (유쾌한 시각적 프로그래밍)
  2. Unity 쓸줄 몰라서.
  3. 다른 엔진도 쓸줄 몰라서.
  4. 엔진부분이 더 재밌어서.
  5. 웹에다 배포하고 싶어서. (P5.js 를 통하여. 하지만 망했다. 그냥 일반 Processing 애플리케이션처럼 exe 파일로 빌드했다.)

서버

단순한 릴레이 서버.

big_mirror.png

넷코드

ZeroMQ 를 네트워크 라이브러리로 사용했다.

Continue reading

블록체인 관련 TED 강연 3선

블록체인이 무엇일까요? 아직 알지 못한다면 아는 것이 좋을 것이고, 안다고 해도 실제 운영 방식에 대한 자세한 설명이 도움이 될 것입니다. 돈 탭스콧이 인터넷의 두 번째 세대를 표방하며 돈과 경제, 정부와 사회를 변화시킬 잠재력을 가진 신뢰 구축 기술의 비밀을 밝힙니다.


모든 걸 바꾸게 될 분산적인 경제 제도인 블록 체인과 인사하세요. 이 복잡하고 혼란스러운 과학 기술을을 명료하게 설명하는 베티나 워버그는 인간의 역사만큼 오래된 상업과 재정 활동을 보다 흥미로운 것으로 변하게 할 블록체인(교환 가치를 위한 분산적이고 투명성이 보장되고 자동화된 제도)이 거래를 용이하게 하는 은행과 정부 같은 중앙집권적 기관에 대한 우리의 필요를 어떻게 사라지게 하는 지에 관해 설명합니다.


우리가 물건을 매매하는 방식이 바뀌고, 은행과 환전소가 없어도 되는 세상이 온다면 어떨까요? 비트코인이나 이더리움과 같은 암호화 전자 화폐가 보편화되면 미래에 이런 급격한 변화가 일어날 수 있습니다. 아직 그런 세상이 도래하진 않았지만, 이 재기 넘치는 강연을 통해 디지털 화폐 연구자 네하 나룰라는 화폐의 집단 허구에 관해 설명하면서, 지금과는 사뭇 다른 미래를 제시합니다.

Windows 10 에서 폰트를 맥처럼 이쁘게 보이게 하기

맥(Mac OS)을 써보신 분들은 아시겠지만, 폰트가 윈도우랑 달리 뭔가 뿌옇게 나온다. 윈도우꺼보다 예쁘다는 말도 있다. 호불호가 갈리긴 한데, 윈도우 식의 장점은 모니터에서 뚜렷하게 보인다는 점이고, 맥 방식 폰트 렌더링의 장점은 보다 정확하다는거다. 특히 폰트가 볼드처리되거나 사체(斜體)로 처리될 경우, 윈도우 방식에서는 많이 망가지는데, 맥 방식에서는 정확성이 떨어지지 않는다.

우선 효과부터 스크린 샷으로 확인하자.

Before

Before

After

After

뭐 대충 이렇다.

솔직히 호불호가 갈린다. 원하는 사람만 사용하기 바란다.

Continue reading

프로그래밍 바벨탑 해결

Python 을 Go 로 번역해주는 트랜스컴파일러:

https://github.com/google/grumpy

Python 을 Go 로 트랜스컴파일한다는 것은 무엇을 의미하는가, Python이 최정적으로 네이티브 컴파일 됨을 의미합니다..

저는 어제 이 리포의 별수가 실시간으로 오르는 걸 보았습니다. 오늘은 어제 대비 별표가 많이 늘어났더라구요.

이런 갓 프로젝트를 누가 만들었나 했더니 갓 Google 님이 만들었더라구요.

이게 좀더 성숙해지면 구글은 python 으로 짜여진 유튜브를 네이티브 프로그램으로 서비스 하겠네요.

자 그러면 앞으로 이런 식으로 프로그래밍 바벨탑들이 다 해결 될 것인가?

 


하스스톤 역기획 해 python 코딩하는 알파고:

http://kotaku.com/google-deepmind-is-now-analysing-magic-and-hearthstone-1767628685

프로그래머들을 아예 다 해치울지도..? ㅋㅋㅋ

2016회고: 같은 성형외과 나온 프로그래밍 언어들

내 언어의 경계는 내 세계의 극한이다 — 루트비히 비트겐슈타인 <논리철학 논고> [1] (5.6)

프로그래밍 언어는 빠르게 발전한다 — 적어도 빠르게 변화한다. 한때 유행했던 Delphi 나 한때는 쿨하다고 여겨졌는 Perl 이 오늘날 이토록 사람들로부터 외면 받을 줄은 그때 당시는 상상하기도 어려웠던 것처럼[2]. 2016 년에도 프로그래밍 언어는 1년어치 뉴스를 듬뿍 채울 만큼 착실하게 발전했다. 뜻인즉 프로그래머들의 식후 티타임 화제를 옹근 2016년 한해만큼 제공하기에 충분한 분량을 채울 만큼 확실하고 견고하게 발자국을 내디뎠다는 말이다. 원한다면 프로그래밍 언어 2류 관찰가의 시선을 따라 2016년의 프로그래밍 언어를 회고해보자. (일부 특성들은 사실 2016년에 추가된게 아니다, 엄밀히 따지자면. 하지만 그게 2016년에야 각광받았다면 2016년의 뉴스로 치부할 수도 있을 것이다)

2016 년 “올해의 프로그래밍 언어”

프로그래밍 언어 유행지수를 발표하는 것으로 프로그래밍 커뮤니티에서 유명한 TIOBE 가 곧 2016년 “올해의 프로그래밍 언어” (Programming language of the year 2016) 를 발표할 예정이다. 이 영광을 차지할 언어는 Go 언어가 거의 확정이다 [3]. 원인은 1개 퍼센트 포인트 이상의 유행도 상승을 보여준 프로그래밍 언어가 Go 와 Groovy 밖에 없는데, Groovy는 이미 과거형으로 되었기 때문이다.

Google이라는 명문 출신, C언어의 아버지와 UNIX의 아버지가 만든, 대규모 동시성 프로그래밍을 위해 태어났다는 슬로건, 등등 태그들을 달고, 프로그래밍 언어들이 혈전고투로 어려워하는 와중에 Go 언어는 자기만의 길을 개척해 유행도를 얻고 있다. 또한 컨테이너 프로그램 Docker 가 점점 일반 가정에 까지 들어설 만큼 유행해진 것이 그것의 개발 언어 Go가 나날이 주목받는데 일조를 하는 것 같다.

JetBrains 도 이런 배경에서였는지, Go언어 IDE 프리뷰 버전(현재 이름: Gogland)을 내놓았다. 성숙한 IDE는 Go 생태계의 빠른 성장에도 큰 도움이 될 것 같다.

Async/Await 유행년

2016 년을 감히 Async/Await 의 해라고 부르겠다. 2016 년에 뭐가 가장 핫했냐고 물어본다면 당근 Async/Await 이겠으니. Continue reading