Bash에서의 Raycaster 구현

6 hours ago 2

왜 이것이 어려웠는가

  • Bash의 속도 문제: Bash는 매우 느려서 픽셀당 명령을 실행하면 적절한 프레임 속도를 달성할 수 없음. 화면 상태를 메모리에 유지할 수 없으며, 배열이나 문자열로 접근하는 데 시간이 많이 소요됨.
  • 수학적 제한: Bash는 부동소수점 지원이 없고 수학 함수 라이브러리도 없음. 모든 수학 연산은 정수로 수행되며, 100000으로 스케일링됨.
  • 터미널 그래픽 문제: 픽셀을 표현하기 위해 유니코드 반 블록을 사용하여 수직 해상도를 두 배로 늘림. 인접 픽셀의 색상을 알아야 하며, Bash는 상태를 저장할 수 없음.
  • 기타 문제점:
    • 터미널 전체를 한 번에 업데이트하는 것이 어려움.
    • 대부분의 터미널은 비디오 게임을 위한 것이 아니며, 키 입력을 실시간으로 처리하기 어려움.
    • 터미널을 색상으로 채우는 데 많은 데이터가 필요함.
    • Bash는 여러 줄의 문자열을 한 번에 출력하지 않음.
    • ECMA48, VT100, VT200, Xterm 등의 표준은 복잡하고 이해하기 어려움.
    • 수학적 계산에 어려움이 있었음.

FAQ

  • Q: 창 크기를 조정하면 문제가 발생함
    • A: 이슈를 열어주세요.
  • Q: CPU가 과열되거나 오래된 컴퓨터가 느려짐
    • A: 환경 변수 FPS를 30 미만으로 설정해 보세요.
  • Q: Bash 버전 5 미만에서 작동하지 않음
    • A: 맞음.
  • Q: 이 코드가 순수 Bash인가요?
    • A: 아닙니다. 시작 시 stty를 호출하여 에코를 비활성화하고 종료 시 다시 활성화함.

Read Entire Article