Jump to content
IGNORED

[AQUARIUS] Rexpaint Ascii graphics package


barnieg

Recommended Posts

I've been playing around with REXPaint (A fork of Asciipaint) to find something to help with screen and graphics creation. As a start I've created some Aquarius font png's to drop into REXPaint:

post-17869-0-26525300-1384985352.pngpost-17869-0-93763500-1384985365_thumb.png

 

Download REXPaint and add the png's to the \data\fonts directory of the program and edit the _config.xt file to add the following lines:

 

"Aquarius" cp437_8x8 aquariuschars_8x8 1 // 640x480

"Aquarius_Big" cp437_16x16 aquariuschars_16x16 1 // 1280x960

 

Still early day's yet, the default screen is bigger than on the Aquarius so may be possible to use it as a virtual map? I also need to have a look at exporting from REXPaint to make use of the data all help appreciated!

 

 

 

  • Like 4
Link to comment
Share on other sites

I've been playing around with REXPaint (A fork of Asciipaint) to find something to help with screen and graphics creation. As a start I've created some Aquarius font png's to drop into REXPaint:

attachicon.gifaquariuschars_8x8.pngattachicon.gifaquariuschars_16x16.png

 

Download REXPaint and add the png's to the \data\fonts directory of the program and edit the _config.xt file to add the following lines:

 

Still early day's yet, the default screen is bigger than on the Aquarius so may be possible to use it as a virtual map? I also need to have a look at exporting from REXPaint to make use of the data all help appreciated!

 

 

 

Hey there, REXPaint dev here.

 

If the canvas is too large, you can always resize it (ctrl-r), or even change the default dimensions in the config file. Ctrl-e exports the image as a .png, and I'm not sure what you intend to export for in this case, but the standard compressed .xp format can be read from binary fairly easily for use in other programs. See the associated manual appendix if that's what you're trying to do.

 

By the way, while the functionality is similar, REXPaint isn't an AsciiPaint fork--it's a separate project built on top of my ASCII game engine (REX, hence the name!).

  • Like 2
Link to comment
Share on other sites

Hey there, REXPaint dev here.

 

If the canvas is too large, you can always resize it (ctrl-r), or even change the default dimensions in the config file. Ctrl-e exports the image as a .png, and I'm not sure what you intend to export for in this case, but the standard compressed .xp format can be read from binary fairly easily for use in other programs. See the associated manual appendix if that's what you're trying to do.

 

By the way, while the functionality is similar, REXPaint isn't an AsciiPaint fork--it's a separate project built on top of my ASCII game engine (REX, hence the name!).

 

Sorry, my mistake regarding fork!. I'm looking at using the output to design both screen layouts and character graphics for the Aquarius, hope to get more time to read more in detail later on. Graphics wise the Aquarius is very limited so the character set is effectively all there is!

 

Thanks for the input, much appreciated! ;-)

  • Like 1
Link to comment
Share on other sites

No problem, seems like you're working more or less under the same constraints of the games I create, which is what REXPaint was built for in the first place, so hopefully it proves useful. I use it for both in-game art and UI mockups etc.

 

If you have any questions feel free to ask. I also still add new features occasionally, so suggestions might be implemented.

  • Like 3
Link to comment
Share on other sites

Hey there, REXPaint dev here.

 

 

 

Hey do you think you could add support for a scripting language like Lua or Javascript.

Something with a small footprint and cross platform. With that anyone should be able to write new ways to save files and/or mod the program.

Or maybe first support some command line options like open files in a directory with a delay for animation/slideshow or launch with certain configs by pointing to specific file.

Maybe thats already in there?

Edited by Pset
Link to comment
Share on other sites

Ouch, that would be a lot of work. Enabling modding of the program itself would be a big project for me, since I haven't handled anything like that before. In terms of saving files in different formats, it's fairly easy to read in the .xp format using an external program then convert it. If it's a popular/common format, I may add it, though .png is the ideal image format for these types of graphics.

 

If you need in-program animation (or some other formats that REXPaint doesn't yet support) you can try Ascii animator (which is a fork of AsciiPaint): http://forums.tigsource.com/index.php?topic=21212.0. It's even open source so you can modify it if necessary.

 

The REXPaint .cfg file allows you to set your launch settings (and it saves your settings there on exit); it's also the way to change the canvas view dimensions, which can't be done from within the program. The in-program browser should be suitable for scanning through images in directories, though there's no automated slideshow mode--that sounds like an interesting idea. The most recent version has added more file manipulation support to the image browser as well.

Link to comment
Share on other sites

http://www.lua.org/pil/25.html it might be easier than you think if that page makes any sense to you.

 

Meanwhile some other suggestions.

A selection rectangle with copy, paste functions would be good.

Some kind of library system to reuse selected/copied shapes as brushes would be good to.

Maybe a freeform selection/fill tool.

 

A character zoomed preview option.

Sometimes its hard to tell what exactly the characters are.

Is that an upside down L next to a right justified I? Or is an upside down backwards L next to a left justfied I?

I dunno.

Edited by Pset
Link to comment
Share on other sites

Ah, I was referring to using Lua etc. to actually extend the program by exposing methods, not for data/configuration purposes. For the latter there's already multiple config files, and parsers are easy to write, it's the exposing of C++ classes that wouldn't be worth the effort.

 

Have you tried REXPaint yet? There's already a copy and paste tool, even configurable partial copy/paste of character/foreground/background colors. There's also a configurable fill tool. Zooming would require extending the engine since it's actually a simple terminal emulator with zero image manipulation, but if you have multiple sizes of a single font (RP comes with four different sizes of the default CP437 font), you can zoom the entire interface (and art) on the fly with the press of a button.

 

Right now you can use the paste tool as a brush, though it's not quite as versatile as a true brush system, which I'd like to add but there isn't enough GUI space for that and some other potentially useful tools.

Link to comment
Share on other sites

, but if you have multiple sizes of a single font (RP comes with four different sizes of the default CP437 font), you can zoom the entire interface (and art) on the fly with the press of a button.

 

 

That's what I did with the Aquarius font (images for RP at start of thread) as the font character is referenced it makes no difference to the output, the only downside is that the double sized font (equivalent to 16x16) makes the canvas larger than my laptop vertical resolution but nothing serious and it does mean it is easy to "zoom" in and out. I was going to create a midsized font image (12x12) however this doesn't really work as it means trying to scale each pixel by 50% so is not accurate - however a large enough monitor resolution would allow a 24x24 or bigger scaling (multiples of 8 )

 

This is a screen capture of virtual aquarius next to a 320x192 portion of RP's png output which was run through the brillant BMP2AQ:

post-17869-0-74994700-1385115686_thumb.png

Edited by barnieg
  • Like 2
Link to comment
Share on other sites

If you haven't done it already, for your laptop you can also use the config file to make the canvas area smaller (not the image itself), then drag the image around on the canvas to work on it in the larger size. I just hook my laptop up to a giant 24" monitor ;) It certainly can be tough to design intermediate fonts that maintain the same style. Looking good.

Link to comment
Share on other sites

  • 4 weeks later...

 

Bump for mention of BMP2AQ. :)

One of the world's greatest inventions.

While we are here, I can't find anything to open .xp files with

 

Saving to XPM would be great.

Have a look at this format, I've attached five images converted from bmp or png to XPM and then copied and relabeled as a .txt file so you can select it and quickly see how the data is formatted.

 

I used this format to convert the Aquarius characters to 3D models through Lua scripts after learning it is the level format for the Dungeon Master clone Dungeon Strikes Back. Tiny images, define the world, the treasures, the monsters. Very neat.

 

EDIT this message had issues on submission, hope that file attachment worked.

Discover_XPM_imageData.zip

Edited by Pset
Link to comment
Share on other sites

Oh hey Rexpaint dev, I just had an idea. If you look at my project over here, I think it should

be obvious to you that its something you can do for Rexpaint inside of Rexpaint.

 

You could go into a brush editing mode.

You still have your 16x16 grid of characters

The selection from the 16x16 grid of characters swaps to a whole 8x8 or such resolution image of the brush for editing.

Switching out of edit mode would apply all the changes and export the font data to useful formats. :D

16x16 sprite sheets are ok to start with I suppose.

Edited by Pset
Link to comment
Share on other sites

Thanks, I'll take a look at your suggestions in a bit!

 

About the .xp format, I made it up so there's nothing else out there that can open it... But it's got better compression than any existing format (along with extremely simple binary content, so it's easy for games/editors to parse). So .xp is intended primarily as the native RP file type, while there's the option to export .png for use elsewhere. In the latest release I added .ans export support as well, but that's a pretty limiting format, so only of real use to the ANSI art crowd. I'll look into adding support for more formats.

Link to comment
Share on other sites

So I see what you mean in your second post, essentially an editor within an editor. The thing is, most people already have a preferred raster/pixel editor with which they make their fonts and sprites, so I'd rather not step into that territory. I'd prefer to focus on the "terminal/roguelike" art style, as well as potential uses for game devs, hence the superior compression and simple binary format. It's likely that next year I'll take REXPaint even further in that direction to fill a gap no other program provides: The ability to build maps (complete with objects etc.) using the same character-based interface. This would be purely for game devs, though, starting with my own games ;)

 

Perhaps a better alternative to what you suggest would be the ability to create and use multi-character brushes (as exist in your average ANSI editor), though this would be more useful for artists rather than game devs.

 

As for the .xpm format, I looked into it (thanks for the resources) and it's quite... heavy. How useful would that format really be in general, though? Who uses it today and aren't there existing editors out there that can export it?

Link to comment
Share on other sites

Gimp and a ImageMagick support XPM. Most other free editors just cover png. jpg, bmp, maybe but rarely gif.

There's actually some version of GIF maybe 89a, that looks almost identical to XPM in its formatting.

 

Most game engines support images directly as images and are not working with ascii character sets for graphics.
Aquarius does not have that ability or luxury. So what we have currently is a system of making images, scrambling them

through an image translator, then pushing that back out to BASIC.

 

What would be really useful for Aquarius devs is raw ascii data.

A table of the foreground colors, a table of the background colors (unless you want to do the math for finding the
Aquarius ASCII value for foreground/background color), and a table for the ascii character data. Which could just be fields of numbers from 0 to 255.

It could work like the XPM format with lots of less text, since the Aquarius is only 40x25 characters, you only need the color index and the 40x25 field of actual ascii characters. Thats why I suggested scripting. You dont' have to code these format supports if your users can.

 

I noticed a flaw in RExpaint, I can't get text from another program and paste it in using the text tool.
So if I wanted an image with the 256 characters in it, I have to choose each and click into the picture for 512 clicks, or 255 arrow keys + 256 clicks, for something I could type up like this in Lua

 

c=0
st=""
for x=0,255 do 
st= st .. string.char(x)..string.char(32)
c=c+1
if c==15 then 
st=st..string.char(10)
C = 0
end 
end
print(st)
Edited by Pset
Link to comment
Share on other sites

Don't know why the forum is deleting all the text after the code block. here it is

The code above would of course produce this :

☺ ☻ ♥ ♦ ♣ ♠

♫ ♀
☼ ► ◄ ↕ ‼ ¶ § ▬ ↨ ↑ ↓ → ← ∟ ↔ ▲ ▼ ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6
7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^
_ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ ⌂ Ç ü é â ä à å
ç ê ë è ï î ì Ä Å É æ Æ ô ö ò û ù ÿ Ö Ü ¢ £ ¥ ₧ ƒ á í ó ú ñ Ñ ª º ¿ ⌐ ¬ ½ ¼ ¡ «
» ░ ▒ ▓ │ ┤ ╡ ╢ ╖ ╕ ╣ ║ ╗ ╝ ╜ ╛ ┐ └ ┴ ┬ ├ ─ ┼ ╞ ╟ ╚ ╔ ╩ ╦ ╠ ═ ╬ ╧ ╨ ╤ ╥ ╙ ╘ ╒ ╓

╫ ╪ ┘ ┌ █ ▄ ▌ ▐ ▀ α ß Γ π Σ σ µ τ Φ Θ Ω δ ∞ φ ε ∩ ≡ ± ≥ ≤ ⌠ ⌡ ÷ ≈ ° ∙ · √ ⁿ ² ■

Link to comment
Share on other sites

Most game engines support images directly as images and are not working with ascii character sets for graphics.

Aquarius does not have that ability or luxury. So what we have currently is a system of making images, scrambling them

through an image translator, then pushing that back out to BASIC.

Interesting. (I know nothing about Aquarius aside from what I've learned in this thread =p)

 

What would be really useful for Aquarius devs is raw ascii data.

A table of the foreground colors, a table of the background colors (unless you want to do the math for finding the

Aquarius ASCII value for foreground/background color), and a table for the ascii character data. Which could just be fields of numbers from 0 to 255.

E.g. a new file format, eh? Yes, something like this would be better implemented by the user themself, so they get precisely what they want. There's always the option of writing a binary converter from the .xp format, but that's somewhat more difficult than scripting. I'll be looking into multiple new export options for the next version--xpm will be at the top of the list since you mentioned it (and provided me with useful reference files, thanks!).

 

I noticed a flaw in RExpaint, I can't get text from another program and paste it in using the text tool.

So if I wanted an image with the 256 characters in it, I have to choose each and click into the picture for 512 clicks, or 255 arrow keys + 256 clicks.

The text tool is intended purely for typing actual readable text, not for entering arbitrary characters, so it doesn't integrate with the system clipboard since it wasn't meant to handle significant chunks of text. It's currently even so limited as to only allow one line of text per use! I'll add its expansion as a possible feature on the to do list, which is now growing quite long (more than 10 major features...).

Link to comment
Share on other sites

Last night before dawn, er before bed, I was learning imageData and trying to parse the Aquariuschars_8x8.png.

After chattering away in here this afternoon I got back to work and it all came together, then broke a thousand times.

But here we go alpha version one of
REXReader the Aquarius Screen Detective

For Mac, Windows, and Linux and includes the Livecode stack and scripts

Read 640x400 or 320x200 Aquairus font paint pngs

Point REXReader at the file

Wait a long time (its really slow doing character recognition).
BEEP, there's your BASIC file ready to paste into your emulator after about 2 minutes.

 

KvpoZEL.png

 

 

FYI.

Raw export of the position, character, color would be much more useful than any image format.

Save me a day of coding this, and every two minutes it takes to convert that information from a png.

Certainly your code is storing some kind of "glyphN, columnX, rowY, foreground, background" data?

A raw dump of that would be second to parse for anyone.

REXReader.v0001.zip

Edited by Pset
  • Like 1
Link to comment
Share on other sites

Wow, nice!

 

FYI.

Raw export of the position, character, color would be much more useful than any image format.

Save me a day of coding this, and every two minutes it takes to convert that information from a png.

Certainly your code is storing some kind of "glyphN, columnX, rowY, foreground, background" data?

A raw dump of that would be second to parse for anyone.

The specification is in the manual, and yep, the format is really simple. I'll add one or more text export options in the next version, at least one being a raw version matching the current format for anyone preferring text over binary. (The original intent of the editor was to make art for my projects which may use hundreds of .xp files as assets and therefore its' best to keep the size from being unnecessarily large, but I'm expanding features as other people request them since there's a somewhat broader user base now.)
Link to comment
Share on other sites

  • 1 month later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...