OhMyGame
OhMyGame is the open-source studio for making games with AI. Design, build, playtest, and publish games in one app, with your own model keys.
Reverse-engineered rebuild in Unity 6 of ProjectVania, a 2D XNA (C#) action-platformer prototype
Translation pending
GamesC# · ShaderLabGitHub @mindatticOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A Unity 6 rebuild of ProjectVania, a 2009 XNA 3.0 (C#) 2D side-scrolling platformer prototype: a Castlevania-flavored character (sprites named Morris, Shanoa, Leo and Richter) that runs, jumps, kneels, slides and wall-slides across a 16-pixel tile grid in front of a painted mountain-farmhouse backdrop, with a loose-follow camera, a slide-down typed console, a tile-painting map editor and a main menu, all wrapped in a hand-built component "Engine".
The rebuild is complete: every system the original had plays in Unity 6, matched to the original's per-frame arithmetic and verified by an end-to-end scripted run, and the repo is ready to continue development on a modern architecture (an engine-free, tested Core; data-driven tuning; everything composed in code).
The original is an engine-first sandbox from 2009 whose platforming feel is worth keeping exactly:
say, yell, fade, play music, mute, console text red and friends.See docs/RECONSTRUCTION.md for the full system-by-system record read from
the original C# source and content files, and docs/BIBLE.md for the rebuild's
brief. Work is tracked as stories under epic U.VAN-A in
docs/USER_STORIES.md, written in build order.
Complete. Every story of epic U.VAN-A is built and verified (Core tests, EditMode tests, a headless
build and unity.ps1 capture screenshots); the BIBLE records each decision and every fixed defect of the
original. The stories, in the order they were built:
Unity 6000.4.3f1 runs headless; nothing needs the Editor open.
| Command | What it does |
|---|---|
.\run-core-tests.ps1 [-Filter X] | The engine-free Core tests (dotnet test, no Unity) |
.\unity.ps1 compile | Imports and compiles the project in batch mode |
.\unity.ps1 test [-Filter X] | The EditMode tests (results in Logs\editmode.xml) |
.\unity.ps1 build | The Windows player in Build\ProjectVania |
.\unity.ps1 capture | Renders the game's states to Logs\Capture\*.png (needs graphics) |
.\play.ps1 [-Sound] [-Build] | Launches the built player, muted unless -Sound |
| Assembly | Holds |
|---|---|
Unity.Rea.ProjectVania.Core | The rules, pure C# (noEngineReferences): the 60 Hz world, commands and events, characters, grid, camera, menu, console, HUD, editor, effects arithmetic and the settings registry |
Unity.Rea.ProjectVania.Runtime | Presentation only: the code-built bootstrap, the Input System device, URP rendering, UI Toolkit views, audio |
Unity.Rea.ProjectVania.Editor | Asset importers, the pipeline and scene setup, the batch build and the capture run |
Unity.Rea.ProjectVania.Tests / Tests/Core.Tests | EditMode tests and the dotnet test Core suite |
Every tuning figure, text and content definition is a JSON file in Assets/StreamingAssets/Settings,
validated on load; state changes only through commands carrying a player id, so presentation never mutates
the game.
play.ps1 launches muted: it sets MINDATTIC_CLI_MUTED=1 and passes -muted, so a CLI or agent starting
the game never blasts audio. Pass -Sound to launch with audio, -Build to rebuild first (.\unity.ps1 build), -Wait to wait for the player to exit. Either switch works on its own when you start
ProjectVania.exe (or the editor) yourself:
$env:MINDATTIC_CLI_MUTED = '1'; .\Build\ProjectVania\ProjectVania.exe
.\Build\ProjectVania\ProjectVania.exe -muted
The mute is the shared com.mindattic.unity.shared session mute: read before the first scene loads, it
makes the player profile's settings report music and SFX muted for that run only, and SessionAudio
silences the listener (the cue and song players follow audio.json and the console's mute, which still
works underneath). The player's saved settings.json is never written, so the next normal launch has
sound. The -batchmode runs in unity.ps1 (compile, test, build, capture) are not playable launches and
are unaffected.
The game can be played online on the shared Unity.Multiplayer kit (BIBLE, Online). Local play is unchanged; the
online scene is opened with -online (or .\play.ps1 -Online) and offers Host, Join by IP, Join by code and Play
alone. Up to three players each drive their own character (Morris, Shanoa, Leo) in the host's one game, kept in step
by a lockstep the host orders. Assets/Scenes/Online.unity is written in code by MindAttic > ProjectVania > Rebuild
Online Scene (Unity.Rea.ProjectVania.EditorTools.Online.OnlineSceneBuilder.BuildAll in batch); mp-host game smoke
runs a dedicated server with two bots.
R:\Projects\_PRE_2022\_PRE_2021\_PRE_2020\_PRE_2017\ProjectVania (the fuller copy; its Engine
project is the game) and R:\Projects\_PRE_2022\_PRE_2021\_PRE_2020\_PRE_2017\XNA 2D\ProjectVania
(an earlier, smaller copy). Read-only reference, never edited by this project.