개발한당

🔥 제목 시위는 [말머리] 또는 임시게시판(불타는앙)을 이용바랍니다.

제가 처음 코딩에 관심을 가졌던게...

알림
|
X

페이지 정보

작성자 에헤라디야 76.♡.210.164
작성일 2024.05.07 03:11
765 조회
5 추천
쓰기

본문

안녕하세요. 펌웨어로 밥벌이하는 아저씨입니다.

지금은 코딩을 하지 않으면 밥줄이 끊기는 삶을 살고 있으니 코딩하는게 숨쉬는 것 만큼 당연합니다. 문득 나에게 코딩이라는 것이 당연하지 않았던 적이 언제부터 였드라하고 생각해 봤습니다. 그러다가 그럼 내가 코딩이라는 아예 몰랐던 때는 언제였지? 하며 기억을 거슬러 과거로 가 봤습니다.

아마 확실치는 않은데 국딩 시절 (저는 국민학교 졸업했어요..) 도스 (MS-DOS라고 아시나요?) 에서 게임하면서 게임 위자드 프로로 게임 데이터 에디팅해서 게임할 때부터 였던것 같네요.

뭐 대부분은 아실거라 생각되지만 그래도 혹시 모르는 분이 계실까봐 간략하게 용어 설명하고 지나 가겠습니다.

도스라는 것은 디스크 오퍼레이팅 시스템(Disk Operating System)의 약자로 그냥 유닉스 비슷하게 만든 마이크로소프트가 윈도우즈를 만들기 전까지 세상을 풍미했던 운영체제 입니다. 생각해보면 지금도 쓰고 있는 웬만한 운영체제는 디스크 오퍼레이팅 시스템이죠. 물론 디스크 기반으로 동작하지 않는 운영체제도 많아요. 다만 널리쓰이는 대부분 운영체제(윈도우즈, 맥오에스, 리눅스, 유닉스)는 다 디스크 기반입니다. 아무튼 이 시절 도스 특징은 멀티 태스킹이 안됐다는 것입니다. 그래서 비슷하게 구현하려고 확장 메모리라는 영역에 램 상주 프로그램을 올리고 특정 키보드 입력을 후킹해서 컨택스트 스위칭 하는 등의 꼼수를 쓰기도 했는데요. 이것이 후술할 게임 위자드 프로라는 프로그램의 동작 원리이자 당시 유행했던 램 상주 바이러스 백신 등의 원리이기도 했습니다.

게임 위자드 프로(Game Wizard Pro)라는 프로그램은 이름에 게임이라는 단어가 들어가 있는 만큼 주요 용도는 게임을 하면서 실시간으로 게임 데이터를 조작하는 것입니다. 예를 들어 내 캐릭터가 적에게 얻어 맞아 현재 HP가 10밖에 안남은 상황이다. 이럴때 게임 위자드 프로로 바로 에디팅 해서 HP를 255로 올려주는 것이지요.

게임 위자드 프로의 원리는 이렇습니다. 추적하고 싶은 데이터(예를 들면 HP)의 현재 값을 입력합니다. 그리고 해당 데이터가 값이 바뀌면(HP가 늘거나 줄면) 바뀐 값을 다시 게임 위자드 프로에 입력합니다. 이 과정을 반복하면 게임 위자드 프로가 특정 메모리 어드래스를 찾아냅니다. 해당 메모리 값을 바로 바꾸는 것이지요.

사실 그냥 인 메모리 에디터(In-Memory editor)입니다. 당시 도스는 실행 중인 프로세서의 메모리 영역에 대한 아무런 보호 장치가 없었기 때문에 그냥 메모리 주소 때려 넣어서 값을 바꿔 버리면 그만이었죠. 대부분 실 사용에서는 그닥 쓸일이 없었지만 게임을 보다 쉽게 즐기고 싶은 어린이들(!)에게는 몹시 매력적이었습니다.

저는 게임 위자드 프로 쓰면서 16진수를 익혔어요. 국딩 시절이라 16진수의 개념도 몰랐거든요. 하지만 그냥 외웠어요. FF면 255로 바뀐다. 2710이면 10000으로 바뀐다. 이런식으로 필요한 숫자를 외워 버렸죠. 16진수 개념을 제대로 이해 한건 나중에 고등학생이 되어서 입니다.

중딩이 되어서도 게임 위자드 프로로 쉽게 쉽게 게임을 하던 중 당시 하이텔 무슨 게임 동호회 비슷한 곳에서 게임 에디팅에 대한 강좌 글을 읽습니다. 저는 게임 위자드 프로로 게임 에디팅에 대해서는 이미 알만큼 안다고 생각하고 있던 꼬꼬마 였기 때문에 매우 관심이 생겨서 해당 글을 정독했죠.

해당 글의 내용은 인메모리 에디팅에 대한 설명은 아니었습니다. 세이브 파일 에디팅에 대한 내용이었죠. 당시 PC 통신 (하이텔, 나우누리, 천리안)에는 고등학생 형(누나)들이나 대학생 형(누나)들이 특정 게임 세이브 파일 에디터 같은 것을 만들어 올리곤 했습니다. 게시판에는 특정 게임 세이브 파일에 오프셋 어디는 무슨 데이터다 이런거 찾아서 올리고 토론하는 글들도 많았고요. 낭만이 있던 시절이었습니다.

어린 저는 헤깔렸습니다. 게임 에디팅은 게임 위자드 프로로 하는 건데 왜 세이브 파일을 고치지? 그리고 해당 글을 모두 읽고 난 다음에서야 실행 로직과 데이터의 개념을 이해 했고, C언어로 세이브 파일을 읽어서 특정 숫자를 넣은 다음 원하는 숫자를 넣으면 다음번에 게임 할 때 세이브 파일을 부르면(그땐 '부른다'라고 표현했습니다..) 바뀐 숫자로 나온다는 것을 알았습니다.

그리고는 아주 손쉽게 터보C 2.0도 얻을 수 있었습니다. 그냥 자료실에 있었죠. (아... 불법 복제가 횡횡하던 시절..) 그렇게 저는 C언어로 첫 코딩을 시작했습니다.


댓글 6

kewlbear님의 댓글

작성자 no_profile kewlbear (117.♡.1.206)
작성일 05.07 17:50
저도 심시티2000 세이브 돈늘리는 거 만들면서 rle 인코딩을 배웠어요. ㅎㅎ

딸자랑마스터님의 댓글

작성자 딸자랑마스터 (180.♡.211.215)
작성일 05.07 20:01
터보씨 2.0 의 80x25 텍스트 모드 화면... 그립읍니다. ㅋㅋ
고딩 꼬꼬마 시절... 당시 가장 호환성이 좋았던 320x200 해상도로
게임 만들어보겠다고 하다가 메모리 부족해가지고
메모리 모델 HUGE였나? 엄청 높게 올려보기도 하고 온갖 삽질을 하던 기억이 나네요.

간실장님의 댓글

작성자 간실장 (1.♡.173.35)
작성일 05.08 16:45
저도 터보C 섰었는데.. 버전은 모르겠네요.
일반 C보다 휠씬 좋았던 것으로 기억하는데.. 정확한지는 기억이 가물가물..

panicstyle님의 댓글

작성자 panicstyle (175.♡.3.184)
작성일 05.09 09:53
그때 터보C 정복 이라는 베개로 쓸 수 있을 정도로 두꺼운 책 유행이었던 걸로 기억합니다. 저자분이 나름 유명하셨는데 요즘 뭘 하시나 모르겠네요.
/Vollago

크로롱크로롱님의 댓글의 댓글

대댓글 작성자 크로롱크로롱 (223.♡.174.40)
작성일 05.30 01:58
@panicstyle님에게 답글 DVR 개발(연구소장)해서 큰 성공을 거두신것 같은데 그 이후는 모르겠습니다.

크로롱크로롱님의 댓글

작성자 크로롱크로롱 (223.♡.174.40)
작성일 05.30 02:02
저는 단순 취미였는데(게임은 아니고 특정 제품 크렉이 취미여서 강좌도 연재하고 그랬습니다. 당시 나름 네임드여서 신분이 들통날거 같아 여기까지만) 모 제품 수입사에서 제품 LOCK을 풀고 화면좀 바꿔서 만들어 달라고 했는데  디스어셈해서 해주니 300만원을 주길래 아 프로그램이 돈이 되는구나해서 시작했습니다만, 아직까지 돈 못버네요. ㅎ
쓰기
홈으로 전체메뉴 마이메뉴 새글/새댓글
전체 검색