핫 업데이트 및 ToLua 프레임워크에 대한 자세한 설명

이 첫 번째 기술 블로그는 주로 내 자신의 기억과 이해를 위한 것이며, 이를 보는 친구들의 몇 가지 질문에 답할 수도 있기를 바랍니다.
플래그를 설정하고 새로운 지식 포인트를 배우거나 이해할 때마다 향후 검토 및 개선을 촉진하고 기술을 공유하는 방법으로 가능한 한 블로그를 작성하십시오.
블로거는 아직 초보입니다~~

구분선

먼저 핫업데이트(Hot Update)가 무엇인지 간략하게 설명드리겠습니다.

핫 업데이트의 개념은 게임이나 소프트웨어를 업데이트해야 할 때 새 클라이언트를 다시 다운로드할 필요 없이, 대신 다운로드한 리소스와 코드 파일이 실행되는 동안 내부적으로 업데이트된다는 것입니다.

핫 업데이트의 이점은 분명합니다. 사용자가 게임 소프트웨어를 업데이트하는 데 큰 도움이 되며, 개발자가 게임 버그를 빠르게 수정하고 설치 패키지 크기를 줄일 수 있으며, 필요한 리소스를 런타임에 동적으로 로드할 수 있습니다.

일반적으로 사용되는 핫 업데이트 프레임워크인 Tolua는 기본적으로 Unity에서 Lua를 실행할 수 있는 가상 머신을 제공하므로 Lua와 C#이 서로 호출하고 액세스할 수 있습니다.

먼저 간단한 질문으로 돌아가 보겠습니다. 왜 핫 업데이트에 Lua를 사용합니까? 우선 Lua는 인터프리터 언어로서 미리 블록으로 컴파일할 필요가 없고 런타임에 해석되어 실행된다는 점은 핫 업데이트의 특성에 부합합니다. 성숙한 프로젝트 경험이 많습니다.

  • 기본 원리: 정적 바인딩을 통해 C#과 Lua 간의 상호 작용 실현
  • TODO 자세한 코드 구현 및 구체적인 내용은 추후 첨부하겠습니다.

핫 업데이트의 기본 프로세스

  1. 버전 번호를 비교합니다. 버전 번호가 다른 경우 다음 프로세스를 계속합니다(version.txt에 버전 번호 기록, 선택 사항).
  2. 리소스 서버에서 비교 파일을 다운로드합니다(files.txt는 디렉터리와 유사하게 모든 파일의 md5 코드를 기록합니다).
  3. 다운로드 목록을 결정하고, 최근 다운로드한 비교 파일을 로컬 이전 비교 파일과 비교하고, 누락되거나 다른 파일을 기록합니다. (이 단계를 수행하려면 files.txt의 md5 코드를 사용하세요)
  4. 다운로드 목록에 따라 필요한 리소스를 다운로드하세요. (일반적으로 Application.pertantDataPath에 위치)
  5. 압축 해제(파일이 압축된 경우 먼저 압축을 풀어야 함, 선택 사항)
  6. 다운로드가 성공한 후 로컬 비교 파일이 최신 비교 파일(업데이트 디렉터리)로 덮어쓰이는지 확인하세요.

핫 업데이트 규칙

리소스 패키징 방법: 업데이트가 필요한 코드와 리소스를 AssetBundle(AB 패키지)로 패키징하여 다운로드 및 로딩해야 하며, AB 패키지의 특성은 핫 업데이트에 적합합니다. (이유는 다음과 같습니다)

  • AB 패키지 저장 위치는 사용자 정의되며 핫 업데이트를 용이하게 하기 위해 읽기 및 쓰기 가능한 경로에 배치될 수 있습니다.
  • AB 패킷 사용자 정의 압축 방법에서는 압축 없음을 선택하거나 LZMA 및 LZ4와 같은 압축 방법을 선택하여 패킷 크기를 줄이고 더 빠른 네트워크 전송을 활성화할 수 있습니다.
  • 런타임 중 메모리 부담을 최소화하기 위해 리소스를 다양한 AB 패키지에 배포할 수 있으며 즉시 로드할 수 있으며 필요한 콘텐츠를 선택적으로 로드할 수 있습니다.
  • AB 패키지는 이후 단계에서 동적 업데이트를 지원하여 초기 설치 패키지의 크기를 크게 줄입니다. 비핵심 리소스는 AB 패키지 형태로 서버에 업로드되고 이후 실행 중에 동적으로 로드되어 사용자 경험을 향상시킵니다.

리소스 저장 경로: Application.pertantDataPath에서 업데이트해야 하는 코드 및 리소스의 우선 순위를 지정합니다. 다른 특수 디렉터리와 비교하여 이 디렉터리는 읽기 및 쓰기가 가능하고 런타임에 유효하며 콘텐츠 제한이 없으므로 핫 업데이트 개발에 더 적합합니다. .

참고글: https://blog.csdn.net/Q540670228/article/details/122713401

추천

출처blog.csdn.net/weixin_44276280/article/details/130364123