Lobste.rs 의견들
정적 지오메트리와 정점 조명은 이미 동작하고 있고, 얼굴을 쪼개고 정점을 칠해서 넣은 조명 디테일을 보니 이 게임이 더 대단하게 느껴짐
텍스처를 끄는 옵션도 남겨서 Rare의 장인정신을 더 잘 볼 수 있게 할 예정임
이 포팅은 이미 완전한 디컴파일이 있었기 때문에 가능했고, 게임이 애셋을 불러오는 방식에는 꽤 수상한 부분이 있음. 하드웨어 접근이 자유롭고 예산이 빡빡하면 최적화를 하게 되고, 26년 뒤 누군가에게 골칫거리를 남기게 됨
N64 게임은 모델을 파싱 가능한 형식으로 저장하지 않고, 그래픽 칩에 보내는 원시 API 호출에 가까운 디스플레이 리스트로 저장함. 모델을 읽으려면 게임이 제공하는 마이크로코드까지 포함해 칩을 에뮬레이션해야 하는데, Rare는 자체 마이크로코드를 쓰던 스튜디오라 정점 데이터가 달라 기존 코드를 재사용할 수 없음
noclip으로 게임을 포팅하려면 렌더링 엔진과 데이터 계층을 다시 구현해야 해서 재미있는 퍼즐 같고, 여기에 오디오와 게임플레이를 더하면 사실상 완전한 게임이 됨
거의 20년 전에 WoW를 조금 해봤을 뿐이지만, 직접 경험하지 못할 지역들을 그냥 날아다니며 보고 싶다는 생각은 늘 있었음. 이제 그게 가능해짐
PS1 Final Fantasy Tactics 데이터를 FFHacktics 위키 문서 덕분에 많이 추출해서 프로젝트도 만들었는데, 이 게임도 웹사이트에 기여할 수 있을 것 같음
프로젝트: https://github.com/adamrt/heretic
https://github.com/byzantine-systems/chrysopolis
지금은 부팅 후 Erlang 셸까지 올라갈 수 있고, 아직 곳곳에 해킹과 임시방편이 많지만 2주 동안 만지작거리며 깨진 빌드를 고친 끝에 동작해서 꽤 신남
Rust의 OCaml스러운 부분은 아주 마음에 들지만, 다른 부분은 아직 잘 모르겠음. 예를 들면 rand가 표준 라이브러리가 아니라 크레이트인 점 같은 것
이번 주말에는 개인용 자료 일부를 GitHub에서 tangled로 옮길지도 모름. 요즘 GitHub 탐색은 잘 즐겨지지 않고, 아주 크지만 할 일은 별로 없는 MMORPG처럼 느껴짐
다만 저건 보안 난수 생성기 이야기이고, 계산용 빠른 난수 생성기는 선택의 절충점이 너무 많아서 표준 라이브러리 밖에 두는 편이 현명해 보임
그래도 rand, serde, clap, libc처럼 매우 널리 쓰이는 크레이트들은 거의 표준 라이브러리처럼 느껴짐
연습문제나 rustlings를 넘어 실제로 관심 있는 것, 심지어 완성할 거라고 기대하지 않는 거대한 무언가가 좋음
처음엔 쉽지 않았지만 즐거웠고, 작은 부분을 하나씩 풀며 멀고 불가능해 보이는 목표에 가까워지는 과정이 계속 붙잡아 줬음
지금은 Rust를 좋아하고 매일 쓰며, 예전 연인이던 C를 배신하는 느낌마저 듦
익숙하고 마음에 드는 문법을 계속 쓰는 걸 추천함. Rust에는 OCaml과 비슷할 수 있는 함수형스러운 요소가 많고, 관용적이지 않아도 부끄러워할 필요 없음. Rc, RefCell 또는 둘 다 남용해도 괜찮음
얇은 표준 라이브러리는 처음엔 도움이 되지만, 나중에 Cargo.lock이 node_modules처럼 느껴질 때는 저주하게 될 수도 있음
async는 피하는 게 좋음. 어차피 GPL처럼 전염성이 있어서 장기적으로 완전히 피하긴 어렵지만, 현재로서는 2급 시민에 가깝고 동기 Rust만큼 우아하지 않음
결국 핵심은 성능이 C에 가깝지만 끝없는 gdb 세션이 없다는 점이었음. 빌드되면 실행되고, 남는 건 논리 버그 정도임
아직은 실험적 기능임
면접 질문이 데이터 흐름 분석에 관한 것이라고 들었는데, 온라인에서 컴파일러 공학 연습문제를 찾기 어려워서 “Modern Compiler Implementation in ML”의 후반부 장들을 읽고 있음. 컴파일러 연습문제 모음이 있으면 도움이 될 것 같음
이 페이지 아래쪽에 데이터 흐름 분석 문제가 있고, 조금 검색하면 변형 문제도 찾을 수 있을 듯함
진지한 프로젝트는 아니고 그냥 재미로 만드는 중임
지금까지 만든 상태: https://www.youtube.com/watch?v=nvas81rUZKw
물리 기반 전투, 방어와 패링, 그리고 모델링이 아주 엉성한 적 둘을 넣었음
방금 적에게 주변음 오디오를 붙여서 Thief의 Benny식 반향 위치 추적 같은 효과를 내는 아이디어가 떠올랐고, 즉석 오디오 풍경처럼도 동작해서 꽤 괜찮은 효과가 남
게임 개발 인접 도구를 쓰다 보면 “와, 이렇게 살고 있었어?” 하는 눈 뜨이는 순간이 있음. vim이 너무 복잡하다고 생각하는 사람은 Blender에서 텍스처 페인팅을 해보면 됨. 사람들이 이런 도구로 생산성을 낸다는 게 진심으로 인상적임
zngur는 실제로 충분히 유연하다고 느껴지는 첫 C++ 상호운용 도구이고, Lix의 Rust 전환을 훨씬 덜 고통스럽게 만들어주길 기대함
특히 C++ 프로젝트 안에서 더 Rust다운 코드를 쓸 수 있다는 점이 꽤 끌림
집에서 NixOS 기반 라우터를 쓰고 있어서 방화벽을 작성할 때 내가 뭘 하는지 제대로 알아야 함
레벨 사이를 탐험하는 걸 강력히 권함. 게임이 꽤 일직선처럼 느껴질 수 있지만 생각보다 더 열려 있음
보스전은 뒤쪽에 크게 몰려 있음. 초반 몇 보스는 애매해서 끝까지 할지 고민하게 만들었지만, 진행도 60%쯤부터 보스전 품질이 크게 뛰어오름

1 hour ago
2






English (US) ·