요약
C64 BASIC 던전 크롤러에 다섯 개 층과 계단, 레벨 업 보상을 넣어 진행감을 더했습니다.
레트로 게임 코더스의 크리스 개릿이 코모도어 64용 BASIC으로 던전 게임을 만드는 연재의 11부입니다. 10부에서 만든 맵 생성기 위에 층 이동과 캐릭터 성장을 얹었습니다.
왜 중요한가
- 한 층에서 맴돌던 게임이 5층 계단을 내려가면 이기는, 끝이 있는 게임으로 바뀝니다.
- 레벨 업 보상은 임시값이고 난이도 상승과 마법 사용은 아직 없어, 다음 편을 위한 뼈대를 세운 단계입니다.
핵심 내용
- 층마다 성배를 모두 모아야 계단이 열리며, 필요한 수는 층별로 1, 1, 2, 2, 3개입니다.
- 계단은 네 모서리 방 가운데 한 곳에 무작위로 놓이고, 시작 지점은 가운데 방이라 겹치지 않습니다.
- 계단을 밟으면 플래그만 세우고 메인 루프가 다음 층을 만들게 해, GOSUB 스택(서브루틴의 복귀 위치 목록)이 쌓이지 않게 했습니다.
- HP, 능력치, 금화, 열쇠는 다음 층으로 이어지고, 층을 내려갈 때마다 HP와 함께 힘이나 민첩이 오릅니다.
- 물약은 마력을 50씩(최대 100) 채우지만 아직 쓸 곳이 없고, 12부에서 원거리 공격에 쓸 예정입니다.
HN 반응
- 코드가 줄 번호 대신 레이블을 써서 실제 C64에서는 돌지 않고 전용 도구로 변환해야 한다는 지적에, 당시에도 비슷한 변환 도구를 썼다는 반론이 이어졌습니다.
- 1983년작 Sword of Fargoal이 BASIC으로 짜였다는 회상이 나왔고, C64판은 스프라이트 때문에 기계어 코드를 따로 썼다는 보충이 붙었습니다.
당대 물건 중에 여러 기종에서 쓸 수 있는 대안이 있습니다. 1984년에 레스 하워스와 셰릴 에번스가 쓴 어스본(Usborne)의 Write Your Own Fantasy Games입니다. https://drive.google.com/file/d/0Bxv0SsvibDMTel93SThEYkJkZHc (어스본이 너그럽게 공개해 준 자료입니다. https://usborne.com/gb/books/computer-and-coding-books )
멋지네요! 다만 구글 드라이브 링크는 권한을 요청하니, 대신 이 링크를 쓰시면 됩니다. https://usborne.com/row/books/computer-and-coding-books
이 책의 서평은 그리 좋지 않지만, 그래도 저라면 시대의 매력적인 유물로 소장하겠습니다. https://gmkeros.wordpress.com/2024/01/19/write-your-own-fantasy-games-for-your-microcomputer
C64 던전 크롤러 하면 늘 Sword of Fargoal이 떠오릅니다! https://www.lemon64.com/game/sword-of-fargoal
알려 주셔서 감사합니다. 그런데 그 서평은 제가 보기엔 프로그램에 대해 부정적인 말은 전혀 안 하는 것 같은데요?
C64용 리스트가 올라와 있는 GitHub 프로젝트도 있습니다. https://github.com/HAnthonyHoyt/c64-dungeon-of-doom
저처럼 헷갈린 분들을 위해 말씀드립니다. 글에 적힌 BASIC은 C64에서 그대로는 돌아가지 않습니다. 바로 눈에 띄는 것만 두 가지입니다. BASIC 2.0에는 라벨이 없고, STATS 같은 변수는 상태 워드 ST와 충돌해서 쓸 수 없습니다. 이 코드는 글쓴이의 자체 IDE에서만 동작하는데, 이 IDE가 "컴파일"(실제로는 줄 번호를 붙이고, 이름을 바꾸고, 토큰화하는 작업)을 해 줍니다.
공정하게 말하면, 옛날에 우리가 하던 방식과 크게 다르지 않아요.
저는 예전에 C64에서 BASIC으로 BBS 소프트웨어를 만들었는데, 그때 최적화를 해 주는 "컴파일러"를 쓰곤 했어요. 덕분에 원래는 너무 커서 돌릴 수 없는 프로그램을 짜도, 최적화된 버전은 돌아갔죠.
더 자세히 알려드리고 덜 두루뭉술하게 말하고 싶은데, 80년대는 아주 오래전 일이고 그 뒤로는 거의 생각해 본 적이 없네요. (적어도 당신 댓글을 보기 전까지는요.)
그 시절 컴퓨터 잡지도 C64 리스트를 그렇게 했습니다. 있는 그대로 타이핑하기가 너무 고통스러웠기 때문입니다. 보통 프로그램을 입력하는 전용 도구를 먼저 배포하고, 잡지에는 훨씬 읽기 쉬운 일반 텍스트(PETSCII가 아닌) 코드 리스트를 실었습니다.
RGC Basic입니다. https://retrogamecoders.com/rgc-basic/
"C로 작성한 Commodore BASIC 스타일 인터프리터이며, 현대적인 편의 기능을 갖췄습니다."
네, GOSUB가 보이는데 줄 번호가 없는 걸 보고 바로 경고등이 켜졌어요.
저는 잠깐 C64도 GOTO/GOSUB에 변수를 쓸 수 있는 줄 알았어요. 예를 들어 Sinclair BASIC은 그게 됐거든요.
정말 훌륭한 기계입니다. 지금 시점에서 현역 레트로 컴퓨터 중 씬(scene)이 가장 활발하다는 건 의심할 여지가 없습니다. 다만 BASIC이 하드웨어를 더 잘 활용하지 못한 점은 조금 아쉽습니다. 한편으로 오늘날 뛰어난 프로그래머들 상당수가 C64(그리고 Apple II)로 실력을 쌓았고, 때로는 어셈블리 코드를 쓸 수밖에 없었기에 오히려 실력이 단련됐을 겁니다. 저는 Apple IIgs를 썼는데, 영상과 사운드 기능을 온전히 활용할 만한 고급 BASIC이 없었습니다. 사실 컴퓨터 하드웨어 성능에 맞게 잘 만들어진 BASIC을 갖춘 가정용 컴퓨터는 아주 드물었습니다.
게다가 가격이 훨씬 비싸거나 시장에 더 늦게 나왔습니다. ROM이 RAM보다는 쌌지만 그래도 비쌌으니까요.
Apple IIgs는 시장에 늦게 나왔으니 좋은 BASIC을 ROM에 넣을 여유가 있었을 겁니다. 하지만 워낙 늦게 나와서 RAM에 BASIC을 올려 쓸 수도 있었고, 하위 호환을 위해 Apple II BASIC을 ROM에 넣어야 했을 것 같습니다.
제 기억이 맞다면, 1983년 던전 크롤러 Sword of Fargoal은 진짜 Commodore 64 BASIC으로 작성됐습니다.
C64 던전 크롤러 하면 저도 확실히 Sword of Fargoal이 떠오릅니다 :)
그런데 C64 버전은 BASIC만으로 작성된 게 아닌 것 같습니다. 위키백과에 이렇게 나와 있습니다.
놀라운 건 Sid Meier's Pirates!의 대부분이 진짜 C64 BASIC으로 작성됐다는 점입니다. 상상이 안 갑니다. 어릴 때 저는 제 C64를 무척 좋아했지만 BASIC은 세상에서 가장 쓸모없다고 생각했고, 더 낫다고 믿었던 Speccy의 BASIC이 부러웠습니다. 이걸로 뭘 할 수 있는지 그때 알았더라면 좋았을 텐데요.
스프라이트와 사운드를 쓰는 프로그램은 Commodore 64 BASIC 만으로는 작성할 수 없습니다. 하지만 Sword of Fargoal의 큰 부분은 분명 평범한 Commodore 64 BASIC으로 작성됐습니다. 80년대 중후반 어느 때쯤, 제가 게임을 어떻게든 다운시켰더니 BASIC 오류 메시지가 뜨는 걸 보고 놀랐던 기억이 납니다.
무슨 말씀인지 알고 동의합니다. 다만 기술적으로는 C64 BASIC으로도 스프라이트와 사운드를 프로그래밍할 수 있습니다. (PEEK와 POKE를 "BASIC"으로 쳐 준다면요, 하하...) 현실에서는 성능이 충분히 나오지 않겠지만요. 그래도 VIC-20판과 PET판은 전부 BASIC으로 작성됐습니다! BASIC만으로 만들지 않은 건 C64판뿐이에요.
VIC-20 스크린샷을 보세요. 꽤 인상적입니다. https://www.mobygames.com/game/14475/sword-of-fargoal/screenshots/vic-20/168018/
컴퓨터 문자 세트로 그래픽을 만드는 꼼수가 쓰였다는 건 저도 압니다. 그래도 제 기준으론 여전히 대단합니다!