검색결과 리스트
분류 전체보기에 해당되는 글 184건
- 2013.06.20 [고전게임] Ultima VI 공략 - 기본 정보
- 2013.05.03 [Linux] Bash history 검색 팁. 1
- 2013.04.25 [STL] vector 의 정렬 - object pointer 정렬 1
- 2013.04.22 [Head First Design Patterns] Strategy Pattern
- 2013.04.01 [NES] 직접 찾은 NES 용 파판3 수련도 GG Code...
- 2013.04.01 [NES] NES 용 Game Genie 코드를 직접 찾아보자.
- 2013.03.14 구글 리더는 이대로 사라지는가?
- 2013.03.04 zopfli, 구글에서 공개한 새로운 압축 알고리즘에 대한 오해와 진실
- 2013.02.26 [MSYS] *** Couldn't reserve space for cygwin's heap (0xXXXXXXXX <0xXXXXXXX>) in child, Win32 error 0 2
- 2013.02.23 [Code::Blocks] Using redirection as arguments on windows version. (윈도 버전에서 표준입출력 리다이렉션 하기) 1
글
[고전게임] Ultima VI 공략 - 기본 정보
요즘은 시간과 공간의 제약으로 최신 게임을 즐길 엄두가 나지 않아 주로 고전게임을 즐기고 있습니다.
저는 어린시절 IBM-PC를 이용한 게임을 주로 했었기에 즐기는 고전게임도 IBM-PC용이 대부분입니다.
불편함을 좀 감수한다면 안드로이드에서도 DOS게임을 즐길 수 있기에 더욱 좋습니다.
이번에 시작했던 게임은 많은 사람들의 기억에 명작으로 남아있는 울티마 6편입니다.
PC버전이 1990년에 출시되었으니 무려 23년 전에 출시된 게임이군요.
전 이 게임을 1992년에 처음 접했는데요,
당시 이 게임을 즐기기엔 제 영어 실력이 많이 모자란 나이였죠.
20여년의 세월일 지나 이제야 다시 게임을 즐겨봤습니다.
명작은 시간이 지나도 명작인가 봅니다.
지금의 게임처럼 화려한 그래픽은 없지만, 충분히 재미있었습니다.
게임을 즐기면서 이리저리 매뉴얼을 찾아 보았습니다만,
딱 마음에 드는 매뉴얼을 찾을 수가 없어서 직접 작성해 보자고 마음먹고 쓰기 매뉴얼을 쓰기 시작했습니다.
이 기본정보편을 시작으로 유용한 정보, 스토리 공략으로 나눠서 글을 써 볼까 합니다.
이미 온라인상에 수 많은 울티마 6편에 대한 정보가 있지만,
유용한 정보들을 한 군데 정리했다는데 의의를 두면서 시작해 보겠습니다.
내용이나 번역이 이상하거나 오류가 있다면 알려주세요.
웹으로 보기 불편하다면 글 마지막의 PDF 파일을 이용하세요.
참고로 GOG 버전도 구입하여 실행해 봤습니다만,
두기님의 블로그에서 구할 수 있는것이 Dosbox 세팅이 더 잘되어 있네요.
둘 다 게임 버전은 4.5 버전입니다.
Ultima VI
기본 정보
- 사용키
- 매뉴얼 프로텍션
- 마법
- 룬 문자
- 지도
- 게임을 시작하자
기존에 만들어진 캐릭터가 있다면 새로운 캐릭터를 만들 수 없다.
새로운 캐릭터를 만들기 위해서는 INSTALL.EXE를 새로 실행하면 된다.
새로운 캐릭터를 만들게 되면 기존의 캐릭터와 세이브는 사라지니 주의해야 한다.
그래픽카드 및 사운드카드 설정도 INSTALL.EXE에서 한다.
사운드 선택 시 MT32 를 선택하면 된다.
만약 배경음악이 나오지 않는다면 Adlib 으로 설정하자.
INSTALL.EXE로 필요한 설정이 끝나면 ULTIMA6.COM을 실행하면 된다.
(A)ttack |
몬스터를 공격하거나 물건을 부술 때 사용한다. |
(C)ast |
마법을 사용한다. 단, 마법책을 장비하고 있어야 한다. |
(T)alk |
대화한다. Shrine 이나 Statue 와도 대화를 할 수 있다. 모든 단어는 처음 4개의 문자만 입력해도 된다. 대화의 기본은 name, job, bye 이다. |
(L)ook |
본다. 책, 표지판이나 비석을 읽을 수도 있고, 그림을 감상할 수도 있다. 무기나 방어구의 효과를 볼 수도 있다. 열린 Chest, Bag 등의 바로 옆에서 보면 내용물을 확인한다. 그리고 숨겨진 물건이나 비밀문을 찾을 수도 있다. |
(G)et |
물건을 가진다. |
(D)rop |
물건을 버린다. |
(M)ove |
아이템을 이동시키거나 캐릭터간 아이템을 옮기거나 Bag 등에 넣고 빼는데 사용한다. 아이템을 열린 Chest, Bag 등으로 옮기면 아이템을 안으로 넣는다. Spell을 Spellbook에 합칠때도 사용한다. |
(U)se |
기능을 가진 물체를 작동시킨다. 문을 열고 닫거나, 배를 타고 내리거나, 사다리를 오르내리거나, 소의 젖을 짜거나, 말을 타거나, 불을 켜고 끄거나, 망원경이나 크리스탈 구슬을 살펴보거나, 벨을 울리거나, 음식을 먹거나, 마실것을 마시거나, 음악을 연주한다 음악을 연주할 때는 숫자 0 - 9를 입력하고 <enter> 를 누르면 된다. |
(R)est |
잠을 잔다. 보초를 세울 수도 있으며, 음식이 있다면 체력과 MP가 회복된다. 음식이 없거나 보초를 서면 체력이 회복되지 않는다. 몬스터의 공격을 받게되면 잠에서 깬다. 바다에서는 이 명령으로 배를 수리한다. |
(B)egin Combat (B)reak Off Combat |
전투를 시작하거나 중지한다. |
방향키 |
캐릭터의 이동 혹은 커서의 이동. |
1 ~ 8 |
솔로 모드. 특정 파티원을 조종을 할 때 사용한다. |
0 |
파티 모드. |
F1 ~ F8 |
인벤토리 화면. |
F10 |
파티의 체력상태 화면. 독에 중독된 상태는 녹색으로 표시됨. |
` |
인벤토리 화면에서 파티원의 전투모드 변경. |
+/- |
체력화면에서 파티원 목록을 위/아래로 이동. 인벤토리 화면/스탯 화면에서 다음/이전 파티원으로 이동. |
* |
인벤토리 화면에서 입력시 스탯 화면으로 이동. |
Tab |
인벤토리 화면 <-> 맵 화면 간 커서 이동. |
Enter |
선택. |
Spacebar |
턴 넘김. |
ESC |
주로 취소키로 사용. Rest 시 보초 안 세우거나, 행동을 취소하는 등. |
Ctrl + E |
게임 종료. |
Ctrl + S |
게임 저장. |
Ctrl + R |
게임 로드. |
Ctrl + Z |
배경음 On/Off |
Ctrl + H |
Help On/Off |
Ctrl + V |
게임 버전 표시. |
(정품 매뉴얼을 잘 읽어보면 답할 수 있는 문제들입니다.)
- Load British의 질문
Hydra |
Nightshade |
Rotworm |
Torch |
Tangle vine |
Pod |
Wisp |
Firefly |
Sea Serpant |
Fire |
Silver Serpant |
Tomb |
Troll |
Endurance |
Headress |
Wizard |
Giant squid |
Beak |
Reaper |
Enchanted |
- Mariah의 질문
Hur |
Wind |
Jux |
Danger/Trap/Harm |
Quas |
Illusion |
Zu |
Sleep |
Ort |
Magic |
- Selganor (Artisan 길드장) 의 질문
Mandrake Roots |
Silver |
Nightshade Mushroom |
Cap |
Sulfurous Ash |
Volcanic |
Black Pearls |
Kinetic |
1~8 Circle의 마법이 있으며, 캐릭터 레벨 이하 서클의 마법 사용할 수 있다.
또한, 마법 사용시 해당 서클만큼의 MP가 소요된다.
기본적으로 주인공은 INT*2의 MP를 가지고 있으며,
나머지 동료들은 직업에 따라 INT*1 혹은 INT*0.5 만큼의 MP를 가진다.
MP는 시간이 지남에 따라 자동으로 회복된다.
범위 공격 마법의 경우 아군이 피해를 입을 수도 있기 때문에 주의가 필요하다.
아래는 마법 목록. 설명이 필요없는 경우는 영문 그대로 둔다.
1st Circle |
|
Create Food |
A fine bounty of food will be added to your pack. 시약: Garlic, Ginseng, Mandrake Root |
Detect Magic |
마법 아이템 여부와 현재 마법 차지 상태를 알려준다. 시약: Nightshade, Sulfurous Ash |
Detect Trap |
Discovers concealed traps in suspicious chests and doors 시약: Nightshade, Sulfurous Ash |
Dispel Magic |
Charmed, Posion, 마법에 의한 Sleep을 회복한다. 시약: Garlic, Ginseng |
Douse |
Extinguishes flames 시약: Garlic, Black Pearl |
Harm |
적에게 데미지를 준다. 그냥 무기로 치는게 낫다고 한다. 시약: Nightshade, Spider's Silk |
Heal |
HP를 회복한다. 시약: Ginseng, Spider's Silk |
Help |
파티가 전멸하거나 아바타가 사망하면 자동으로 시전된다. Load British 앞으로 자동으로 이동되며, 체력이 모두 회복된다. 사망한 경우 경험치가 떨어진 상태로 부활된다. 시약은 필요 없음. |
Ignite |
Ignites a lifeless torch, fireplace or brazier 시약: Sulfurous Ash, Black Pearl |
Light |
Illuminates a darkened area 시약: Sulfurous Ash |
2nd Circle |
|
Infravision |
Detects the presence of living, warm-blooded beings in the dark. 시약: Nightshade, Sulfurous Ash |
Magic Arrow |
Fires a moderately damaging missile at your opponent 시약: Sulfurous Ash, Black Pearl |
Poison |
Poisons your opponent with toxic venom 시약: Nightshade, Blood Moss, Black Pearl |
Reappear |
Vanish 마법으로 사라진 물건을 다시 나타나게 한다. 시약: Spider's Silk, Blood Moss, Black Pearl |
Sleep |
Induces unconsciousness in the chosen victim 시약: Nightshade, Spider's Silk, Black Pearl |
Telekinesis |
멀리 있는 물체를 이동시키거나 작동시킨다. 시약: Blood Moss, Mandrake Root, Black Pearl |
Trap |
Places a concealed trap on a chest or door 시약: Spider's Silk, Nightshade |
Unlock Magic |
마법으로 잠긴 상자나 문을 연다. 필수 마법 중 하나. 시약: Sulfurous Ash, Blood Moss |
Untrap |
상자나 문의 함정을 제거한다. 시약: Sulfurous Ash, Blood Moss |
Vanish |
물건을 사라지게 한다. Reappear 마법으로 다시 나타나게 할 수 있다. 시약: Garlic, Blood Moss, Black Pearl |
3rd Circle |
|
Curse |
타겟의 방어력을 낮춘다. 시약: Sulfurous Ash, Nightshade, Garlic |
Dispel Field |
Fire, Poison, Sleep 필드 제거. 시약: Black Pearl, Sulfurous Ash |
Fireball |
Hurls a mighty flaming missile at your opponent 시약: Sulfurous Ash, Black Pearl |
Great Light |
Light 보다 시간이 오래 지속된다. 시약: Sulfurous Ash, Mandrake Root |
Magic Lock |
Applies a magical lock to a chest or door 시약: Sulfurous Ash, Blood Moss, Garlic |
Mass Awaken |
잠든 사람을 깨운다. 퀘스트 진행 시 유용함. ;) 시약: Ginseng, Garlic |
Mass Sleep |
Induces sleep in all beings in the area targeted by the caster 시약: Ginseng, Nightshade, Spider's Silk |
Peer |
자신이 있는 위치를 확인한다. Gem을 사용한 것과 같은 효과. 시약: Nightshade, Mandrake Root |
Protection |
대상의 방어력과 용기(?)와 지능을 증가시킨다. 용암지역이나 Fire/Poison/Sleep 지역을 피해없이 지나갈 수 있게 됨. 시약: Sulfurous Ash, Ginseng, Garlic |
Repel Undead |
시야에 보이는 언데드를 도망가게 만든다. 시약: Garlic, Sulfurous Ash |
4th Circle |
|
Animate |
물건에 생명을 부여하여 움직이게 만든다. 하지만 시전자가 컨트롤 할 수는 없다. 시약: Sulfurous Ash, Mandrake Root, Blood Moss |
Conjure |
전투를 도와주는 야수를 소환한다. 시약: Spider's Silk, Mandrake Root |
Disable |
대상에 거의 죽음에 이르는 데미지를 준다. 날개 달린 가고일, 드래곤, 데몬에게는 통하지 않는다고 한다. 시약: Nightshade, Spider's Silk, Mandrake Root |
Fire Field |
Creates a searing wall of fire 시약: Black Pearl, Sulfurous Ash, Spider's Silk |
Great Heal |
한 명의 HP 완전 회복. 시약: Ginseng, Spider's Silk, Mandrake Root |
Locate |
자신의 위치를 파악한다. 육분의(sextant)와 같은 역할. 시약: Nightshade |
Mass Dispel |
광역 Dispel Magic. 시약: Garlic, Ginseng |
Poison Field |
Creates a wall of noxious gases 시약: Nightshade, Spider's Silk, Black Pearl |
Sleep Field |
Creates a wall of sleep-inducing energy 시약: Ginseng, Spider's Silk, Black Pearl |
Wild Change |
시전자가 원하는대로 바람의 방향을 바꾼다. 시약: Sulfurous Ash, Blood Moss |
5th Circle |
|
Energy Field |
Creates an impassable wall of energy 시약: Mandrake Root, Spider's Silk, Black Pearl |
Explosion |
폭발을 일으킨다. 주위에 파티원이 있다면 파티원도 피해를 입는다. 시약: Mandrake Root, Sulfurous Ash, Black Pearl |
Insect Swarm |
Conjures up a swarm of insects to aid you in combat 시약: Blood Moss, Spider's Silk, Sulfurous Ash |
Invisibility |
대상을 투명 상태로 만든다. 시약: Nightshade, Blood Moss |
Lightning |
Hulrs a powerful bolt of lightning at your opponent 시약: Black Pearl, Mandrake Root, Sulfurous Ash |
Paralyze |
적을 마비시킨다. 시약: Spider's Silk, Sulfurous Ash, Nightshade, Black Pearl |
Pickpocket |
물건을 훔친다. 카르마 5 감소. 시약: Blood Moss, Spider's Silk, Nightshade |
Reveal |
투명한 적을 찾아낸다. 시약: Spider's Silk, Nightshade, Mandrake Root |
Seance |
죽은 자와 대화할 수 있도록 한다. 시약: Blood Moss, Mandrake Root, Nightshade, Spider's Silk, Sulfurous Ash |
X-ray |
맵의 안보이는 부분을 투시로 볼 수 있게 한다. 시약: Mandrake Root, Sufurous Ash |
6th Circle |
|
Charm |
적을 유혹하여 우리편으로 만든다. 시약: Black Pearl, Nightshade, Spider's Silk |
Clone |
생물체를 복제한다. 역시 직접 컨트롤은 불가능하다. 시약: Sulfurous Ash, Spider's Silk, Blood Moss, Ginseng, Nightshade, Mandrake Root |
Confuse |
적들을 혼란시켜 자기들끼리 싸우게 만든다. 시약: Mandrake Root, Nightshade |
Flame Wind |
원하는 방향으로 불의 바람을 날린다. 시약: Sulfurous Ash, Blood Moss, Mandrake Root |
Hail Storm |
Brings down a storm of hailstones upon the caster's enemy and the surrounding area 시약: Blood Moss, Black Pearl, Mandrake Root |
Mass Protect |
광역 Protection. 시약: Sulfurous Ash, Ginseng, Garlic, Mandrake Root |
Negate Magic |
일정 시간동안 아군/적군 가리지 않고 마법을 사용하지 못하게 함. 시약: Garlic, Mandrake Root, Sulfurous Ash |
Poison Wind |
Sends a gale of noxious wind in the direction of your foes 시약: Nightshade, Sulfurous Ash, Blood Moss |
Replicate |
마법력이 없는 물건을 복제한다. 시약: Sulfurous Ash, Spider's Silk, Blood Moss, Ginseng, Nightshade |
Web |
Lay's a fine, sticky web upon the ground to hinder a foe's progress 시약: Spider's Silk |
7th Circle |
|
Chain Bolt |
라이트닝 볼트가 적들 사이를 왔다갔다하며 데미지를 준다. 적들이 모여있다면 좋은 마법. 시약: Black Pearl, Mandrake Root, Sulfurous Ash, Blood Moss |
Enchant |
Staff에 마법을 저장하는 마법. 시약: Spider's Silk, Mandrake Root, Sulfurous Ash |
Energy Wind |
Sends a gale of wind in the direction of foes 시약: Mandrake Root, Nightsahde, Sulfurous Ash, Blood Moss |
Fear |
Causes all evil foes in the area to flee in terror 시약: Nightshade, Mandrake Root, Garlic |
Gate Travel |
Teleports the caster's party to a moonstone location determined by the moonphase 시약: Sulfurous Ash, Black Pearl, Mandrake Root |
Kill |
적을 일격에 죽인다. 날개 달린 가고일, 드래곤, 데몬에게는 통하지 않는다고 한다. 시약: Black Pearl, Nightshade, Sulfurous Ash |
Mass Curse |
광역 Curse. 범위에 포함되는 아군도 영향을 받는다. 시약: Sulfurous Ash, Nightshade, Garlic, Mandrake Root |
Mass Invisibility |
광역 Invisibility 마법. 시약: Mandrake Root, Nightshade, Blood Moss, Black Pearl |
Wing Strike |
Sends a powerful dragon's wing against your opponents 시약: Blood Moss, Spider's Silk, Mandrake Root, Sulfurous Ash |
Wizard Eye |
천리안. Crystal Ball과 같은 효과이다. 시약: Blood Moss, Nightshade, Mandrake Root, Sulfurous Ash, Black Pearl, Spider's Silk |
8th Circle |
|
Death Wind |
죽음의 바람. Kill 의 발전형. 시약: Mandrake Root, Nightshade, Sulfurous Ash, Blood Moss |
Eclipse |
잠시동안 일식이 일어나도록 한다. (어디에 쓰는 마법일까?) 시약: Mandrake Root, Sulfurous Ash, Nightshade, Garlic, Blood Moss |
Mass Charm |
광역 Charm. 시약: Black Pearl, Nightshade, Spider's Silk, Mandrake Root |
Mass Kill |
광역 Kill. 시약: Black Pearl, Nightshade, Mandrake Root, Sulfurous Ash |
Resurrect |
죽은 사람을 부활시킨다. 시약: Garlic, Ginseng, Spider's Silk, Sulfurous Ash, Blood Moss, Mandrake Root, |
Slime |
시전자의 모든 적들을 슬라임으로 바꾼다. 시약: Blood Moss, Nightshade, Mandrake Root |
Summon |
전투를 돕는 데몬을 소환한다. 시약: Mandrake Root, Garlic, Blood Moss, Spider's Silk |
Time Stop |
시전자와 시전자의 파티원을 제외한 세계의 시간을 멈춘다. 시약: Mandrake Root, Garlic, Blood Moss |
Tremor |
Causes the ground to shake, injuring all beings in the affected area 시약: Blood Moss, Sulfurous Ash, Mandrake Root |
Armageddon |
시전자를 제외한 전 세계의 모든 생명체를 없앤다. 시약: 8가지 재료 모두. |
(출처: http://en.wikipedia.org/wiki/File:Britannian_runes.png)
http://wiki.ultimacodex.com/wiki/File:U6map.jpg
: 정품 패키지에 포함된 헝겊 지도
(Create Character)
오프닝이 끝나고 처음 시작화면에서
'C'키를 입력하면 캐릭터 생성화면으로 넘어간다.
집시의 질문에 따라, 미덕(virtue)를 선택하자.
선택하는 미덕에 따라 주인공의 능력치가 달라진다.
(Introduction)
TV를 보던 아바타는 밖에서 이상한 돌을 발견하고,
갑자기 열린 문게이트를 통해 울티마 세계로 가게 된다.
울티마 세계로 가게 된 아바타는 가고일들에게 붙잡혀 제물이 될 위기에 처한다.
이 때, 문게이트를 통해 등장한 Dupre, Shamino, Iolo에 의해 구출된다.
그리고 가고일이 들고 있던 책을 챙기고 문게이트를 통해 도망친다.
(Journey Onward)
게임은 주인공이 도망친 문게이트를 통해 쫓아온 가고일과의 전투로 시작한다.
가고일을 모두 처치하고 ‘B’키를 눌러 전투를 끝내자.
전투가 끝나면 시체를 ‘L’로 살펴보고 쓸만한 아이템을 가지자.
먼저 왼쪽의 마법사 Nystul에게 말을 걸면 다음과 같은 대화가 이어진다.
(Nystul)
“당신(Avatar)이 위험한 것을 감지하고 당신을 돕기 위해 사람들을 보냈소.
Iolo, 가고일에게서 가지고 온 책을 내가 살펴봐도 되겠나?”
(Iolo)
“물론입니다. 저보다는 이 책에 대해서 더 잘 아실 것 같군요.”
(Nystul)
“이상해... 이 책의 표지는 가고일이 쓰러진 사람의 가슴에 발을 올리고 서 있군. 흥미로워.
이 책은 내가 모르는 언어로 써져 있소.
이것을 Lycaeum에 있는 Mariah에게 가지고 가 보시오.
Mariah는 마법평의회에서 가장 유능한 학자라오
그녀는 많은 언어들을 연구해 왔으니 아마도 이 책을 해석 할 수 있을것이오.
그런데 당신이 붉은 게이트웨이를 통해 이곳으로 온 것을 알고 있다오.
그 게이트를 연 돌을 가지고 있소?
그것은 어디로부터 온 것인지... 아마도 가고일이겠지요?
Lord Biritish에게 돌(stone)에 대해서 물어보는 게 좋겠소.
그는 그러한 물건에 대해 알고 있을 것이라 생각되오.”
이제 Lord British에게 말을 걸자.
(Lord British)
“다시 보게 되어 반갑네.
자네가 이 세계를 떠난 후 많은 일이 있었다네.
하지만 먼저 진짜 자네가 맞는지 확인해야겠네.
진짜 Avatar라면 내가 보낸 전서에 쓰여진 것을 알겠지.”
(매뉴얼 프로텍션을 확인하여 질문에 대답을 하자)
“아, 정말 자네가 맞군. 이 열쇠(key)를 가져가게.
이것으로 성 남쪽 입구 옆에 있는 건물을 열 수 있지.
건물 내부에 있는 손잡이를 이용하면 격자 문을 올릴 수 있고,
크랭크로 도개교를 내릴 수 있다네.
그 열쇠로 성 지하의 하수구로 들어가는 문도 열 수 있을걸세.
이제 자네가 마지막으로 온 이후로 무슨 일들이 있어났는지 알려주겠네.
자네가 날 구출해냈던 거대한 지하세계는 붕괴되었네.
하지막 악의 세력들은 여전히 세상에 널려 있네.
브리타니아는 자네가 싸웠던 것들과 비슷한 가고일들로부터 공격받고 있네.
그것들은 던전을 통해 올라오고 있네.
지금까지 그들은 8개 미덕(virtue)의 성소(shrine)를 주로 공격하고 있네.
동정(Compassion)의 성소가 함락되자 Geoffrey 경이 성소를
탈환하고자 일개 부대를 파견했네. 그 임무에 대해서는 그에게 물어보게.
아마 자네에게 도움이 될 걸세.
여기에 머무는 동안, 자네를 위한 방을 마련해 두었네.
성의 서쪽 방향에 있네. 내 방의 바로 남쪽이지.
하인들을 시켜 거기 장비를 좀 모아 두었네.
자네에게 필요할 것 같아서 말이야.
성에서 필요한 것이 있다면 자유롭게 빌려가도 좋네.
마지막으로 치료(healing)가 필요하다면 언제든지 내게 부탁하게.
이 모든 이야기를 다시(repeat) 듣고 싶다면 이야기 하게.”
이제 Lord British에게 'stone'에 대해 물어보자.
(당신은 검은 돌을 Lord British에게 보여준다.)
(Lord British)
“흠... 자네도 기억하겠지만 나도 이런 돌을 가지고 있네.
이런 구슬이 또 있을 줄은 몰랐군.
자네가 구슬의 힘을 익히게 되면 여행이 수월해질 걸세.
문을 열기 위해서는 돌을 사용하고 자네로부터 몇 걸음 떨어진 곳에
조심스럽게 내려놓게. 놓은 위치가 중요하다는 걸 알게 될 걸세.
올바른 위치라면, 돌이 만드는 문을 통해 여러 장소로 이동할 수 있다네.”
이제 orb of the stone을 사용할 수 있게 된다.
마지막으로 Geoffrey에게 말을 걸자.
(Geoffrey)
"나는 Compassion of Shrine을 탈환하기 위해 열 명의 병사를 보냈네.
아, 그들은 참담하게도 실패했어. 생존자들은 Cove 마을에서 회복 중이지.
우선 그들을 만나 이야기 해 보는게 좋을 것 같네.
아마 그들이 당신을 도울만한 것을 알게 되었을 수도 있겠지.
내가 최악의 경우를 두려워한다는 것을 고백할 수 밖에 없겠군.
가고일은 정말 강력한 적이고, 너무 빠르게 퍼져나가고 있어.
아마 이 세계의 끝이 가까워 오는 건지도 모르겠군.
행운을 비네. 당신을 위해 기도하겠네.”
대화가 모두 끝나면, 브리튼 성에서 필요한 물건들을 챙기고
가고일들로부터 세상을 구하기 위해서 모험을 떠나자.
(문서버전: 1.2)
1.2 – (2013.6.22) 폰트 변경
1.1 – (2013.6.21) 문서 스타일 수정 및 ‘게임을 시작하자’ 부분 수정 .
1.0 – (2013.6.20) 최초 문서 작성
(작성자: 아자 - http://azza.tistory.com)
(참고: Ultima VI Compendium)
(License: CC-BY-SA)
PDF 파일: Ultima VI Basic.pdf
'게임 > Ultima VI' 카테고리의 다른 글
[고전게임] Ultima VI 메인 스토리 : (4) Book of Prophecies(예언의 책) (0) | 2013.06.27 |
---|---|
[고전게임] Ultima VI 메인 스토리 : (3) 룬을 찾아서...(下) (1) | 2013.06.27 |
[고전게임] Ultima VI 메인 스토리 : (2) 룬을 찾아서...(上) (0) | 2013.06.23 |
[고전게임] Ultima VI 메인 스토리 : (1) 모험의 시작. (0) | 2013.06.23 |
[고전게임] Ultima VI 공략 - 유용한 정보들 (1) | 2013.06.21 |
글
[Linux] Bash history 검색 팁.
Bash 에는 History 기능이 있어서 Up/Down 키로 이전 명령들을 찾을 수 있다.
이것을 좀 더 편하게 사용하는 방법 중 하나는,
특정 문자로 시작하는 이전 명령만 찾는 것인데,
이렇게 사용하기 위해서는
~/.inputrc 파일에
"\e[A":history-search-backward
"\e[B":history-search-forward
위와 같은 내용을 추가시켜 두면 사용가능 하다.
예를 들면
./build 라고 입력 후, Up/Down 키로 이전에 입력했던 명령 중
./build 시작하는 History 만 검색이 가능하다.
'컴퓨터 사용' 카테고리의 다른 글
구글 드라이브의 무료 저장용량이 15GB로 늘어났네요. (0) | 2013.06.23 |
---|---|
웹글꼴을 사용하는 이유는? (0) | 2013.06.21 |
구글 리더는 이대로 사라지는가? (0) | 2013.03.14 |
zopfli, 구글에서 공개한 새로운 압축 알고리즘에 대한 오해와 진실 (0) | 2013.03.04 |
[Google] 북마크도 역시 구글! (0) | 2013.02.07 |
글
[STL] vector 의 정렬 - object pointer 정렬
Blogger로 이동합니다. T* 타입 (포인터의 vector 정렬에 대해 궁금하시다면 아래로...)
https://ommokazza.blogspot.com/2020/10/stl-vector-object-pointer.html
'프로그래밍' 카테고리의 다른 글
Technical Debt (기술적 빚 / 기술부채) (0) | 2016.05.19 |
---|---|
Hues, Tints, Tones, Shades (0) | 2015.10.22 |
[MSYS] *** Couldn't reserve space for cygwin's heap (0xXXXXXXXX <0xXXXXXXX>) in child, Win32 error 0 (2) | 2013.02.26 |
[Code::Blocks] Using redirection as arguments on windows version. (윈도 버전에서 표준입출력 리다이렉션 하기) (1) | 2013.02.23 |
fgets(buf, buf_size, stdin), gets(buf) 차이? (0) | 2013.02.20 |
글
[Head First Design Patterns] Strategy Pattern
스트래티지 패턴(strategy pattern)
: 객체의 Action 의 내용을 캡슐화 하여 교환해서 사용할 수 있도록 만든다.
책에서 처음 설명하는 Duck 클래스는,
quack() 메소드와 fly() 메소드를 별도의 인터페이스로 분리하고
이 인터페이스를 구현하는 클래스를 만들어 사용하는 것이다.
그리고 Duck 을 상속받은 클래스는,
생성자에서 해당 클래스에 맞는 quack() 와 fly() 인터페이스를 구현한 클래스를
사용하도록 한다.
수많은 Sub class 가 몇 가지 중복된 행동에서 한 가지를 선택해야 하는 경우라면,
코드 재사용 및 유지 보수를 한꺼번에 해결 할 수 있는 좋은 패턴이다.
하지만 스트래티지 패턴의 더욱 큰 장점은
실행시간에 Action의 내용 (알고리즘, 즉 메소드의 내용)을 바꿀 수 있다는 것이다.
예를들면, 액션 게임의 케릭터가 무기가 바뀌었을 때,
스트래티지 패턴을 사용하였다면, 단순히 attack() interface 를 구현한 클래스만 교체해 주면 해결된다.
과연, 책의 1장에서 소개해 줄 만한 쉽고도 강력한 패턴이다.
예제코드 (원문: http://en.wikipedia.org/wiki/Strategy_pattern#Example)
'공부' 카테고리의 다른 글
C로 구현한 알고리즘, 리뷰랄까. (0) | 2012.07.31 |
---|---|
C 로 구현한 알고리즘 - 3부 알고리즘, 17장. 기하 알고리즘 (0) | 2012.07.30 |
C 로 구현한 알고리즘 - 3부 알고리즘, 16장. 그래프 알고리즘(2) (0) | 2012.07.26 |
C 로 구현한 알고리즘 - 3부 알고리즘, 16장. 그래프 알고리즘(1) (0) | 2012.07.25 |
C 로 구현한 알고리즘 - 3부 알고리즘, 14장. 자료 압축 / 15장. 자료 암호화 (0) | 2012.07.23 |
글
[NES] 직접 찾은 NES 용 파판3 수련도 GG Code...
NES용 파판3 수련도 GG 코드입니다.
OXVLXIIV
다른 GG 코드를 원하시면, 500원.... (이제 한 물 갔지요?)
아래 사이트에서 Final Fantasy 3j 로 검색해 보시길...
'게임' 카테고리의 다른 글
[게임] Game Dev Story (게임개발 스토리, 게임발전국) - 몇 가지 팁 (5) | 2016.09.18 |
---|---|
안드로이드용 Final Fantasy III 한글화. (0) | 2013.06.30 |
[NES] NES 용 Game Genie 코드를 직접 찾아보자. (0) | 2013.04.01 |
Snes9x Ex 가 안드로이드 마켓에 등록 되었네요. (1) | 2013.02.04 |
안드로이드용 SNES 에뮬레이터, Snex9x EX. 드디어 한글 파일이름 지원!! (0) | 2012.11.06 |
글
[NES] NES 용 Game Genie 코드를 직접 찾아보자.
월요일은 참 일하기 싫은 날입니다.
저도 계속 방황하다가 전부터 생각하고 있던,
NES 용 파판3의 수련도 Game Genie 를 찾아보기로 했습니다.
하지만 어느 사이트에도 수련도 관련 정보는 없기에,
결국 직접 찾기로 결정하였지요.
아래는 그 간단한 방법을 소개합니다.
음.. 설명이 간단하다는 말이고요,
실제로는 디버거를 다룰 수 있는 분이어야 가능하겠네요.
원하는 GG 코드를 찾아보려고 생각해 보신 분이 있다면, 도전해 보시길....
NES Game Genie 코드 찾기 및 만들기.
1. 필요한 툴
FCEUXD SP (FCEUXD 에 디버깅 기능을 추가한 브랜치.)
다운로드 - http://www.the-interweb.com/serendipity/index.php?/categories/9-FCEUXD-SP
2. 기타 필요한 정보
6502 Instruction Set - http://www.masswerk.at/6502/6502_instruction_set.html
( NES 에 사용된 CPU 의 코어 )
3. 초간략한 방법
a) FCEUXD SP 로 게임을 실행 한 후, Cheats 로 원하는 메모리 주소(Data 영역)를 찾는다.
b) DEBUG 로 해당 메모리 주소에 Read/Write Break Point 를 걸어 해당 값을 참조하는 Code 영역을
찾는다.
c) 해당 코드 전후로 디버거의 어셈블 코드를 확인하여 적절한 수정위치를 찾은 뒤,
Game Gene Encode/Decoder Tool 로, (Address, 원래값, 수정할값)을 넣어,
생성된 GG 코드를 확인한다.
'게임' 카테고리의 다른 글
안드로이드용 Final Fantasy III 한글화. (0) | 2013.06.30 |
---|---|
[NES] 직접 찾은 NES 용 파판3 수련도 GG Code... (0) | 2013.04.01 |
Snes9x Ex 가 안드로이드 마켓에 등록 되었네요. (1) | 2013.02.04 |
안드로이드용 SNES 에뮬레이터, Snex9x EX. 드디어 한글 파일이름 지원!! (0) | 2012.11.06 |
[대온] 레시피 정리 (연금/언어 제외) (0) | 2011.11.22 |
글
구글 리더는 이대로 사라지는가?
오늘 아침 구글 리더에 접속했다가,
7월 1일부로 구글 리더 서비스가 종료된다는 팝업이 뜨는걸 보고 "뜨악~" 했습니다.
라디오 키즈님의 글에서 우려하 듯
http://www.neoearly.net/2466183?_new_tistory=new_title
저도 블로그 + RSS 서비스의 위축이 제일 걱정됩니다.
아무리 트윗/페북/구글+ 같은 SNS 가 대세라지만,
블로그는 블로그만의 영역이 있는데 말이죠.
물론 다른 RSS 서비스 업체를 찾으면 되지만,
아쉬운 건 어쩔 수 없네요.
여러 사람들이 구글 리더 서비스 중단에 우려를 나타내고 있던데,
구글이 사용자들의 의견을 존중하여 계속 서비스를 이어갔으면 좋겠습니다.
'컴퓨터 사용' 카테고리의 다른 글
웹글꼴을 사용하는 이유는? (0) | 2013.06.21 |
---|---|
[Linux] Bash history 검색 팁. (1) | 2013.05.03 |
zopfli, 구글에서 공개한 새로운 압축 알고리즘에 대한 오해와 진실 (0) | 2013.03.04 |
[Google] 북마크도 역시 구글! (0) | 2013.02.07 |
쓸만한 공개 유틸리티 정리 (0) | 2013.01.31 |
글
zopfli, 구글에서 공개한 새로운 압축 알고리즘에 대한 오해와 진실
구글에서 몇 일 전에 zopfli (좁플라이)라는 새로운 압축 알고리즘을 공개했는데,
다들 오해하고 있는 부분이 있는듯 해서, 글 한번 남겨봅니다.
일단 중요한 부분, 실제 압축 효율이 다른 압축 알고리즘에 비해 좋은가?
==> 아닙니다. 실제 압축률은 rar 이라던가 7zip 이 더 좋습니다.
그럼 이게 무슨 의미가 있는가?
==> zlib 호환 압축 알고리즘이라는 것입니다.
즉, 기존에 zlib 기술을 사용하던 분야에서 압축 해제 프로그램의 업데이트 없이 적용이 가능하다는 것이지요.
위 블로그에 적힌 것 처럼 gzip, Zip, PNG, HTTP requests 등의 비트 스트림 압축부분에 적용한다면,
인터넷 트래픽을 획기적으로 줄일 수도 있을 것입니다.
100배나 느리다는데?
==> zopfli 프로젝트 홈에 표시되어 있기로는 ~100x slower 라고 표시되어 있습니다만,
블로그 글에 따르면 cpu 소요시간으로 따지면 zlib 최대 압축으로 했을 때 보다
2-3 배 정도 차이난다고 되어 있습니다.
사람들이 이것을 두고 누가 쓰겠냐? 라고 하는데...
구글이 그 정도 테스트도 안하고 오픈했을까 싶네요.
보통 압축은 한 번만 하면 되는 것이고 실제 트래픽의 5%만 줄일수 있다고 해도
그 비용은 상당히 클테니깐요.
특별히 클라이언트가 해야 할 것이 없으니 알게 모르게 어느 순간 우리에게 다가와 있을것 같네요.
보이지 않는 영역에 까지 세상을 바꾸려는 노력을 하고,
그 노력을 공개한 구글에게 박수를 보내며 이만~
'컴퓨터 사용' 카테고리의 다른 글
[Linux] Bash history 검색 팁. (1) | 2013.05.03 |
---|---|
구글 리더는 이대로 사라지는가? (0) | 2013.03.14 |
[Google] 북마크도 역시 구글! (0) | 2013.02.07 |
쓸만한 공개 유틸리티 정리 (0) | 2013.01.31 |
[Ubuntu] Proxy 환경에서 어도비 플래시 설치 (0) | 2013.01.29 |
글
[MSYS] *** Couldn't reserve space for cygwin's heap (0xXXXXXXXX <0xXXXXXXX>) in child, Win32 error 0
원래 Windows 환경에서 사용할 만한 컴파일러와 IDE 에 대한 이야기를 쓰려다가,
msys 에서 아래와 같은 에러가 발생하여, 여기에 대한 내용부터 기록에 남긴다.
*** Couldn't reserve space for cygwin's heap (0xXXXXXXXX <0xXXXXXXX>) in child, Win32 error 0
집에서는 잘 되는데, 회사에선 항상 저런 메시지를 내면서 msys 의 대부분의 실행 파일들이 동작하지 않는다.
간단하게 결론부터 말하면 child process 가 fork() 될 때,
dll 파일이 로드되는 메모리 주소가 서로 다르게 되어 fork() 가 실패하기 때문이다.
( 이게 무슨 말이냐 라고 묻는다면, 납득할 만하게 설명할 자신은 없다. -_-;;
좀 더 자세한 설명을 원한다면 아래 포스트를 읽어보라.
http://old.nabble.com/Re%3A-fork-problem-on-Windows-XP-64-bit-p31154393.html )
( 예전에는 cygwin 에서도 이러한 에러 메시지를 본 기억이 있는데,
최근에는 cygwin setup 시에 dll 파일들의 base address 를 재설정 한다고 하는 듯하다. )
이리저리 구글링 좀 해 본 결과, 아직까지 근본적인 해결방법은 없는듯 한데,
실제로 msys 의 릴리즈 노트를 봐도 저 문제를 해결하지는 못하고
다만 rebase 되는 상황을 최소화 하기 위해 msys-1.0.dll 파일의 base address 를 바꾸었다고 되어있다.
( 분명 Windows 는 dll 파일을 로드할 때, 주소 충돌이 생기면 base address 를 알아서 조정한다고 했던거 같은데,
왜 msys 에서는 안되는지 잘 모르겠다. dll 파일 자체에 해당 기능을 enable 하는 플래그가 있다고 본 거 같다.
하지만 더 구체적인 근거를 찾기엔 시간도 부족하고... 해서 패스 )
어쨌든 저러한 문제가 생기면 msys 에 포함된 dll 파일들의 base address 를 바꾸어 주어야 하는데,
이 때 사용하는 프로그램이 rebase 프로그램이다.
문제는 msys 에 포함된 rebase 를 실행하기 위해서는 msys-1.0.dll 이 필요하다는 거.
그래서 msys-1.0.dll 이 의존적이지 않는, Win32 native binary 가 필요한데,
직접 빌드하려 소스를 열어보니 익숙치 않은 autoconf, automake 조합으로 빌드되도록 되어있다.
하지만 나와 같은 (그리고 이런 문제를 만난 다른 많은 사람들과 같은) 생각을 가진 분이
이미 빌드해 놓은 파일이 있었다.
소스: http://repo.or.cz/w/msysgit.git/tree/322c42c780833a52bd7cd0358a562ab243ecfbce:/src/rebase
바이너리: http://repo.or.cz/w/msysgit.git/history/76920dc49da361257cbccb02ea63b3e5357fe353:/bin/rebase.exe
위 툴을 받아, msys 의 bin 디렉토리에 복사를 한다. (보통 C:\MinGW\msys\1.0\bin 일 것이다.)
그리고 해당 디렉토리에서 cmd 창을 열고 아래와 같이 입력한다.
C:\MinGW\msys\1.0\bin>rebase -b 0x30000000 msys-1.0.dll
새로운 Base 주소는 각자 적당히 찾아서 적으면 될듯 하다.
그리고 이제 다른 dll 파일들에 대하여 rebase 작업을 한다.
이제 MinGW Shell 을 열어도 에러가 뜨지 않으니, MinGW Shell 을 열고,
$ mingw-get install msys-rebase
를 실행한다. 위 명령을 성공적으로 실행되면, MinGW Shell 을 닫고,
탐색기에서 msys 의 bin 디렉토리로 이동하여 dash 를 실행한다.
그리고 아래와 같이 입력한다.
/bin/rebaseall
만약 에러 메시지가 출력된다면, (예를 들면 read-only 속성이 걸려 있다던가...)
에러 메시지를 보고 적절한 조치를 취해 준 뒤 다시 실행한다.
마지막으로
/bin/peflagsall
을 해주면,
(위에서 이야기 했던) dll 파일에 dynamicbase flag 를 set 한다고 되어 있다.
dash 에서는 현재 환경을 MinGW32 로 인식하고 있어서 별 다른 작업을 하지는 않는데,
실제 문제가 되는 건 msys 기 때문에 스크립트 파일의 Platform 환경변수를
강제로 바꾸어 주어야 되는지는 잘 모르겠다.
써 보다가 문제가 생긴다면 고려해 봐야할 듯.
P.S
아무래도 생각해도 이 에러가 발생한 건,
회사의 보안 프로그램이 해당 영역을 이미 차지하고 있기 때문이라는 생각이 든다.
'프로그래밍' 카테고리의 다른 글
Hues, Tints, Tones, Shades (0) | 2015.10.22 |
---|---|
[STL] vector 의 정렬 - object pointer 정렬 (1) | 2013.04.25 |
[Code::Blocks] Using redirection as arguments on windows version. (윈도 버전에서 표준입출력 리다이렉션 하기) (1) | 2013.02.23 |
fgets(buf, buf_size, stdin), gets(buf) 차이? (0) | 2013.02.20 |
Dynamic Programming - Edit Distance, Two-Person Traversal... (0) | 2012.08.09 |
글
[Code::Blocks] Using redirection as arguments on windows version. (윈도 버전에서 표준입출력 리다이렉션 하기)
In Code::Blocks can set programs arguments in IDE ("Project > Set programs' arguments...")
But in windows version, the redirection is not working.
How to make it enable?
The problem is the 'cb_console_runner.exe'.
That use CreateProcess() function to start the child process.
Unfortunately, CreateProcess() CAN'T handle redirections.
Why does 'cb_console_runner.exe' use this function?
It is written in source code.
//Windows's system() seems to not be able to handle parentheses in
//the path, so we have to launch the program a different way.
( See this svn log. )
So I complied the 'cb_console_runner.exe' using system() instead of CreateProcess().
In my windows7, It works well and it seems that there is no problem about parentheses.
( That was modified in 2006. Now does it fixed?. I don't know. )
Anyway I replaced the 'cb_console_runner.exe' with my own build.
If anyone having a redirection problem in windows version of Code::Blocks, try this one.
(Just copy to where Code::Blocks installs and replace original file with this)
Or you can build it easely with just a few modification. (That's why I didn't attach soruce code.)
I modified and built this in Code::Block. ;)
P.S
영어로 쓰고 나니 진에 빠져서, 한글로 내용을 다시 쓰는건 패스.
도대체 구글링 해도 시원하게 답해주는 사람이 없어서,
직접 원인을 찾아서 수정한 버전을 사용하기로 함.