tile/sprite/scroll engine, artist needed

Show us what you're working on, (preferably with screenshots).
Post Reply
Alone Coder
Manic Miner
Posts: 401
Joined: Fri Jan 03, 2020 10:00 am

tile/sprite/scroll engine, artist needed

Post by Alone Coder »

This engine supports 256 tiles 16x16, or 4 sets of 256 tiles 8x8 (so you can type on tilemap if needed).

Supports any number of sprites with widths 8, 16, 24, 32 (the latter is byte-aligned, the rest are pixel-aligned), height up to 32.

It has two options:
- doublebuffering (i.e. 128K two screens) without scrolling, but with up to 50 Hz update (depends on the number and sizes of sprites), because it doesn't redraw the whole screen, only the updated 8x8 cells. This version has no vertical clipping of sprites, only the horizontal clipping. Can be added IF NEEDED.
- screen buffer with sprite clipping on all 4 sides, with scrolling just when you show it on the screen (fast technique from Worms, now with LSB-cycled screen buffer). It's planned to support 50 Hz update in a branch when the scroll is byte aligned (with the same strategy as in doublebuffering), but today 50 Hz is only available here without scrolling.

Sprites can be automasked or not (all of them), with automask 3x3 or 5x3.
Supports mirroring of sprites without the doubling of gfx.

The screen buffer is in colour (the scroller supports it), but the tiles don't include the attributes (you can put them in tilemap separately). This can be changed in the future (IF NEEDED). Sprites are monochrome (colour can be supported IF NEEDED, there are many possible techniques).

This version allows for horizontal scrolling with 2-pixel steps (I can add odd steps if needed, but I recommend scrolls 2 and 6 for low colour clash scrolling and scroll 0 for static scenes, for example, with battles). Vertical scrolling is not yet supported, it is planned (IF NEEDED) in 8 pixel steps (i.e. no scrolling while you jump, only scroll when you land).

No doubling of gfx for scrolling, so it can have tons of gfx.

One automasked sprite 16x16 takes 4474 to 7715 ticks depending on X and mirroring.
A 17-line tilemap with no updated cells is drawn (to doublebuffered screen or to screen buffer) in 6393 ticks, plus 219..244 ticks per updated cell. The same timings for showing the screen buffer on screen (i.e. if no doublebuffering or scrolling).
With 17-line screen, scrolls 2 and 6 take 166788 and 175790 ticks.
It uses stack for everything, but it still supports 50 Hz interrupts (with very tricky handler).

Works on 48K, 128K is half ready (sprites and tiles in pages, scrolling is also planned for doublebuffering), and there is a design compatible ATM-Turbo tile/sprite/scroll engine (sprexamp) to make games in 3 versions.

This engine allows for games like Fantastic Dizzy, Castlevania, various scrollshooters and platformers.

I am slowly updating and debugging it, but I have no motivation.

Artists are needed to make a solid game.
I mostly dwell here: https://discord.gg/FuP2weFJ
Alone Coder
Manic Miner
Posts: 401
Joined: Fri Jan 03, 2020 10:00 am

Re: tile/sprite/scroll engine, artist needed

Post by Alone Coder »

Updated, now it supports fast redraw (up to 50 Hz) in scrolling mode when the scroll is stopped.
Ralf
Rick Dangerous
Posts: 2289
Joined: Mon Nov 13, 2017 11:59 am
Location: Poland

Re: tile/sprite/scroll engine, artist needed

Post by Ralf »

This is a very cool and advanced engine.
Please make some better example for it as now the example looks ugly and people may not appreciate it as it deserves.

You have one logical error. When something moves left and you scroll right it should move even faster left. And in your example
it does the opposite - it freezes in place. So change the sign while adding speeds :)
Post Reply