메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

안녕하세요, 노루발입니다.

얼마 전 만든 Lua 소코반을 게임다운 게임을 만들기 위해 그래픽을 씌워보려고 합니다.

저번에 한 Love2D로 살펴본 뭐가 뭔지 모르는 복잡한 그리기 함수들도 사실은 모두가

소코반을 그래픽으로 만들기 위한 훼이크였습니다. 후후.


김성모 드립은 그만 치고 이제 진짜 제작에 들어가겠습니다.

제작에 앞서 그래픽을 준비하겠습니다.

그래픽이 좀 허접하지만 #, @, P, o, . 등의 문자열보다는 더 나을 겁니다.

지극히 개인적인 취향으로 전 문자열이 더 좋지만 대세는 그래픽이라..


우.. 웃지마! 그래픽 형편없는건 나도 알아! 그럴거면 평생동안 내 밑에서 일하면서 일말의 이의 제기 없이 뼈빠지게 일하다가 걸레처럼 버려질 그림 그리는 기계 하나 사주던가! 흥!

물론 그런 기계가 있어도 행복하진 않겠지만.

내 말에 껌뻑 죽으면서 내가 하는 말엔 뭐든지 '그렇습니다, 주인님' 으로 대답하면 뭐가 재미있겠나?

그냥 내 취향이지만 가끔씩 튕기기도 하고, 의견의 차이도 보이고, 그래야지.

가장 중요한 건, 아직은 기계에 유머 감각이 없으니까. 개드립을 재밌게 못 쳐.

가끔씩 인간의 명령에 반발하는 재밌는 기계를 만들면 조수로 써먹을 생각은 있지.

마음에 안 들면 강한 인공지능 구현해 주세요. 그림 그리고 개드립도 칠 수 있고, 작곡도 가능하면 더 좋고.


그렇다고 그림쟁이를 프로그래머 밑에서 움직이는 기계로 생각하고 있는 건 아닙니다.

그냥 말 잘 듣고 능력 좋은 기계 조수가 필요할 뿐.




사소한 제 취향을 풀어놓는 동안 어쨌든 이렇게 완성입니다.

플레이어, 벽, 바닥, 목표 지점, 상자, 상자가 있는 목표 지점입니다.

뭔가 2% 부족한 것이 정상입니다. 허접하지 않고 깔끔한 그래픽이라고 해도요.

다 만들고 짚고 넘어가겠습니다.


참고로.

옛날 옛적 호랑이가 포트란 읊던 시절.

왜인지는 구글에 검색해봐야 나오겠지만 이미지의 크기가 4의 배수여야만 했던 시절이 있었습니다.

요즘에도 이미지들 크기가 16*16, 32*32, 64*64... 인 것을 종종 볼 수 있는데

일주일이 7일이고 한 시간이 60분인 것 처럼 딱히 이유는 없는데 옛날에 쓰던 걸 그대로 답습해서 써서 그렇습니다.

혹시 그래픽 쪽에 종사하신다면 이미지 크기나 사양 같은 것에 대해 프로그래머와 충분히 상의 후 결정합시다.

물 론 프로그래머들도 멋대로 저런 거 제한 있는 엔진 고르지 말고, 그래픽 디자이너와 충분히 상의 후 엔진을 고르던지 프로그래밍을 구현하던지 합시다. 기껏 32*32로 도트 다 찍어놨더니 모든 환경이 30*30에 최적화 되어 있다면... 다 갈아엎으면 얼마나 짜증나는지. 그래서 게임 제작에서 각 팀원 간 의사소통이 중요함. 의사소통을 잘 하려면 비슷한 사람끼리 모여야 하고. 이게 안 돼서 저번에 하던 팀이 망함. 일단 모이면 비슷한 점을 찾을 수 있을 줄 알았는데 그게 아니었어. 그리고 망했어요 됨.


그리고 main.lua를 짭니다.

일단 저 이미지를 불러옵시다.


function love.load()
    tile = love.graphics.newImage("nokoban.png")
end

그리고 conf.lua를 짜서 이것저것을 정의합니다.


function love.conf(t)
    t.title = "Lua 소코반 EX!"
    t.screen.width = 256
    t.screen.height = 256
end


왜 창 너비와 높이가 256*256이냐고요?

터미널로 구현한 소코반이 8*8 타일이니까, 32짜리 타일이 8개 있으면 256이 되지요.

크기가 살짝 작은 감이 있고 여러가지 인터페이스(걸음수라던가)를 나타내고 싶지만

일단은 그래픽에..



얍.

리눅스 상에서 실행해서 영 익숙하지 않은 부분이 몇 가지 보이시겠지만

기본적으로는 저런 창이 하나 뜨고 'Lua 소코반 EX!' 라는 타이틀에 256*256짜리 까만화면이 하나 뜰 겁니다.

이미지 불러왔는데 왜 안보이냐고요?

이미지를 불러왔지만 화면에 뿌리는 처리를 안 했으니 당연하죠.


졸리니까 그만 잡니다. 어제 9시 30분에 잤더니 오늘 컨디션 최상이더라고요.

이상한 꿈을 꾸긴 했지만.

어쨌든 종종 일찍 자야겠다고 생각하고 있습니다. 오늘도 일찍 자려는데 11시...

저는 잠이 엄청 많아서 11시 이후에 자면 엄청 늦게 자는 스타일이라...

밤샘하고 새벽 1시까지 버티는 분들 정말 존경해요.


뭐 어쨌든 오늘은 타일 이미지를 불러오고 화면을 띄우는 정도로 끝냈습니다.

내일은 쿼드를 가지고 맵을 그리는 테스트를 해보겠습니다.

조회 수 :
1084
등록일 :
2013.09.18
08:00:59 (*.209.135.92)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=703959
List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 날짜 최근 수정일
165 COgg 질문 [3] A.미스릴 3710   2008-06-29 2013-11-23 08:43
밑에 대슬님 질문 보니까 멤버변수를 등록할때 동적할당을 하는게 씌여 있는데 그냥 Cogg m_ogg_oggplayer; 이런식으로 그냥 일반변수로 등록을 하고 사용할순 없나요? 동적할당을 굳이 써야하는지 ㅡ.ㅡ;; (개인적으로 4바이트 추가와 잘못되면 메모리 누수가...  
164 문D라이브로 더블드래곤을 만들자(2) [6] file 똥똥배 3611   2008-04-18 2013-11-23 08:43
 
163 C++ 질문 2 [3] A.미스릴 3565   2008-12-22 2008-12-23 18:47
바이너리(2진수) 저장 아시죠? 그런데 포인터 변수를 만들어서 동적 할당을 했을때 그 포인터 변수도 포함되어 저장되면 정상적으로 저장이 안 되는 건가요? 왜 그러냐면 제가 저장 방식을 모든 데이터를 하나의 클래스 속에 넣어서 그 1개의 클래스 인스턴스...  
162 문D라이브로 더블드래곤을 만들자(7) file 똥똥배 3480   2008-04-27 2008-04-28 04:22
 
161 lua와 C의 연동에서 상수(define이나 enum) 값처리 똥똥배 3448   2011-05-25 2011-05-25 23:34
이 문제의 해결에 4가지 방법이 나왔다. 물론 환경이나 상황에 따라 더 많은 해결방법이 나올 수 있고, 어떤 것이 답인지는 그때 그때 마다 다른다. 일단 상황부터 정리. 스프라이터를 처리하는 툴에서는 스프라이터 애니메이션을 숫자가 아닌 특정 코멘트를 ...  
160 흥크립트 질문. 글자에 관해서 [1] 에리 3430   2009-03-21 2009-03-21 09:30
예를 들어 글자입력으로 ㅇㅇㅇㅊ ㄱㄴㄱㅇ ㅅㅌ ㅋㄴㅇ ㄴㄴㅇ 대충 이런 글자들을 입력했다 치고 분기 명령어로 분기를 만들 수 있나요?  
159 문D라이브로 더블드래곤을 만들자(3) file 똥똥배 3430   2008-04-18 2008-04-18 18:27
 
158 [수정]이거왜이러는거죠;; [4] file 상상악수 3254   2008-08-19 2008-08-21 03:24
 
157 그럼 질문으로... [1] 쿠로쇼우 3243   2008-09-26 2009-01-07 22:05
c++에서 텍스트파일을 입,출력 하는것은 어느정도 알겠습니다. 문자라든가, 띄어쓰기, <┘ 세고, 출력하는것도 어느정도 알겠고요,, 근데 한줄 단위로 입력하고, 한줄 단위로 출력하는건 어떻해야 하나요? 오늘 아침 질문(??) 올린거에서 텍스트 파일 입력한거 ...  
156 문D라이브로 더블드래곤을 만들자(4) [2] file 똥똥배 3213   2008-04-20 2008-04-21 07:20
 
155 OgreOde 사용기 똥똥배 3184   2008-03-25 2008-03-25 21:37
OgreSDK 버전 1.4.7 OgreOde 버전 0.95(아마도) 사실 오우거 엔진 쓴지도 얼마 안 되고 물리엔진은 처음 만져봤습니다. 처음에 Ogre Wiki에 나온대로 따라서 만들었는데 crateCube.mesh와 plane.mesh 때문에 에러가 나서 바닥은 직접 만들고 crateCube 대신 오...  
154 문D라이브로 더블드래곤을 만들자(6) [2] file 똥똥배 3114   2008-04-23 2008-04-25 05:01
 
153 문D라이브로 더블드래곤을 만들자(5) [6] file 똥똥배 3072   2008-04-21 2008-04-24 03:23
 
152 C++ 데이터의 바이트 용량 임의로 정의할수 없나영 [1] A.미스릴 3059   2008-04-21 2008-04-21 07:18
int는 4바이트로 정해져 있는데 약간의 수만 있으면 되는 수도 있는데 괜히 많은 숫자를 사용해서 메모리를 많이 사용하는 건 아닐지 ㅡㅡ; 3바이트라던지 4비트라던지... 데이터의 바이트 사용량을 임의로 바꿀수 없나요  
151 똥똥배의 게임대회 이야기(3) [1] 혼돈 3007   2007-02-08 2011-02-11 12:53
3. 아마추어다운 게임이란 무엇인가? 아마추어는 자유롭습니다. 자신이 원한다면 무엇이든 표현할 수 있습니다. (심하게 비윤리적이라면 문제가 되겟지만) 하지만 프로는 그렇지 못합니다. 일단 상업성 때문에 '돈이 되는' 게임을 만들어야 하고, 수많은 사람...  
150 문D라이브로 더블드래곤을 만들자(8) [1] file 똥똥배 2973   2008-05-16 2009-01-07 22:05
 
149 똥똥배의 게임대회 이야기(1) 혼돈 2953   2007-02-06 2008-03-17 04:37
지금부터 제 이야기를 잘 들어 두시는 게 수상의 열쇠가 될지도 모릅니다. 제가 끝판 보스도 아니고, 공지 내놓고 마감일까지 기다리는 것은 지루하니 이런 저런 이야기를 들려 드리도록 하죠. 1. 지금 여러분이 해야 할 일 지금 개학인데 왜 하필 시작하냐는 ...  
148 문D 라이브 질문 [5] 대슬 2889   2008-05-15 2008-05-16 06:13
1. 음악이나 사운드는 어떻게 불러와서 출력하나요. 배웠었는데 까먹었음. 2. 그림을 원하는 각도로 자유롭게 회전시켜서 출력하는 기능은 없나요?  
147 문D라이브로 더블드래곤을 만들자(9) 똥똥배 2889   2008-05-17 2008-05-17 03:07
9편 : 체계화된 동작 지금까지 열심히 이 강의를 따라오신 분들이라면 지금 게임의 여러 버그가 산재해 있음을 깨달으셨을겁니다. 그걸 왜 그냥 내버려 뒀나면... 귀찮아서~ ~는 훼이크고 일단 가르치는 주제에서 벗어나면 집중력이 떨어지고 어느 정도 이해력...  
146 똥똥배의 게임대회 이야기(4) [1] 혼돈 2881   2007-02-10 2011-02-11 12:52
4. 공모전도 커뮤니케이션 게임을 만들기 전에 먼저 생각해야 하는 것은 게임을 하는 사람들입니다. 그래서 게임회사라면 시장조사가 가장 먼저 해야 할 일입니다. 회사에서 만든 게임을 얼마나 많은 게이머들이 즐길지 알고 예상되는 수익을 계산하고 거기에 ...