Got to thinking about Populous today; played the hell out of the game on my Amiga 500 when I was a kid.
This is a first crack at a terrain manipulation demo in that style. There's no game here yet, just a small map you can terraform and a little dude running around willy nilly on it and seeming rather distressed when he's in the water. I may try and build a little game out of it, though just sort of working out how to handle the isometric sprites in a basic way has been the rewarding bit I was aiming for.
A neat discovery in all this was that I could get all of the terrain drawn using 7 distinct sprite shapes, thanks to careful use of horizontal and vertical flipping and palette swaps (and if I wanted to trade a little more code I could get rid of one of those by compositing two others). Was a little bit of a note-taking headache to make that work, but really satisfying once I got it.
Right now the map is just fixed in size (I threw in a little camera movement to follow the cursor around), but an obvious next step tech-wise would be to dynamically scroll through a larger map only showing a chunk of it in the viewport.
Hat tip to YellowAfterlife for their slick isometric demo last week, which put me on to the idea of giving this a shot.
Can't wait to see future endeavors in the isometric sector! (some form of XCOM, mayhap?)
Are the graphics ripped from the DOS port? Looks really nice.
No, just estimated roughly from screenshots. None of the existing versions would work directly even if I wanted to lift the art, since it needed to be scaled way down to fit a reasonable number of tiles on PICO 8's tiny screen. Each of my tile sprites fits in a 2*2 region of the sprite map, including a lot of wasted space due to the diagonal nature of a given tile -- a lot of wasted negative space there (though it could probably be reclaimed if necessary through some really aggressive sprite coloring hijinks and pal() and palt() calls to ignore non-target-tile content of a much more tightly packed sprite sheet).
My method was basically:
- Look at some screenshots.
- Try to estimate the major tile deformations the game used.
- Sketch those out.
- Come up with a relative coordinate system for classifying each allowable tile deformation.
- Figure out horizontal/vertical/rotational symmetry for different deformations that could use the same sprite, note those down.
- Build a lookup table for all of that.
The art itself turned out to be a pretty minor part of the process, and I'd like to look at going back for a second pass on it at some point to see if I can make it feel a little more organic and less straight up dithered, but with such small sprites there may not be a ton of room for expression there.
If anybody feels like having a whack at the art or at building something, you're totally welcome to dig in.
[Please log in to post a comment]