
Contre Jour (Contre Jour DX)
Port nativo de Contre Jour (Contre Jour DX) para PC.
Contre Jour (Contre Jour DX)
Port nativo basado en su ficha de origen.
README del repositorio
Contre Jour DX
About
Contre Jour DX (Decompiled Extra) is a fan-made enhancement of the Windows 8 version of Contre Jour. This project aims to improve the original game's codebase, restore content from other versions of the game, and enhance the overall gaming experience.
The game's source code is decompiled from the Windows 8 version, which serves as the foundation for development and feature expansion.
This project is led by yell0wsuit, with help from contributors.
[!NOTE] Contre Jour DX is an unofficial, non-commercial fan project. It is not affiliated with, endorsed by, or officially associated with Mokus or any publisher of Contre Jour. All rights to the original game, characters, artwork, audio, and other assets belong to their respective rights holders.
We contacted Maksym Hryniv, the author of Contre Jour, regarding this decompilation project. He told us that he does not mind the project as long as it remains non-commercial.
Contre Jour DX is therefore distributed free of charge and is intended to remain strictly non-commercial. Do not sell this project, monetize it, or use Contre Jour assets from this repository for commercial purposes.
Related projects
- Contre Jour (web): the HTML5 edition of Contre Jour. The New Friend bonus chapter in this project comes from it.
- Contre Jour Rekindled: a port of the Windows Phone version. It is the reference for the Mango bonus chapter in this project.
Download
Download the latest release from the Releases page.
Play online
Play Contre Jour DX in your browser:
https://yell0wsuit.github.io/contrejour-dx/
You can also install the game as an app from your browser. After it loads once, the game plays offline. Your progress is saved in your browser, separately from the desktop version's save files.
Features
- Two bonus chapters:
- New Friend, ported from the HTML5 edition: 10 levels with Amie, a companion who lifts Petit with her balloon.
- Mango, ported from the Windows Phone version: 20 levels.
- Sharper art: sprites that the Windows 8 version shipped only at low resolution use the high-resolution art from the iOS version, such as backgrounds, the spikes flower and the end rose.
- Restored details from the iOS version, such as the outline of the ground's rest shape while you drag it.
- Support for sprites and animations from TexturePacker in JSON array format, for easier modding and new assets.
- The music from the official soundtrack album, including a theme for the final level and one for each of its two endings.
- Open-source fonts for each language, so text renders smoothly at any size.
- Runs on Windows, macOS and Linux through SDL3 and Skia. The game uses Metal, Vulkan or OpenGL, and falls back to software rendering if no GPU renderer works. It recovers when the graphics device is lost.
- Runs in the browser: a WebAssembly build installs as a PWA. Saves live in
localStoragerather than a file. - Better save file format. The save files (
contrejour_preferences.jsonandcontrejour_gamesave.json) are stored in aContreJourDX_SaveDatafolder, with the following fallback priority:- Next to the game executable (preferred for portability). A macOS
.appbundle skips this location, because the bundle is read-only. Documents/ContreJourDX_SaveData, if the above is not writable.%LOCALAPPDATA%/ContreJourDX_SaveData(Windows) or the equivalent on other platforms.
- Next to the game executable (preferred for portability). A macOS
Development & contributing
The development of Contre Jour DX is an ongoing process, and contributions are welcome! If you'd like to help out, please consider the following:
- Reporting issues: If you encounter any bugs or issues, please report them on the GitHub Issues page.
- Feature requests: If you have ideas for new features or improvements, feel free to submit a feature request through Issues.
- Contributing code: If you're a developer and want to contribute code, please fork the repository and submit a pull request.
Testing the code
Do these steps to test the game while you develop it.
The solution is ContreJourDX.slnx. Game projects, assemblies, and C# namespaces use ContreJourDX; the desktop executable is ContreJourDX.Desktop (.exe on Windows). Display names use Contre Jour DX. Existing save filenames and browser storage keys remain unchanged so updates retain saved progress.
- Install .NET 10 or higher.
[!NOTE] The
global.jsonfile sets the minimum SDK version. It usesrollForward: latestFeature. Thus a newer 10.0.x SDK also works. If your SDK is older than the minimum, eachdotnetcommand stops with a version-mismatch error. Install a newer SDK to correct this.
-
Clone the repository to your computer:
git clone https://github.com/yell0wsuit/contrejour-dx.git cd contrejour-dxYou can also use GitHub Desktop to clone the repository.
-
Build the game with one of these commands.
[!NOTE] The
PublishAotoption has prerequisites. Obey the AOT prerequisites for your operating system.
a. Windows
dotnet publish src\ContreJourDX.Desktop\ContreJourDX.Desktop.csproj -c Release -r win-x64 -p:PublishAot=true -o .\src\ContreJourDX.Desktop\bin\Publish\win-x64
b. macOS
dotnet publish src/ContreJourDX.Desktop/ContreJourDX.Desktop.csproj -c Release -r osx-arm64 -p:PublishAot=true -o ./src/ContreJourDX.Desktop/bin/Publish/osx-arm64
To make a .app bundle, run ./distribution/bundle_macos.sh <version> instead.
[!NOTE] Change
osx-arm64toosx-x64to build the game for an Intel Mac. We do not know if the game operates correctly on an Intel Mac.
c. Linux
dotnet publish src/ContreJourDX.Desktop/ContreJourDX.Desktop.csproj -c Release -r linux-x64 -p:PublishAot=true -o ./src/ContreJourDX.Desktop/bin/Publish/linux-x64
To make an AppImage, run ./distribution/build_appimage.sh <version> instead.
[!WARNING] A native AOT binary from Linux operates only on the same Linux version, or on a newer Linux version.
If native AOT causes a problem, remove the -p:PublishAot=true option. Then build the game again.
d. Browser (WebAssembly)
The browser build needs the WebAssembly workload. It also needs its own content. A Python script converts the desktop assets to WebP images, Ogg Opus audio and subset fonts. Do this conversion before you build the game.
dotnet workload install wasm-tools
python3 -m pip install -r tools/requirements.txt
python3 tools/build_web_content.py
[!NOTE] The audio conversion needs an FFmpeg with the
libopusencoder, from thePATHor from theCJ_FFMPEGenvironment variable. Many FFmpeg builds do not have this encoder, and the script then stops before it converts anything. Add--skip-audioto build without audio; the game then runs silent.
The conversion is incremental. Do the conversion again only after you change an asset.
Start the game in your browser. This quick build runs on the interpreter:
dotnet run --project src/ContreJourDX.Browser
Or publish the AOT-compiled site, which plays at full speed, and serve it at http://127.0.0.1:8080:
python3 tools/publish_browser.py --serve
The Deploy Browser to GitHub Pages workflow publishes this site to GitHub Pages. You must start this workflow manually.
-
Run the unit tests:
dotnet test --solution ContreJourDX.slnx
Credits
Contre Jour, as credited in the game's ending:
- Graphic artists: Mihai Tymoshenko, Andriy Shvyrov
- Composer: David Ari Leon
- SFX: Ihor Pryshliak
- Producer: Tom Kinniburgh
- Idea: Anton Mykhaylets
- Everything else: Maksym Hryniv
The HTML5 edition of Contre Jour, which the New Friend chapter comes from:
- HTML5 sponsor: Microsoft Internet Explorer Team
- HTML5 development: Clarity Consulting, Inc. (Jerry Brunning, Erik Klimczak, Nathan Gonzalez, Ryan Skurkis, Akin Owolabi, Levi Beaver, Ryan Mott)
Special thanks
- Maksym Hryniv for creating Contre Jour and allowing this fan project to exist.
- David Ari Leon for composing the music of Contre Jour.
- The original developer team of Contre Jour for their work on the game.
- TheAwesomeBlue for finding the original Windows 8 version of Contre Jour.
- Laxii for providing the lossless soundtrack of Contre Jour.
Comentarios (0)
Inicia sesión para dejar un comentario.
Sé el primero en comentar sobre este juego.
