아뇨 , 적어도 아닐 것입니다.
이것은 바퀴가 게임 개발을 재창조하는 매우 빈번한 사례이며, 여전히 인기있는 실수입니다.
이 질문을한다면, 다른 사람들의 영향을받을 가능성이 매우 높으므로, 에픽 게임즈가 언리얼 엔진으로 무엇을했는지 살펴보십시오 :
- UE3는 커스텀, 이상하고 최적화되지 않은 디버그하기 어려운 UnrealScript를 가지고있었습니다.
- 소문이 사실이라면 핫 리로드 가능한 C ++ DLL을 선호하여 UE4에서 지원 이 제거됩니다 .
에픽보다 더 잘할 수 있다고 생각하십니까?
프로그램 언어를 만드는 것은 게임 엔지니어가 아닌 프로그래밍 언어 제작자에게 속합니다 .
언어가 완전히 성숙하고 그에 수반되는 도구 세트 (컴파일러, 링커, 인터프리터, 디버거 등)를 사용하려면 몇 년이 걸립니다. 요즘에는 사용 가능한 솔루션이 많이 있으므로 최소한 게임을 만드는 것이 목표가 아니더라도 처음부터 새로운 것을 시작해야 할 실질적인 이유는 없습니다. 기간.
당신의 부수적 인 질문에 대답하기 위해, 아닙니다. 바로 이런 이유로 나는 필자의 스크립트 언어를 구현 한 적이 없습니다. 그러나 나는 반 구운 빵으로 많은 고통을 겪었습니다. 그것들은 매우 좁은 기능 세트를 염두에두고 만들어 졌기 때문에 항상 당신을 미치게 만드는이 작은 미친 짓을했습니다. 종종 게임을 만드는 대신 언어의 한계를 극복하기 위해 많은 시간을 소비하는 경우가 종종 있습니다.
언어를 만들고자하는 이유가 프로그래밍을 잘 모르는 사람들이 사용하기위한 것이거나 도메인 고유의 것을 원하기 때문에 언어를 필요로한다고 생각되는 경우 이러한 언어 도 알려 드리겠습니다 나쁜 이유. 함수를 사용하여 매우 높은 수준의 API를 do_what_they_say_and_say_what_they_do()
작성하고 기본 사용법을 노출하는 매우 간단한 상용구 코드를 작성할 수 있습니다. 기술이 아닌 사용자는 약간의 프로그래밍을 배우게되어 기쁘고 구현이 잘되지 않는 언어에 의해 제한받지 않게되어 기쁩니다.
그래서 이것이 조금 갑작 스럽거나 거칠게 들릴 수 있으므로, 스크립트 언어가 어떻게 만들어 지는지 배우고 싶다면 말이 될만한 한 가지 사례 가 있다고 말할 것입니다 . 그러나 제발, 제발, 그렇게한다면, 다른 사람들이 그것을 사용하도록 강요하지 마십시오.
편집하다
방금 연결 한 Cave Story 명령 목록을 보았습니다. 아야:
<ECJx:y [EC?] Jump @ Jump to event Y if any npc with ID X is present
Cave Story의 개발자에게 무례 함을 보여주고 싶지 않지만 제어 할 수없는 사용자 지정 스크립팅 언어로 변형 된 간단한 명령 목록의 완벽한 예입니다. 이것은 여전히 단일 개발자 나 아주 작은 팀에서 사용할 수 있지만이 단계에서는 다음과 같이 할 수있는 적절한 Turing-complete 및 잘 시도 된 언어 (예 : Lua)로 전환하는 것이 좋습니다.
if (npc.id == x) then
jump_to_event(y)
end
예를 들어 더 복잡한 조건이 필요할 때 훨씬 쉽게 작업 할 수 있습니다.
if (npc.id == x) or (npc.type == "enemy") then
jump_to_event(y)
end