An idea I batted around some towards the end of the summer: a Lemmings clone for the Prizm.
Because I want to reduce memory requirements as possible, I've been experimenting with ways to efficiently represent terrain (because bitmapping it during gameplay seems messy and inefficient), and that's about all I have to show for my work at this point.
Here's a quadtree-based painting tool designed to allow me to evaluate the efficiency of such a data structure to represent terrain, and eventually destined to become the level editor.
If nothing else, this project should motivate me to create more handy tools for Prizm development (for example, I'll need some spriting utilities), and I'll probably be able to document some previously unconsidered optimization techniques.
Sounds like a fun and challenging project, especially if it will bring us more Prizm programming tools. Now I know why you were talking about subdivisions and quadtrees on Facebook.
It is indeed Windows 8; I really stopped caring about how it looked after about a week.
Tangentially related, I love Qt. That program is (excluding the machine-generated code) only 89 lines of Python right now.
Not a lot to show for my work recently. The editor tool is a bit nicer to use, and I'm starting to muck with sprites and implementing the lemming state machine.
Just sketching some stuff out to demo the editor.
You might guess that I sketched this with node annotations off (which is correct) because it's misaligned and could be tweaked slightly to be much more efficient in node usage.
Coalescing to bitmaps is yet to be done (which will greatly improve the memory efficiency of detailed regions-- up to 20 times less memory in the best cases), but I want to hammer out the data structures to be used before that happens (which will allow it to give an accurate number for memory requirements rather than just a number of nodes in use).
I want to implement a tool to convert an animated sprite into data structures that can easily be read from within a program in a generic fashion, and that'll probably happen before I actually test any of my lemmings code. That would make it the first general-purpose utility to come out of this project.
For now, some people might like to know an easy way to generate animated sprite previews from frames (using ImageMagick): Code:
# Make a looping GIF with .25-second interframe delay
$ convert walking-*.png -delay 25 -loop 0 walking.gif
# Make a larger version for easy viewing
$ convert walking.gif -scale 1600% walking-16x.gif
Something similar should be able to decompose the GIF into individual frames. I believe ffmpeg can also be used to do so.
Not a lot to say. I generated the sprites with a hacked-together utility of my own creation, so putting together the sprites for further actions shouldn't be difficult.
The increased framerate is probably what makes it look better. The GIF above is 4 fps, while I was running the demo at 12 fps.
Things to do next are terrain modeling and adding to the lemming state machine (climbing, falling, dying). Then I'll need to implement terrain modification to enable additional abilities (building, bashing, mining, digging).
Been adding things to the state machine. The most important thing it needs right now is terrain modeling of any kind.
Not shown in this demo: cursor acceleration. I'll create a demo for that when I add proper cursor logic for lemming selection (it's just a dot right now).
That looks great! Keep up the impressive progress. Did you ever get coalescing to bitmaps done, as per your post from November 20th? If so, terrain shouldn't be a huge leap, right?
That looks great! Keep up the impressive progress. Did you ever get coalescing to bitmaps done, as per your post from November 20th? If so, terrain shouldn't be a huge leap, right?
I didn't touch that, and it would have been in the editor only. Since the complexity of managing such data structures is fairly high (especially once it gets to modifying the terrain on the fly), I'm going to just use bitmapped terrain for now.
merthsoft wrote:
Holy cats, Tari, that looks great! I love the little splatting with the pixels going everywhere. How many lemmings can it handle at once?
256 lemmings max right now, but that's just a side effect of the data type I'm using for the level's population. The actual set of lemmings is maintained as a linked list, so there's no limit right now.
I may fit them into a memory pool later to save a bit of memory in pointers (and probably improve locality of reference) which would impose an upper limit (probably of 255), but for now there's no technical limit.
No idea, since I haven't run it on hardware at all. There's a lot left to be done before I'll even be considering how fast it runs on the Prizm (and thus optimization).
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum