#[Nez + MG 3.8.1] 7 hrs in: “Nez.PipelineImporter” gone → MGCB fails. 2024-era way to load TMX?

94 messages · Page 1 of 1 (latest)

lilac bough
#

TL;DR

  • Stack: MonoGame 3.8.1 DesktopGL (+ .NET 8 SDK) · Nez built from latest HEAD
  • Goal: ship a tiny 320 × 180 game that loads a tiled/arena_01.tmx map
  • Problem:
    • Project still references extern/Nez/Nez.PipelineImporter/Nez.PipelineImporter.csproj
    • MGCB lines /importer:Nez.TiledMapImporter + /build:tiled/arena_01.tmx
    • Nez upstream nuked all PipelineImporter code—build explodes (MSB4009, then “Importer had creation failure”)
  • Spent: 7 + hours → read release notes, grepped the repo, no current docs

Ask: Is “runtime copy + Content.LoadTiledMap()” now the blessed method?
Any hidden gotchas (Linux case-sens., System.Drawing.Common 8.0, etc.)?
If a new official importer exists, where is it?


Below is the verbose version in case anyone wants the gory details or needs to reproduce.


1 Environment

Item Value
OS Windows 11 (22H2)
.NET SDK 8.0.203
MonoGame 3.8.1.303 DesktopGL
Nez latest HEAD (4d35b4a as of tonight)
Project type WinExe, net8.0, C# latest

2 Project highlights

<!-- MemoryRepoNez.csproj (excerpt) -->
<ItemGroup>
  <!-- MonoGame runtime packages -->
  <PackageReference Include="MonoGame.Framework.DesktopGL" Version="3.8.1.303" />
  <PackageReference Include="MonoGame.Content.Builder.Task" Version="3.8.1.303" />

  <!-- Nez built from source -->
  <ProjectReference Include="extern\Nez\Nez.Portable\Nez.MG38.csproj" />
  
  <!-- ❌ Problem line – Nez removed this project years ago -->
  <ProjectReference Include="extern\Nez\Nez.PipelineImporter\Nez.PipelineImporter.csproj" />
</ItemGroup>

Content/Content.mgcb still contains

/importer:Nez.TiledMapImporter
/build:tiled/arena_01.tmx

3 Exact commands & failures

dotnet clean; dotnet restore; dotnet build -v:q -clp:ErrorsOnly
  1. MSB4009 “Project file could not be found” → Nez.PipelineImporter.csproj
  2. Commented that reference out ⇒ MGCB runs, but now:
    error: Processor or Importer 'Nez.TiledMapImporter' had creation failure!
           → System.IO.FileNotFoundException: Could not load assembly 'Nez.PipelineImporter'
    

4 What I tried (chronological)

Step Result
Commented-out <ProjectReference> Build passes, game crashes at runtime (TMX not found)
Added `<Content Include="Content***.tmx png" CopyToOutputDirectory="PreserveNewest" />`
Grepped Nez repo for PipelineImporter Last seen around tag v0.9.x; removed in v0.10.0
Looked for replacement importer Nothing obvious in repo, docs, or Discord search

5 Open questions

  1. Is runtime-loading TMX the intended 2024 workflow?
    (If so, I’ll nuke every /importer: line and ship raw assets.)
  2. Cross-platform pitfalls?
    Linux/macOS case sensitivity, libgdiplus vagaries with System.Drawing 8.0…
  3. MonoGame 3.8.2-preview looks tempting for .NET 8 fixes—safe to upgrade now?
  4. Any automated test other Nez users run to ensure every TMX/PNG pair actually copies to bin/?

Seven hours later my brain resembles overcooked ramen—any pointers appreciated.
Thanks! 🙏

lilac bough
#

nevermind, overcomplicated everything and ended up trying to make my own homebrewed version

lilac bough
#

For anyone reading this in the future:

Just look up samples that are working, and expand from there instead of trying to do everything on your own independently.

Work smart, not stupidly bruteforced hard.

#

If something does not work, start looking up code examples online - don't try to reinvent the wheel.

lilac bough
#

Also, please remember that this isn’t a game engine, it’s a framework and if you didn’t know this beforehand- you might be in over your head and better off starting off with something simpler.

burnt lion
lilac bough
#

Start with these using Visual Studio and work your way from there, that's all I can say honestly.

burnt lion
#

hmm i think i got my samples from there, but it loaded from .txt

lilac bough
#

And good luck to you, I decided to just use Godot.

burnt lion
#

btw i just found the issue

#

#help message

lilac bough
#

My friends were too against Monogame sadly

#

gl my friend

burnt lion
#

its a version mismatch

burnt lion
lilac bough
#

eh, we're doing good

burnt lion
#

you have a very dutch name btw

lilac bough
#

we're messing with shaders

burnt lion
#

oop

lilac bough
#

I've already written a compiler to help write our own personalized way of the godot documentation

#

and more stuff im not sure will even help

#

but hey, im doing stuff

#

👍

burnt lion
#

thats pretty swell

lilac bough
#

good luck fwiend

burnt lion
#

personally i wanan refrain from using godot cause gdscript is the most optimized with it and, i hate indentation with a passion lmfao

lilac bough
#

I just ... outsourced godot to my friend who likes game dev

#

and im here trying to basically build my own custom game engine with monogame as end game anyway

#

this framework is honestly amazing

#

but we have to start somewhere and godot is much gentler in the learning curve

#

however, monogame requires more low level learning

#

(which i prefer)

burnt lion
#

yeeee i picked it for dat low level, really wanna get into it more

lilac bough
#

well, if you want something that you can sink years into

#

that has endless levels of depth

burnt lion
#

i might be jumping the gun tbh

lilac bough
#

I really recommend you start with a 2D game

#

Do not go into a 3D game to start off with

burnt lion
#

yes im starting 2D, I AINT A LUNATIC

lilac bough
#

my friend, the game dev

#

he started 3d ... solo dev in unreal engine

#

he is ... lunatiiicc

#

now with 2D, he is flying in the skies

#

hahaha

burnt lion
#

i know someone else who did so too

#

and he made a darned luigi odyssey game or smth

#

then he vanished, must've gone insane

lilac bough
#

did anyone play it tho

#

i mean, smart people tend to go insane

#

speaking form experience, he he

burnt lion
#

i dont recall, he had a server with quite a few ppl

lilac bough
#

damn

#

he's a legend

#

we're thinking of making a game based on too much

#

we're both going insane basically

#

but it's great

burnt lion
#

and he had quite a few previews so, idk indeed an absolute unit of a guy, he used a game engine so atleast he didnt shoot himself in the foot with a framework

#

HOWEVER, he still shot himself in the foot

lilac bough
#

well, idk man we plan on ...

#

how can i explain it

burnt lion
lilac bough
#

we don

#

we want the world itself to be crazy

#

and icarus flew too close to the skies

burnt lion
#

2D might be easier, but i wanna make a soulslike combat oriented thing so basically im subjecting myself to maths

lilac bough
#

so to speak, metadata in enemies inside a compiler memoryrepo system, yaml, yadda, yadda - somehow

#

2D is very much recommended

#

View matrix and dealing with 3D sculpting, and the complicated stuff of 3D, ehhh

burnt lion
#

oh yea thats what i meant, im using 2D

lilac bough
#

Yeah, I am using 2D as well

burnt lion
#

but the nature of a soulslike in 2D asks a lot of questions

lilac bough
#

Top down, but we ... want it to be like undertale and vampire survivors

#

as well as stanley parable, and maybe some of the procedural generation from isaac

burnt lion
lilac bough
#

yeah, but I am an AI student

burnt lion
#

im a

lilac bough
#

and I like overcomplicating things

burnt lion
#

biology student

lilac bough
#

I wish I was a biology student tbh

burnt lion
#

and i know how to program

lilac bough
#

to be honest

#

game dev

#

is so difficult

#

i love it

#

you climb a mountain peak

burnt lion
#

hmmm its deff on a downward dive as well in 2025

lilac bough
#

just to reach another

burnt lion
#

with big companies plummeting and indies being a make it or break it

#

I really love project management tho, having a good dev environment is an amazin experience

lilac bough
#

well, it's just more risk and when there's more risk, there's more potential reward

#

become a wage slave or get lucky and potentially become financially independent in arguably the worst economical times in history potentially

#

anyway, gotta get back to work my friend, nice talking to ya