본문 바로가기

공부/개발 독서

(20)
추억속 아케이드 게임을 이끌어 온 기술 ~ 1982 이제 진짜진짜 많이 들어본 게임들이 연속하여 등장하기 시작했다. 시작부터 팩맨이고.. 저번주에 갤러그 게임이라고 소개한 갤럭시안이 아닌 '진짜' 갤러그가 등장하고, 어디서 많이 본 형식의 레이싱 게임이 등장했다!! 1981: 팩맨 이전까지는 플레이어 캐릭터의 단순 조작이나 정해진 패턴대로만 오브젝트들이 움직여왔다. 이번 팩맨에서 가장 신선했던 점은 처음으로 '게임 인공지능' 이 등장한 것이다. 영상만 봐도 이전과는 다르게 적들의 예상하기 힘든 움직임을 보며 쫄깃함을 느낄 수 있었다. 팩맨에서 등장하는 4명의 적들은 각자 개성을 가지고 2D 타일맵을 자신만의 방법으로 이동한다. 이들은 각자 '목표 타일'을 지정하여 목표 타일까지의 직선 거리가 가장 작은 루트를 선택하며 나아간다. 적들이 루트를 개선하는 타..
추억속 아케이드 게임을 이끌어 온 기술 ~ 1979 년도마다 어떤 칩이 나오고 어떤게 개발되었고 이런 이야기가 나오는데 솔직히 들어도 무슨 말인지 잘 모르겠다.. 그나마 아는건 1976년도에 애플이 최초로 출시한 PC [Apple 1] 이정도.. 그래서 시대별 사용된 IC와 게임기기 이름은 잊고, 그래픽과 게임 플레이의 발전 단계를 중심적으로 보며 이 글을 작성하였다. 이 글을 작성하면서 책에서는 볼 수 없는 실제 게임 플레이 영상을 보니까 책에 더 재미있게 접근할 수 있었다. 1975 : 건파이트 최초의 마이크로 프로세스 CPU를 탑재한 아케이드 게임. 왜인지는 모르겠지만 초창기 게임들은 2인 플레이를 좋아하는듯 하다. 학교 컴퓨터실에서 하면 재미있을것 같은 재질의 게임. 건파이트는 이전 게임들에 비해 해상도가 높아지고 움직임에 대한 디테일이 크게 발전..
추억속 아케이드 게임을 이끌어 온 기술 ~ 1973 추억속 아케이드 게임을 이끌어 온 기술 초반부를 읽고 있는데 옛날에는 하드웨어만으로 게임을 개발했구나.. 신기했다. 유니티엔진같은 게임 엔진이 나오기 전 게임 개발자들의 질문과 답변을 보다가 '게임 개발을 하고싶으시면 어셈블리어는 기본으로 하셔야죠' 라는 답변을 봤던 기억이 있다. 직접 원하는 하드웨어의 어셈블리어로 코딩한다는거 자체가 뭔가 비현실적이게 느껴졌는데, 이 책에서는 한 술 더 떠서 전자소자만으로 게임을 만들던 시기의 이야기를 들려주고 있다. 전자과를 나오고 게임회사에 다니고 있는 나로써 굉장히 흥미롭게 읽었던 부분이다. 1971 : 컴퓨터 스페이스 이 책에서 처음 소개되는 1971년의 컴퓨터 스페이스 게임 세계 최초의 아케이드 비디오 게임이라고 한다. 컴퓨터 스페이스는 마이크로 프로세서를 사..
함께 모으기 - 객체지향의 사실과 오해 책임 주도 설계를 하는 방법 :구조와 기능을 기반으로 설계를 진행한다. 기능은 세부 사항이 바뀌기 쉽지만, 구조는 쉽게 변하지 않는다 따라서 설계를 한다면 구조를 기반으로 하는 것이 안정적이지만, 책임 주도 설계에서는 구조와 기능 둘 다 필요하다! - 구조 기반으로 설계: 도메인 모델 - 기능 기반으로 설계: 유스케이스 도메인 모델 - 도메인: 프로그램을 사용하는 분야(게임, 금융 등..) - 도메인 모델: 도메인에 대한 지식을 개념과 개념간의 관계로 단순화 한 것 객체지향에서는 현실 객체와 소프트웨어 객체의 의미적 거리가 적기 떄문에, 도메인 모델은 객체 지향과 궁합이 좋다! - 도메인을 이해하면 코드를 이해하기 쉬워진다 - 나중에 기능이 변경되면 수정도 쉽다 - 사용자의 관점을 반영하며, 사용자들이 ..
책임과 메시지 - 객체지향의 사실과 오해 책임과 메시지 방관자 효과란 주위에 사람들이 많을수록 어려움에 처한 사람을 돕지 않게 되는 현상을 뜻하는 심리학 용어이다. [위키백과 방관자 효과] 즉 사람이 많을 수록 개인이 느끼는 책임감이 적어진다는 것이다. 훌륭한 객체지향의 세계는 명확하게 정의된 역할과 책임을 지닌 객체들이 상호 협력하는 세계이다. 역할과 책임이 흐릿할수록 어떤 협력자도 찾지 못할 것이다. 자율적인 책임 "객체지향 세계는 자율적인 객체들의 공동체라는 점을 명심하라. 객체가 자율적이기 위해서는 객체에게 할당되는 책임의 수준 역시 자율적이여야 한다." 객체가 어떤 행동을 하는 유일한 이유는 다른 객체로부터 요청을 수신했기 때문이다. 자율적인 객체란 스스로의 의지와 판단에 따라 각자 맡은 책임을 수행하는 객체를 의미한다. 적절한 책임이..
역할, 책임, 협력 - 객체지향의 사실과 오해 의도는 "메시징"이다. 훌륭하고 성장 가능한 시스템을 만들기 위한 핵심은 모듈 내부의 속성과 행동이 어떤가보다는 모듈이 어떻게 커뮤니케이션하는가에 달려있다. -엘런 케이[Kay 1998] 최후통첩 게임이란 게임 이론에 등장하는 방법론 중 하나로 1982년 독일 훔볼트대학교 경제학 교수 베르너 귀트(Werner Güth) 등이 고안한 이론이다. 사람이 공정하지 못한 상황에 처하면, 최악의 조건 속에서도 한 올의 합리적인 이익조차 놓치게 되어버리는 심리를 일컬을 때 자주 언급된다. 최후통첩 게임 - 일상과학 WiKi - 위키독 최후통첩 게임Ultimatum game더럽고 치사해서 안한다.우리는 손해를 감수하면서까지 불의에 저항하는 뇌를 가지고 있다.1. 개요최후통첩 게임을 그림으로 나타낸 것.게임이론에서 나..
이상한 나라의 객체 - 객체지향의 사실과 오해 흔히 객체지향에 대해 처음 배울 때, '객체란 실세계의 사물을 모방한 것' 이라는 표현을 자주 사용한다. 아쉽게도 이 표현은 객체지향의 기반을 이루는 개념을 간단히 표현하기에는 적합하지만, 정확하게 말하자면 틀린 표현이라고 한다. 대다수의 개발자들은 객체지향 애플리케이션이 실세계를 모방해야 한다는 설명을 전혀 납득하지 못한다. 우리는 객체지향에 대해 더 자세히 이해하고자 이 책을 보거나 이 글을 찾아왔을 것이다. 우리와 같은 사람들은 이제 '객체지향은 실세계의 사물을 모방한 것'이 아닌 실제 개발에 도움이 될 수 있는 객체지향에 대한 정의를 내려봐야 할 것이다. 모든 사람들의 객체지향에 대한 정의는 같지 않을 것이다. 그렇다고 단순 시험을 위해 모두 똑같이 암기한 객체지향은 실제 개발에 큰 도음이 안될 ..
끊임없는 학습 - 프로그래머의 길, 멘토에게 묻다 드디어 마지막 패턴. 이번에 읽은 챕터는 '끊임없는 학습'과 이 책의 마지막 챕터인 '학습 과정의 구성' 이다. 개인적으로 지난 챕터인 '정확한 자기 평가'는 집중이 잘 안됬는데, 이번 두 챕터는 몰입해서 읽었던것 같다. 소프트웨어 장인이 되기 위하여 어떻게 학습해야 할 것인가에 대한 생각보다 깊은 내용을 들을 수 있었다. 이번에 읽은 패턴 능력의 폭을 넓혀라 연습, 연습, 또 연습 부숴도 괜찮은 장난감 소스를 활용하라 일하면서 성찰하라 배운 것을 기록하라 배운 것을 공유하라 피드백 루프를 만들어라 실패하는 법을 배워라 독서 목록 꾸준히 읽어라 고전을 공부하라 더 깊이 파고들어라 익숙한 도구들 연습, 연습, 또 연습 나를 포함한 대부분의 사람들은 한 번의 학습 과정을 거치면 다시 그 과정을 다시 보려고 ..