기본적으로 작업하는 마인크래프트 포지의 구조는 아래와 같이 되어 있습니다.
- Vanilla Minecraft (기본적인 마인크래프트 소스 입니다. 즉 원본 소스를 의미합니다)
- Minecraft Forge (포지에서 추가한 여러 소스들입니다. 대표적으로 Forge Hooks, events, 렌더링 등 여러 부분에 걸쳐 추가되어 있습니다.)
- Forge Mod Loader (포지 모드로더에서 추가한 여러 소스들입니다. 모드 로딩, 모드간의 호환성 담당, ASM, 레지스트리, 프록시 등이 추가되어 있습니다.)
즉 흔히 아시는 forge-버전-universal.jar << 이 파일에 저 세 소스가 몽땅 들어가 있다고 보시면됩니다.
어떤 소스가 바닐라 소스인지 혹은 포지 소스인지 아니면 FML 소스인지 확인하는 방법은 간단합니다.
해당 클래스/인터페이스 의 패키지명을 확인하시면 됩니다.
Vanilla Minecraft : net.minecraft.xxx
Minecraft Forge : net.minecraftforge.xxx
1.8이상
FML : net.minecraftforge.fml.xxx
1.8 미만
FML : cpw.mods.fml.xxx
아래는 대략적인 마인크래프트 구조입니다. (우선적으로 생각나는거만 넣었습니다. 빠진 부분이 있을 수 있습니다.)
즉, Minecraft 클라이언트와 서버간에 패킷(Packet) 을 이용해 Netty 네트워크 엔진으로 통신을 하며,
클라이언트에서 LWJGL 을 이용해 렌더링 및 사운드 제어를 하고,
Log4j, Guava 등과 같은 여러 유틸리티 라이브러리를 사용하며
그 위에 또는 소스 중간중간에 Minecraft Forge 소스들이 추가되어 있으며
FML은 주로 모드들의 편의 사항(?) 을 담당하고 있다고 볼 수 있습니다.
(물론 이렇게 다양한 소스들이 있지만 우리가 실제로 다뤄야 할 부분은 상당히 적습니다 걱정마세요 :)
이 대략적인 구조를 보시고 어느정도 감을 잡으셨길 바라면서 이번 글을 마치겠습니다 :)
(질문은 댓글로 남겨주세요)
'Minecraft Forge > 팁' 카테고리의 다른 글
MCP? FML? Forge? Bukkit? (0) | 2016.03.17 |
---|
댓글