루아, 루비, 파이썬, 자바스크립트.. 고민됩니다!!

opty2001의 이미지

안녕하세요. 저는 게임개발을 희망하는 학생(군인)입니다. 이래저래해서 최근엔 게임 에디터를 만들려고 합니다.
에디터라 함은 유니티, 언리얼처럼 '끌어다 놓기 + 스크립트'에 실시간 게임(결과물) 실행이 되는것이었습니다. 물론 초보 수준이라 2D게임.. 던파 비슷한게 목표였습니다.
하여 C++에 openGL에 스크립트 언어(루아)로 승부를 보려 했지만 시작하기 전에 걱정되는 것이 있어서 질문을 올려봅니다.

- 지금 저의 상황 -

1. 왠지 스크립트에 의한 실시간 실행이 돼야 할 것 같습니다.

2. 왠지 덕 타이핑이 되는 스크립트를 써야 에디터를 만들 수 있을 것 같습니다.
(↓사용해야 될 것 같은 구조의 예, 자바스크립트의 경우)

function EventList(){
    this.list = [];
};
EventList.prototype.circuit = function(e) {
    for(var i = 0; i < this.list.length; i++) { //list 전체
        this.list[i].func(e); //값 주면서 실행
    }
};
EventList.prototype.Add = (추가..)
EventList.prototype.Remove = (제거..)
var mainEvents = new EventList();
var drawEvents = new EventList();
window.onload = function() {
    ~~canvas어쩌구
    ~~context저쩌구
    mainEvents.Add({
        tag : "main draw event",
        priority : 0,
        func : function(e) {
            drawEvents.circuit(context);
        }
    });
    setInterval(mainloop, 1/60);
};
function mainloop() {
    ~~getTime어쩌구저쩌구
    mainEvents.circuit(timeElapsed);
};
window.onkeydown = function(e) {
    if (e.keyCode != 88) return;
    var time = 10;
    var drawobj = {
        priority : 0,
        func : function(e) {
            ~~그림그리기..
        }
    };
    var test1 = {
        tag : "time out object",
        priority : 0,
        func : function(e) {
            time -= e;
            if (time <= 0) {
                mainEvents.Remove(this);
                drawEvents.Remove(drawobj);
            }
        }
    };
    mainEvents.Add(test1);
    drawEvents.Add(drawobj);
};

(덕 타이핑 흉내내기를 C++에서 stl::map으로 시도해보긴 했지만 void 포인터 -> 함수 포인터 변환이 안된다고 해서 막혔습니다..)

- 궁금한 부분 -

1. 그런데 스크립트는 컴파일하는게 아니니까 유저가 마음대로 수정할 수 있을 것 같습니다. (보안 문제)
UI 설정같은 작은 분야가 아닌 게임 내부 프로그래밍에 스크립트 활용은 불가능할까요?

2. 빠르다길래 막 자신감이 넘쳤는데 조금 더 찾아보니까 느리다는 것 같습니다. (속도 문제)
특히 루아는 C++에서 핵심을 다 만들어놓고 큰 덩어리의 호출 타이밍만 잡아줘야 된다는 말이 있었습니다..
정말 루아는 핵심 언어로 적합하지 않은 언어인가요?
(Perl, Python, Ruby, PHP, C, C++, Lua, tcl, javascript, Java 성능비교)
http://aero2blog.blogspot.kr/2011/12/perl-python-ruby-php-c-c-lua-tcl.html

3. 그래서 pypy같은걸 쓰면 빠르다는 파이썬을 써보려고 찾아봤지만 파이썬은 무게가 많이 나간다고 합니다. 스크립트에 비중을 두고 개발한다면 파이썬을 써도 상관없을까요?

저희 부대에 프로그램을 아는 사람이 없어 주변에 물어볼 곳도 없고 인터넷 검색으로는 이 말이 맞는듯하기도 하고 저 말이 맞는듯하기도 해서 정말 헷갈립니다.. 도움을 주신다면 정말 감사드리겠습니다......

- 3줄요약 -

1. 게임 내부 프로그래밍에 스크립트 활용은 불가능할까요?

2. 루아가 그렇게 느린가요? 핵심 언어로 적합하지 않을까요?

3. 루아가 안된다면 파이썬이 괜찮을듯한데 메인으로 사용하는 파이썬은 게임 개발에 어떨까요?

Anti-Lock의 이미지

1. 루아도 컴파일해서 루아vm에서 돌아가는 코드를 만들수 있지 않나요? 물론 그것만으로 안전하다고 할수는 없습니다.
많은 경우에서 이런 스크립트는 암호화해서 파일로 저장한다고 하더군요. 사용자의 수정을 방지하기 위해서요.
2. 루아가 느린가? 질문글의 벤치마크는 문자열 처리를 잘한다는 펄에 관련한 블로그라서
펄에 우호적인것 같군요. 게다가 2011년의 벤치마크니 그 결과는 잊어도 좋을것 같습니다.
질문자님이 문자열 처리를 위해 스크립드를 사용하시려는 것은 아니지 않습니까?
다른 벤치마크를 찾아보세요.
3. 잘 모르겠습니다. 비교를 하기엔 제 경험이 부족합니다.

opty2001의 이미지

답변 감사합니다. 더 찾아보겠습니다..

세벌의 이미지

다 해 보셔요.