Chris Sawyer가 롤러 코스터 타이쿤의 대부분을 어셈블러로 작성하는 데 얼마나 오래 걸리고 복잡한 유형은 무엇입니까?


14

이 질문에서 , 나는 또 다른 질문이 있습니다 ...
Chris Sawyer가 롤러 코스터 타이쿤의 대부분을 어셈블러로 작성하는 데 얼마나 오래 그리고 어떤 유형의 복잡성이 관여 했습니까?

이 질문을 구체적으로 설명하고 나누기 위해 관심이 있습니다.

  1. Chris가 직접 게임을 작성하는 데 걸리는 시간은 대략 몇 시간입니까 (추측 값이 있습니까)? 또는 C / C ++로 전체 내용을 작성하여 어셈블러 코딩 시간 비율의 대략적인 백분율을 제공하십시오.

  2. 어셈블러를 아는 프로그래머는 이것을 저수준 언어 추상화를위한 지나치게 복잡한 작업으로 생각합니까? 성능상의 이점 외에도 Chris가 가진 놀라운 자연의 능력, 또는 그 정도까지 배울 가치가있는 기술이 있습니까? 사람들이 복잡성 / 성능이 어셈블러를 잘 배울 가치가 있다고 생각하거나 (작성하기 위해) 어셈블러에서 자연스럽게 개발 된 기술이 많이있는 경우 ( "아마도 하드웨어를 사용하여) / 하드웨어 드라이버 / 전자 제품 / 등).


1
C로 작성하여 시작한 다음 성능에 필요한대로 일부를 어셈블러로 변경할 수 있었습니까?
Jon Onstott

1
Ha, ha, ha, 이것은 내 오래된 의견을 읽고있는 누군가의 질문과 같습니다.
Mark C

답변:


12

그의 거친 바이오를 읽은 후 2 년 (1997 년 초부터 1998 년 후반)으로 보인다. 그가 '한 번에 하나의 프로젝트'인 것처럼 보였고 도구 세트와 기간이 '팀 개발'에 적합하지 않다는 것을 감안할 때 24 개월의 프로그래머 월을 가정합니다.

그 시점에서 그는 1983 년부터 총괄 일하는 프로 게임 프로그래머였습니다. 그래서 저는 "2 년"과 "2 년"을 동일시하지 않았습니다.

대부분의 프로 게임은 팀이 개발하는 데 약 25 년이 걸린다는 점을 감안할 때 업계 최고의 게임을위한 2 인년은 놀라운 성과이며, 그 말에 대한 신뢰를 빌려줍니다.

이 경우 Chris가 C 또는 Java 또는 Javascript를 사용하여 Rollercoaster Tycoon을 얼마나 빨리 작성합니까? 아마도 14 년 동안 경험이 없었던 고급 언어를 사용하면 조금 느려 졌다는 사실 외에는 문제가되지 않았을 것입니다 ...


큰 요점, 나는 그럴지도 모른다라고 생각합니다.
익명 유형

4

C를 "고수준"어셈블러로 생각할 때 Chris가 모든 루틴 에서 어셈블리 코드를 열악하게 최적화하지 않았다고 가정하면 % 시간으로 더 오래 상상할 수 있습니다. 숙련 된 어셈블리 프로그래머에게는 그다지 많지 않을 것입니다.

C에서 할 수없는 모든 미친 최적화 (벡터화 작업, 특수 명령어 세트 (SSE 등) 비트 트위들 링 등 사용)를 수행하면 어셈블리가 복잡해집니다. 그 시간은 실제로 "이 비트를 바이올린, 조립, 측정 ...이 비트를 바이올린, 조립, 측정 ..."루프에 있으며 실제 코딩에는 없습니다. 좋은 매크로 어셈블러와 숙련 된 프로그래머라면 어셈블리 를 작성하는 것이 C 코드를 작성 하는 단계에서 크게 떨어지지 않습니다 .

아직도, 나는 그것을 할 수 없었을 것이다! 어셈블리에서 직접 DirectX를 초기화하려고 시도한다고 생각합니다. ( 편집 : Wikipedia는 C에서 Windows 운영 체제와의 인터페이스를 위해 일부를 썼다는 것을 알려줍니다. 그래서 그는 어셈블리에서 DirectX를 초기화하지 않았다고 생각합니다 ... 휴!)


YEah 그것은 내가 처음에 알아낼 수 없었던 비트였습니다. 그러나 DirectX에 C를 사용하는 것에 대한 내용을 읽었습니다. 매우 흥미로운 최적화에 대한 정보를 주셔서 감사합니다.
익명 유형

3

어셈블러에서 많은 Windows 프로그램을 작성하는 것으로 알려진 또 다른 사람은 SpinRite, ShieldsUp의 저자 인 Steve Gibson입니다! 및 기타 유틸리티. 그는 여기서 어셈블리 언어에 대한 그의 사랑에 대해 이야기 합니다 .

Randy Hyde (Apple II의 6502 어셈블리 코드를 작성했을 때 되돌아온 방법)는 Windows Programming in Assembly Language 라는 새로운 온라인 책을 보유하고 있습니다. 그는 고급 언어 (루핑 구문 포함)를 사용하여 고급 언어를 사용하는 것처럼 어셈블리 프로그래밍을 더 많이 만드는 데 큰 지지자입니다. 소여 (Sawyer)는 아마도 생산성을 높이기 위해 비슷한 접근법을 사용했을 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.