This is still a WIP and my first almost complete production for pico-8.
Missing:
- an actual end game (now it resets and bugs).
- more wave
- a boss?
Things I'm happy about:
- procedural explosions
- procedural blinking starfields
- 8-bit art is almost ok for me
- actor model too complicated but works nonetheless
Not sure I'm motivated to finish this though.
I have a question!
Your code's very well structured, so I'm going to assume you're an experienced programmer. You're doing something I find a little curious, but rather than jump to the typical one-programmer-reads-another-programmer's-code conclusion that "ur doin it rong", I want to know if there's something for me to learn here.
When you have a construct like this:
if actor.cpu._draw then actor.cpu._draw(actor) end |
I'm wondering why you use the conditional execution of the possibly-nil method instead of, as with a base-class no-op function, simply executing some form of nop() that's automatically added to all actors and then overridden on drawable ones.
Other than that, my overall observation is, simply put: Nice presentation.
Not much to offer in terms of feedback, since I think you were on the right track already. I only have two very minor items you might find useful:
-
Color 1, dark blue, where used on the ship tends to merge into the black background due to the nearby high-contrast colors on the ship, suggesting more of a gap than a darkly-colored part of the ship.
- Your explosion sfx are a little harsh, to the point where it's uncmfortable to hear them at any substantial volume. The pop induced by turning on a white noise generator is in an otherwise-silent environment is always going to be a problem. You could mitigate this a little by smoothing the volume envelope or possibly reducing the pitch, which is often a good idea with an explosion anyway. I won't try to tell you exactly how to fix it, just that it does need some work.
Hey, thanks for the feedback :-)
The code you read and highlighted is very crappy, since it was the first iteration of me understanding the object model in LUA. This code is there because I probably had at one point an actor which had no such method (and was no inheriting the default actor behavior...): CRAP :)
The second version of the engine, which gets rid of the cpu altogether and reduces the complexity is much better but nothing was done entirely with it (I got lost while trying to add depth levels to my actors). It will probably resurface one day...
Thanks for the feedback and for the time you took to have a look at the cart:
- I will update the colors then :)
- re the sound, I'm really crappy at sound design! I will experiment to make this more audible. Sorry for your hear loss :)
Aha, okay. Sometimes people employ patterns I don't know about yet. I stopped working professionally a few years back and sometimes something new starts showing up that I've never seen. That's why I asked. :)
[Please log in to post a comment]