Can't compile app

Hello, after last changes (a lot of) I cant download utf file, it say something about compile errors.
But debuger is silent.
After changing to javascript mode it firstly say error in arcade-text extension, but after 1sec it remove error notifiacation from it and put it on some pygamer’s modules like control.ts (base folder), targetoverrides.ts (screen----st7335 folder), melody.ts (mixed----smd folder), controller.ts (game---hw folder)
But then I will click on problem file, notification is gone without any tips.
Project saves (and playes first time before compiling) as usual, nothing wrong.
What’s wrong?

1 Like

After I maked simple mechanics for 1st level, everything is ok.
But after I use changing tilemaps as my app became to playable in player but its not compiling.
I didn’t want to post it earlier then it should, but of course you can`t help without looking at project.
I really don’t know what is wrong.

(you can skip 1st intro by A button. For going to first level go to bench on the north, you`ll se a floating hint)

1 Like

Also it has bad fps on lvl1, still don`t know why. Need help here too.

Ah, if you open the console and press compile this is what I get: (Chrome inspect tools)

[Deprecation] Application Cache API manifest selection is deprecated and will be removed in M85, around August 2020. See https://www.chromestatus.com/features/6192449487634432 for more details.
pxtsim.js:1 Simulator ServiceWorker registration successful with scope:  https://trg-arcade.userpxt.io/
pxtweb.js:1 performance report:
		first JS running @ 3s819ms
		DOM loaded @ 4s53ms
		workspace init finished @ 4s645ms
		loading started #loadingheader @ 4s752ms
		loading done #updateeditorfile @ 12s
		loading done #loadingheader @ 12s
		simulator ready @ 14m20s

		loadBlockly took ~ 206ms
		webworker recvHandler took ~ 60ms
		domUpdate loadBlockly took ~ 3s730ms (12s - 16s)
		stopSimulator took ~ 431ms
		reloadAppTargetVariant took ~ 298ms

The FetchEvent for "https://dc.services.visualstudio.com/v2/track" resulted in a network error response: the promise was rejected.
Promise.then (async)
(anonymous) @ ---serviceworker:1
---serviceworker:1 Uncaught (in promise) TypeError: Failed to fetch
ai.0.js:1 POST https://dc.services.visualstudio.com/v2/track net::ERR_FAILED
(anonymous) @ ai.0.js:1
(anonymous) @ ai.0.js:1
(anonymous) @ ai.0.js:1
pxtapp.js:1 webusb: get devices
19pxtblockly.js:1 Deprecated use of setting size_.width to 0 to rerender a field. Set field.isDirty_ to true instead.
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
loadBlockly @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
domUpdate @ main.js:1
componentDidUpdate @ main.js:1
_l @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Cl @ main.js:1
dl @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Qr @ main.js:1
Xr @ main.js:1
sl @ main.js:1
enqueueForceUpdate @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Promise.finally (async)
updateEditorFileAsync @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
componentDidUpdate @ main.js:1
_l @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Cl @ main.js:1
dl @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Qr @ main.js:1
Xr @ main.js:1
sl @ main.js:1
enqueueSetState @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
internalLoadHeaderAsync @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
loadHeaderAsync @ main.js:1
reloadHeaderAsync @ main.js:1
setHwVariant @ main.js:1
e.onClick @ main.js:1
d @ main.js:1
m @ main.js:1
w @ main.js:1
(anonymous) @ main.js:1
_ @ main.js:1
N @ main.js:1
T @ main.js:1
O @ main.js:1
Cn @ main.js:1
ce @ main.js:1
On @ main.js:1
In @ main.js:1
Pn @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
ae @ main.js:1
An @ main.js:1
pxtblockly.js:1 Cannot set the dropdown's value to an unavailable option. Block type: tileset_tile_picker, Field name: tile, Value: assets.tile`door_left`
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
loadBlockly @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
domUpdate @ main.js:1
componentDidUpdate @ main.js:1
_l @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Cl @ main.js:1
dl @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Qr @ main.js:1
Xr @ main.js:1
sl @ main.js:1
enqueueForceUpdate @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Promise.finally (async)
updateEditorFileAsync @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
componentDidUpdate @ main.js:1
_l @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Cl @ main.js:1
dl @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Qr @ main.js:1
Xr @ main.js:1
sl @ main.js:1
enqueueSetState @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
internalLoadHeaderAsync @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
loadHeaderAsync @ main.js:1
reloadHeaderAsync @ main.js:1
setHwVariant @ main.js:1
e.onClick @ main.js:1
d @ main.js:1
m @ main.js:1
w @ main.js:1
(anonymous) @ main.js:1
_ @ main.js:1
N @ main.js:1
T @ main.js:1
O @ main.js:1
Cn @ main.js:1
ce @ main.js:1
On @ main.js:1
In @ main.js:1
Pn @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
ae @ main.js:1
An @ main.js:1
pxtblockly.js:1 Cannot set the dropdown's value to an unavailable option. Block type: tileset_tile_picker, Field name: tile, Value: assets.tile`img_trigger_tile`
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
loadBlockly @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
domUpdate @ main.js:1
componentDidUpdate @ main.js:1
_l @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Cl @ main.js:1
dl @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Qr @ main.js:1
Xr @ main.js:1
sl @ main.js:1
enqueueForceUpdate @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Promise.finally (async)
updateEditorFileAsync @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
componentDidUpdate @ main.js:1
_l @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Cl @ main.js:1
dl @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Qr @ main.js:1
Xr @ main.js:1
sl @ main.js:1
enqueueSetState @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
internalLoadHeaderAsync @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
loadHeaderAsync @ main.js:1
reloadHeaderAsync @ main.js:1
setHwVariant @ main.js:1
e.onClick @ main.js:1
d @ main.js:1
m @ main.js:1
w @ main.js:1
(anonymous) @ main.js:1
_ @ main.js:1
N @ main.js:1
T @ main.js:1
O @ main.js:1
Cn @ main.js:1
ce @ main.js:1
On @ main.js:1
In @ main.js:1
Pn @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
ae @ main.js:1
An @ main.js:1
pxtblockly.js:1 Cannot set the dropdown's value to an unavailable option. Block type: tileset_tile_picker, Field name: tile, Value: assets.tile`lvl1_img_trigger_off`
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
loadBlockly @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
domUpdate @ main.js:1
componentDidUpdate @ main.js:1
_l @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Cl @ main.js:1
dl @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Qr @ main.js:1
Xr @ main.js:1
sl @ main.js:1
enqueueForceUpdate @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Promise.finally (async)
updateEditorFileAsync @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
componentDidUpdate @ main.js:1
_l @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Cl @ main.js:1
dl @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Qr @ main.js:1
Xr @ main.js:1
sl @ main.js:1
enqueueSetState @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
internalLoadHeaderAsync @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
loadHeaderAsync @ main.js:1
reloadHeaderAsync @ main.js:1
setHwVariant @ main.js:1
e.onClick @ main.js:1
d @ main.js:1
m @ main.js:1
w @ main.js:1
(anonymous) @ main.js:1
_ @ main.js:1
N @ main.js:1
T @ main.js:1
O @ main.js:1
Cn @ main.js:1
ce @ main.js:1
On @ main.js:1
In @ main.js:1
Pn @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
ae @ main.js:1
An @ main.js:1
22pxtblockly.js:1 Deprecated use of setting size_.width to 0 to rerender a field. Set field.isDirty_ to true instead.
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
loadBlockly @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
domUpdate @ main.js:1
componentDidUpdate @ main.js:1
_l @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Cl @ main.js:1
dl @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Qr @ main.js:1
Xr @ main.js:1
sl @ main.js:1
enqueueForceUpdate @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Promise.finally (async)
updateEditorFileAsync @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
componentDidUpdate @ main.js:1
_l @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Cl @ main.js:1
dl @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Qr @ main.js:1
Xr @ main.js:1
sl @ main.js:1
enqueueSetState @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
internalLoadHeaderAsync @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
loadHeaderAsync @ main.js:1
reloadHeaderAsync @ main.js:1
setHwVariant @ main.js:1
e.onClick @ main.js:1
d @ main.js:1
m @ main.js:1
w @ main.js:1
(anonymous) @ main.js:1
_ @ main.js:1
N @ main.js:1
T @ main.js:1
O @ main.js:1
Cn @ main.js:1
ce @ main.js:1
On @ main.js:1
In @ main.js:1
Pn @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
ae @ main.js:1
An @ main.js:1
pxtblockly.js:1 Cannot set the dropdown's value to an unavailable option. Block type: tileset_tile_picker, Field name: tile, Value: assets.tile`img_trigger_tile`
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
(anonymous) @ pxtblockly.js:1
loadBlockly @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
domUpdate @ main.js:1
componentDidUpdate @ main.js:1
_l @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Cl @ main.js:1
dl @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Qr @ main.js:1
Xr @ main.js:1
sl @ main.js:1
enqueueForceUpdate @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Promise.finally (async)
updateEditorFileAsync @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
componentDidUpdate @ main.js:1
_l @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Cl @ main.js:1
dl @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
Qr @ main.js:1
Xr @ main.js:1
sl @ main.js:1
enqueueSetState @ main.js:1
(anonymous) @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
internalLoadHeaderAsync @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
loadHeaderAsync @ main.js:1
reloadHeaderAsync @ main.js:1
setHwVariant @ main.js:1
e.onClick @ main.js:1
d @ main.js:1
m @ main.js:1
w @ main.js:1
(anonymous) @ main.js:1
_ @ main.js:1
N @ main.js:1
T @ main.js:1
O @ main.js:1
Cn @ main.js:1
ce @ main.js:1
On @ main.js:1
In @ main.js:1
Pn @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
ae @ main.js:1
An @ main.js:1
5pxtapp.js:1 webusb: get devices
The FetchEvent for "https://dc.services.visualstudio.com/v2/track" resulted in a network error response: the promise was rejected.
Promise.then (async)
(anonymous) @ ---serviceworker:1
---serviceworker:1 Uncaught (in promise) TypeError: Failed to fetch
ai.0.js:1 POST https://dc.services.visualstudio.com/v2/track net::ERR_FAILED
(anonymous) @ ai.0.js:1
(anonymous) @ ai.0.js:1
(anonymous) @ ai.0.js:1
setTimeout (async)
(anonymous) @ ai.0.js:1
(anonymous) @ ai.0.js:1
(anonymous) @ ai.0.js:1
(anonymous) @ ai.0.js:1
(anonymous) @ ai.0.js:1
(anonymous) @ pxtweb.js:1
track @ pxtweb.js:1
(anonymous) @ pxtweb.js:1
(anonymous) @ pxtapp.js:1
editorLoaded @ main.js:1
(anonymous) @ main.js:1
Promise.finally (async)
internalLoadHeaderAsync @ main.js:1
(anonymous) @ main.js:1
Promise.then (async)
loadHeaderAsync @ main.js:1
reloadHeaderAsync @ main.js:1
setHwVariant @ main.js:1
e.onClick @ main.js:1
d @ main.js:1
m @ main.js:1
w @ main.js:1
(anonymous) @ main.js:1
_ @ main.js:1
N @ main.js:1
T @ main.js:1
O @ main.js:1
Cn @ main.js:1
ce @ main.js:1
On @ main.js:1
In @ main.js:1
Pn @ main.js:1
(anonymous) @ main.js:1
Kr @ main.js:1
ae @ main.js:1
An @ main.js:1
pxtapp.js:1 error: pxt_modules/arcade-text/main.ts(1,1): error TS9200: program too big by 20658 bytes!

pxtapp.js:1 warning: Compilation failed, please check your code for errors.
pxtapp.js:1 error: pxt_modules/base/control.ts(174,56): error TS9200: !!proc || !bin.finalPass
error: pxt_modules/game---hw/controller.ts(82,21): error TS9200: !!proc || !bin.finalPass
error: pxt_modules/game---hw/systemmenu.ts(340,13): error TS9200: !!proc || !bin.finalPass
error: pxt_modules/mixer---samd/melody.ts(54,9): error TS9200: !!proc || !bin.finalPass
error: pxt_modules/screen---st7735/targetoverrides.ts(31,9): error TS9200: !!proc || !bin.finalPass
error: pxt_modules/screen---st7735/targetoverrides.ts(34,9): error TS9200: !!proc || !bin.finalPass
error: pxt_modules/screen---st7735/targetoverrides.ts(40,13): error TS9200: !!proc || !bin.finalPass

The FetchEvent for "https://dc.services.visualstudio.com/v2/track" resulted in a network error response: the promise was rejected.

If you look at one of the last lines outputted during compile:

pxtapp.js:1 error: pxt_modules/arcade-text/main.ts(1,1): error TS9200: program too big by 20658 bytes!

Your program is too big. :frowning:

So… There is no way to create normal game?

1 Like

maybe some way to put graphics on SD card and make MakeCode read from it?

1 Like

and… 15890 bytes!? Seiously? Program has to be build in 16 kb? how this is can be possible?

1 Like

There is - the combination of lots of code + lots of images probably too much for the PyGamer which I selected for the hardware. For large and complex games you are basically out of hope (like yours) because if you don’t have enough program space, it’s highly unlikely that you would have enough RAM for those little devices.

This option has been discussed before - sadly it is not possible. :frowning:

:thinking: Where did you get 16kb??? The PyGamer, which uses an ATSAMD51 chip (also what device are you trying to build for? Meowbit? I use PyGamer because that is what I have) and has 512kb of flash. In my experience, UF2 files for the SAMD51s that are somewhere around or over ~750kb will just fail to flash.

Can I somehow oprimize game and save more memory?
Pls look at project. Maybe creating images from code from array or something?
Or it doesn`t change anything?

deleted some stuff and got less difference size.
I looked at my project folder again.
File images.g.ts and images.g.jres both 300+ kb. So images are most heavy.
And its looks like their double each over. Why?

@UnsignedArduino, and I found a reason of part of lags in lvl1.
Its because of 8x8 tiles :shushing_face:
Without them it stays at 30 fps (but I gues it should be more)

1 Like

I updated. Deleted unused stuff and backgrounds from 1st intro, put them all to animation.
It works.

Now project`s folder is 769 kb. But lvl1 requires more images we need to draw.
And still no sound…
And (idk why) really bad fps, 16 then image is appear and 12 then it redrawed.
So I still need’s your help)

1 Like

Removing all the big images is the only way I can think of :frowning:

Ok then.
@UnsignedArduino

can you comment this?
or maybe proposition why it has only 30 fps with 16x16 tiles?
It`s strange, simple menu with 3 animated objects has 45 fps, but lvl1 screen with no animation has 30 fps (with 16x16 tiles) and 13 fps (8x8 tiles)
That’s not normal.

More tiles = more stuff to draw. Also, the hardware will always be much, much slower than the simulator. If you can get 30 FPS on hardware that is considered good.

To many sprites? My game lagged once because there were to many sprites

ok , if I want refuse from using 8x8 tiles (unfortunately, cause it’s perfect works in game cncept, but too slow).
How can I replace same mechanic?
Can I just use simple sprite, and get color of pixel which overlaps my projectile and redraw this pixel only?

Should it works?
I guess this can free some space in project (by deleting tilemaps extension) and free more fps cause I will back to 16x16 tiles which will not participate in this level’s mechanics

No, only 7.

1 Like

It would be really hard :frowning:
I would rather stick with the 8x8 tilemaps and have less performance because it will be easier to code.

Byt the way, thanks you for your scaling library.