Low Level
1 낮은 수준, 혹은 낮은 레벨
2 유희왕의 덱 중 하나
- 관련 항목 : 일반 몬스터
일반 몬스터덱의 파생형이라고 할 수 있는 덱.
로우 레벨이라는 이름에 걸맞게 레벨 3 이하의 일반 몬스터를 주로 사용하는 덱을 말한다. 저레벨 몬스터를 이용한다 해도 일반 몬스터가 아닌 습지초원이나 기황제같은 효과 몬스터를 위주로 한 덱은 따로 분류하는 것이 보통이다.
3레벨 이하의 몬스터들의 경우 효과도 없고 다른 하급 몬스터들에 비해 전투 능력도 약해서 도무지 믿을만한 구석이 없을 정도로 약하지만, 이것을 커버할 정도로 강력하고 다양한 서포트 카드가 있기 때문에 존재할 수 있는 덱이다. 전용 서포트 카드로는 마의 탈의실, 어둠의 양산공장, 트라이앵글 파워, 사우전드 에너지, 동성동명동맹, 하극상의 목걸이, 궁지에 몰린 쥐들의 진격, 트라이 저주받은 하인 존, 인해전술#s-7, 약육일색 등이 있다. 또 전용 서포트 카드들 이외에도 일반 몬스터 서포트 카드, 저레벨 몬스터 서포트 카드, 낮은 공격력 서포트 카드 등도 전부 로우 레벨에 어울려서 다양한 활용이 가능하다. 게다가 반대로 스킬 드레인, 그래비티 바인드, 레벨 제한 B구역, 폭군의 자포자기와 폭군의 폭언, 평화의 사자 등 효과 몬스터, 고레벨 몬스터, 공격력이 높은 몬스터를 카운터 치는 카드들로 락을 걸어 상대를 괴롭힐 수도 있다.
몬스터들의 레벨을 통일하고 전개력이 좋은 로우 레벨의 특성상 저랭크 엑시즈 소환을 하는 것은 매우 쉽다. 3레벨 이하 일반 몬스터 튜너를 투입해서 싱크로 소환도 할 수 있다. 하지만 기본적으로 싱크로 소재가 되는 몬스터들의 레벨이 낮아 다른 덱이 비해 싱크로 소환에 필요한 몬스터가 많이 소모되기 때문에 싱크로 몬스터로 큰 이득을 보기 어렵다. 싱크로와 엑시즈의 등장으로 서포트 카드는 강력하지만, 그 서포트 카드들이 제 때 패에 와주지 않으면 전혀 싸울 수가 없다는 불안정성이 조금씩 해결되고 있다. 하지만 싱크로 소환이나 엑시즈 소환으로 소환된 몬스터는 로우 레벨 덱 전용의 서포트들을 받을 수 없다는 문제점이 있어 실질적으로 활용되는 싱크로, 엑시즈 몬스터의 숫자는 크게 제한된다.
로우 레벨덱을 할 때는 특히 레벨을 통일해야 한다. 위에서 말한 대로 저레벨 몬스터의 전개력을 싱크로나 엑시즈로 이용하기 위해서도 있지만, 똑같은 저레벨이라고 해도 저레벨 서포트 카드 중 특히 강력한 것은 '2레벨 이하'를 지정하는 경우가 많기 때문에 1~2레벨과 3레벨에는 많은 차이가 있다. 위에서 말한 카드 중 몇 가지도 1~2레벨 전용 카드이다. 대신 3레벨은 공격력 1750의 제리 빈즈맨을 필두로 공격력 1500~1700수준의 강한 전투력을 가진 카드가 상당수 존재한다.[1] 즉 1~2레벨 위주로 가서 서포터 카드의 강력함으로 승부를 볼 것인가, 아니면 3레벨 위주로 가서 서포트 카드의 위력을 좀 줄이고 몬스터 자체의 위력을 올릴 것인가를 정해야 한다. [2]
1레벨 중심의 경우는 수비력이 2000이상인 몬스터가 다수 포진되어 있고, 앞서 말한 서포트 카드들의 보조를 상당수 받을 수 있다. 특히 광학 위장 아머와 트라이앵글 파워란 고성능 공격력 상승 카드와, 약육일색을 통해 어떻게 끝장 내느냐가 관건이다. 싱크로는 소환법 관계상 사용하기 힘드나, 엑시즈의 경우 고스트릭 듈라한이 공격력 2400 이하의 몬스터라면 처리가능하고, 쓸만한 내성이 존재하는 샤이니트 매지션, 트라이 저주받은 하인 존을 통해 튀어나오는 반골의 투사 라이언하트가 존재한다.
2레벨 중심의 경우는 1레벨의 비해 몬스터 자체의 성능은 낮으며 사우전드 에너지가 트라이앵글 파워에 비해 상승폭도 낮다는 단점이 있다. 허나 몇 가지 카드를 제외하면 일반몬스터 보조 카드의 폭은 겹치고, 다이가스타 피닉스, 하늘의 기병 세인토레어같은 쓸만한 엑시즈 몬스터들 덕분에 일반몬스터의 전투 보조에 기댈 필요가 없어서, 하급 몬스터를 강화하는 카드 대신에 전개를 위한 카드를 투입할 수 있다. 또한 드래곤족 일반 몬스터가 3종류 존재하기 때문에, 드래곤족 일반 몬스터를 중심으로, 카보네돈이나 청룡의 소환사 등을 채용 하는 것도 고려해볼 수 있다. 다만 어떻게 구축하더라도 엑스트라 덱에 캣 샤크와 다이가스타 피닉스는 필수적으로 채용하는 편이 좋다.
3레벨 중심의 경우는 앞서 서술한 대로 보조 카드는 줄어드나, 공격력 자체가 상당히 올라있다는 것이 특징이며, 레벨이 높아진 덕분에 1레벨이나 2레벨 중심에 비해 좀 더 적극적으로 싱크로를 노리기 좋고, 허공해룡의 존재로 인해 제외에도 어느 정도 내성을 가진다. 또한 드라코니아의 해룡기병, 이그나이트 매그넘, 이그나이트 이글, 소환사 라이즈벨트 덕분에 일반몬스터라는 것만 활용한 펜듈럼을 채용하는 방식도 고려해 볼 수 있게 됐다.
3 로우 레벨 프로그래밍 언어
저급/원시적인 프로그래밍 언어. 즉, 기계 친화적인 언어를 가리키는 데 쓰이며, 상대적인 것이라 액션스크립트보다 자바가, 자바보다 C가, C보다 어셈블리어가, 어셈블리어보다 기계어가 로우 레벨인 언어이다. 그리고 시대에 따라서도 low와 high라는 인식이 달라지는데, 옛날엔 C++이 C보다 생산성이 훨씬 좋은 high level 언어였지만 지금 기준으로는 배우기가 엄청 힘든 low level 언어이다.
로우 레벨 언어는 하드웨어라든지, 메모리라든지... 등 여러 가지를 개발자가 직접 건드릴 수 있고 속도도 빠르다[3]는 장점이 있지만, 개발자가 하나하나 일일이 다 설정해 주어야 하기 때문에 생산성이 아주 낮다.
"속도가 빠르다면 생산성이 좀 낮든, 좀 어렵든 상관 없는 거 아냐?" ...라고 할 수도 있겠지만, 문제는 생산성 낮고 어렵고 복잡한 정도가 '조금'이 아니라는 것.
예로...
파일:Attachment/figure5.jpg
이 사진은 플래시의 Stage3D에 스프라이트 이미지를 띄운 간단한 것인데, 이걸 구현하려면...
- High Level
var texture:Texture = Texture.fromBitmap ( new embeddedBitmap() );
var image:Image = new Image(texture);
image.pivotX = 50;
image.pivotY = 50;
image.x = 300;
image.y = 150;
image.rotation = Math.PI/4;
addChild(image);
Starling 엔진란 라이브러리로 하면 몇 줄로 비교적 간단하게 구현되는 반면,
- Low Level
var vertices:Vector.<Number> = Vector.<Number>([
−0.5,−0.5,0, 0, 0, // x, y, z, u, v
−0.5, 0.5, 0, 0, 1,
0.5, 0.5, 0, 1, 1,
0.5, −0.5, 0, 1, 0]);
var vertexbuffer:VertexBuffer3D = context3D.createVertexBuffer(4, 5);
vertexbuffer.uploadFromVector(vertices, 0, 4);
var indexbuffer:IndexBuffer3D = context3D.createIndexBuffer(6);
indexbuffer.uploadFromVector (Vector.<uint>([0, 1, 2, 2, 3, 0]), 0, 6);
var bitmap:Bitmap = new TextureBitmap();
var texture:Texture = context3D.createTexture(bitmap.bitmapData.width,
bitmap.bitmapData.height, Context3DTextureFormat.BGRA, false);
texture.uploadFromBitmapData(bitmap.bitmapData);
var vertexShaderAssembler : AGALMiniAssembler = new AGALMiniAssembler();
vertexShaderAssembler.assemble( Context3DProgramType.VERTEX, "m44 op, va0, vc0\n" + "mov v0, va1");
fragmentShaderAssembler.assemble( Context3DProgramType.FRAGMENT,
"tex ft1, v0, fs0 <2d,linear, nomip>;\n" + "mov oc, ft1");
var program:Program3D = context3D.createProgram();
program.upload( vertexShaderAssembler.agalcode, fragmentShaderAssembler.agalcode);
context3D.clear ( 1, 1, 1, 1 );
context3D.setVertexBufferAt(0, vertexbuffer, 0, Context3DVertexBufferFormat.FLOAT_3);
context3D.setVertexBufferAt(1, vertexbuffer, 3, Context3DVertexBufferFormat.FLOAT_2);
context3D.setTextureAt( 0, texture );
context3D.setProgram( program );
var m:Matrix3D = new Matrix3D();
m.appendRotation(getTimer()/50, Vector3D.Z_AXIS);
context3D.setProgramConstantsFromMatrix(Co
ntext3DProgramType.VERTEX, 0, m, true);
context3D.drawTriangles( indexBuffer);
context3D.present();
좀 더 low한 Stage3D API를 사용하여 구현하려면 이렇게 무슨 소리인지도 모를 긴 코드를 다 짜 주어야 한다.
- Very Low Level