메뉴 건너뛰기

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

1. 시스템메모리와 비디오메모리의 차이는 무엇입니까?

시스템 메모리는 말 그대로 컴퓨터에 달린 RAM이고,
비디오 메모리는 비디오카드에 있는 RAM입니다.
이론적으론 비디오 메모리가 용량이 작은 대신 속도가 빠르긴 한데...

시스템 메모리에 부른 것을 비디오 메모리에 찍거나,
비디오 메모리에 부른 것을 시스템 메모리에 찍으면
속도가 엄청나게 저하되기 때문에
그냥 용량 큰 시스템 메모리를 쓰고 있습니다. 제 경우에는...

휴웍 경우에는 비디오 메모리 쪽이 훨씬 빠르고
휴웍 자체 그림양이 많지 않아 비디오 메모리를 썼지만,
문라이브는 시스템 메모리를 써도 찍는 속도가 빨라서
별 의미가 없습니다...

일단 중요한 것은 하나로 통일해서 하나만 쓰는 게 좋다는 겁니다.
게임 만들면 반드시 백버퍼가 필요하고(화면 출력 전에 미리그리는 곳),
백버퍼와 불러온 그림들의 메모리 위치가 틀리면 느려지니까요.


2. 흥크립트는 txt파일을 한줄 읽고 처리하고,
또 한줄읽고 처리하나요?
아니면 전부 다 읽고 몇줄씩 한꺼번에 처리하나요?

한줄씩 처리합니다.


3. 한줄읽고 한줄또 읽는 방식이라면 비베와 비슷한것?
그렇다면 그에 따른 속도 저하도 감수하나요?

사실 읽는 것 자체만으론 속도가 그다지 저하되지 않습니다.
게임에서 중요한 것은 매번 60프레임씩 찍어줘야 된다는 거죠.
(특히 문라이브 게임은 초당 100프레임입니다.)
읽는 것은 단발적인 처리로 이런 곳에서는 속도를 조금 소비해도 괜찮습니다.
읽은 후는 흥크립트에서 바로 처리할 수 있는 수치로 변하므로,
반복 처리에는 큰 시간이 들지 않습니다.

단, 소리재생, 좌우변환, 그림숨김 등과 같이
읽은 후 1번만 처리되는 명령문만 계속 된다면
속도가 현저히 저하될 겁니다만...
저렇게 게임을 만들 일은 거의 없겠죠.


4. 한줄읽고 또 읽는 방식이라면,
dlg파일(txt가 암호화된 파일)을 읽을 때
한줄 읽고->암호해석?하고->처리하고
->한줄 또 읽고->암호해석하고->처리하고..
하는 식으로 하는건가요?
그게 아니라면 어떤 식으로?
또 그에 따른 속도 저하도 감수하나요?

dlg를 읽으때는 로드시에 텍스토로 변환해서 메모리로 올립니다.
그러므로 처음 로드에 암호해독 시간이 조금(그래봤자 1초도 안 되는) 걸릴 뿐
txt와 똑같은 속도로 동작합니다.

아아, 그러고보니 혹시 헷갈릴 수 있어 말씀드리자면
txt경우에도 일단 내용은 모두 읽어서 메모리에 올려 둡니다.
왜냐면 파일액세스는 속도가 엄청 느리기 때문이죠.
한줄 씩 처리한다는 것은 그 읽은 내용에서 하나씩 처리한다는 겁니다.

어차피 스크립트가 아무리 길어도 그림 파일 하나만 못하므로
전부 메모리에 올려도 무리는 없습니다.
* 똥똥배님에 의해서 게시물 이동되었습니다 (2008-03-11 14:00)
조회 수 :
1682
등록일 :
2008.01.09
18:37:07 (*.239.)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=2481

장펭돌

2008.03.17
04:37:04
(*.49.200.231)
존내 상세한 답변
List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 날짜 최근 수정일
25 lua와 C의 연동에서 상수(define이나 enum) 값처리 똥똥배 3449   2011-05-25 2011-05-25 23:34
이 문제의 해결에 4가지 방법이 나왔다. 물론 환경이나 상황에 따라 더 많은 해결방법이 나올 수 있고, 어떤 것이 답인지는 그때 그때 마다 다른다. 일단 상황부터 정리. 스프라이터를 처리하는 툴에서는 스프라이터 애니메이션을 숫자가 아닌 특정 코멘트를 ...  
24 문D라이브로 더블드래곤을 만들자(7) file 똥똥배 3480   2008-04-27 2008-04-28 04:22
 
23 C++ 질문 2 [3] A.미스릴 3565   2008-12-22 2008-12-23 18:47
바이너리(2진수) 저장 아시죠? 그런데 포인터 변수를 만들어서 동적 할당을 했을때 그 포인터 변수도 포함되어 저장되면 정상적으로 저장이 안 되는 건가요? 왜 그러냐면 제가 저장 방식을 모든 데이터를 하나의 클래스 속에 넣어서 그 1개의 클래스 인스턴스...  
22 문D라이브로 더블드래곤을 만들자(2) [6] file 똥똥배 3611   2008-04-18 2013-11-23 08:43
 
21 COgg 질문 [3] A.미스릴 3710   2008-06-29 2013-11-23 08:43
밑에 대슬님 질문 보니까 멤버변수를 등록할때 동적할당을 하는게 씌여 있는데 그냥 Cogg m_ogg_oggplayer; 이런식으로 그냥 일반변수로 등록을 하고 사용할순 없나요? 동적할당을 굳이 써야하는지 ㅡ.ㅡ;; (개인적으로 4바이트 추가와 잘못되면 메모리 누수가...  
20 문D라이브 2008년 5월 19일 버전 [2] 혼돈 3747   2008-06-02 2015-12-09 08:06
휴가루 웍휴2를 개발하면서 조금씩 수정 중이지만, 미스릴님의 요청이 있어서 올립니다. 대화창에 관련되서 완성되었다는 것과 흥크립트 부분이 많이 변했다는 것이 주요 변경점입니다. 대화창의 경우 기본은 대화창이 없는 상태로 MakeDlgBox를 사용하면 크기...  
19 TinyXML의 한계 [2] 똥똥배 3757   2011-12-11 2013-11-23 06:30
내가 TinyXML을 쓴 것은 이름 그대로 tiny하기 때문이었다. 쓸데없는 기능없이 담백하게 읽고 쓰고 땡. 하지만 써 본 사람들은 잘 알겠지만 유니코드를 지원하지 않는다. 일단 유니코드를 지원하지 않더라도 유니코드(UTF-8)로 된 문서를 읽을 수는 있다. 한글...  
18 C++ 질문 [1] A.미스릴 3818   2008-12-21 2008-12-21 19:24
str_list1[loop_v]가 존재하면 true, 안 존재하면 false 이런 감별이 필요한데 CString str_list1[] = {"","","웹디자인","3D그래픽스"}; int loop_v = 0; while(str_list1[loop_v]) { this->m_ctrl_combobox1.AddString(str_list1[loop_v]); this->m_ctrl_lis...  
17 흥크립트에 궁금한점 [4] 상상악수 3835   2008-08-21 2008-08-27 04:13
tile1에서 앞쪽에 18칸말고는 사용할수없는 칸인가요? 그림을 그리면 맵에디터에서는 잘나오는데 게임에서는 까만색에 움직일수없는..  
16 문D 질문 [5] A.미스릴 3847   2008-05-26 2008-06-12 18:55
1.글자, 문장을 화면상에 출력하는 방법 2.숫자를 스트링으로 형변환할떄 아스키 코드가 아니라 숫자가 옮겨가게 하는법 3.사각형, 원 등을 출력하는 방법(Rectangle 함수같은거 없나여)  
15 srand에 관해서 [4] A.미스릴 3868   2008-07-15 2008-07-18 05:49
제가 알고 있는 난수의 사용방법은 srand( (unsigned int) time( NULL ) ); 로 srand를 지정하고 rand()를 해서 랜덤난수를 가져오는 것인데 함수값이 어쩌고 하는 원리더군요 그런데 원리를 생각해 보니 이게 정말 난수의 역할을 해낼수 있을까요?ㅡ,.ㅡ; 애...  
14 클레스들을 담은 헤더들의 혼란 [4] A.미스릴 3892   2008-06-21 2013-11-23 08:43
xxx.h파일 //xxx.h class xxx { ... 어떤 멤버함수 (yyy 뭐시기); ... } yyy.h파일 //yyy.h class yyy { ... 어떤 멤버함수 (xxx 뭐시기); ... } 이 두 클래스의 헤더 파일이 있으면 #include "xxx.h"와 #include "yyy.h"를 어떤 순서로 배치해야 할지 혼란스...  
13 #define에 대해 [1] A.미스릴 4061   2008-05-19 2008-05-19 18:57
#define을 너무 많이 쓰면 코드에 불안정화가 온다는데 사실인가여? 그러면 불안정화를 막으러면 어떻게 해야하나여 아니면 enum이나 const를 써야 하나...  
12 문D라이브로 더블드래곤을 만들자(10) file 똥똥배 4065   2008-05-17 2008-05-17 03:07
 
11 문D라이브도 더블버퍼링이 필요한가요? [3] A.미스릴 4223   2008-06-28 2008-06-29 07:06
보니까 backbuffer에 그림을 붙이던데 backbuffer가 배경 버퍼니까 바로 화면에 출력되는건가요? 그런데 그걸 직접 쓰면 MFC의 DC처럼 깜박임과 속도저하가 오는건 아니죠?ㅡ,.ㅡ; 추가로 LoadPicture로 불러온 그림을 다시 안불러온것처럼 되돌리는건 없나요?  
10 씨언어 질문 (내일 시험 ㄷㄷ) [1] 쿠로쇼우 4332   2008-06-17 2008-06-17 22:10
1 121 12321 1234321 123454321 부탁 ㄷㄷ  
9 문D라이브로 더블드래곤을 만들자(1) [2] file 똥똥배 4479   2008-04-16 2008-04-17 08:29
 
8 문D라이브로 더블드래곤을 만들자(11) file 똥똥배 4647   2008-05-17 2008-05-17 20:24
 
7 임의의 점이 다각형 내부에 있는지 검사하는 함수 똥똥배 5358   2008-04-14 2008-04-14 02:21
수학도 기하학도 허접한 제가 짠 거라서 허접하지만 넓은 아량으로 봐 주십시오. struct Point { double x; double y; }; bool LineIn(Point p1, Point p2, Point p3) { double top, bottom; //위 아래 범위 결정 if(p1.y < p2.y) { top = p1.y; bottom = p2.y...  
6 문D라이브로 만드는 더블드래곤.. 질문입니다 [4] 하와이안 5550   2009-01-15 2009-01-21 00:16
예전 다른 프로그래밍 언어는 조금 써본 적 있는데 C++은 거의 없어서 헤매고 있습니다. 문D라이브 더블드래곤 강좌에 나온 데로 VC++ 2005 express edition으로 깔고 링크되어 있는 directx sdk 깔고 VC디렉토리에 SDK 링크도 추가해서 moondlib 실행하고 빌...