Little Sisyphus: 한 달 만에 완성된 NES 플랫포머

2025-02-19

2023년 NESDev Compo를 위해 단 한 달 만에 물리 기반 NES 플랫포머 게임인 Little Sisyphus가 개발되었습니다. 게임은 공을 산 정상까지 굴리는 간단한 게임이지만, 고대 그리스 도자기에서 영감을 얻은 독특한 아트 스타일과 도전적인 게임플레이를 제공합니다. 개발자는 NESFab 사용, 임펄스 기반 및 위치 기반 물리 엔진, 물 효과, 음악 작곡 등 개발 과정의 세부 사항을 설명합니다. NES 하드웨어의 제약으로 인해 타협이 있었지만, 최종 결과물은 효율적인 개발과 창의적인 문제 해결의 증거이며, AI 생성 아트도 활용되었습니다.

더 보기

6502 코드 생성기, GCC와 LLVM 능가

2025-02-16

한 개발자가 6502 아키텍처를 위한 코드 생성기를 만들었는데, 놀랍게도 GCC, LLVM 및 다른 컴파일러보다 성능이 뛰어났습니다. 이러한 속도 향상은 고급 최적화 때문이 아니라 혁신적인 코드 생성 기술 덕분입니다. "비합법적인" 명령어, 계산 비용이 높은 명령어 선택, 공간을 시간과 맞바꾸는 최적화 기법 등을 활용했습니다. 핵심 알고리즘은 명령어 선택과 레지스터 할당을 결합하여 지속 전달 방식을 효과적으로 사용합니다. DAG와 SSA 형태의 중간 표현을 사용하여 여러 어셈블리 코드 조합을 생성하고, 동적 계획법과 분기 한정법으로 가지치기를 수행하며, 마지막으로 PBQP 문제를 풀어 최적의 조합을 선택합니다. 몇 가지 "꼼수"를 사용했지만, 이 컴파일러는 벤치마크 테스트에서 뛰어난 결과를 보여주며 코드 생성 기술에 대한 새로운 관점을 제시합니다.

더 보기
개발

NESFab: NES 게임을 위한 고성능 프로그래밍 언어

2025-02-13

NESFab은 NES 게임을 만들도록 설계된 새로운 프로그래밍 언어입니다. 8비트 제한에 맞춰 최적화되어 C언어보다 사용하기 쉽고 더 빠른 어셈블리 코드를 생성합니다. 사용하기 쉬운 라이브러리를 갖추고 있어 첫 번째 NES 게임이든 100번째 게임이든 쉽게 시작할 수 있습니다. 자동 뱅크 스위칭, 간소화된 에셋 로딩, 개발 속도를 높이는 MapFab 레벨 에디터와의 통합 등의 기능이 있습니다. 현재 베타 버전이지만, NESFab은 GCC나 LLVM과 같은 컴파일러를 벤치마크에서 능가하며 최고의 6502 컴파일러가 될 가능성이 있습니다.

더 보기
개발