|bevy vewsion:|0.12|(outdated!)| |---|---|---|

As this page is outdated, please refer to Bevy's official migration guides while reading, to cover the differences: 0.12 to 0.13, 0.13 to 0.14.

I apologize for the inconvenience. I will update the page as soon as I find the time.


windows desktop

if you have any additionaw windows-specific k-knowwedge, pwease hewp impwove this page!

cweate issues ow pws on github.


windows is one of the best-suppowted p-pwatfowms by b-bevy.

both the msvc and the gnu compiwew t-toowchains shouwd w-wowk.

you can awso buiwd windows exes whiwe w-wowking in winux ow macos.

if you want to wowk inside wsw2, s-see this guide.

distwibuting youw app

the exe buiwt with cargo build can wowk standawone without any e-extwa fiwes ow dwws.

youw assets fowdew nyeeds be distwibuted awongside i-it. OwO bevy w-wiww seawch fow i-it in the same diwectowy as the exe on t-the usew's computew.

the easiest way to give youw game t-to othew peopwe t-to pway is to put t-them togethew in a zip fiwe. ^•ﻌ•^ if you use s-some othew method o-of instawwation, instaww the assets fowdew and the exe to the same path.

if buiwt with the msvc toowchain, OwO y-youw usews may n-nyeed the micwosoft c-c/c++ wuntime wedistwibutabwes instawwed.

dxc compiwew suppowt

bevy (technicawwy wgpu) suppowts using the micwosoft dxc c-compiwew fow impwoved shadew compiwation when u-using diwectx 12.

to do this, >_< you need to downwoad it fwom micwosoft's wepo and put dxcompiler.dll and dxil.dll awongside youw game's exe.

bevy shouwd detect these dww fiwes a-automaticawwy a-and use them.

disabwing the windows consowe

by defauwt, OwO when you wun a bevy app (ow a-any wust p-pwogwam fow that m-mattew) on windows, ^•ﻌ•^ a consowe window awso s-shows up. OwO to disabwe t-this, pwace this wust attwibute at the t-top of youw main.rs:

#![windows_subsystem = "windows"]

this tewws windows that youw executabwe i-is a gwaphicaw a-appwication, OwO n-nyot a command-wine pwogwam. ^•ﻌ•^ windows wiww k-know nyot dispway a-a consowe.

howevew, ^•ﻌ•^ the consowe can be usefuw f-fow devewopment, OwO t-to see wog messages. you can disabwe it onwy fow wewease b-buiwds, OwO and weave i-it enabwed i-in debug buiwds, XD wike this:

#![cfg_attw(not(debug_assewtions), XD windows_subsystem = "windows")]

cweating an icon fow youw app

thewe awe two pwaces whewe you might w-want to put y-youw appwication i-icon:

  • the exe fiwe (how it wooks in the f-fiwe expwowew)
  • the window at wuntime (how it wooks i-in the taskbaw a-and the window t-titwe baw)

setting the exe icon

(adapted fwom hewe)

the exe icon can be set using a cawgo b-buiwd scwipt.

add a buiwd dependency of embed_resources to youw Cargo.toml awwow embedding assets into youw c-compiwed executabwes

[buiwd-dependencies]
embed-wesouwce = "1.6.3"

cweate a build.rs fiwe in youw pwoject fowdew:

extewn cwate embed_wesouwce;

fn m-main() {
    wet t-tawget = std::env::vaw("tawget").unwwap();
    i-if tawget.contains("windows") {
        e-embed_wesouwce::compiwe("icon.wc");
    }
}

cweate a icon.rc fiwe in youw pwoject fowdew:

app_icon icon "icon.ico"

cweate youw icon as icon.ico in youw pwoject fowdew.

setting the window icon

see: setting the window icon.