꾸역꾸역 진행 중

2008/07/04 21:59  로키 TAG
어제는 아침 9시 반부터 오후 4시 반까지 모의고사 보고 들어와서 그냥 작정하고 놀았다. 그간 벼르던 코딩도 좀 하면서 이전에 적었던 모종의 프로젝트 진도를 조금 더 나갔다. 생각만큼 진척이 빠르지는 않았지만...

스크린샷

약간은 모양을 갖추기 시작


무엇보다 인코딩 문제가 골치아프다. 유니코드를 위젯에 직접 쓸 수는 없는데 사용자가 위젯에 입력한 문자열은 유니코드라든지 하는 상황에 @_@ 상태. 또 어떤 위젯에는 유니코드 직접 입력이 되고... 어찌어찌 한글 표시는 되게 해놨지만, 소스가 꼬인 상태여서 인코딩을 통합적으로 처리하는 기능을 만들어야 할 것 같다.

인코딩 다음에는 한동안 자료 구조를 짜봐야 할 것 같다. 예를 들어 지금은 이런 식으로 가고 있는데...

self.channels = [
{'name':'#포도원의제다이',
'users':['@Eldir','Loki'],
'lines':['Loki님이 입장하셨습니다.',]},
]

이 구조에는 추가할 것도 많지만, 변경할 것도 있다. 예를 들어 나중에 타자 중 알림까지 구현할 것을 생각하면 'users' 키는 단어 리스트 대신 딕셔너리 리스트로 하는 게 나을 수도 있다.

'users': [
{'name':'@Eldir', 'typing': False},
{'name': 'Loki', 'typing': True}
]

대신 사용자 리스트 정렬 같은 게 귀찮아지긴 한다. 사용자 정보는 타자중 표시만 있어도 된다면 이름을 딕셔너리 키로 사용하는 것도 한 방법일 듯.

'users': {
'@Eldir': True,
'Loki': False,
}

하는 식으로. 정렬은 keys() 목록 정렬로 해결할 수 있을 테고.

'lines' 부분 역시 태그 정보까지 표시할 수 있게 확장해야 한다. 지금 생각하는 건 사용자가 직접 입력할 리가 없는 특수문자로 문자열을 갈라서 정보를 표시하는 정도. 대충 이런 식? (아마 몇 번 돌려보고 디버깅하기까지는 애로사항이 꽃피겠지만...)

line = '안녕, 여러분!¿red,0,2¿bold,1,4¿strike,4,7'

self.channels[self.currChan]['lines'].append(line)

totalLines = str(len(lines))

splitline = line.split('¿')

self.displayText.insert(END,splitline[0].strip()+'\n','default')

try:
    taginfo = splitline[1:]
    for tag in taginfo:
       tagIndex = tag.split(',')
       self.displayText.tag_add(tagIndex[0],\
        "%s.%s" % (totalLines,tagIndex[1]), \
        "%s.%s" % (totalLines,tagIndex[2]))

except IndexError:
    pass

여기에 태그에 따라 글씨 색, 크기 등을 바꾸는 부분을 처리하면 ', 여러분!' 같은 같잖은 짓을 할 수 있다. 역시 인코딩이 괴롭히기는 해서, 한글로는 글자 수 처리가 제대로 안 되고 유니코드로 처리해야 할 것 같다. 유니코드를 제대로 처리할 체계만 갖추면 비교적 풍부한 포매팅 선택지를 제공할 수 있을 듯. 제공하는 게 과연 좋을지는 생각해볼 문제이긴 하다.

사용자 삽입 이미지
사용자 삽입 이미지
참, 원래는 이름을 DiRC로 하려고 했는데 이미 있어서 어려울 것 같다. DieRC나 DiceRC는 어감이 썩 좋지 않고 IRC 클라이언트라는 점도 덜 사는 것 같고. 무난해서 결국은 그렇게 갈지도 모르지만, pertho, 혹은 peorth (<-- 저 룬문자이지, 요 아가씨가 아님-->) 룬을 어떻게 활용할 수 있을까도 궁리하고 있다.

페어토 혹은 페이오스는 제비뽑는 상자 혹은 주사위 컵을 상징한다고 한다. 친구끼리 하는 즐거운 놀이를 뜻할 수도 있고 운명과 예언을 상징할 수도 있는, 어찌 보면 다소 이율배반적인 룬. 기본적으로는 여성적 신비와 자궁의 창조적 에너지를 가리킨다.

생각해보면 무엇이 나올지 모르는 주사위 컵이나 제비상자와 수많은 미래의 가능성을 품는 자궁, 그리고 예측불허인 미래나 운명은 일맥상통하는 데가 있다. 우연의 변덕, 무한한 가능성과 즐거운 놀이를 나타낸다는 점에서 페이오스 룬은 RPG 클라이언트에 꽤 어울리는 것 같다. 여성의 신비나 여성적 창조성이라는 뜻은 RPG계의 남초 현상을 살짝 찌르기도 하고..ㅋㅋ

문제는 어떻게 활용하느냐인데... 아이콘은 페이오스 룬의 입구에 주사위 하나 있는 정도로 처리하면 될 것 같고, 문제는 이름. Pertho/Peorth와 Python을 합성한 Pyrtho나 Pyorth도 생각해볼 수 있겠지만, 이름에서 의미가 확 살지 않는 건 좀 아쉽다. PeoRC도 그렇고...

사실 정말로 하고 싶은 이름은 따로 있긴 하다. 페이오스 룬의 가장 마음에 드는 번역, Dicebox. 깔끔하고 의미 전달 잘 되고 정말 딱인데 아쉽게도 내가 생각해낸 게 아니라서 쓸 수가 없다. SF 웹코믹 제목이거든. Dicecup도 생각할 수 있지만 역시 딱은 아니고, 이래저래 생각해 보고 있다.

어쨌든 답답하면 답답한 대로, 막히면 막히는 대로 꾸역꾸역 진행하고 있는 프로젝트다. 이리저리 생각해보고 머리쓰는 게 나름 재밌다. 이렇게 찌끄덕찌끄덕거리다 언젠가 완성할 수 있을까.
2008/07/04 21:59 2008/07/04 21:59
TOP

Trackback URI

http://lokasenna.pe.kr/blog/trackback/195

  1. 2008/07/05 08:57 PERMALINK EDIT/ERASE REPLY

    와- 즐거운 마음으로 완성 기다리겠사옵니다 +_+

  2. 2008/07/05 13:34 PERMALINK EDIT/ERASE REPLY

    로키님의 그 열정의 산실~
    열매의 맛이 얼마나 달콤할지 기대해도 되겠죠?(부담이 되시려나?^^;)

    • 로키
      2008/07/06 21:37 PERMALINK EDIT/ERASE

      푸핫.. ORPG 하시는지는 모르겠지만 어쩌면 안하시는 분들에게도 유용할지도요.

  3. 2008/07/05 22:31 PERMALINK EDIT/ERASE REPLY

    인코딩과 유니코드<-> 멀티바이트는 프로세스 통신의 적이죠! [..]
    저도 착수해야 하는데 시간과 자금이 [..]

    • 로키
      2008/07/06 21:38 PERMALINK EDIT/ERASE

      흑흑 골치아프더라고요. 이제 어느 정도 잡힌 듯 싶지만.. 어서 착수하십 (철썩철썩)

  4. 2008/07/07 10:23 PERMALINK EDIT/ERASE REPLY

    아하하하하하... 저런 건 무조건 화이팅입니다~~

Write a comment

[로그인][오픈아이디란?]

submit