Closed mistletoe closed 4 months ago
this internal compiler error often goes away after running a Clean in the IDE
I already tried the basics like that. I clean at least a few times a day.
[EDIT] Going into Game Options / Windows / Graphics and selecting Preview button reveals a binary file for the game with the .win extension, but nothing else. Sprite sheets weren't built successfully.
I've updated Visual Studio Community Edition 2022 to the latest build, in case that mattered.
Hmmm.... maybe it's the .NET change?
IDK what else to try here, lol.[/EDIT]
For now, I'm back to working on a manual install of 2024.4.1.152. No issues getting the game to build a Runtime. IDK what changed with Texture Groups, but everything I'm seeing here looks like that's where the issue is; my project's OK, just not with the newest IDE on Steam. Super-bummed, I am massively looking forward to using Physics Raycasts and playing with the depth-buffer :-)
Thanks for reporting this, but in order to confirm the problem and then investigate a fix we need you to send us small project which already shows this issue to ensure we see exactly what you see and then learn why this problem is caused.
Please report this issue again, but ensure you have a suitable project open at the time you open the bug reporter and that you allow GameMaker to include the project.
Thanks!
"I've updated Visual Studio Community Edition 2022 to the latest build, in case that mattered." - just to quickly point out that speculatively/"randomly" updating external tools is usually only likely to make things worse ;)
Always, always, always read our setup guides before updating SDKs, Visual Studio, Xcode, Android Studio, whatever... We link to the required tools guide on the Help menu inside GameMaker and on the release notes, plus we would explicitly tell you in advance in the release notes if you needed to update one of these tools.
It won't be due to the in-game collision changes, but that error does imply that one (or more) of your sprites is failing to be read/compile correctly, yes. If you can work out which sprite(s) causes the fail, then a small project which just contains those sprites would be perfect. Thanks.
Fair re: updating tools. But hey, I figured it was still in the requirements, and maybe you folks were keeping Visual Studio a little more up to date: I only upgrade it when I want to produce a VCC for publisher review.
But that leaves me with a big problem. How on Earth am I going to find the sprite in question?
There are hundreds, and the error message doesn't include a Sprite's name, which means I'm staring at a big pile of hay and a very small needle. Any hints about what I'm supposed to go looking for would be helpful.
I'm going to make a random presumption here: whatever's causing this error isn't a corrupt PNG import. That would have caused the errors in the past, too. I'm not adding dozens of PNGs a day at this point in production, generally. So it's much, much more likely that the change has something to do with something unusual I may have done with a Sprite. For example, if I've placed a Sprite's hitbox somewhere "absurd", would that trigger this?
[EDIT]In the name of Science (and well, because I really, really wanna see the physics raycast, lol) I'll make a copy of the project and start the process of finding out which Sprite has caused this; I'll swap out all of the Sprites with a simple square, set the hitbox to Rectangle, and keep going until the Runtime builds again. At least then we'll know where the error occurred, if not why.[/EDIT]
2024.6.1.160 resolves this bug. Yay, I get to play with Physics Raycast tomorrow and break new things ;-)
Description
Simply put, project will not compile now. Error is below. I've tried with smaller, less-complex projects, and they compiled OK. This project uses a bunch of sprite-sheets and hundreds of sprites.
I'm wondering if this is related to the changes in Sprite collision bounds as described in the changelog, given the context?
[EDIT]
Just set Affinity to CPU0, limited threads to 1 in Compiler settings. No dice. Same error is thrown on build.
Killed everything else but Chrome, killed AV. No dice.
Let me know if you need the project to reproduce. I'm dead in the water, lol. I guess today I'll work on graphics, heh.
[/EDIT]
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.AggregateException: One or more errors occurred. (Index was outside the bounds of the array.) ---> System.IndexOutOfRangeException: Index was outside the bounds of the array. at GMAssetCompiler.GMSprite.CreateMask(GMBitmap32 _frame, Int32 _bboxmode, eGMSpriteColKind _kind, Int32 _tolerance) at GMAssetCompiler.GMSprite.GetMask() at GMAssetCompiler.WADSaverb 1(RangeWorker& currentWorker, Int64 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
--- End of stack trace from previous location ---
at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0
1.<>c__DisplayClass113_0.<WriteSprites>b__0(KeyValuePair
2 _kvp, ParallelLoopState state, Int64 index) at System.Threading.Tasks.Parallel.<>cDisplayClass32_02.<ForEachWorker>b__2(Int32 i, ParallelLoopState state) at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0
2.2.<ForWorker>b__1(RangeWorker& currentWorker, Int64 timeout, Boolean& replicationDelegateYieldedBeforeCompletion) at System.Threading.Tasks.TaskReplicator.Replica.Execute() --- End of inner exception stack trace --- at System.Threading.Tasks.TaskReplicator.Run[TState](ReplicatableUserAction
1 action, ParallelOptions options, Boolean stopOnFirstFailure) at System.Threading.Tasks.Parallel.ForWorker[TLocal,TInt](TInt fromInclusive, TInt toExclusive, ParallelOptions parallelOptions, Action1 body, Action
2 bodyWithState, Func4 bodyWithLocal, Func
1 localInit, Action1 localFinally) --- End of stack trace from previous location --- at System.Threading.Tasks.Parallel.ForWorker[TLocal,TInt](TInt fromInclusive, TInt toExclusive, ParallelOptions parallelOptions, Action
1 body, Action2 bodyWithState, Func
4 bodyWithLocal, Func1 localInit, Action
1 localFinally) at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IList1 list, ParallelOptions parallelOptions, Action
1 body, Action2 bodyWithState, Action
3 bodyWithStateAndIndex, Func4 bodyWithStateAndLocal, Func
5 bodyWithEverything, Func1 localInit, Action
1 localFinally) at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable1 source, ParallelOptions parallelOptions, Action
1 body, Action2 bodyWithState, Action
3 bodyWithStateAndIndex, Func4 bodyWithStateAndLocal, Func
5 bodyWithEverything, Func1 localInit, Action
1 localFinally) at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable1 source, ParallelOptions parallelOptions, Action
3 body) at GMAssetCompiler.WADSaver1.WriteSprites(IList
1 _data, Stream _s, IFF _iff) at GMAssetCompiler.IFFChunkHandler1.Save(Stream _stream, IFF _iff) at GMAssetCompiler.IFF.WriteChunks(Stream _stream, TextWriter _out) at GMAssetCompiler.WADSaver
1.Save(GMAssets _assets, Stream _stream, List1 _extraFilenames, Dictionary
2 _extraAttributes) at GMAssetCompiler.IFFSaver.Save(GMAssets _assets, String _name) at GMAssetCompiler.Program.CompileProject(GMAssets _file) at GMAssetCompiler.Program.Reentry(String[] _args) at System.RuntimeMethodHandle.InvokeMethod(Object target, Void arguments, Signature sig, Boolean isConstructor) at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span1 copyOfArgs, BindingFlags invokeAttr) --- End of inner exception stack trace --- at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span
1 copyOfArgs, BindingFlags invokeAttr) at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at Igor.Program.ExecuteAssetCompiler(String _args) at Igor.WindowsBuilder.Compile(Boolean _exe) at Igor.WindowsBuilder.Deploy(Boolean _exe) at Igor.WindowsBuilder.Run() at System.RuntimeMethodHandle.InvokeMethod(Object target, Void arguments, Signature sig, Boolean isConstructor) at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)Expected Change
Not sure what's going on here. Looks like something wrong in parallelized code having to do with Sprites here.
Steps To Reproduce
How reliably can you recreate this issue using your steps above?
Always
Which version of GameMaker are you reporting this issue for?
2024.6.0 (Monthly)
Which operating system(s) are you seeing the problem on?
Windows 11
Which platform(s) are you having trouble building this project for?
Windows
Are you running GameMaker from inside your Steam library?
Yes
Contact Us Package Attached?
Sample Project Added?