Archived

This topic is now archived and is closed to further replies.

Michalson

ASCII Fishtank Mini Contest!

Recommended Posts

Update 11/19/2002 I've posted an updated version of the rules which includes instructions on how to upload your entry. You can see them at the official site. (A note to judges: I've also deleted the test information from the database, your accounts are still there but the fake entries and all the information attached to them is gone. Also a note to pan narrans, I've corrected that typo on the news page and your display name has been updated) Hopefully this edit doesn't screw up the formatting of the previous stuff in this message
EDIT: Just to clarify since this thread is now a "Gamedev Announcement": This contest is not directly affiliated with or run by Gamedev.net (so don't send Dave or Kevin questions about it, they won't know what you're talking about).

Contest Overview

The purpose of this contest is to create the most graphically appealing, interesting to watch fish tank. The only catch is that this is an ASCII (text only) fish tank. No fancy graphics or 16 million colors, the sole method of displaying your aquatic world is through text.

The contest will end on November 30, 2002 at 11:59 PM, EST

Specifics

Each entry must portray a fish tank/aquarium with your choice of real or mythical sea creatures (though it is expected that most of your sea creatures should be recognizable and not totally alien). You are limited to using either standard 80x25 character or 80x50 character text mode, and the standard palette of 16 foreground colors and 8 background colors (these colors may not be altered). How you go about this is up to you. You may create a 32bit Windows console application, a 16bit DOS application using mode 3, or you may create a pixel perfect emulation of either mode using your preferred graphical API.

Additionally...
  • Each individual can submit any number of unique entries (however it is at the organizers/judges discretion to determine if two entries by the same person are not sufficiently different, in which case the competitor may choose only one to be judged).
  • Entries must run on Microsoft Windows 98 or 2000 (preferably they should run correctly on 95, 98, ME, 2000 and XP).
  • The contest is open to everyone that abides by these rules, however entries by judges/organizers are not eligible to win and will be removed from the pool of contestants after the first round (scoring).
  • Existing "Ascii art" libraries, such as aalib cannot be used. If you have any doubt regarding the validity of a library please contact the contest organizer and provide a link to the libraries homepage.
  • These rules may be modified at any time without prior notification.
Accurate emulation of 80x25 (8x16 characters) or 80x50 (8x8 characters) should use the following as reference.
8x16 Character Graphics8x8 Character GraphicsStandard Palette

Judging

Each judge will score entries in three categories:
  • Graphics : General eye candy appeal. Use of shape, color and animation will be considered.
  • Life : How interesting/impressive the behavior (AI) of your aquatic creatures is.
  • Appeal : Overall impression of polish, creativity and original features.
All judges will then meet to determine the final winner for each category, and an overall contest winner.
Number of winning positions subject to change without prior notice depending on the number of entries received.

Submissions

In order to qualify you must submit a single ZIP file of no more than 500KB containing:
  • Your executable and any data files it needs.
  • A readme file (plain text or HTML) explaining how to use your program and any special features you wish to point out.
  • The complete source code to your entry.
  • A plain text file, ENTRY.TXT , which lists your name, the name of your entry, your email address and optionally your forum nickname.
Instructions on how to submit your entry coming soon

Legalities

  • Authors retain all rights and ownership to their entries.
  • If source code is submitted with the contest as per the requirements, then it is up to the entrant to include any terms of use licenses with his/her source code.
[edited by - michalson on October 25, 2002 12:06:23 PM] [edited by - michalson on November 19, 2002 6:09:09 PM]

Share this post


Link to post
Share on other sites
quote:
Original post by Ravuya
Damn, I wanted to run a full-screen .mpg of a fishtank through aalib.

Resist everyone



Like I said in the other thread, an amazing, mind blowing graphical experence like full motion 3D will only get you 10/30, easily beaten by someone who spent 30 minutes making some ascii fish that move toward food.

Share this post


Link to post
Share on other sites
quote:
Original post by AnonymousPosterChild
What about a 3d ASCII fishtank with fish that move towards food?


Yes, that would get you better marks (see judging). Off course if it was prerecorded you would be back to square one.

Share this post


Link to post
Share on other sites
There is a thread somewhere about "Ascii 3D engine" you can pickup some clues there. Basically you need a software 3D engine whose output you downsize and dither for text mode. If I make an entry it will likely have an introscreen using my dither engine (emulates about 376 unique colors at 80x50 pixel resolution)

Share this post


Link to post
Share on other sites
Maybe I should use something like a cross-section. You know, divide the fish data into slices and then have the program determine which slices to display and in which order. Of course, that would only work for the side view, so I would have to find a way to make a composite image of the slices for angled views. I could probably do this through some sort of array.

AnonymousPosterChild!
Black_mage_s in disguise!

Share this post


Link to post
Share on other sites
quote:
Original post by Michalson
If I make an entry it will likely have an introscreen using my dither engine (emulates about 376 unique colors at 80x50 pixel resolution)



- That I want to see. I enumerated every possible combination of FOREGROUND_XXX | FOREGROUND_YYY | FOREGROUND_INTENSITY | BACKGROUND_ZZZ | etc etc and was amazed how many colours I could get just with ASCII chars 176, 177, 178 and 219.

With an algorithm that analysed neighbouring pixels and used any ASCII char for an appropriate shape it''d look awesome...




www.coldcity.com
code, pics, life

Share this post


Link to post
Share on other sites
Here are some examples of basic image dithering without shape analysis (still working on color matching). Both screenshots are of the smallest size you can make the console by default, 4x6.





If you have a highspeed connection you can also watch a DivX capture of full motion (30fps) video with sound in text mode: Link.

Share this post


Link to post
Share on other sites
That looks pretty nice. I just wrote an ASCII dithering engine myself, it looks surprisingly good.

But I''m afraid that all fishtank entries will end up looking all the same, if everybody uses that technique, though. I will perhaps try a totally different concept.

Share this post


Link to post
Share on other sites
quote:
Original post by Yann L
But I''m afraid that all fishtank entries will end up looking all the same, if everybody uses that technique, though. I will perhaps try a totally different concept.



To be honest I don''t think its practical (I certainly won''t be be) to use fancy text image dithering except for side elements like intros, back end graphics (such as pictures in a "pet shop" interface) and backgrounds. No matter how much you dither, the fish are just too small to look like anything but blobs (unless you make your fishtank zoom in on one fish). Hardcoded ASCII fish as in the original thread are the way to go in order to create something with "Life" and "Appeal".

Share this post


Link to post
Share on other sites
Oh my LIFE that looks SO much sweeter than my console raytracer... I love it, look foward to seeing the source if you do your entry this way.

I''ve totally moved away from this approach for purposes of the contest, but I''d love to incorporate a similar technique into my raytracer. I''m guessing you don''t feel like sharing hints on how you figure out the nearest renderable colour for a given original colour just at the moment though?

Share this post


Link to post
Share on other sites
Michalson, what about audio? Can I add music? It could be dull without sound/audio.

BTW. Beat the ACHII gfx in these demos and your good:

Super Killer

PP Contact

They are amazing.

BTW. IainC, your ACHII raytracer was really cool (not too speak of the rest of the stuff on your site - you are GOD!!)

And Michalson, that video was sweet. Good luck.

I gotta join this competition, could be k00l!

/MindWipe

Share this post


Link to post
Share on other sites
quote:
Original post by MindWipe
Michalson, what about audio? Can I add music? It could be dull without sound/audio.


Yes (of course), the only limitation (and I admit it might be a big one) is that the final product must fit into a 500KB (this is due to Bandwidth issues).

quote:
Original post by MindWipe
And Michalson, that video was sweet. Good luck.


I should really get the text compressor done. The full thing is much better (though it takes up a full CD uncompressed)

Share this post


Link to post
Share on other sites
Just out of curiousity...

I'm using OpenGL to draw texture mapped quads of the ASCII characters... Does this count as "pixel accurate emulation"?

[edit] just to clarify, the reason I'm asking, is because obviously, when the app is run at normal resolution, it should be pixel perfect, but this will partially depend on the video card settings. I know that on my card, you can set the maximum texture quality via a control panel applet, the result being that the drawn ascii characters get blurred when the card is not set to the maximum quality setting, and look blocky if I use the GL_NEAREST texture paramater. [end of edit]

Oh yeah, and what about having a superimposed logo, or copyright noticed done as a regular image?

[edited by - skjinedmjeet on October 23, 2002 2:31:04 PM]

Share this post


Link to post
Share on other sites
quote:
Original post by skjinedmjeet
Just out of curiousity...

I'm using OpenGL to draw texture mapped quads of the ASCII characters... Does this count as "pixel accurate emulation"?

[edit] just to clarify, the reason I'm asking, is because obviously, when the app is run at normal resolution, it should be pixel perfect, but this will partially depend on the video card settings. I know that on my card, you can set the maximum texture quality via a control panel applet, the result being that the drawn ascii characters get blurred when the card is not set to the maximum quality setting, and look blocky if I use the GL_NEAREST texture paramater. [end of edit]

Oh yeah, and what about having a superimposed logo, or copyright noticed done as a regular image?

[edited by - skjinedmjeet on October 23, 2002 2:31:04 PM]


Rule Clarification 1: 3D APIs


So long as you attempt to make it pixel perfect it will be accepted, however by using a 3D API to do round-about emulation of a 2D surface you take the risk that it will not run correctly on a judges machine (tearing, etc), which might lose you marks in the graphics or appeal category.

Rule Clarification 2: Regular Images


You main program should not include any "regular" images, only text. However to allow reasonable setup and configuration the following will be allowed:

A hardware configuration screen (can be in a seperate exe if you wish) can be included which can use normal Win32 GUI, including images such as logos. The only restriction I will place is that these configuration screens should *not* be used for getting graphics/etc marks so those screens should *not* include animated/live content or sound except to test it (basically if the user does nothing the screen should be entirely static).

I will also allow for reasons of practicality the use of basic message windows (text, a standard icon and an OK button) in your main program.

[edited by - michalson on October 24, 2002 6:54:41 AM]

Share this post


Link to post
Share on other sites
quote:
Original post by Michalson
There is a thread somewhere about "Ascii 3D engine" you can pickup some clues there. Basically you need a software 3D engine whose output you downsize and dither for text mode. If I make an entry it will likely have an introscreen using my dither engine (emulates about 376 unique colors at 80x50 pixel resolution)


Wow... originally I was going to do a fish tank, but this ascii engine has really sparked my interest. How are you managing to emulate 370+ colors? The most I can forsee is 144 or so... Hmm... I guess this is just going to take some thought. It doesn''t seem to be a very popular topic as searches turn up very little.

Share this post


Link to post
Share on other sites
To see all the colours you can get, make a console program that outputs ASCII chars 176, 177, 178 and 219 with every possible combination FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_GREEN | BACKGROUND_INTENSITY etc etc...

Or for a cheap monochrome version have a look at my realtime ASCII raytracer.

www.coldcity.com
code, pics, life

Share this post


Link to post
Share on other sites
quote:
Original post by IainC
To see all the colours you can get, make a console program that outputs ASCII chars 176, 177, 178 and 219 with every possible combination FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_GREEN | BACKGROUND_INTENSITY etc etc...

Or for a cheap monochrome version have a look at my realtime ASCII raytracer.




Yeah, I did some thinking and came up with the same way to get all those colors... (though I included char 32 as part of the process). My current confusion lies in the calculation of color based off of the pixel data. IE: taking a color (say a 50/50 split of blue and green and converting it to the appropriate color in a BG/FG ASCii character...

I did check out your raytraceer, very cool... would love to see it in color. I think this may be my new obsession.

- James

Share this post


Link to post
Share on other sites
quote:
Original post by AtelierVisca
My current confusion lies in the calculation of color based off of the pixel data. IE: taking a color (say a 50/50 split of blue and green and converting it to the appropriate color in a BG/FG ASCii character...



Thanks for the compliments

You'll notice Michalson being all coy about the color lookup he's using...

In the hideous colour ASCII version of the raytracer you can see the beginnings of something. First I work out which base colour the pixel I'm testing is closer to; eg, if r > (g + b) it's a "red" shade, if g > (r + b) it's "green"... and then I can set the colour and choose the char based on the brightness as before.

It kind of more-or-less almost nearly considers working, but looks crap.

Just had a thought though (why am I even saying this before the competition's through?) - I bet it'd be worth *cough* *splutter* *cough* *wibble*

(Edit: I'm tired, I'm working late, I want to go home, I can't spell)

(Edit: Saw fit to splutter all over the blatant big huge hint I dropped that crapped all over my competitive edge )

www.coldcity.com
code, pics, life

[edited by - IainC on October 24, 2002 3:50:08 PM]

[edited by - IainC on October 24, 2002 3:53:00 PM]

Share this post


Link to post
Share on other sites
quote:
Original post by IainC
Just had a thought though (why am I even saying this before the competition''s through?) - I bet it''d be worth *cough* *splutter* *cough* *wibble*




I can''t see this being useful for the actual fish tank. The fish might be too small to really be worthwile (too blurred).

But I agree that Michalson is keeping a pretty tight lip on his technique...

- James

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.