• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 06:34
CEST 12:34
KST 19:34
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
ByuL, and the Limitations of Standard Play3Team Liquid Map Contest #22: Results and Winners7Code S Season 2 (2026): RO4 and Finals Preview12TL.net Map Contest #22 - Voting & Ladder Map Selection7Code S Season 2 (2026) - RO8 Preview8
Community News
MC vs IdrA, Boxer vs Nal_rA to be Legacy Matches @ BlizzCon225.0.16 Hotfix (June 30) - Balance + Bug Fixes28Weekly Cups (June 22-28): Zergs thrive in new patch2[TLMC] Summer 2026 Ladder Map Rotation05.0.16 patch for SC2 goes live (8 worker start)99
StarCraft 2
General
MC vs IdrA, Boxer vs Nal_rA to be Legacy Matches @ BlizzCon 5.0.16 Hotfix (June 30) - Balance + Bug Fixes 5.0.16 patch for SC2 goes live (8 worker start) Is the larve respawn broken? ByuL, and the Limitations of Standard Play
Tourneys
Crank Gathers Season 4: BW vs SC2 Team League RSL Revival: Season 6 - Qualifiers and Main Event Douyu Cup 2026: $20,000 Legends Event (June 26-28) Maestros of The Game 2 announcement and schedule ! INu's Battles#17 <BO.9>
Strategy
[G] Having the right mentality to improve
Custom Maps
New Map Maker - Looking for Advice - Love or Hate Work In Progress Melee Maps [D]RTS in all its shapes and glory <3
External Content
The PondCast: SC2 News & Results Mutation # 532 Nuclear Family Mutation # 531 Experimental Artillery Mutation # 530 One For All
Brood War
General
ASL 22 Proposed Map Pool First season(s) of tastosis gomtv gsl vods? Starcraft vs Retro Category on Twitch Best thing happen to StarCraft since Remastered? BW General Discussion
Tourneys
[Megathread] Daily Proleagues [ASL21] Grand Finals The Casual Games of the Week Thread [BSL22] GosuLeague Casts - Tue & Thu 22:00 CEST
Strategy
Simple Questions, Simple Answers Creating a full chart of Zerg builds Relatively freeroll strategies Why doesn't anyone use restoration?
Other Games
General Games
Dawn of War IV Stormgate/Frost Giant Megathread ZeroSpace at Steam NextFest - Last free demo Nintendo Switch Thread Path of Exile
Dota 2
Looking for a Dota Mentor Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Community Thread Vanilla Mini Mafia
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread Men's Fashion Thread Canadian Politics Mega-thread The Games Industry And ATVI
Fan Clubs
The HerO Fan Club! The herO Fan Club!
Media & Entertainment
Movie Discussion! Series you have seen recently... [Req][Books] Good Fantasy/SciFi books [TV/BOOK] *SPOILERS* Game of Thrones Discussion
Sports
2024 - 2026 Football Thread TeamLiquid Health and Fitness Initiative For 2023 Formula 1 Discussion McBoner: A hockey love story Cricket [SPORT]
World Cup 2022
Tech Support
How to clean a TTe Thermaltake keyboard? Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List
Blogs
Listen To The Coaches!
TrAiDoS
An Exploration of th…
waywardstrategy
I'm an arrogant trash talke…
FlaShFTW
Gauntlet SC2: A Retrospectiv…
Ctone23
ramps on octagon
StaticNine
Funny Nicknames
LUCKY_NOOB
Evil Gacha Games and the…
ffswowsucks
Customize Sidebar...

Website Feedback

Closed Threads



Active: 4689 users

Game Programming: Ascii Games - Page 2

Blogs > CecilSunkure
Post a Reply
Prev 1 2 3 Next All
loazis
Profile Joined February 2011
Netherlands381 Posts
July 05 2012 09:06 GMT
#21
That was cute
There is no spoon.
opsayo
Profile Blog Joined July 2008
591 Posts
July 05 2012 11:18 GMT
#22
I don't have much to add other than I really like your blog and your threads and I hope you continue to post them.

Cheers!
Spikeke
Profile Joined October 2010
Canada106 Posts
July 05 2012 13:06 GMT
#23
That's pretty cool. Good job. I made a multi-colored text adventure game before to run in a console. But it wasn't anything like this. I really the retro look. Hmm I feel inspiration coming lol. I been thinking about programming something retro lately.
peacenl
Profile Blog Joined November 2009
550 Posts
Last Edited: 2012-07-05 13:14:45
July 05 2012 13:11 GMT
#24
Nice work dude, I remember I used to build game like these in QBasic around 14 years ago, so this is a bit nostalgic for me . ALT+219, ALT+176, ALT+177 and ALT+178 were the way to go to draw something :D After that I started using the draw function. The only issue I think I had were the different resolution ratios.
- One does not simply walk into a bar and start calling the shots.
- Failure doesn't mean you are a failure it just means you haven't succeeded yet.
CecilSunkure
Profile Blog Joined May 2010
United States2829 Posts
Last Edited: 2012-07-05 18:48:11
July 05 2012 18:31 GMT
#25
I've updated the engine!

New stuff:
  • Implementation of my simple 2D collision library
  • Implementation of my simple 2D vector library
  • Highly organised object manager using the factory pattern
    • Allows for easy creation/handling/deletion of game objects
    • Incredibly simple to create new object types

On July 05 2012 00:10 Talin wrote:
Show nested quote +
On July 04 2012 23:48 Random() wrote:
I wonder if it is possible to gather a group of enthusiasts here on TL and make a funny little game project...


To gather a group? Probably. To actually get something finished? Much less likely.

But it would be a fun experience nonetheless (I'd be up for it personally!).

Sounds like you guys should get on it!

On July 05 2012 22:06 Spikeke wrote:
That's pretty cool. Good job. I made a multi-colored text adventure game before to run in a console. But it wasn't anything like this. I really the retro look. Hmm I feel inspiration coming lol. I been thinking about programming something retro lately.

You should join the dudes I quoted above me perhaps?

On July 05 2012 14:22 memcpy wrote:
Nice work. Do you use an in game editor to draw art?

I was using a tool someone else wrote to save time. I think I might make my own today, maybe tomorrow, maybe not at all. We'll see
opsayo
Profile Blog Joined July 2008
591 Posts
Last Edited: 2012-07-05 21:36:03
July 05 2012 21:35 GMT
#26
what tool is that?

also if anyone here is open to starting a small project i'm down. maybe cecil can help delegate?
CecilSunkure
Profile Blog Joined May 2010
United States2829 Posts
July 05 2012 21:38 GMT
#27
On July 06 2012 06:35 opsayo wrote:
what tool is that?

also if anyone here is open to starting a small project i'm down. maybe cecil can help delegate?

http://forums.tigsource.com/index.php?topic=14588.0

I could perhaps help out a little bit, but I don't have the time to run anything
LastWish
Profile Blog Joined September 2004
2015 Posts
July 06 2012 19:14 GMT
#28
Nice ascii art.

Must say though, programming in C is a suicide mission, there is no reason why not to use C++ instead.
I met a few C fanatics in my life and their preference for C(over C++ or other language) was purely emotional.
- It's all just treason - They bring me down with their lies - Don't know the reason - My life is fire and ice -
Talin
Profile Blog Joined September 2010
Montenegro10532 Posts
Last Edited: 2012-07-06 20:19:04
July 06 2012 20:18 GMT
#29
Speaking of groups, we're still on time to get in the next Ludum Dare if people are up for it

It's basically a week-long game dev competition (actually it's usually a 48hour one, the current one is an exception). It starts on Monday! It would give us some useful constraints in terms of a theme and a deadline, and competitions are fun, and if we end up sucking at least we only sunk 6 days into it.
Flonomenalz
Profile Joined May 2011
Nigeria3519 Posts
July 08 2012 08:04 GMT
#30
FEAR THE MIGHTY CALCIFER!

Great blog.
I love crazymoving
sluggaslamoo
Profile Blog Joined November 2009
Australia4494 Posts
July 08 2012 13:01 GMT
#31
On July 07 2012 04:14 LastWish wrote:
Nice ascii art.

Must say though, programming in C is a suicide mission, there is no reason why not to use C++ instead.
I met a few C fanatics in my life and their preference for C(over C++ or other language) was purely emotional.


The design of C is soooo much better than C++.

A lot of people think that C++ is probably one of the most terribly designed languages ever made. A fraction of that think the same for C.
Come play Android Netrunner - http://www.teamliquid.net/forum/viewmessage.php?topic_id=409008
LastWish
Profile Blog Joined September 2004
2015 Posts
July 08 2012 14:15 GMT
#32
On July 08 2012 22:01 sluggaslamoo wrote:
Show nested quote +
On July 07 2012 04:14 LastWish wrote:
Nice ascii art.

Must say though, programming in C is a suicide mission, there is no reason why not to use C++ instead.
I met a few C fanatics in my life and their preference for C(over C++ or other language) was purely emotional.


The design of C is soooo much better than C++.

A lot of people think that C++ is probably one of the most terribly designed languages ever made. A fraction of that think the same for C.


Can you elaborate?
- It's all just treason - They bring me down with their lies - Don't know the reason - My life is fire and ice -
CecilSunkure
Profile Blog Joined May 2010
United States2829 Posts
July 08 2012 18:32 GMT
#33
On July 07 2012 04:14 LastWish wrote:
Nice ascii art.

Must say though, programming in C is a suicide mission, there is no reason why not to use C++ instead.
I met a few C fanatics in my life and their preference for C(over C++ or other language) was purely emotional.

I've got the language down well enough so that I can dev things out pretty efficiently. I also know the limitations well enough to workaround efficiently (for example setting up object orientation with polymorphism and inheritance in a very clean way).

I'll be doing a lot of projects in C++ for the rest of my life, so I'll hammer a C one out while I have the free time to do so.
NicolBolas
Profile Blog Joined March 2009
United States1388 Posts
July 08 2012 21:25 GMT
#34
On July 08 2012 23:15 LastWish wrote:
Show nested quote +
On July 08 2012 22:01 sluggaslamoo wrote:
On July 07 2012 04:14 LastWish wrote:
Nice ascii art.

Must say though, programming in C is a suicide mission, there is no reason why not to use C++ instead.
I met a few C fanatics in my life and their preference for C(over C++ or other language) was purely emotional.


The design of C is soooo much better than C++.

A lot of people think that C++ is probably one of the most terribly designed languages ever made. A fraction of that think the same for C.


Can you elaborate?


I love C++, and I much prefer it to C. But the failings of C++ from a design perspective are pretty obvious.

Since it is a fairly low-level language, it's not fair to hang issues like "no garbage collection" and such on it. Of course it doesn't have garbage collection; it's not supposed to. Some people will hate on implicit constructor calls, temporaries, operator overloading, or other such things, but those are personal issues, not real problems.

Most of the actual problems with C++ stem from either incomplete features (templates with no concepts) or things that are necessary for C interop. For example, pointers. Pointers are good, but the syntax for them is pretty unpleasant. For example, one could imagine a `ptr<Typename>` syntax rather than `Typename*` syntax. It's more obvious what goes with what and everything; you don't have the `const Typename *` vs `Typename * const` issue that forces you to read backwards. It's clear that `const ptr<Typename>` has the pointer being const, while `ptr<const Typename>` has the object being pointed to as const.

C-style casts are another thing that C++ shouldn't have had.

There are a lot of just generally ugly syntax issues. C++ prefers to use an operator rather than a keyword for things. The C++11 lambda feature is a great feature, but it is induced with the oddball `[]` syntax rather than a keyword.

iostreams also suck balls. The only advantage they have over C-style IO is that they're type-safe (and therefore extensible). The C++ standards committee really needs to come up with a better, extensible stream API.

std::basic_string is a poorly-designed class. It has no real support for Unicode-encodings (though then again, neither does much else in C++). It has too many member functions that could have just been standard algorithms. And so forth.
So you know, cats are interesting. They are kind of like girls. If they come up and talk to you, it's great. But if you try to talk to them, it doesn't always go so well. - Shigeru Miyamoto
NicolBolas
Profile Blog Joined March 2009
United States1388 Posts
July 08 2012 21:26 GMT
#35
On July 05 2012 00:43 CecilSunkure wrote:
Show nested quote +
On July 04 2012 17:29 Tobberoth wrote:
Cool and all, but I'm surprised you say that writing console based games is a good start for beginners because they don't have to use black box libraries, yet the point of your post is to talk about your black box library, AsciiEngine. I mean, in the same sense that AsciiEngine sets up a lot of boring stuff for you so you can focus on making the game, so does SDL, difference being that SDL supports "proper graphics". I would think most beginner developers would get more benefit, and have more fun, makind SDL games over Ascii games.

That does make sense, but since this is open source if someone wanted, they could use it simply as a reference point for starting their own project. That's the point I was trying to make, if that makes any sense.


There are plenty of open source engines out there. AsciiEngine is not special in this regard.

Personally, I've never understood why modern games would bother with this. There is no functional difference between so-called ASCII art and a regular tile-map. It's ultimately the same thing: draw a series of images of fixed size in grid locations. If you really want your tiles to be text glyphs, then put text glyphs in your tilemap. At least then, you'll have reasonable freedom to pick a good font that serves your needs.
So you know, cats are interesting. They are kind of like girls. If they come up and talk to you, it's great. But if you try to talk to them, it doesn't always go so well. - Shigeru Miyamoto
CecilSunkure
Profile Blog Joined May 2010
United States2829 Posts
July 08 2012 21:54 GMT
#36
On July 09 2012 06:26 NicolBolas wrote:
Show nested quote +
On July 05 2012 00:43 CecilSunkure wrote:
On July 04 2012 17:29 Tobberoth wrote:
Cool and all, but I'm surprised you say that writing console based games is a good start for beginners because they don't have to use black box libraries, yet the point of your post is to talk about your black box library, AsciiEngine. I mean, in the same sense that AsciiEngine sets up a lot of boring stuff for you so you can focus on making the game, so does SDL, difference being that SDL supports "proper graphics". I would think most beginner developers would get more benefit, and have more fun, makind SDL games over Ascii games.

That does make sense, but since this is open source if someone wanted, they could use it simply as a reference point for starting their own project. That's the point I was trying to make, if that makes any sense.


There are plenty of open source engines out there. AsciiEngine is not special in this regard.

Personally, I've never understood why modern games would bother with this. There is no functional difference between so-called ASCII art and a regular tile-map. It's ultimately the same thing: draw a series of images of fixed size in grid locations. If you really want your tiles to be text glyphs, then put text glyphs in your tilemap. At least then, you'll have reasonable freedom to pick a good font that serves your needs.

Nobody has written anything for the Windows console quite like this, and it's a whole lot of fun to create something anyways. The point isn't to make something special, but to try and provide something someone can learn from, while learning new things myself as well.
freelander
Profile Blog Joined December 2004
Hungary4707 Posts
July 08 2012 22:02 GMT
#37
For beginner game makers who want to do real programming (and for advanced users for fast game prototyping) I recommend trying out the Löve2D engine.

You have to program in Lua to use it. It's easier to learn than C imo (but you'll be a worse programmer if you only learn Lua of course ).
Lua is a script language so you don't have to compile, you just put your code in a text file to run it.

Löve2D uses SDL, OpenGl, OpenAL, box2d.. etc. Very easy to use. Your games will be platform independent with it.
Try it: http://www.love2d.org

After installing löve, check out one of my projects: https://love2d.org/forums/viewtopic.php?f=5&t=9649
And all is illuminated.
sluggaslamoo
Profile Blog Joined November 2009
Australia4494 Posts
July 09 2012 01:51 GMT
#38
On July 09 2012 06:25 NicolBolas wrote:
Show nested quote +
On July 08 2012 23:15 LastWish wrote:
On July 08 2012 22:01 sluggaslamoo wrote:
On July 07 2012 04:14 LastWish wrote:
Nice ascii art.

Must say though, programming in C is a suicide mission, there is no reason why not to use C++ instead.
I met a few C fanatics in my life and their preference for C(over C++ or other language) was purely emotional.


The design of C is soooo much better than C++.

A lot of people think that C++ is probably one of the most terribly designed languages ever made. A fraction of that think the same for C.


Can you elaborate?


I love C++, and I much prefer it to C. But the failings of C++ from a design perspective are pretty obvious.

Since it is a fairly low-level language, it's not fair to hang issues like "no garbage collection" and such on it. Of course it doesn't have garbage collection; it's not supposed to. Some people will hate on implicit constructor calls, temporaries, operator overloading, or other such things, but those are personal issues, not real problems.

Most of the actual problems with C++ stem from either incomplete features (templates with no concepts) or things that are necessary for C interop. For example, pointers. Pointers are good, but the syntax for them is pretty unpleasant. For example, one could imagine a `ptr<Typename>` syntax rather than `Typename*` syntax. It's more obvious what goes with what and everything; you don't have the `const Typename *` vs `Typename * const` issue that forces you to read backwards. It's clear that `const ptr<Typename>` has the pointer being const, while `ptr<const Typename>` has the object being pointed to as const.

C-style casts are another thing that C++ shouldn't have had.

There are a lot of just generally ugly syntax issues. C++ prefers to use an operator rather than a keyword for things. The C++11 lambda feature is a great feature, but it is induced with the oddball `[]` syntax rather than a keyword.

iostreams also suck balls. The only advantage they have over C-style IO is that they're type-safe (and therefore extensible). The C++ standards committee really needs to come up with a better, extensible stream API.

std::basic_string is a poorly-designed class. It has no real support for Unicode-encodings (though then again, neither does much else in C++). It has too many member functions that could have just been standard algorithms. And so forth.


Couldn't have put it much better myself.

I was actually waiting for someone else to respond because I know a lot of others think the same thing. I'm glad it was a C++ programmer objective enough to point out the issues.

Your exactly right in that we can't hold things like memory management and other low level functionality against C++, and a lot of C++ enthusiasts think that that's the reason people don't like C++.

My qualms are pretty much exclusively about syntax. Its just so inconsistent, its as if Strousup had never heard of POLS. You could even start with how creating abstract classes requires an = 0 on the end of your methods, and you can have a static method that has a static block, which the compiler needs to cascade that "permission" down. Now think about how the sometimes the compiler requires you to use a static block for no reason (or at least not a very good one) and you got yourself a pile of supposedly more maintainable (because its OO) but actually un-maintainable code. You could spend 10 years learning C++ and still learn some new things about it. This causes mayhem when you are with a team of developers.
Come play Android Netrunner - http://www.teamliquid.net/forum/viewmessage.php?topic_id=409008
sluggaslamoo
Profile Blog Joined November 2009
Australia4494 Posts
July 09 2012 01:53 GMT
#39
On July 09 2012 06:26 NicolBolas wrote:
Show nested quote +
On July 05 2012 00:43 CecilSunkure wrote:
On July 04 2012 17:29 Tobberoth wrote:
Cool and all, but I'm surprised you say that writing console based games is a good start for beginners because they don't have to use black box libraries, yet the point of your post is to talk about your black box library, AsciiEngine. I mean, in the same sense that AsciiEngine sets up a lot of boring stuff for you so you can focus on making the game, so does SDL, difference being that SDL supports "proper graphics". I would think most beginner developers would get more benefit, and have more fun, makind SDL games over Ascii games.

That does make sense, but since this is open source if someone wanted, they could use it simply as a reference point for starting their own project. That's the point I was trying to make, if that makes any sense.


There are plenty of open source engines out there. AsciiEngine is not special in this regard.

Personally, I've never understood why modern games would bother with this. There is no functional difference between so-called ASCII art and a regular tile-map. It's ultimately the same thing: draw a series of images of fixed size in grid locations. If you really want your tiles to be text glyphs, then put text glyphs in your tilemap. At least then, you'll have reasonable freedom to pick a good font that serves your needs.


Dwarf Fortress is a pretty good game
Come play Android Netrunner - http://www.teamliquid.net/forum/viewmessage.php?topic_id=409008
alderamin
Profile Joined June 2012
80 Posts
July 09 2012 06:29 GMT
#40
I always wanted to program some ASCII game where you capture monsters and are able to interbreed then, creating hybrids. It should work at such a basic level, simulating chemistry and organs, that you can really get some neat unpredictable results.

I coded some partial text based stuff way in the past. It is so tedious. Often I think about trying to start it. But then I realize how much time it would all take and how underwhelming and disappointing the end result would be.
Prev 1 2 3 Next All
Please log in or register to reply.
Live Events Refresh
Next event in 26m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
Ryung 229
StateSC2 150
StarCraft: Brood War
Britney 30834
Calm 8439
Sea 1775
Shuttle 472
firebathero 461
Horang2 431
BeSt 229
actioN 227
Mong 211
Larva 186
[ Show more ]
Soma 152
Soulkey 140
Jaedong 131
Last 96
Leta 92
Hyun 85
Rush 82
ggaemo 80
Dewaltoss 80
Pusan 78
ZerO 72
soO 60
ToSsGirL 52
JulyZerg 44
Killer 41
Hyuk 32
yabsab 29
Sharp 24
Sacsri 24
Bale 19
Movie 18
hero 16
Noble 16
Hm[arnc] 15
Snow 14
Barracks 14
ajuk12(nOOB) 13
Terrorterran 11
NaDa 8
Purpose 6
Counter-Strike
olofmeister1634
markeloff110
Super Smash Bros
Mew2King114
Westballz3
Other Games
singsing1151
Livibee94
Happy58
BEARDiaguz9
Organizations
Other Games
gamesdonequick850
BasetradeTV248
Dota 2
PGL Dota 2 - Main Stream197
StarCraft: Brood War
UltimateBattle 76
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 14 non-featured ]
StarCraft 2
• Berry_CruncH307
• LUISG 22
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• WagamamaTV167
• lizZardDota268
Upcoming Events
CrankTV Team League
26m
Bombastic Starleague
9h 26m
The PondCast
23h 26m
HomeStory Cup
1d
Replay Cast
1d 13h
HomeStory Cup
2 days
Replay Cast
2 days
HomeStory Cup
3 days
OSC
3 days
Sparkling Tuna Cup
3 days
[ Show More ]
WardiTV Weekly
5 days
The PondCast
5 days
Replay Cast
6 days
Liquipedia Results

Completed

YSL S3
Douyu Cup 2026
Murky Cup 2026

Ongoing

IPSL Spring 2026
Acropolis #4
CSL Season 21: Qualifier 2
SCTL 2026 Spring
XSE Pro League 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026
BLAST Rivals Spring 2026
IEM Rio 2026

Upcoming

Escore Tournament S3: W1
CSL 2026 Summer (S21)
Escore Tournament S3: W2
ASL Season 22:Wild Card Qualifier
CSLAN 4
Blizzard Classic Cup 2026
Kung Fu Cup 2026 Grand Finals
RSL Revival: Season 6
CranK Gathers Season 4: BW vs SC2 Team League
HSC XXIX
Light Tournament 2026
Eternal Conflict S2 Finale
Heroes Pulsing #3
Eternal Conflict S2 E1
FISSURE Playground #5
BLAST Open Fall 2026
Esports World Cup 2026
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.