Ok folks, here's a hard one...
I've kind of ditched by 3D game development plans for a while to go back to 2D, mainly because, well, it's more fun and it allows me to concentrate more on game-play and old-school quarter-eating fun like I remember from the days of Aladdin's Castle and Putt-Putt. 3D worlds just aren't as much fun and they don't allow one to express imagination quite the same way. It's like watching a movie instead of reading a book.
Suppose I want to want to do some 2D graphics in Perl that is the equivalent of an old-school X11 screensaver. Nothing fancy, just some on screen moving pixels and we can be done with it.
Unfortunately I have a laundry list of things I have explored, and I see major limitations in all of them. The "killer" library does not yet exist!
- OpenGL is not a good option since OpenGL.pm is poorly maintained and does not compile on my system, etc. PDL's OpenGL module does compile, that's nice, but doing 2D through OpenGL is a bit of overkill.
- Something like Linux::SVGAlib is not good because not many folks will have svgalib and it's not available through apt. Meaning I'd be the only one who ever used by program.
- Tk::Canvas allows vector based operations, but there is no good way to do pixel based drawing. I suppose some of the photo classes might work, but I don't think they were designed for "flashy demo" purposes so this seems to be a bad idea. I can animate shapes, but for pixel-based fun there aren't many good options. The "Mastering Algorithms in Perl" book (which I don't own) evidentally printed periods to the screen. Ouch! If there was a "Tk::PixelFriendlyCanvas" we'd have gold right here.
- SDL is nice, but it does not support any primitatives in the standard distribution, which is why cool apps like Frozen Bubble have to pretty much develop their own API's and can get very messy. Also it has a very good tendancy to lock up my machine in a non-killable sort of way, which is annoying -- that's what a low-level API does to you though :)
- X11::Protocol is a pain in the butt for this sort of thing, but it would work. It's just painful to get off of the ground.
- X::Osd works really well for what it does, but it does not allow pixel-oriented drawing.
Anybody have any ideas as to how I should get out of this rut? Or where I should just bite the bullet and deal with things?
Honestly, game development was so much easier (it seemed like) back in the day with QBASIC. I know I could do everything in C, or I could buckle down and learn XS (and then use something like clanlib from there), but I'm really just trying to get to that "programming is supposed to be fun" level. In other words, can I get where I want to be without a tremendous amount of pain :) Game-development should be fun and accessible in all languages, and right now it appears Python is slightly kicking our butts with PyGame support being fairly common place.
Maybe I'm wrong for trying to have this much fun in Perl, but hey, I like to choose the languages with the most advanced constructs available...C doesn't do that for me and then you get bogged down with data structures and memory management.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.