Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
eb8c946
Move to cmake
rtm516 Mar 6, 2026
9210a2c
Move sources to source_groups and ditch more old VS files
rtm516 Mar 7, 2026
01f87d7
Merge branch 'main' into feature/cmake-full
rtm516 Mar 7, 2026
a0c4e27
Add BuildVer.h generation
rtm516 Mar 8, 2026
4186618
Break out cmake source lists to platforms
rtm516 Mar 10, 2026
251d695
Don't copy swf files
rtm516 Mar 10, 2026
2353ed6
Merge branch 'main' into feature/cmake-full
rtm516 Mar 10, 2026
e6b43c5
Merge branch 'main' into feature/cmake-full
rtm516 Mar 10, 2026
16f4c85
Revert audio changes from merge
rtm516 Mar 10, 2026
25d0845
Add platform defines
rtm516 Mar 10, 2026
b286f33
Match MSBuild flags
rtm516 Mar 10, 2026
76bd513
Move BuildVer.h to common include and fix rebuild issue
rtm516 Mar 11, 2026
cca184d
Seperate projects properly
rtm516 Mar 11, 2026
cad2fe2
Exclude more files and make sure GameHDD exists
rtm516 Mar 11, 2026
c88cde6
Missing line
rtm516 Mar 11, 2026
24ab1fb
Remove remaining VS project files
rtm516 Mar 11, 2026
7badc29
Update readme and actions
rtm516 Mar 11, 2026
93d7ed2
Use incremental LTCG
rtm516 Mar 11, 2026
ac8710c
Update workflows
rtm516 Mar 11, 2026
031170c
Update build workflows and output folder
rtm516 Mar 11, 2026
85fc4f6
Disable vcpkg checks
rtm516 Mar 11, 2026
508fb98
Force MSVC
rtm516 Mar 11, 2026
7fd2dfa
Use precompiled headers
rtm516 Mar 11, 2026
1b705b1
Only use PCH for cpp
rtm516 Mar 12, 2026
c6916c9
Exclude compat_shims from PCH
rtm516 Mar 12, 2026
7ae87ad
Handle per-platform source includes
rtm516 Mar 12, 2026
e29b7b6
Copy only current platform media
rtm516 Mar 12, 2026
ff4e0f8
Define Iggy libs per platform
rtm516 Mar 12, 2026
51cbf16
Fix EnsureGameHDD check
rtm516 Mar 12, 2026
a00ae64
Only set WIN32_EXECUTABLE on Windows
rtm516 Mar 12, 2026
0b9a2ce
Correct Iggy libs path
rtm516 Mar 12, 2026
49b7d50
Remove include of terrain_MipmapLevel
rtm516 Mar 12, 2026
980e5b9
Correct path to xsb/xwb
rtm516 Mar 12, 2026
ad55c38
Implement copilot suggestions
rtm516 Mar 14, 2026
0f2a5b4
Add clang flags (untested)
rtm516 Mar 14, 2026
7dff5fb
Fix robocopy error checking
rtm516 Mar 14, 2026
1baa4fc
Update documentation
rtm516 Mar 14, 2026
de4cf39
Drop CMakePresets.json version as we dont use v6 features
rtm516 Mar 14, 2026
8c346e5
Always cleanup artifacts in nightly even if some builds fail
rtm516 Mar 14, 2026
fe9c56f
Re-work compiler target options
rtm516 Mar 14, 2026
5b78588
Merge branch 'main' into feature/cmake-full
rtm516 Mar 14, 2026
ab66dac
Move newer iggy dll into redist and cleanup
rtm516 Mar 14, 2026
9707062
Merge Minecraft.Server from branch 'main' into feature/cmake-full
rtm516 Mar 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 0 additions & 31 deletions .github/workflows/build.yml

This file was deleted.

32 changes: 0 additions & 32 deletions .github/workflows/debug-test.yml

This file was deleted.

99 changes: 99 additions & 0 deletions .github/workflows/nightly-server.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: Nightly Server Release

on:
workflow_dispatch:
push:
branches:
- 'main'
paths-ignore:
- '.gitignore'
- '*.md'
- '.github/**'
- '!.github/workflows/nightly-server.yml'

permissions:
contents: write

jobs:
build:
runs-on: windows-latest

strategy:
matrix:
platform: [Windows64]

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Set platform lowercase
run: echo "PLATFORM=$('${{ matrix.platform }}'.ToLower())" >> $env:GITHUB_ENV

- name: Setup MSVC
uses: ilammy/msvc-dev-cmd@v1

- name: Setup CMake
uses: lukka/get-cmake@latest

- name: Run CMake
uses: lukka/run-cmake@v10
env:
VCPKG_ROOT: "" # Disable vcpkg for CI builds
with:
configurePreset: ${{ env.PLATFORM }}
buildPreset: ${{ env.PLATFORM }}-release
buildPresetAdditionalArgs: "['--target', 'Minecraft.Server']"

- name: Zip Build
run: 7z a -r LCEServer${{ matrix.platform }}.zip ./build/${{ env.PLATFORM }}/Minecraft.Server/Release/* -x!*.ipdb -x!*.iobj

- name: Stage artifacts
run: |
New-Item -ItemType Directory -Force -Path staging
Copy-Item LCEServer${{ matrix.platform }}.zip staging/

- name: Stage exe and pdb
if: matrix.platform == 'Windows64'
run: |
Copy-Item ./build/${{ env.PLATFORM }}/Minecraft.Server/Release/Minecraft.Server.exe staging/

- name: Upload artifacts
uses: actions/upload-artifact@v6
with:
name: build-${{ matrix.platform }}
path: staging/*

release:
needs: build
runs-on: ubuntu-latest

steps:
- name: Download all artifacts
uses: actions/download-artifact@v7
with:
path: artifacts
merge-multiple: true

- name: Update release
uses: andelf/nightly-release@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: nightly-dedicated-server
name: Nightly Dedicated Server Release
body: |
Dedicated Server runtime for Windows64.

Download `LCEServerWindows64.zip` and extract it to a folder where you'd like to keep the server runtime.
files: |
artifacts/*

cleanup:
needs: [build, release]
if: always()
runs-on: ubuntu-latest
steps:
- name: Cleanup artifacts
uses: geekyeggo/delete-artifact@v5
with:
name: build-*
91 changes: 61 additions & 30 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
@@ -1,69 +1,100 @@
name: Nightly Releases
name: Nightly Release

on:
workflow_dispatch:
push:
branches:
- 'main'
- 'feature/dedicated-server'
paths-ignore:
- '.gitignore'
- '*.md'
- '.github/*.md'
- '.github/**'
- '!.github/workflows/nightly.yml'

permissions:
contents: write

jobs:
build:
name: Build Windows64
runs-on: windows-latest

strategy:
matrix:
platform: [Windows64]

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Setup msbuild
uses: microsoft/setup-msbuild@v2
- name: Set platform lowercase
run: echo "PLATFORM=$('${{ matrix.platform }}'.ToLower())" >> $env:GITHUB_ENV

- name: Build
run: MSBuild.exe MinecraftConsoles.sln /p:Configuration=Release /p:Platform="Windows64"
- name: Setup MSVC
uses: ilammy/msvc-dev-cmd@v1

- name: Setup CMake
uses: lukka/get-cmake@latest

- name: Run CMake
uses: lukka/run-cmake@v10
env:
VCPKG_ROOT: "" # Disable vcpkg for CI builds
with:
configurePreset: ${{ env.PLATFORM }}
buildPreset: ${{ env.PLATFORM }}-release
buildPresetAdditionalArgs: "['--target', 'Minecraft.Client']"

- name: Zip Build
run: 7z a -r LCEWindows64.zip ./x64/Release/*
run: 7z a -r LCE${{ matrix.platform }}.zip ./build/${{ env.PLATFORM }}/Minecraft.Client/Release/* -x!*.ipdb -x!*.iobj

- name: Stage artifacts
run: |
New-Item -ItemType Directory -Force -Path staging
Copy-Item LCE${{ matrix.platform }}.zip staging/

- name: Stage exe and pdb
if: matrix.platform == 'Windows64'
run: |
Copy-Item ./build/${{ env.PLATFORM }}/Minecraft.Client/Release/Minecraft.Client.exe staging/

- name: Upload artifacts
uses: actions/upload-artifact@v6
with:
name: build-${{ matrix.platform }}
path: staging/*

release:
needs: build
runs-on: ubuntu-latest

- name: Zip Dedicated Server Build
run: 7z a -r LCEServerWindows64.zip ./x64/Minecraft.Server/Release/*
steps:
- name: Download all artifacts
uses: actions/download-artifact@v7
with:
path: artifacts
merge-multiple: true

- name: Update Client release
- name: Update release
uses: andelf/nightly-release@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: nightly
name: Nightly Client Release
body: |
Requires at least Windows 7 and DirectX 11 compatible GPU to run. Compiled with MSVC v14.44.35207 in Release mode with Whole Program Optimization, as well as `/O2 /Ot /Oi /Ob3 /GF /fp:precise`.
Requires at least Windows 7 and DirectX 11 compatible GPU to run.

# 🚨 First time here? 🚨
If you've never downloaded the game before, you need to download `LCEWindows64.zip` and extract it to the folder where you'd like to keep the game. The other files are included in this `.zip` file!
files: |
LCEWindows64.zip
./x64/Release/Minecraft.Client.exe
./x64/Release/Minecraft.Client.pdb
artifacts/*

- name: Update Dedicated Server release
uses: andelf/nightly-release@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
cleanup:
needs: [build, release]
if: always()
runs-on: ubuntu-latest
steps:
- name: Cleanup artifacts
uses: geekyeggo/delete-artifact@v5
with:
tag_name: nightly-dedicated-server
name: Nightly Dedicated Server Release
body: |
Dedicated Server runtime for Windows64.

Download `LCEServerWindows64.zip` and extract it to a folder where you'd like to keep the server runtime.
files: |
LCEServerWindows64.zip
./x64/Minecraft.Server/Release/Minecraft.Server.exe
./x64/Minecraft.Server/Release/Minecraft.Server.pdb
name: build-*
32 changes: 32 additions & 0 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Pull Request Build

on:
workflow_dispatch:
pull_request:
types: [opened, reopened, synchronize]
paths-ignore:
- '.gitignore'
- '*.md'
- '.github/*.md'

jobs:
build:
runs-on: windows-latest

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Setup MSVC
uses: ilammy/msvc-dev-cmd@v1

- name: Setup CMake
uses: lukka/get-cmake@latest

- name: Run CMake
uses: lukka/run-cmake@v10
env:
VCPKG_ROOT: "" # Disable vcpkg for CI builds
with:
configurePreset: windows64
buildPreset: windows64-debug
35 changes: 3 additions & 32 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -407,39 +407,10 @@ enc_temp_folder/
Minecraft.Client/Schematics/
Minecraft.Client/Windows64/GameHDD/

# Intermediate build files (per-project)
Minecraft.Client/x64/
Minecraft.Client/Debug/
Minecraft.Client/x64_Debug/
Minecraft.Client/Release/
Minecraft.Client/x64_Release/

Minecraft.World/x64/
Minecraft.World/Debug/
Minecraft.World/x64_Debug/
Minecraft.World/Release/
Minecraft.World/x64_Release/

Minecraft.Server/x64/
Minecraft.Server/Debug/
Minecraft.Server/x64_Debug/
Minecraft.Server/Release/
Minecraft.Server/x64_Release/

build/*

# Existing build output files
!x64/**/Effects.msscmp
!x64/**/iggy_w64.dll
!x64/**/mss64.dll
!x64/**/redist64/

# Local saves
Minecraft.Client/Saves/
# CMake build output
build/

# Server data
tmp*/
_server_asset_probe/
server-data/
# Visual Studio Per-User Config
*.user
/out
Loading
Loading