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

coolspeed

팀 합류 과제로 게임제작 미션을 받았다.

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

EnemyCD.gif

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

https://github.com/coolspeed/MarioMultiplayer

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

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

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

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

클라이언트

Processing 으로 만들었다. 왜?

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

서버

단순한 릴레이 서버.

big_mirror.png

넷코드

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

Continue reading

그럼에도 불구하고 그대여 가장 소중한 것을 이 세상에 선사하소사

<보이지 않는 전우>

중국내 논란이나 전세계적인 논란이나, 상상 가능한 모든 범위를 커버했던 것 같다. 보도자료의 디테일의 진실성부터 언론의 정신이며 OpenSSL 재단의 재무 상황이며 모금의 어려움이 확대보도됐는지 여부며 유사 프로젝트들과 비교했을 때 OpenSSL 의 영향력이 과대평과됐는지 여부며 OpenSSL 의 문제는 돈인가 관리인가 논쟁이며 OpenSSL 의 코드가 쓰레기인지 여부며 OpenSSL 이 어떻게 영향력 다른 말로 점유율을 얻은것인지며 대형 사이트들 다른말로 큰회사들이 암호학 라이브러리를 선정하는 프로세스가 어떻게 되어있는가며 OpenSSL 이 취약점을 발표한 프로세스며 오픈소스 생태계 대토론이며 소프트웨어경제학과 보안의 관계며 심지어 다양한 버전의 음모론들까지…

끝내며,

사건 당사자, Smartisan 창업주이자 CEO 인 나영호씨가 대응글에서 인용한, 테레사 수녀가 콜카타 고아원에 써준 시를 재인용한다.

그대가 친절하면
사람들은 그대가 이기적이고 속셈이 음흉하다고 말할 수 있다
그럼에도 불구하고
그대여 친절하소사

그대가 성실하고 솔직하다면
사람들은 그대에게 사기치고 등골 빼먹을 수도 있다
그럼에도 불구하고
그대여 성실하고 솔직하소사

그대가 오랜 기간 심혈을 쏟아 건설한 결과물들이
사람들에게 하루밤사이에 짓밟혀버릴지도 모른다
그럼에도 불구하고
그대여 건설하소사

그대가 오늘 한 선행이
내일이면 사람들에게 잊혀질지도 모른다
그럼에도 불구하고
그대여 선행을 하소사

그대가 가장 소중한 것을 이 세상에 바쳤을지언정
그것이 그대로 하여금 감사의 마음을 받게 하기에는 역부족일지도 모른다
그럼에도 불구하고
그대여 가장 소중한 것을 이 세상에 선사하소사

사람들은 늘 도리를 따지지 않고 비논리적이고 자기중심적이니라
그럼에도 불구하고
그대여 그들을 용서하소사

(끝)

600억 값어치 해킹으로 이더리움 가격 폭락

비트코인 유사한 인터넷 가상 화폐 이더리움(Ethereum)의 가격이 해킹 사건으로 폭락했다.

이더 개당 가격은 최고기록 21.5 달러로부터 불과 몇시간 사이에 15 달러까지 곤두박질 쳤다. 5천만 달러 값어치의 해킹 절도 사건 때문이었다. [1]

gettyimages-149818149.jpg

이더리움 개발자들은 이 해커의 절도를 되돌리는 핫픽스(Hard fork)를 제안하고 있는 중이다.

이더리움은 비트코인과 유사한 탈중앙화 화폐이다. 비트코인과 다른 점이라면 화폐기능 외에도 탈중앙화 조직이란 기능과 스마트 계약(Smart Contracts) 기능을 가졌다는 점이다.

이상은 최대한 간단한 소개이고, 기술적으로 보다 정확히 말하자면 Ethereum 블록체인 (네트워크) 자체는 그 어떤 취약점도 발견되지 않았다.

취약점이 발견되어 이용당한 것은 이더리움 플랫폼 위의 애플리케이션(DApp, 즉 Decentralized App) The DAO 이다. 본 블로그에서는 일전에 <크라우드펀딩의 새로운 역사> 란 제목으로 해당 프로젝트를 소개한 적이 있다.

hour_cryptocompare_index_eth_usd_168_11466160967350

The top graph shows the value of ether in US dollars, while the second shows the volume of transactions on the network over time. — CryptoCompare

Continue reading

《제로 투 원(ZERO to ONE)》 독서 필기

<ZERO to ONE> 을 읽는 내내 나는 이 책을 꼭 추천해야겠다는 생각과 도대체 추천글을 어떻게 써야 할지를 고민해왔다. 이게 웃긴게 <ZERO to ONE>은 센세이션이다 못해 이미 신드롬으로 변해버렸고 세계 각국의 일부 창업자들로부터 성경 (The Book) 처럼 떠받들려온지도 오래인 책이니 일개 공돌이가 오늘날에야 이 챍을 읽고 나서 감격에 겨워 책을 읽는 내내 추천글을 어떻게 쓸지를 치열하게 고민해왔다니.

결국 이 책을 다 읽고 난 뒤에는 추천글을 아예 독서필기로 써버리는게 나을 것 같다는 생각이 들었다. 이렇게 하게 된 가장 큰 원인은 개인적인 용도이다. 적어도 두번째로 읽으며 필기를 남겨야 하지 않겠는가. 그래야 중요한 것을 놓치지 않는다는 다소 개인적인 생각도 들고, 개인적인 자료들도 챙기고. 추천글로도 충분히 훌륭하지 않겠는가는 생각이 들었다.

독서필기를 추천글로 사용하는데 있어서 가장 큰 도전은 독서필기가 얼마나 매력적이게 보일 수 있을거냐 하는 질문인 것 같다. 문제는 이 책은 매 페이지마다 재미있고 매 페이지마다 주옥 같았으며 지혜의 빛발로 번뜩였다는 것이다 (개인적인 평가일 수 있다. 하지만 현시대 그 많은 유명인사들이 이 책을 떠받드는 것으로 보아 나만 이런 얄팍한 생각을 한게 아닌 것 같다). 역설적이게도 이런 소위의 “추천글”은 오히려 이미 이 책을 정독하셨고 애독하셨던 독자들에게 가장 가치가 있을 것 같다.

어쨌거나 나는 꼭 이 독서필기를 써야겠다. 일단 나 자신을 위해서.

잡스형님이 별세로 비워둔 신단을 엘론 머스크가 차지했다고 생각했는데, 이 책을 읽고 나는 페이팔의 다른 창업자인 피터 틸 역시 엘론 머스크 못지 않을 만큼이나 이 시대의 우상임이 틀림 없음을 느끼게 되었다. 역시 ‘페이팔 마피아’는 후덜덜 하구나!

Continue reading

왜 최근에 빌 게이츠, 일론 머스크, 스티븐 호킹 등 많은 유명인들이 인공지능을 경계하라고 호소하는가?

저자: Tim Urban

번역: coolspeed

번역일: 27 December, 2015

: 무단 전재를 허용하지 않습니다. 허락을 받아야 전재를 있습니다. (링크로 공유하는 것은 환영합니다. 읽고 재밌으셨다면 SNS 많은 공유 부탁드립니다.)


인공지능은 인류의 영생이나 멸종을 초래할 있는데 모든 것은 모두 우리가 살아있을 일어날 있다고 합니다!

글을 번역하는데 굉장히 오래 걸렸습니다. 힘들게 번역한 원인은 글이 가치가 있다고 생각했기 때문입니다. 여러분들도 인내심있게 끝까지 읽어보시는걸 추천드립니다. 읽고 나면 당신의 세계관이 모두 바뀔지도 모릅니다.


내용 출처: waitbutwhy.com

원문링크:

Part I: The AI Revolution: The Road to Superintelligence

Part II: The AI Revolution: Our Immortality or Extinction


우리는 지금 격변의 변두리에 서있다. 이런 격변은 인류의 출현과 맞먹을 만큼 의미가 중대하다. — Vernor Vinge

당신이 그래프상에서 이 지점에 서있는다면 어떤 느낌이겠는가?

00

Continue reading

Skynet 의 UDP 지원

작자: cloudwu

번역: coolspeed

오랜 고민 끝에 결국 skynet (https://github.com/cloudwu/skynet) 에 기본적인 UDP 지원기능을 넣기호 했다. 대부분 경우, 특히 네트워크 게임 영역에 있어서 나는 UDP 프로토콜 사용을 반대하지만 skynet 은 이미 게임영역에만 사용되는게 아니라는 점을 고려하여 UDP 지원을 추가하는게 의미있는 일이라고 생각했다.

그나저나 최근의 피드백상으로 보면 어떤 사람은 skynet 을 이더넷 스위치 (Ethernet Switch) 구현에 사용했고 (사용한 CPU 가 powerpc 의것이여서 Big / Small Endian 관련된 버그들을 해결하는데 도움이 됐다고 한다), 증권분야에 사용한다는 사람도 있었다. 그리고 비디오 방송 분야에서 사용한다는 사람도 있었다. 그리고 아마 skynet 을 web 개발에 사용하는 사람도 있을 것이다. 간단한 테스트 결과에 의하면 성능면에서 lua 를 nginx 에 접합시켜 사용하는 것보다 못지 않았다.

현재 UDP 부분의 코드는 이미 완성되였는데 github 에서 “udp”라는 브랜치에 넣었다. 머지 않아 마스터 브랜치에 머지할 생각이다. 나는 이쪽의 니즈가 없어서 이런 니즈가 있는 친구들이 코드를 읽고 실제로 사용해주기를 바란다. 그래야 잠재 보그들이 발견될거니까.

이 부분의 설계와 일부 api 문서들은 wiki 에 보충해넣었다. ( https://github.com/cloudwu/skynet/wiki/Socket ) (중문)

Written in November 13, 2014
Translated in December 24, 2015

원문링크: http://blog.codingnow.com/2014/11/skynet_ae_udp_oeoe.html