일본의 옛 유명 프로듀서들이 크라우드 펀딩으로 먹튀한(할) 건들에 대하여.

일본의 옛 유명 프로듀서들이 크라우드 펀딩으로 먹튀한(할) 건들에 대하여. 공개한 영상 퀄리티가 문제가 아니고 플레이 가능 버전을 보여주지 못하는게 진짜 문제임. 왜 영상을 공개하느냐? 영상 퀄리티로 까이느라 플레이버전이 없다는 심각한 사실이 묻혀버리거든. 일반인들은 돈과 시간을 투입하면 게임은 무조건 나온다고 생각한다. 영화나 음악 비하하자는게 아니고 그쪽은 똥이라도 촬영하고 녹음해서 팔면 파는거지만 게임은 소프트웨어다보니 그게 안된다. 최소한 … More 일본의 옛 유명 프로듀서들이 크라우드 펀딩으로 먹튀한(할) 건들에 대하여.

멍청한 추상화 하지 마라.

C++이 일반화되면서 아주 바보같은 관행이 생겼는데 나는 이걸 ‘멍청한 추상화’라고 부른다. 소켓 프로그래밍을 처음 시작하면…열에 아홉 정도는 CSocket이란 클래스를 만든다. 18년전에 나도 그랬다. 18년전에 내가 짠 코드는 똥이었다. 그리고 그 시절이나 지금이나 소켓 프로그래밍 초짜들이 만드는 CSocket은 십중팔구 똥이다. 단순히 소켓 디스크립터를 랩핑하고 관련 함수를 몇개 넣은 이 클래스는 대개 block mode에 싱글스레드를 기준으로 만들어진다. … More 멍청한 추상화 하지 마라.

명시적 종료의 필요성 #2

네이티브 코드 체계에선 메모리(일반적인 메모리 , COM객체,Windows HANDLE 등등) 누수 탐지 기능이 반드시 필요하다. 컴파일 타임에서 논리적으로 아무리 완벽한 체계를 제공한다고 해도 말이다. 최근 MS는 COM을 사용하는 예제에서 CComPtr 사용을 적극 권장하고 있다. C++/CX에선 명시적으로 CComPtr을 사용할 필요없이 ^객체가 스마트포인터를 내장하고 있고 UWP프로젝트가 아닌 경우, 예를 들어 DX12샘플같은 경우 CComPtr을 사용하고 있다. CComPtr뿐 아니라 컴파일러 … More 명시적 종료의 필요성 #2

Surface Ergonomic vs Natural Ergonomic 4000

Surface Ergonomic 키보드 쓰면서 backspace 눌렀는데 insert 눌리고, F9 눌렀는데 F10눌리면 역시 프로그래밍할때는 MS Natural Ergonomic 4000이 짱이란 생각이 든다. 일반키 타이핑은 괜찮은데 insert, delete, home,end, pgup,pgdn구역이 일반 키 구간과 너무 가까움. 그래서 \누르려다 delete누르고 backspace누르려다 insert누르는 일이 비일비재. 펑션키 배열이 한칸씩 기존 키보드에 비해 왼쪽으로 이동해 있음. 그래서 습관대로 F5키를 누르면 F6이 눌림. 브레이크 … More Surface Ergonomic vs Natural Ergonomic 4000

서버 프로그래머 = 서버에 컨텐츠를 얹는 프로그래머???

상용 네트워크 엔진이 보급되면서 네트워크 모르는 네트워크 프로그래머, 서버에서 필요한 기술 모르는 서버 프로그래머가 생겨났다. 그런데 이게 꼭 네트워크 엔진의 보급 때문은 아니다. 상용 네트워크 엔진의 보급이 늘기 전에도 사실 서버 프로그래머라는 직군에 좀 웃기는 현상이 일어나긴 했다. 전에도 언급했지만 한국 온라인 게임(MO,MMO)들의 네트워크/서버 소스코드 상당 수가 거의 몇 안되는 사람들 손에서 나왔다. 이게 처음 … More 서버 프로그래머 = 서버에 컨텐츠를 얹는 프로그래머???

디버깅은 코드 작성 이상으로 중요하다.

모바일 세상은 좀 다른가보지만… 예전에 PC 온라인 게임이 대세이던 시절엔 버그 때문에 게임이 완전히 망하고 회사가 망하는 일도 흔했다. 서버가 하루에 12번씩 다운되면 아무리 재밌어도 유져들이 참아주지 않는다. 서버가 아니면 상관없나? 클라이언트는 죽어도 상관없나? 한참 레이드 뛰는데 클라이언트가 죽어봐. 그렇게 여러번 반복해봐. 차라리 휘발유 들고 개발사 쳐들어가는 유져는 애정이라도 있는거지. 대다수는 쌍욕과 함께 그 게임 … More 디버깅은 코드 작성 이상으로 중요하다.

추상화의 허상

CPU가 아무리 빨라지고 온갖 개념의 프로그래밍 언어가 등장해도 현대의 컴퓨터는 종이테이프 머신에 기초를 두고 있다. 코드를 짜고 배포를 하고 디버깅을 하다보면 객체고 뭐고 아무리 포장을 해도 결국 소프트웨어란게 코드와 데이터의 스트림-종이테이프에 불과하다는 사실을 깨닫게 된다. 이걸 뼈저리게 느낀 첫 경험은 처음 멀티스레드로 네트워크 프로그래밍을 했던 2000년도였다. 여느 초심자들처럼 멀티 스레드 프로그래밍의 쓴맛을 톡톡히 맛보았다. ‘이 … More 추상화의 허상

생산성에 대한 고찰

내 경험에 비추어 보면, 프로그래밍 측면에서 프로젝트가 지연되는 이유는 다음과 같다. 1. 대략적으로 돌아가는 프로토타입이 없어서 프로그래머들이 각각 쓸데없는 짓을 함. 조립이 불가능한 부품을 각각 만들고 있음. 이것도 배가 산으로 가는 케이스. 2. 치명적인 버그를 잡지 못함. 디버깅 능력의 결여. 디버깅을 빼고 순수하게 코드만 작성하는 시간이 오래 걸려서 프로젝트가 늦어지는 경우는 한번도 보지 못했다. 프로젝트의 … More 생산성에 대한 고찰

게임 프로그래밍이 만만해 보이냐?

2003년도 코룸온라인 클베 하기 직전이었다. 다음은 어느 코룸 유져가 코룸온라인 홈피에 남긴 글중 일부이다.. ——————————————————————– 4.세부소견-프로그래밍/네트워크 [ 코룸은 디아블로2의 엔진을 사용했다.] 그것은 디아블로2의 뛰어난 액션성을 그대로 장점으로 만들 수 있는 가능성이 있다는 것을 의미한다. 그리고 그것은 반드시 코룸이 갖춰야할 장점이기도 하다. 개인적으로 시스템엔지니어이긴 하지만 사실 게임 프로그래밍은 세부적으로 어떻게 돌아가는지 잘 모른다. 기회가 된다면 소스를 … More 게임 프로그래밍이 만만해 보이냐?

Azure N 인스턴스에서 Windows Update후 발생하는 문제 해결방법

1월 20일 페이스북에 적었던 Azure N인스턴스 문제. VM만들때 SSD타입으로 고르면 N인스턴스는 목록에 안나옴. HDD타입으로 골라야 목록에 나옴-_-; 인스턴스가 만들어지고 처음 로그인 해보면 잘 작동함. 그런데 여기서 Windows Update후 리부팅 하고 나면 연결이 안됨. 리부팅 해도 안됨. 할당 취소하고 다시 시작해도 안됨. 할당 취소후 재시작 하고 Boot 진단에서 스크린샷을 보면 네트워크가 아예 끊긴것으로 표시되는 경우가 있음. … More Azure N 인스턴스에서 Windows Update후 발생하는 문제 해결방법