Graphical enhancements revisited
#1
Posted 04 February 2015 - 07:16 PM
I'm not sure why, but for some reason I've been thinking about it again. So I figured I'd make a thread to kick around some ideas to see if this is anything people actually want, and for the people familiar with MZX's code these days to comment on how much work it'd be.
What I have in mind is:
- No longer combine the main layer, sprites, and overlays into one 80x25 buffer that's passed to the renderers, instead passing separate layers for main, overlay, and sprites, which would be composited by the renderer
- Help/F2 box, * message, and [ message would have to be sent separately too, probably as special sprites
- Legacy mode would still render everything to main layer first and omit overlay and sprites
- Add sprite flag and overlay option to render w/true transparency
- Maybe add an option to render sprites with an outline color applied, if transparency is used, to make the graphics less clashy
- Internally multiply the sprite coordinates by char size, and add new counters that let you modify the sprite position with fine units
- Make main and overlay passed as 81x26 with and with fine scrolling parameters
- Make overlay and vlayer, and by extension sprites, use the 64K char/256 color format that the renderer already uses, and add some tweaks to make this accessible for games. I think this is a good idea mainly because of how much easier it'll make resource management.
- Probably keep editor using legacy mode, meaning you'd have to use your imagination for what overlay w/transparency looks like
All this would make it more like a retro console and less like text mode, and I don't think any of the features really raise the bar for design expectations. Although you might see people layering sprites to increase color density.
I haven't looked at MZX's code in years so I might be out of touch with what the workload would be like, but it seems like a few day task, unless I'm overlooking some obstacles. Thoughts?
"The fact that I say I've one of the best, is called honesty." -Akwende
"Megazeux is not ment to be just ASCII, it is ANSI!" - T-bone6
"I hate it when you get all exo on me." - emalkay
Exophase can what Rubi-cant.
exoware is ware ur ware is exoware
ps. not loking 4 new membrs kthx
#2
Posted 04 February 2015 - 08:10 PM
Exophase, on 04 February 2015 - 11:16 AM, said:
I can't believe it's been two years either! I'm sitting here working on level design for level 17 and thinking back to when I joined the community and announced I was working on this project. I knew it was gonna take time, as my time is quite limited with family/kids/work/etc.
Anyway I like the ideas you've laid out as they sound more evolutionary rather than revolutionary. I didn't understand what you were proposing the first time around and I think my reaction was like, I like MegaZeux the way it is. But these are solid enhancements that are optional and would really help churn out cleaner more professional looking games so I like it a lot. I don't have much to add because I'm not familiar with C or software development.
"Before you criticize someone, you should walk a mile in their shoes. That way, when you criticize them, you’re a mile away and you have their shoes."
-Jack Handey
#3
Posted 04 February 2015 - 08:50 PM
Exophase, on 04 February 2015 - 12:16 PM, said:
- Help/F2 box, * message, and [ message would have to be sent separately too, probably as special sprites
Good idea. The UI needs fixing for SMZX mode anyhow
Quote
yes
Quote
sounds gross
Quote
- Make main and overlay passed as 81x26 with and with fine scrolling parameters
if this happens my current project will be a lot less impressive =(
Quote
dirty, disgusting hack. i guess i don't mind for chars, actually
for colors I'd prefer an SMZX mode 4 with 256 palettes/1024 colors instead of mode 3's ?????????????
Quote
ew
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#4
Posted 04 February 2015 - 09:57 PM
Lachesis, on 05 February 2015 - 06:50 AM, said:
Quote
- Make main and overlay passed as 81x26 with and with fine scrolling parameters
if this happens my current project will be a lot less impressive =(
exophase just wants to obsolete sprender.txt (the modern robotic.png)
i'm mostly kidding; actually, because of the aforementioned sprite layering, it sounds like it will encourage more graphical hacks, not less. i stillll think we should have an smzx mode that's basically just a 256-col 640x350 framebuffer though.
<Malwyn> Yes, yes. Don't worry I'd rather masturbate with broken glass than ask you for help again. :(
#5
Posted 05 February 2015 - 03:31 AM
Fuck it.
it's pretty much the sole reason SMZX Mode 3's UI looks like a baboon's ass and it only exists to support esoteric platform ports no one uses. also, they've fallen so far out of maintenance they don't work anyway
best case it should be a compatibility mode limited to those systems alone
i mean if it wasn't obvious from my SMZX Mode 4 suggestion I keep throwing out every time the topic comes up
lancer's suggestion isn't bad either but it's the hack of all hacks and probably above the heads of a lot of users
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#6
Posted 05 February 2015 - 03:45 AM
<Malwyn> Yes, yes. Don't worry I'd rather masturbate with broken glass than ask you for help again. :(
#7
Posted 05 February 2015 - 05:39 AM
Lachesis, on 04 February 2015 - 03:50 PM, said:
Everything I described was supposed to be agnostic to SMZX mode. I suppose you could add a flag per-layer for which SMZX mode to render in. Would this be worth exposing to the game too?
Lachesis, on 04 February 2015 - 03:50 PM, said:
I was thinking that with just 1-bit color it's too easy for sprites to merge with things of the same color behind them, but on second thought this is an even worse problem right now (where the entire char gets merged into the color), so probably a non-issue.
Lachesis, on 04 February 2015 - 03:50 PM, said:
I'm sure people will still be impressed
Lachesis, on 04 February 2015 - 03:50 PM, said:
Wait, why are you okay with this for chars and not colors? Do you have an alternative in mind, or do you just think it should be left alone?
This expansion actually doesn't really belong with the others, since it does kind of change the way you make games and it does kind of fit badly with MZX's exposed design. So maybe if it's considered at all it should be as some other effort. I just feel like these are the most limiting and frustrating aspects of MZX's graphics, especially the char limit. A 12.8% screen coverage for unique chars is really low.
Lachesis, on 04 February 2015 - 03:50 PM, said:
No reason why that couldn't be added too. I agree that the palette sharing in mode 3 isn't really that useful.
Lachesis, on 04 February 2015 - 03:50 PM, said:
To make this clearer, I'm not saying don't do it. Just that it's a pretty major overhaul for a pretty minor benefit and so probably not something worth holding up a first release over.
Lancer-X said:
Not sure if you're saying that's a good thing or a bad thing.
I think if the char increase doesn't come with it people won't be very encouraged to do it, since those high color sprites will eat the already limited chars.
Lancer-X said:
Go ahead, I guess?
I mean, we could make 640x350 versions of the current SMZX modes and so on and so forth.. But right now I'm just thinking of things that current games could benefit from with only very minor modifications.
Lancer-X said:
I don't know if MZX actually supports anything that doesn't have non-paletted graphics. It was done for performance reasons originally, but that was 11 years (!) ago so even if it were maybe plausibly relevant then (for people using machines that were already old at the time) it isn't really now.
"The fact that I say I've one of the best, is called honesty." -Akwende
"Megazeux is not ment to be just ASCII, it is ANSI!" - T-bone6
"I hate it when you get all exo on me." - emalkay
Exophase can what Rubi-cant.
exoware is ware ur ware is exoware
ps. not loking 4 new membrs kthx
#8
Posted 05 February 2015 - 05:48 AM
Exophase, on 05 February 2015 - 03:39 PM, said:
and I definitely appreciated it at the time, as I was able to run the port on my 233mhz laptop.
<Malwyn> Yes, yes. Don't worry I'd rather masturbate with broken glass than ask you for help again. :(
#9
Posted 05 February 2015 - 06:19 AM
Exophase, on 04 February 2015 - 10:39 PM, said:
Yeah, but (the way I understood it) it would mean rendering the UI through different paths and therefore be far simpler to render as non-SMZX and with a non-garbled palette.
Quote
actually i'm pretty sure it will be overlooked regardless, like the last two games i worked on
Quote
I doubt I reflect everyone's experiences, but 16 colors has always been enough for non-SMZX for me. It might be because the constraints are so tight they force me to take certain approaches I wouldn't otherwise.
Only now that I'm starting to work with SMZX and converted graphics I'm feeling the palette burn, but 256 unique palettes would fix essentially all of the issues I've had (in other words, char limitations would be my main problem again, not colors).
Quote
I think that's my main problem here, yeah—it's really hackish, even compared to the sub-char movement hacks you mentioned. it seems like it could have accessibility issues, too
Quote
makes sense, but yeah, i don't think that's much of an issue now. also, i think a couple of supported systems actually did require 8 bit color (NDS? GP2X?) but i could be wrong.
my main issue is mainly that it's making my UIs look really bad while testing my game =(
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#10
Posted 06 February 2015 - 10:16 PM
BTW: This should've been under discussion on the Requests tracker, unless otherwise specified, no offence I hope!
I unofficially did this to my fork version(s), although no-one should care anyways:
Removed the Energizer and Life color animations (Allows plain color types, removes parameter from energizer)
The Default color flash from Messages start as range 9-15 instead of range 7-15
Revamped Character Editor to include Thin and Thick Lines (Webs)
Editor Dialogs are much better
** Removed random invincibility color animation, now can use robotics for the energizer animation using the "INVINCO" counter (ruins vanilla MZX games a bit)
** "SMILYFORK" Detection Counter set to 1 (Not enabled on vanilla MZX)
** = In the next build of my fork, currently unreleased due to stuff!
This post has been edited by smilymzx: 06 February 2015 - 10:19 PM
I am at:
Z2 - ZZT forums, NESDEV Forums, SMW Central (Super Mario World)
Other interests:
Museum of ZZT, NESDEV Wiki, Wiki of Weavers (ZZT-related!)
#11
Posted 06 February 2015 - 11:40 PM
Some of those changes actually seem reasonable, others seem really single purpose. Unfortunately, it's hard to get people to care about a fork if it doesn't come with a must play game. On the other hand, it's hard to get the features mainlined if they seem too single purpose, since that encourages adding everyone's random features (although maybe not a lot of people would actually want such a thing)
That said, I'm guilty of adding at least a few things that I don't think anyone actually wanted. Biggest misjudgement was the macro editor.
"The fact that I say I've one of the best, is called honesty." -Akwende
"Megazeux is not ment to be just ASCII, it is ANSI!" - T-bone6
"I hate it when you get all exo on me." - emalkay
Exophase can what Rubi-cant.
exoware is ware ur ware is exoware
ps. not loking 4 new membrs kthx
#12
Posted 07 February 2015 - 02:24 AM
Exophase, on 06 February 2015 - 03:40 PM, said:
Do you mean alt-O in the robotic editor or something else? I use that like daily. I use the shit outta macros!
"Before you criticize someone, you should walk a mile in their shoes. That way, when you criticize them, you’re a mile away and you have their shoes."
-Jack Handey
#13
Posted 07 February 2015 - 02:41 AM
Graham, on 07 February 2015 - 12:24 PM, said:
to be fair, the fact that you don't know kinda makes exo's point for him =P
read 'macro.txt' in the docs directory. it is cool but in practice you don't tend to copypaste enough to make templating worthwhile, especially when compared to architecting your game to avoid the necessity. i've got an atan2 somewhere from before lachesis added the arctan#,# function and a crappy line drawing thing from whenever but in practice i never really used them. the problem is that the main place you want to use stuff like that (e.g. in a doz) is exactly when you're not supposed to.
something like extended macros but realtime would be nice though. i can't remember if debytecode had some functionality for user-defined function counters or not..
<Malwyn> Yes, yes. Don't worry I'd rather masturbate with broken glass than ask you for help again. :(
#14
Posted 07 February 2015 - 03:07 AM
"Before you criticize someone, you should walk a mile in their shoes. That way, when you criticize them, you’re a mile away and you have their shoes."
-Jack Handey
#15
Posted 07 February 2015 - 03:38 AM
Lancer-X, on 06 February 2015 - 09:41 PM, said:
read 'macro.txt' in the docs directory. it is cool but in practice you don't tend to copypaste enough to make templating worthwhile, especially when compared to architecting your game to avoid the necessity. i've got an atan2 somewhere from before lachesis added the arctan#,# function and a crappy line drawing thing from whenever but in practice i never really used them. the problem is that the main place you want to use stuff like that (e.g. in a doz) is exactly when you're not supposed to.
You're talking about extended macros in general, which I'm at least aware of someone (you) actually using at some point. I mean the extended macro editor which lets you input the macro parameters in a dialog window. I'm not sure anyone even knew it existed, let alone used it. What I am sure of is that it took a lot more time to implement than the plain old text entry version, especially since I don't even think I made proper use of C string functions. I think I somehow thought it was the logical extension of the original macro system. Even I never used it.
I actually did tell you about it once but I don't blame you for forgetting them ;p macro.txt does describe it. Name the macro macro_5 and press F5.
There's also that function I added specifically for Graham when he was talking to me on AIM, which lets you save then recall a position in the editor. Not sure anyone else really knew that existed either.
Lancer-X said:
Debytecode didn't have anything yet, that was supposed to be a later step in the "make Robotic suck less" plan. I think macros were supposed to be most of the language improvements would be implemented.
"The fact that I say I've one of the best, is called honesty." -Akwende
"Megazeux is not ment to be just ASCII, it is ANSI!" - T-bone6
"I hate it when you get all exo on me." - emalkay
Exophase can what Rubi-cant.
exoware is ware ur ware is exoware
ps. not loking 4 new membrs kthx
#16
Posted 07 February 2015 - 05:16 AM
Exophase, on 07 February 2015 - 01:38 PM, said:
actually i did remember that, although i was more thinking of it in conjunction with the rest of the extended macro system. i think the problem is that the text version was just quicker to use in most cases, but yeah, niche feature component of a niche feature
<Malwyn> Yes, yes. Don't worry I'd rather masturbate with broken glass than ask you for help again. :(
#17
Posted 07 February 2015 - 09:33 AM
#18
Posted 08 February 2015 - 03:28 AM
Exophase, on 04 February 2015 - 02:16 PM, said:
For anyone that has argued that MZX is too archaic of a platform for people to appreciate because it requires that nostalgic text mode tinge to really bring the games to life... This is pretty much the solution, and it's something I tried to base a new GCS around. I imagined an environment with an 8-bit graphics format with a Robotic-ish underlying scripting language and robust library of builtins. Not at all too far from what MZX does, but embracing an aesthetic that seems to have captured a wide swath of the market right now. I actually was mulling over this and made some blueprints, but just didn't have enough grit and attention to make it into anything.
Anyway I am all up on any sort of support of more layers and transparency. And um... while we're speaking of things like this... one thing I really would want is a "write vlayer" command to easily throw strings to the vlayer. Most likely this would be a hack where the coords are in the "#x" "#y" format. That would be killer.
edit: removed some ambiguous things that increased ambiguity
This post has been edited by CJA: 21 February 2015 - 03:49 AM
#20
Posted 21 February 2015 - 10:04 AM
<@Tixus> Anyway, I set the year to 1988 for some reason.
<@Tixus> And set the microwave to run for a minute and 28 seconds.
<@Tixus> But it failed to send me back in time, and I was disappointed.
<Insidious> Tixus accidentally microwaved the 80s
<Insidious> that is my takeaway from this
#21
Posted 23 February 2015 - 01:40 AM
If it was 25-30 hrs. of work would it be worth the time? Considering how much of a graphical improvement it would be, how much time would be too much to make it not worth the effort?
"Before you criticize someone, you should walk a mile in their shoes. That way, when you criticize them, you’re a mile away and you have their shoes."
-Jack Handey
#22
Posted 23 February 2015 - 04:08 PM
T-Bone, on 20 February 2015 - 05:49 PM, said:
Are we talking about true transparency? For instance a blue circle moves on top of a red square... would the blue circle have red corners of the square visible?
That's the idea, yeah.
Graham, on 22 February 2015 - 08:40 PM, said:
If it was 25-30 hrs. of work would it be worth the time? Considering how much of a graphical improvement it would be, how much time would be too much to make it not worth the effort?
My memory is hazy since it was over 10 years ago, but I'd estimate that the port needed over 500 hours of work just to reach the first version. I was spending whole days working on it. For some weeks there my internet connection was even only working for a few minutes a day, so I had to do something.. The effort was kind of a big deal, hence why no one had really done anything similar yet, and not without quite a bit of planning and trying from others.
This is nothing remotely like that. Probably just a few hour job to get the subset of items from my post that there's any actual consensus of interest in. But it's been so long since I've worked with MZX's code that I could be underestimating it, and I'm still relatively busy with various other things and not really sure I'll actually get around to doing it in the first place.
"The fact that I say I've one of the best, is called honesty." -Akwende
"Megazeux is not ment to be just ASCII, it is ANSI!" - T-bone6
"I hate it when you get all exo on me." - emalkay
Exophase can what Rubi-cant.
exoware is ware ur ware is exoware
ps. not loking 4 new membrs kthx
#23
Posted 23 February 2015 - 09:05 PM
http://www.digitalmz...=0
#24
Posted 23 February 2015 - 09:45 PM
T-Bone, on 23 February 2015 - 04:05 PM, said:
http://www.digitalmz...=0
I think this thread was already going off the rails a bit but you've just thrown it into a canyon
I stand by what advice I gave there but that's about it.. if Why-Fi and/or anyone else gets a dev cycle going for such a thing that's a great, but I don't think I'd be able to help very much.
"The fact that I say I've one of the best, is called honesty." -Akwende
"Megazeux is not ment to be just ASCII, it is ANSI!" - T-bone6
"I hate it when you get all exo on me." - emalkay
Exophase can what Rubi-cant.
exoware is ware ur ware is exoware
ps. not loking 4 new membrs kthx
#26
Posted 23 February 2015 - 10:21 PM
Exophase, on 24 February 2015 - 02:08 AM, said:
and that's just for GAME2.ASM!
although, at least that one had source code
<Malwyn> Yes, yes. Don't worry I'd rather masturbate with broken glass than ask you for help again. :(
#27
Posted 23 February 2015 - 10:33 PM
Lancer-X, on 23 February 2015 - 05:21 PM, said:
although, at least that one had source code
"The fact that I say I've one of the best, is called honesty." -Akwende
"Megazeux is not ment to be just ASCII, it is ANSI!" - T-bone6
"I hate it when you get all exo on me." - emalkay
Exophase can what Rubi-cant.
exoware is ware ur ware is exoware
ps. not loking 4 new membrs kthx
#28
Posted 19 March 2015 - 04:27 AM
<phthalocyanine> they make experiences.
<Nadir> demos, more like
<Nadir> a glimpse into what could have been if mzx wasn't such a bore to work with
<Nadir> actually, i'm being unfair
<Nadir> i would have made mzx games if it was capable of running on more than 20 computers worldwide in 1998
<Nadir> >:D
<%Alice> functor
<%nooodl> i hear C++ has a thing called functors and they're completely different from Haskell functors...
<rorirover> the result is the most horrid thing in C++, it's basically black magic and it transforms any code you're writing into some eldritch monstrosity
#29
Posted 19 March 2015 - 05:53 AM
<@Tixus> Anyway, I set the year to 1988 for some reason.
<@Tixus> And set the microwave to run for a minute and 28 seconds.
<@Tixus> But it failed to send me back in time, and I was disappointed.
<Insidious> Tixus accidentally microwaved the 80s
<Insidious> that is my takeaway from this
#30
Posted 19 March 2015 - 06:11 AM
"The fact that I say I've one of the best, is called honesty." -Akwende
"Megazeux is not ment to be just ASCII, it is ANSI!" - T-bone6
"I hate it when you get all exo on me." - emalkay
Exophase can what Rubi-cant.
exoware is ware ur ware is exoware
ps. not loking 4 new membrs kthx