다음 버전 개발 근황

날개셋 한글 입력기 9.0과 타자연습 3.7이 나온 지 한 달 정도가 돼 간다.
다음 버전은 입력기 9.1과 타자연습 3.71 또는 3.8이 될 듯하다. 현재는 입력기보다 타자연습의 작업이 더 많이 진행되었으며, 타자연습의 다음 버전은 다른 변화는 없이 "게임 업그레이드"가 될 가능성이 높아져 있다. 그 구체적인 내역은 다음과 같다.

1. 타자 게임의 체력· 방어력 시스템 개편

본인은 컴퓨터 소프트웨어의 여러 분야들 중 게임은 하는 것과 만드는 것 모두 별 소질이나 인연이 없다. 하지만 그럼에도 불구하고 나름 게임 개발자 겸 기획자의 코스프레라도 한 경험을 말하자면 날개셋 타자연습의 게임을 설계· 개발한 이력을 내세우겠다.

날개셋 타자연습의 게임을 구성하는 현재와 같은 12개 레벨과 이들의 난이도· 컨셉, 그리고 엔딩까지 대략 20분에 달하는 플레이 컨텐츠는 지금 생각해도 충분히 잘 만들어졌다고 생각된다. 더 고칠 필요가 없다. 특별히 4단 자리(맨윗자리)와 겹받침 글쇠를 집중 공략하는 레벨 9~11의 지옥훈련은 정말 세벌식 전용 타자연습이니까 볼 수 있는 특징이다.
오타 페널티가 있는 놈(한별. 잠시 동안 타자를 할 수 없음), 그와는 정반대로 정확도가 100%가 아니어도 단어가 인식되는 놈으로(미르) 주인공을 차별화한 것도 마음에 든다.

하지만 게임의 모든 시스템이 만족스러운 건 아니다. 각 레벨별로 더 다양한 색상의 배경을 넣었어야 했는데 레벨 3~5는 그 당시 뭔 생각을 하고 배경을 디자인 했는지, 하늘과 땅 컨셉을 너무 많이 우려먹어 있다.
그리고 배경에도 애니메이션이 좀 있어야 하는데 그걸 구현하지 못했다. 가령, 레벨 2는 별들이 반짝이거나 '우주 여행' 화면 보호기처럼 쓱쓱 입체적으로 날아다니는 게 원래의 내 의도였다. 텍스처 비트맵 배경은 텍스처가 조금씩 스크롤되고, 다른 그러데이션 무늬 기반 배경은 허접한 팔레트 스크롤 같은 거라도 넣어서 움직이게 말이다.

그래픽 다음으로 음악은? 레벨별로 분위기를 고려해서 지금과 같은 여섯 곡을 오랫동안 고민한 끝에 선정했으며, 이 역시 큰 틀에서는 후회가 없다. 명곡이긴 하지만 다들 유행 지난 1990년대의 너무 오래된 곡인 게 문제일 뿐..
딴 걸로 교체하려 해도 mp3 음원이 대세가 된 요즘 세상에 미디 파일을 구하기란 몹시 힘들 듯하다.

그래픽이나 사운드 같은 외형적인 요소 말고 게임 메카닉 알고리즘 차원에서 내가 제일 문제 의식을 느끼고 우선적으로 고치고 싶었던 건 주인공의 HP와 방어력 시스템이다. 의도는 "오타에 취약해서 다루기 힘든 주인공에게 그에 상응하는 맷집을 더 줘서 어려운 레벨에서 더 오래 버틸 수 있게 한다."이긴 하지만, 체력(HP) 시스템이 주인공별로 쓸데없이 너무 복잡하게 만들어졌다는 게 오랜 세월 동안 느껴졌다.

타자 게임을 처음 만들던 당시에는 스타크래프트의 방어력 업글 시스템에서 착안하여 지금과 같은 5단계 업글을 도입했었다. 게임을 첫 레벨에서부터 차근차근 시작하면 대략 레벨 8 무렵부터 방어력이 5단계로 풀업 되는 식이었다.
그러나 앞으로는 요 시스템을 갈아엎고, Doom/Quake의 시스템에서 착안한 armor(장갑/갑옷) 기반 방어력 시스템을 도입할 것이다.

세 주인공은 초기 체력과 최대 축적 가능 체력이 100으로 모두 동일하게 맞춰진다. 그리고 없애지 못한 단어로 인해 입는 대미지 역시 기본적으로 동일하며, 체력 회복 바이러스를 맞았을 때 늘어나는 체력의 양도 동일하다.
현재 아름은 시간이 흐르면 100까지 체력을 서서히 자동 회복하며, 한별은 레벨을 클리어 했을 때 체력이 50 미만이면 일부를 보상하는 기능이 있다. 한편, 미르는 점수가 일정 간격에 도달했을 때 체력을 보상하는 기능이 있다. 이런 보상 시스템은 괜히 복잡하고 게임에서 실질적으로 별 도움이 안 되어 보이는 관계로, 모두 폐지할 예정이다.

그럼 세 주인공이 차이가 나는 부분이 무엇이냐 하면 딱 하나, armor point가 있을 때의 작용 효과이다.
예전에 '방어력 n단계 업그레이드'라는 효과를 내던 바이러스는 'armor 보충'으로 바뀌며, 이때 armor는 언제나 100으로 '만땅' 상태가 된다.

armor가 있는 상태에서 대미지를 입으면 한별의 경우, armor는 (1) 현재 남아 있는 armor 양과 (2) 전체 대미지의 1/3 둘 중 최소값만치 깎인다. armor가 음수가 될 수는 없으니까.. armor는 자기가 깎이는 양의 3배에 달하는 대미지를 커버하고, 그 과정에서 체력은 그 전체 대미지의 40% 남짓만치만 감소하게 한다. 즉, 체력 대미지(5/12)와 armor 대미지(1/3)를 합해도 3/4이니, 전체 합이 원래 대미지보다 더 작다. armor가 몸빵에 굉장히 큰 기여를 하는 셈이다.

특성이 세 주인공의 중간에 속하는 아름은 armor와 체력이 그냥 정확하게 반반씩 깎이니 armor는 그야말로 추가적인 보조 체력 그 이상도 이하도 아니다.
미르는 타자 편의가 가장 뛰어난 대신 armor의 운용 효율이 가장 떨어진다. armor를 먹어도 체력 방호 효과는 1/3 남짓에 불과하고, 체력 대미지와 armor 대미지를 합하면 1보다 크다. 오랜 고민 끝에 이런 식으로 시스템을 개편하기로 잠정 결론을 내렸다.

그러므로 이제부터 날개셋 타자 게임에서는 방어력 업그레이드 단계 같은 건 존재하지 않는다. 그 대신 게임을 하면서 hit(health) point뿐만 아니라 armor point도 마치 스타에서 미네랄과 가스처럼 이중으로 신경 쓰게 된다. 가스가 없으면 고급 유닛을 만들 수 없듯, 체력이 아무리 많아도 armor가 없으면 피격 때 체력을 훨씬 더 빠르게 급격히 잃게 된다. armor의 양은 체력 막대 밑에 노란식으로 표시된다.

어떤 주인공이든 대미지를 입었을 때 armor의 감소량은 체력보다 더 적으면 적지 많지는 않다. 하지만 armor 보충 바이러스는 체력 보충 바이러스보다 등장 빈도가 낮다. 그리고 armor가 아무리 많이 남아 있어도 체력이 0이 돼 버리면 말짱 도루묵이고 게임 오버이니, 죽기 직전에 당장 더 중요한 것은 armor보다는 체력이다. 이렇게 게임의 양상이 이전보다 다채롭게 변할 것이다. 이 관계를 표로 정리하면 다음과 같다.

  체력 장갑
처음 시작할 때는 만땅(100)임 없음(0)
보충 바이러스 절반(50)씩, 하지만 더 자주 등장 단번에 만땅(100) 보충
맷집 장갑 없을 때 입는 대미지 양은 모든 주인공 동일 장갑의 방어력은 주인공마다 차이 있음
중요도 아무리 장갑이 많이 남아 있어도 체력이 0이 되면 게임 끝, 말짱 도루묵 optional. 하지만 장갑 없이 체력만으로는 상위 레벨에서 오래 버티기 힘듦

이전에는 주인공이 최고의 맷집과 방어력을 갖추려면 체력도 150이니 120이니 하는 최대치로 축적해 놓고 방어력 업그레이드도 여러 레벨들을 거치면서 5단계까지 해 놔야 했다. 하지만 새로운 시스템에서는 원래 체력 상태에서 'armor 보충' 바이러스 한 번만 받으면 이론적인 최대의 맷집과 방어력 상태가 갖춰진다. 아주 단순해진다.

물론 축적 가능한 체력의 절대적인 양은 예전 시스템 때에 비해 감소했다. 그 대신, 체력 회복 및 armor 보충 바이러스가 이전보다 약간 더 자주 등장하고, 회복시켜 주는 양도 이전보다 더 많다. 체력 회복은 세 주인공 공통으로 50으로, 전체의 절반을 그냥 준다. 축적에 의존하지 말고 그때 그때 바이러스에 의한 보급 뽀록에 의존하는 가중치가 더 커진다.
이렇게 시스템을 개편해 놓고 내가 몇 판 게임을 해 보니 끝탄을 깨거나 못 깨고 죽는 빈도는 그럭저럭 별 차이 없는 것 같다.

안 그래도 타자 게임은 또 건드리기가 민망한 굉장한 레거시 코드가 돼 있다. 내 게임이 사용한 DirectDraw, DirectMusic 이런 라이브러리도 완전 한물 간 레거시 기술들인 거 본인도 잘 안다. =_=;;
하지만 지난번 날개셋 한글 입력기 9.0에서 24픽셀 비트맵 작업을 하는 과정에서 먼지 쌓였던 타자 게임 쪽 코드를 오랜만에 건드리게 되었는데, 여기에서 동기와 자극을 받아 오랜 숙제로 남아 있던 체력· 방어력 시스템 개편을 해치웠다. 이건 그래픽· 사운드와는 무관하게 0순위로 꼭 갈아엎고 싶었기 때문이다.

2. 그 외의 게임의 변경· 개선 사항

(1) 150% (144dpi) 이상 배율에서 게임이 1024*768 해상도의 "전체 화면"에서 실행됐을 때, 화면이 정확하게 모니터 전체에 꽉 차지 않고 어중간하게 부분적으로만 차던 문제를 해결했다. 원인을 한참을 찾아 보니, 운영체제가 전체 화면 해상도까지 쓸데없이 high-DPI scaling을 해서 그런 것이었다. 그래서 제멋대로 1024*768보다 약간 높은 해상도로 바꿔서 전체 화면을 들어갔었다.

기존 3.7의 경우, EXE 파일에 대한 속성 열어서 호환성 탭 - "높은 DPI 설정에서 디스플레이 배율을 사용하지 않음" 옵션을 수동으로 켜 주면 문제가 해결되고, 다음 버전에서는 이게 exe 차원에서 자체적으로 적용되게 했다.
저 옵션 자체는 high-DPI scaling이 존재하지 않는 구닥다리 Windows 7에도 있던데, 이전 OS에서는 무슨 기능을 했는지 궁금하다.

(2) 이 기회에 비트맵 글꼴 말고 게임에서 출력되는 다른 한글 문장들의 글꼴을 너무 식상한 굴림 대신 '맑은 고딕'으로 바꿨다. 이런 것도 노력 대비 프로그램의 낡은 이미지의 쇄신에 기여하는 바가 크다.
다만, 맑은 고딕은 잘 알다시피 같은 크기라 해도 상대적인 크기, 줄 간격이라든가 종횡비 같은 글꼴의 기본적인 metric이 굴림· 바탕류와는 완전히 다르다. 그래서 불러들이는 글꼴 이름만 달랑 바꾼다고 되는 게 아니고 전반적인 문자 배치 방식도 다같이 보정하고 바꿔 줘야 했다.

3. 화면 키보드의 live preview

날개셋 한글 입력기가 제공하는 보조 입력 도구 중에는 '화면 키보드'가 있다.
얘는 단순히 현재 선택돼 있는 입력 항목의 글쇠배열을 static하게 보여주는 기능만 있다가, 2년쯤 전에는 실제로 눌러지거나 떼어진 글쇠를 시각적으로 highlight해 주는 옵션이 추가되었다. 그 뒤로는 큰 변화가 없이 오늘날에 이르렀다.

그러다가 이번에는 '실제 입력 문자 표시'라는 꽤 재미있는 옵션이 우클릭 메뉴에 추가되었다. 얘는 글쇠의 입력이 끝날 때마다 글쇠배열들의 수식을 현재 변수값을 기준으로 재계산한다. 그래서 지금 이 글쇠를 눌렀을 때 실제로 입력되는 문자가 화면에 정확하게 표시되게 한다.

두벌식을 사용하고 있었다면 중성을 입력하는 순간부터 자음들 모양이 초성에서 종성으로 바뀌며, 조합이 종료되거나 초성을 입력하기 시작했을 때 다시 초성으로 돌아온다. 세벌식 390의 경우 / 자리는 ㅗ를 입력 가능한 문맥에서는 ㅗ가 됐다가 다시 /로 돌아온다.

복벌식이나 신세벌식처럼 상황에 따라 여러 글쇠들의 의미가 완전히 달라지는 입력 방식을 쓰고 있을 때는 이 옵션을 켜고 화면 키보드를 사용하는 게 굉장히 큰 도움이 될 것이다. 처음인 왼손과 오른손에 세벌식과 두벌식의 자음이 모두 표시되어 있지만, 두벌이나 세벌로 타자가 시작되면 모든 글쇠배열이 두벌이나 세벌 기준으로 싹 바뀌며, 조합이 종료되면 배열이 다시 초기 상태로 돌아오기 때문이다!
본인은 이런 기능의 필요성을 이미 수 년 전부터 느끼고 있었지만, 보조 입력 도구 쪽 기능을 강화하기 시작한 이번 버전에서야 이 기능을 구현해 넣을 수 있었다.

입력기는 현재 이 아이템 하나만 작업이 됐다. 예전의 8.8 버전에서는 '빠른설정'이 하나 더 추가됐는데 다음 9.1에서는 새로운 '입력 도구'들이 여러 개 더 추가될 것이다.
보조 입력 도구는 먼 옛날 5.3~5.5x 버전 시기에 화면 키보드, 한손 입력기, 문자표, 부수 한자 입력 이렇게 4개가 추가된 이래로 지금까지 아무 변화가 없었다. 지금까지의 통상적인 기능 추가와는 성격이 다른 분야에 모처럼 사용자의 입력에 시각적인 피드백과 각종 편의를 제공하는 기능들이 잔뜩 도입될 것이다.

Posted by 사무엘

2017/07/09 08:30 2017/07/09 08:30
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1379

Trackback URL : http://moogi.new21.org/tc/trackback/1379

Comments List

  1. 신세기 2017/07/17 22:23 # M/D Reply Permalink

    타자연습게임이 업그레이드 되는군요! 항상 아름이로 하면서 레벨 마지막이나 무중력 바이러스에서 최대한 시간을 끌면서 HP를 채우곤 했는데 이젠 시간을 끌지 않아도 되겠네요!

    1. 사무엘 2017/07/18 07:25 # M/D Permalink

      네, 그렇습니다. 다음 버전에서는 그럴 필요가 없어집니다. ^^
      진작에 했어야 할 개선 작업이 드디어 이뤄질 예정입니다.

Leave a comment
« Previous : 1 : ... 968 : 969 : 970 : 971 : 972 : 973 : 974 : 975 : 976 : ... 2204 : Next »

블로그 이미지

그런즉 이제 애호박, 단호박, 늙은호박 이 셋은 항상 있으나, 그 중에 제일은 늙은호박이니라.

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

Site Stats

Total hits:
3051985
Today:
292
Yesterday:
2713