My new attempt at making snap faster

ive tried to make fast games in snap many times before
example: making a game entirely inside of a list: textopolis

but now i had another idea a game with all its data in a table using the pen to draw all the sprites
here's the link:

Wouldn't that be slower, to draw everything with the pen?

no i use the stamp function
just look at the code and you'll see what i mean

it is probably faster just to let snap render everything on its own
also, i can't figure out how to use the blocks
you give no tutorial on how to use it and it isn't clear just by looking at it
also, some command blocks should be reporters imo
you are also using input boxes (not incorrectly, but) in a way that could be improved.
instead of having to type the sprite names, why not just click on the input and choose one?

Ok I’ll add a tutorial

and also the reason I made it render with pen is because
clones and extra sprites always make snap lag
this fixes that

Clones yes, that’s always been my biggest issue with snap. Clones aren’t optimized at all. You can’t have more than like 4 active at once without a project crashing or freezing.

Other sprites? No, I’ve never had a time where making like 20 sprites to use as clones are slower than making 20 clones to use

And yeah pen is faster but it’s much harder to use than making duplicate sprites

yeah but my custom blocks will make it much easier

And how so? Would you mind making an example project using these blocks so I know what I’m doing

Never mind I do understand, only issue is that the sprites flicker quite alot

yeah I’m going to fix that very soon

I kinda snapifyed the blocks


I can give you the project if you wanr

sure that could help

https://snap.berkeley.edu/snap/snap.html#present:Username=cookieclickerer33&ProjectName=Pen%20based%20Oop

I added a change by block too for convenience

Looks like you forgot to warp one of the scripts lol. That’s why it was slow

Why do you need “turn current pen trails into a costume” that seems to be causing the flickering as it’s trying to turn into a costume that doesn’t exist

You forgot to warp the code inside forever loop drawing code. So the “for” loop was animating

Warping the code in the forever loop fixes the flickering

Also as a tip, the turtle sprite sets its inside color to be the pen color, that could be one of the issues

scan for sprite named [] can be optimized by reporting when the sprite is found. The sprite position variable would no longer be necessary and the sprites in the list that are after the found sprite would not be scanned.

Also it looks like costumes don’t work at all

About the sprite thing, what’s wrong with


I did that and it’s much faster now, almost no lag at all (except for the fact it’s limited to the forever loop update speed)

I’m going to add that to my version

Add what

What’s up with the “for” loops in the sprite create block?

I updated my version to fix a lot of bugs and remove unnecessary code

There’s TONS of new stuff in this update!

v1 changelog

Added support for directions
New “direction” option in “get” block, “set” block, and “change” block
New “direction” input for making new objects
New “move steps” block
New “position” option in “get” block drop-down
New “delete (obj)” block with “all objects” as a special option
New “point at” block
New “go to xy” block
New “have (obj) go to (sprite)” block
New “tell (sprite) to go to (obj)” block
The “have (obj) go to (obj)” block now supports lists in the second input
Removed unnecciary code
Warped some blocks
Make some blocks faster
Renamed internal blocks

v2 changelog

Added support for sprite sizes
New “size” option in “get”, “set”, and “change” block dropdowns
New “ask” block
New “is (obj) touching (obj)?” block
New “is (obj) touching (sprite)?” block
Deleted “point at” block (redundant)
Deleted “go to xy” block (redundant)
Rewrote most block definitions to be super small
As an example


Vs

New “type of ()” block (used to make the definitions this small)
New “become (obj)” block for sprites (more of a backend)
New “does (obj) exist?” Block (more of a backend)
New “return” block (only backend)

v2.5 changelog

Added support for sprite layers
New “make (obj) go to layer” block with front and back as its special options
New “layer” option in the “get” block