모이터러

|




10년 전에 해 본 게임인데 정말 어렵게 어렵게 중고를 구했다.


사무실은 삼성동이고 집은 분당인데 택배가 안 된다길래 이걸 사기 위해 마포까지 갔다 퇴근...ㅎㅎ


거두절미하고 간단한 룰과 구성물에 비해 깊은 게임성을 가진 게임이다(순수 카드게임임). 4인용일 때만...;

3~4인용 게임인데 3인용은 추천하지 않는 분위기가 지배적...


아쉽게도 독어판만 나온 걸로 알고 있는데 게임에는 텍스트가 필요하지 않으므로 그나마 다행?


게임 구조는 시타델처럼 매 라운드마다 역할 카드를 드래프트해서 뽑는 식으로 진행되며 시타델처럼 완전 독자 플레이보다는 2:2의 연합이 이루어지는게 이상적이긴 하다.




게임 보드는 존재하지 않지만 사진처럼 섬 카드를 원형으로 놓는 것이 게임 보드 역할을 하게 된다.


그리고 선장 역할을 맡은 사람이 게임을 시작하게 되는데 선장을 제외한 3명은 라운드 진행 중에 역할을 고르게 된다.


게임의 점수 체계는 목적지 섬에서 얻는 승점과 상품을 팔아 얻는 점수로 나뉘는데 선장이 기본적으로 좋은 점은 목적지를 어디로 할 지 컨트롤이 가능하다는 점이다(목적지에 따라 승점과 팔 수 있는 상품이 다름). 그러므로 선장은 원하는 상품도 팔고 목적지의 승점도 높은 곳을 골라서 가면 혼자 해피하겠지만...ㅎㅎ

그럼 게임이 아니지 -_-


게임은 각자 상품 카드를 내려놓으며 진행되는데 더 내려놓기 싫은 사람은 패스하고 역할 카드를 고를 수 있다. 역할 카드는 선장을 제외하고 5가지가 있는데 이 중 게임 제목과 동일한 Meuterer(반란을 일으키는 자, 폭도)라는 카드를 고르면 말 그대로 반란을 일으키게 된다 -_-


반란의 성공 여부는 갖고 있는 상품 카드 중 칼 그림이 그려진 전투(?) 카드의 갯수에 따라 결정되는데 선장과 폭도의 1:1이 될 수도 있지만, 역할 카드 중 갑판장을 고른 사람은 선장 편이 되고, 선원을 고른 사람은 폭도 편이 되어 2:2의 대결이 될 수도 있다. 물론 2:1의 상황이 될 수도 있고...;


선장은 라운드 시작할 때에 갑판장에게 점수를 얼마나 나눠줄 것인 지를 먼저 선언하고(0~3점) 시작을 하게 되는데 나중에 목적지 승점에서 그만큼의 점수를 갑판장에게 나눠주고 자신은 남은 점수를 받게 된다(물론 반란이 성공하면 점수 없음). 그러므로 상황에 따라 점수 선언도 잘 해야 하고 다른 플레이어들은 그 점수에 따라 갑판장을 선택하는게 자신에게 이득이 많이 될 지를 판단한다.


폭도를 선택했고 반란이 성공했다면 폭도는 목적지 섬의 승점을 나누지 않고 그대로 다 받게 된다.

폭도는 선장과 따로 목적지를 고를 수 있으므로 반란이 실패했을 때와는 목적지 승점도 달라질 수 있으며 팔 수 있는 상품 종류도 달라질 수 있으므로 게임 판세에 제법 영향을 크게 주긴 하지만... 아직 많이 안 해봐서 그런지 반란이 성공하는 경우를 잘 못 봤다 ㅎㅎ

그리고 선원을 고른 사람은 반란이 성공했다면 2점을 얻는다. 또한 폭도는 다음 라운드부터 선장이 된다.


승점 외에 상품 점수는 목적지 섬에서 취급하는 물품카드를 역할과 상관없이 가장 많이 내려놓은 사람이 얻게 되며 공동 1위일 경우 받는 점수가 깎인다.


선장이나 폭도편 양 쪽 모두 속하지 않는 역할은 상인과 짐꾼이 있는데 상인은 상품 공동 1위일 경우에도 받는 점수가 깎이지 않으며 짐꾼은 이도저도 희망이 안 보일 때 선택하는데 -_- 다음 라운드에 손에 카드를 보충할 때 3장을 더 받은 후 원하는 카드만을 남기고 다시 세 장을 버린다.


역할 카드 : 왼쪽 위부터 짐꾼, 선원, 상인, 폭도, 갑판장


그러므로 게임 점수는 목적지가 되는 섬에 따라 좌우될 수 밖에 없는데 이 섬을 고르는 방법은 상품카드를 내려놓다가 패스했을 때의 손에 남은 카드 장수에 따라 달라지기 때문에 선장이 어떤 상품 카드를 내려놓고 있는지, 몇 장 남았는지 눈치 싸움이 치열해 질 수 밖에 없다.


또한 역할 카드는 모두 덮어 놓은 상태에서 처음 패스한 사람부터 모두 보고 골라 가져가게 되므로 여기에 따른 전략 싸움도 치열한 편이다.

(예를 들어 선장이 분배 점수를 높게 걸었을 경우는 상품 내려놓는 걸 일부 포기하고 갑판장을 빨리 고르는 쪽을 선택한다거나 역할 카드를 늦게 고를 때에 이미 폭도 카드가 없다면 반란이 일어날 거라고 예상할 수 있으므로 그에 따른 선택을 할 수 있다는 점 등)


4인용의 경우 8라운드를 하게 되는데 한 시간까지는 걸리지 않고 거의 45분 내외로 끝나는 느낌이라 게임에 크게 부담도 없었다. 게다가 셋팅도 간단하니...

점수를 종이에 써가면서 해야 된다는 단점이 있긴 하지만...ㅎㅎ


오래 된 게임이지만 매우 잘 디자인 된 게임이라고 생각된다. 매우 추천.

'Hobby > Board Game' 카테고리의 다른 글

Walk the Plank!  (0) 2014.03.27
모이터러  (0) 2014.01.08
Village  (0) 2012.12.28
Android: Netrunner  (3) 2012.12.03
Trackback 0 And Comment 0

유용한 Python 함수 및 기능들

|

기초적인 내용들이긴 하나 도움이 될 것 같아 정리함.


출처 : http://pypix.com/tools-and-tips/python-functions/



가변 갯수 인자로 함수 쓰기


우선 다음의 단순한 선택 인자 예제를 보자.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11

def function(arg1="",arg2=""): print "arg1: {0}".format(arg1) print "arg2: {0}".format(arg2) function("Hello", "World") # prints arg1: Hello # prints arg2: World function() # prints arg1: # prints arg2:


함수 인자에 =를 이용하여 default 값을 지정해 놓으면 해당 인자를 명시하지 않을 경우 default 값이 사용된다.


하지만 이보다는 좀 더 유연한 방법도 있다. Tuple을 이용한 인자 받기 방식이다.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18

def foo(*args): # "*" 를 사용하면 나머지 인자를 모두 tuple로 받는다. numargs = len(args) print "Number of arguments: {0}".format(numargs) for i, x in enumerate(args): print "Argument {0} is: {1}".format(i,x) foo() # Number of arguments: 0 foo("hello") # Number of arguments: 1 # Argument 0 is: hello foo("hello","World","Again") # Number of arguments: 3 # Argument 0 is: hello # Argument 1 is: World # Argument 2 is: Again



glob()으로 파일 찾기


glob()을 써본 적이 없다면 이름에서 뭘 하는 함수인지 유추해내기는 쉽지 않을 것이다. 일종의 listdir()의 다른 버전이라고 생각하면 될 듯.

이 함수는 이름 패턴을 써서 파일들을 찾는 데에 사용된다.


1
2
3
4
5
6
7
8
import glob
 
# get all py files
files = glob.glob('*.py')
print files
 
# Output
# ['arg.py', 'g.py', 'shut.py', 'test.py']


다음과 같은 방식으로 다양한 파일 타입을 동시에 찾을 수도 있다.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import itertools as it, glob
 
def multiple_file_types(*patterns):
    return it.chain.from_iterable(glob.glob(pattern) for pattern in patterns)
 
for filename in multiple_file_types("*.txt", "*.py"): # add as many filetype arguements
    print filename
 
# output
#=========#
# test.txt
# arg.py
# g.py
# shut.py
# test.py


찾은 파일들에 대해 full path를 알고 싶다면 리턴값에 대해 realpath()를 사용하면 된다.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import itertools as it, glob, os
 
def multiple_file_types(*patterns):
    return it.chain.from_iterable(glob.glob(pattern) for pattern in patterns)
 
for filename in multiple_file_types("*.txt", "*.py"): # add as many filetype arguements
    realpath = os.path.realpath(filename)
    print realpath
 
# output
#=========#
# C:\xxx\pyfunc\test.txt
# C:\xxx\pyfunc\arg.py
# C:\xxx\pyfunc\g.py
# C:\xxx\pyfunc\shut.py
# C:\xxx\pyfunc\test.py



디버깅


(물론 pdb로 디버깅하는 방법도 있지만) 아래 예제들은 inspect 모듈을 사용한 것이다. 이 모듈은 디버깅 목적으로 매우 유용하며 많은 것을 얻어낼 수 있다. 아래에 간단한 예제를 명시한다.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
import logging, inspect
 
logging.basicConfig(level=logging.INFO,
    format='%(asctime)s %(levelname)-8s %(filename)s:%(lineno)-4d: %(message)s',
    datefmt='%m-%d %H:%M',
    )
logging.debug('A debug message')
logging.info('Some information')
logging.warning('A shot across the bow')
 
def test():
    frame,filename,line_number,function_name,lines,index=\
        inspect.getouterframes(inspect.currentframe())[1]
    print(frame,filename,line_number,function_name,lines,index)
 
test()
 
# Should print the following (with current date/time of course)
#10-19 19:57 INFO     test.py:9   : Some information
#10-19 19:57 WARNING  test.py:10  : A shot across the bow
#(<frame object at 0x01E8A390>, 'C:/xxx/pyfunc/magic.py', 16, '<module>', ['test()\n'], 0)



단일 ID 생성


뭔가 ID 역할을 할 문자열을 생성해야 할 상황에 부딪치는 경우가 많을 것이다. 많은 사람들이 그런 경우에 md5()를 쓰는 것을 보았는데 정확한 해결책이라고는 할 수 없다.


그런 목적을 위해서는 파이썬에서 지원하는 uuid()가 더 적합하다.


1
2
3
4
5
6
7
8
import uuid
result = uuid.uuid1()
print result
 
# output => various attempts
# 9e177ec0-65b6-11e3-b2d0-e4d53dfcf61b
# be57b880-65b6-11e3-a04d-e4d53dfcf61b
# c3b2b90f-65b6-11e3-8c86-e4d53dfcf61b


생성된 문자열들이 각각 다르기는 해도 뒷부분은 동일하다는 것을 눈치챘는지? 이는 uuid가 네트웍 주소에 기반하기 때문이다.


중복여지를 더 줄이기 위해서는 다음과 같은 방식도 쓸 수 있다.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import hmac,hashlib
key='1'
data='a'
print hmac.new(key, data, hashlib.sha256).hexdigest()
 
m = hashlib.sha1()
m.update("The quick brown fox jumps over the lazy dog")
print m.hexdigest()
 
# c6e693d0b35805080632bc2469e1154a8d1072a86557778c27a01329630f8917
# 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12



직렬화


DB나 텍스트 파일에 복잡한 변수를(객체 변수) 저장해야 되었던 적이 있었는지? 그런 경우에 굳이 특정 포맷의 문자열을 생성한다든가 할 필요는 없다. 파이썬은 이미 그런 목적을 위한 함수들을 갖고 있다.


 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
import pickle
 
variable = ['hello', 42, [1,'two'],'apple']
 
# serialize content
file = open('serial.txt','w')
serialized_obj = pickle.dumps(variable)
file.write(serialized_obj)
file.close()
 
# unserialize to produce original content
target = open('serial.txt','r')
myObj = pickle.load(target)
 
print serialized_obj
print myObj
 
#output
# (lp0
# S'hello'
# p1
# aI42
# a(lp2
# I1
# aS'two'
# p3
# aaS'apple'
# p4
# a.
# ['hello', 42, [1, 'two'], 'apple']


이는 파이썬 고유의 직렬화 방법이다(즉 파이썬에서만 읽을 수 있음). 하지만 최근에는 JSON 포맷이 인기를 끌다 보니 그에 대한 것도 지원하게 되었다.

이제 JSON으로 인코딩/디코딩하는 예제를 보자.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
import json
 
variable = ['hello', 42, [1,'two'],'apple']
print "Original {0} - {1}".format(variable,type(variable))
 
# encoding
encode = json.dumps(variable)
print "Encoded {0} - {1}".format(encode,type(encode))
 
#deccoding
decoded = json.loads(encode)
print "Decoded {0} - {1}".format(decoded,type(decoded))
 
# output
 
# Original ['hello', 42, [1, 'two'], 'apple'] - <type 'list'>
# Encoded ["hello", 42, [1, "two"], "apple"] - <type 'str'>
# Decoded [u'hello', 42, [1, u'two'], u'apple'] - <type 'list'>


이는 훨씬 간단하면서도 javascript나 다른 언어와도 호환이 가능하다.

하지만 복잡한 객체들의 경우 일부 정보가 유실될 수도 있으므로 주의해서 사용해야 한다.



문자열 압축


압축에 대해 얘기하면 보통 ZIP 파일 같은 것들을 생각하겠지만 파이썬에서는 그런 압축 파일을 생성하지 않고도 압축을 지원한다.


 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
32
import zlib
 
string =  """   Lorem ipsum dolor sit amet, consectetur
                adipiscing elit. Nunc ut elit id mi ultricies
                adipiscing. Nulla facilisi. Praesent pulvinar,
                sapien vel feugiat vestibulum, nulla dui pretium orci,
                non ultricies elit lacus quis ante. Lorem ipsum dolor
                sit amet, consectetur adipiscing elit. Aliquam
                pretium ullamcorper urna quis iaculis. Etiam ac massa
                sed turpis tempor luctus. Curabitur sed nibh eu elit
                mollis congue. Praesent ipsum diam, consectetur vitae
                ornare a, aliquam a nunc. In id magna pellentesque
                tellus posuere adipiscing. Sed non mi metus, at lacinia
                augue. Sed magna nisi, ornare in mollis in, mollis
                sed nunc. Etiam at justo in leo congue mollis.
                Nullam in neque eget metus hendrerit scelerisque
                eu non enim. Ut malesuada lacus eu nulla bibendum
                id euismod urna sodales. """
 
print "Original Size: {0}".format(len(string))
 
compressed = zlib.compress(string)
print "Compressed Size: {0}".format(len(compressed))
 
decompressed = zlib.decompress(compressed)
print "Decompressed Size: {0}".format(len(decompressed))
 
# output
 
# Original Size: 1022
# Compressed Size: 423
# Decompressed Size: 1022



* 마지막의 atexit는 생략...


음... 다 쓰고 보니 뭐 별 대단한 건 없는 느낌이긴 한데..;;


'Programming Story > Python' 카테고리의 다른 글

유용한 Python 함수 및 기능들  (0) 2013.12.18
Trackback 0 And Comment 0

하스스톤(Hearthstone)

|

CBT에 당첨되어서 요즘 열심히 하고 있다.

음... 열심히는 아닌가. 평균 하루 한두게임 정도? -_-


만든다는 얘길 들었을 때부터 기대했는데 결론부터 말하면 충분히 기대를 충족시키는 것 같다. 하지만 그 얘기는 대중적인 인기를 얼마나 끌 지는 미지수라는...

아무래도 TCG 게임이라 매직 더 게더링(이하 MTG)과 비교를 할 수 밖에 없을 듯 하다. 개인적으로는 MMORPG에서의 WOW 같은 존재가 TCG에서는 MTG이기 때문에...-_-;


이미 게임 웹진 등에서 많이 다루긴 했지만 아직 CBT라 플레이 해보고 싶어도 플레이할 수 없는 분들도 많을테니 MTG와 비교해서 게임 룰 중심으로 한 번 정리해 보겠다.




승리 조건


MTG와 동일한 방식으로 각 플레이어가 30의 HP를 갖고 있으며 이 HP가 먼저 0이 되는 쪽이 진다.



덱 구성


30장 덱이다. 최소 30장도 아니고 그냥 딱 30장.

그리고 동일 카드는 최대 2장까지 넣을 수 있다.



덱 운용 방식


카드마다 코스트가 있고 마나를 써서 카드를 사용하게 되는데 MTG의 랜드 카드 같은 리소스 카드는 존재하지 않고 마나 1로 시작하여 매 턴 최대 마나가 하나씩 올라간다. 턴이 끝나면 마나는 다시 채워진다. 최대 마나는 10이다.

MTG에서는 랜드가 나와야 할 때 안 나오거나 필요없는데 자꾸 나오는 경우가 발생하면 짜증도 나지만 승부에도 중요한 영향을 미치는데 처음에는 좀 그슥했지만 막상 적응이 되니 게임도 약간 더 캐주얼해지고 덱 운용에 집중할 수 있어서 좋은 듯 하다.



시작


두번째 플레이어는 카드를 한 장 더 받고 시작하며 추가로 마나를 1올려주는 코스트 0짜리 카드가 주어진다(즉 늦게 시작하지만 첫번째 턴에 마나 2짜리 카드를 쓸 수도 있다는 것). MTG도 두번째 플레이어가 카드가 한 장 많기는 하지만 아마 그것만으로는 밸런스가 완전히 맞지 않다고 생각한 듯?



직업


그야말로 핵심 부분...

MTG는 다섯까지 색깔에 따라 카드가 분류되고 그 외에 아티팩트나 골드 카드 등이 있는데 하스스톤은 WOW의 직업 9가지와 중립카드까지 10종류로 분류된다.

직업은 다들 잘 알다시피 전사, 도적, 사제, 마법사, 흑마법사, 성기사, 주술사, 사냥꾼, 드루이드의 9가지 종류이다. 그리고 MTG와 달리 혼합덱은 만들 수 없다.


혼합덱을 만들 수 없다는건 약간 아쉬운 부분이긴 한데 아무래도 직업이 9가지나 되고 단일 덱만 가능하다면 카드 종류에 따라 직업별 호불호가 갈릴 수 밖에 없을 것 같기 때문이다. 밸런싱도 쉽지 않을 것 같고... 실제로도 대충 선호 직업덱이 정해진 분위기.

아직 CBT이고 약한 평가를 받는 덱에 좀 더 좋은 카드를 넣을 여지가 있긴 하지만... 혼합 덱이 가능했다면 좀 더 덱 짜는 재미도 있지 않았을까 싶긴 하다.


그리고 직업별로 마나 2짜리의 특수능력이 한 가지씩 존재한다. 직업을 구분하는 요소 중에 이 특수 능력도 무시할 수 없는데 이는 카드가 아니라서 딱히 할 일 없고 마나가 2 이상 남는다면 무조건 쓸 수 있기 때문이다(한 턴에 한 번).

각 특수 능력은,


  • 전사 - 자신의 방어도 2 증가 (hp 2 증가와 동일한 효과이지만 사제와 달리 hp가 꽉 차 있어도 방어도는 증가)
  • 도적 - 무기 장착 (아래에 설명)
  • 사제 - hp  2 회복 (자신이나 하수인(크리처))
  • 마법사 - hp 1 깎음 (상대 플레이어나 하수인 중 골라서)
  • 흑마법사 - hp 2 깎고 카드 한 장 가져옴
  • 성기사 - 1/1의 기사 소환
  • 주술사 - 랜덤 토템 소환 (토템마다 능력이 다르며 hp 1~2정도를 가진 하수인으로 취급됨)
  • 사냥꾼 - 상대 플레이어 2 hp 깎음
  • 드루이드 - 자신의 방어도를 1 올리고 한 턴만 공격력 1 올림


단순히 특수능력 뿐 아니라 카드 구성도 직업마다 완전히 다르다보니 당연하지만 직업마다 전략 또한 다르게 가져가야 되는것이 하스스톤의 재미이긴 하다.

또한 WOW 테마를 충실히 반영하다 보니 사제 같은 경우 단순히 회복 위주가 아니라 암흑 사제의 마법 카드들도 있어서 때론 강한 공격성을 띄기도 하며, 흑마법사는 자신의 hp를 깎아서 강한 위력을 내는 카드들이 좀 있고, 사냥꾼은 야수류 하수인들 위주로 소환해서 덱을 짜는 것이 효율적인 등의 특징을 가진다.



카드 종류


이것도 비교적 간단한 개념으로 디자인 되었는데 기본적으로는 MTG의 크리처에 해당하는 '하수인'과 소서리에 해당하는 '주문'이 전부이다.

그 외에 주술사만이 쓰는 토템이 있는데 뭔가 특이해 보이지만 하수인 소환하는 것과 별 다를 바 없고 어디에도 해당되지 않는 '무기'카드가 있는데 이는 특정 직업만 가능한 듯... 무기는 사용하면 플레이어가 장착하게 되며 장착했을 때부터 플레이어도 하수인처럼 상대방 플레이어나 하수인을 공격할 수 있다. 물론 이는 '전투'에 해당되므로 하수인을 공격할 경우 하수인의 공격 데미지는 플레이어가 받게 된다. 그리고 무기에는 내구도가 존재해서 그 횟수만큼 사용하면 파괴된다.


하스스톤에는 MTG에서의 Instant 개념은 아예 존재하지 않는다. 사실 Instant는 상대방 턴에도 쓸 수 있고 이것들이 얽혀서 MTG 전투의 매력을 극대화 시켰었는데 대신 이 타이밍에 대한 개념이 복잡하여 하스스톤에서는 이를 간소화 시킨 듯... 그래서 결론적으로 상대방 턴 동안은 별로 할 게 없다.


음, 그리고 주문의 일종인 '비밀'카드가 있는데 코스트를 써서 내려 놓긴 하지만 상대에게 알 수 없도록 뒤집혀진 채로 놓이며 특정 조건에서만 발동한다(예 : 상대 하수인이 나를 공격시 그 하수인 처치).



전투


가장 중요한 전투이다. 아무래도 전투는 MTG처럼 하수인을 중심으로 이루어진다. 한 번 소환하면 죽기 전까지는 계속 공격이 가능하니까...


룰에 있어서의 매우 큰 차이는 하수인이 상대방 하수인의 존재 여부와 상관없이 플레이어를 직접 공격 가능하다는 점이다. 즉 방어 개념이 없다. 그리고 공격은 상대 플레이어나 상대 하수인 중 하나를 지정해서 공격한다.

이게 처음에는 아무래도 좀 적응이 안 됐긴 한데...-_-; MTG에서는 공격 선언만 하며 기본적으로는 상대 플레이어를 공격한다. 즉 상대 크리처를 지정해서 공격할 수는 없다. 그러다 보니 아무래도 눈치 싸움이 좀 더 치열하다. 대신 공격한 크리처는 '탭'을 하기 때문에 다음 턴에는 방어를 하지 못한다.


하지만 의외로 게임 플레이에서는 큰 차이를 보이지 않는 것이, 어차피 방어가 없으니 공격하고 방어 못하는 건 마찬가지고 -_- 반대로 상대의 강한 크리처가 공격할 때 방어하는 것이나(MTG) 내가 공격할 때 플레이어를 공격하지 않고 위협이 되는 상대 하수인을 공격하는 것이나(하스스톤) 비슷한 게임 경험을 선사한다.

그리고 대신 하수인의 특수 능력중에 '도발'이 있어서 무조건 그 놈을 먼저 공격해야 하는 카드도 있다.


또다른 큰 차이점은 턴 끝나도 하수인들이 받은 데미지가 자동으로 회복되지는 않는다. MTG는 이것 때문에 골치 아플 때도 많은데 (내가 좋을 때도 있지만 -_-) 어쨌든 하스스톤에서는 시간을 들여서라도 상대의 강한 하수인을 쓰러뜨릴 수 있는 가능성은 높은 편.


극단적인 케이스를 가정한다면 MTG에서는 상대에게 강한(공/방 모두 센) 크리처가 나오면 약한 크리처를 총알받이로 써서 -_- 방어하면 공격력이 아무리 세더라도 플레이어에게 타격이 가는 걸 어느 정도 지연시킬 수는 있지만 방어력이 턴마다 회복되므로 그 크리처를 제거하기는 매우 어려운 반면, 하스스톤에서는 플레이어에게 피해가 가는 걸 막을 수는 없지만 몇 턴간 공격해서 hp를 깎아 그 크리처를 제거하는 것은 쉬운 편인 셈?

말이 그렇지 게임 플레이는 물론 뜻한대로 진행되지는 않겠지만...ㅡ.ㅡ;



그 외


클로즈 베타지만 상점 기능은 동작한다 -_-;;; 즉 돈 주고 카드 살 수 있다.

한 팩에 다섯장이 들어 있고 뭐가 들어 있을 지는 랜덤이지만 레어 이상의 카드가 최소 한 장은 포함되어 있다 - 카드 등급은 WOW의 아이템 등급과 비슷하게 일반(흰색), 레어(파란색), 영웅(보라색), 전설(노란색)으로 나눠진다. 초록색이나 회색은 없다 -_-;


카드는 퀘스트를 해결해서 얻는 금화(사이버 머니)로 살 수도 있으며 기본카드(처음에 주어지는 카드 및 직업별로 레벨이 오를 때마다 주어지는 카드들)는 등급이 없고 상점에서 팔지도 않는다. 팔면 욕먹지...-_-;; 


플레이어간 카드 교환이나 경매장 시스템은 아직 없는데 이후에 도입될 지 모르겠다.

대신 WOW의 마법 부여처럼 필요없는 카드를 소멸해서 마법가루를 얻을 수 있는데 이 마법가루를 모아서 필요한 카드를 만들어낼 수가 있다. 당연하게도 카드를 만들 때 드는 마법가루와 소멸해서 나오는 마법가루는 소멸하는 쪽이 훨씬 적게 나온다. 블리자드한테는 카드가 돈이니까 -_-


전투는 AI와의 연습이 가능하며 10레벨까지는 경험치도 오른다.

그리고 대전과 투기장이 있는데 무작위 상대와 자신의 덱으로 겨룬다는 점에서는 동일하지만 투기장은 랜덤으로 나오는 카드들 중에 자신이 선택해서 덱을 만드는 드래프트 게임이다. 투기장은 입장료를 받으며 3번 패배하면 끝나지만 승수를 많이 거두면 그에 따른 보상이 있다.

대전은 그냥 자신의 덱으로 무작위 상대와 붙는 것...


부작용(?)을 없애기 위해서인지 상대방이 친구가 아니라면 채팅은 지원되지 않는다 ㅎㅎㅎ

여담이지만 MTG 온라인에도 있는 기능인데 게임 리플레이 기능이 있으면 분석에 좋을 듯 하고... 스위스 토너먼트 같은 이벤트도 있었으면 재밌을 것 같다.



이 쪽에 관심 많은 분들은 꼭 나중에라도 해보시길... 설마 게임 플레이도 유료로 하진 않겠지? -_-


아, 이제 일해야지 -_-

'Hobby > Game' 카테고리의 다른 글

하스스톤(Hearthstone)  (0) 2013.11.01
Infinity Blade  (2) 2010.12.22
Magic Online  (2) 2010.10.27
취미의 다양성을 인정하지 않는 사회  (6) 2009.02.24
Trackback 0 And Comment 0
prev | 1 | 2 | 3 | 4 | 5 | ··· | 46 | next