• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 21:57
CET 03:57
KST 11:57
  • 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
RSL Season 3 - Playoffs Preview0RSL Season 3 - RO16 Groups C & D Preview0RSL Season 3 - RO16 Groups A & B Preview2TL.net Map Contest #21: Winners12Intel X Team Liquid Seoul event: Showmatches and Meet the Pros10
Community News
Weekly Cups (Nov 24-30): MaxPax, Clem, herO win2BGE Stara Zagora 2026 announced15[BSL21] Ro.16 Group Stage (C->B->A->D)4Weekly Cups (Nov 17-23): Solar, MaxPax, Clem win3RSL Season 3: RO16 results & RO8 bracket13
StarCraft 2
General
Chinese SC2 server to reopen; live all-star event in Hangzhou Maestros of the Game: Live Finals Preview (RO4) BGE Stara Zagora 2026 announced Weekly Cups (Nov 24-30): MaxPax, Clem, herO win SC2 Proleague Discontinued; SKT, KT, SGK, CJ disband
Tourneys
RSL Offline Finals Info - Dec 13 and 14! RSL Offline FInals Sea Duckling Open (Global, Bronze-Diamond) $5,000+ WardiTV 2025 Championship Constellation Cup - Main Event - Stellar Fest
Strategy
Custom Maps
Map Editor closed ?
External Content
Mutation # 502 Negative Reinforcement Mutation # 501 Price of Progress Mutation # 500 Fright night Mutation # 499 Chilling Adaptation
Brood War
General
BW General Discussion Which season is the best in ASL? Data analysis on 70 million replays BGH Auto Balance -> http://bghmmr.eu/ [ASL20] Ask the mapmakers — Drop your questions
Tourneys
[BSL21] RO16 Group D - Sunday 21:00 CET [BSL21] RO16 Group A - Saturday 21:00 CET [Megathread] Daily Proleagues [BSL21] RO16 Group B - Sunday 21:00 CET
Strategy
Current Meta Game Theory for Starcraft How to stay on top of macro? PvZ map balance
Other Games
General Games
ZeroSpace Megathread Stormgate/Frost Giant Megathread Nintendo Switch Thread The Perfect Game Path of Exile
Dota 2
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 Heroes of StarCraft mini-set
TL Mafia
Mafia Game Mode Feedback/Ideas TL Mafia Community Thread
Community
General
Things Aren’t Peaceful in Palestine Russo-Ukrainian War Thread US Politics Mega-thread The Big Programming Thread Artificial Intelligence Thread
Fan Clubs
White-Ra Fan Club
Media & Entertainment
[Manga] One Piece Movie Discussion! Anime Discussion Thread
Sports
2024 - 2026 Football Thread Formula 1 Discussion NBA General Discussion
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
Where to ask questions and add stream? The Automated Ban List
Blogs
James Bond movies ranking - pa…
Topin
Esports Earnings: Bigger Pri…
TrAiDoS
Thanks for the RSL
Hildegard
Saturation point
Uldridge
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1984 users

The Big Programming Thread - Page 491

Forum Index > General Forum
Post a Reply
Prev 1 489 490 491 492 493 1032 Next
Thread Rules
1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution.
2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20)
3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible.
4. Use [code] tags to format code blocks.
sluggaslamoo
Profile Blog Joined November 2009
Australia4494 Posts
Last Edited: 2014-06-16 06:25:30
June 16 2014 06:24 GMT
#9801
On June 16 2014 15:08 Ghin wrote:
I tried learning Python on whatever sites were on the first page of Google. I spent a couple hours every day for 3 weeks and never really got to a point I could do anything except add simple numbers and look stuff up in documentation. Oh, also I can put lots of semicolons and parenthesis in.

To be honest, this thread isn't at all helpful for someone who knows nothing about programming. It's really hard to look through 500 pages and try to guess which of you are bronze league retarded theorycrafters when I have no knowledge of programming to help me decide that. I don't think it was intended to be helpful to noobs, so I'm fine with that.

It seems like none of the sites are focused towards making some simple games, which is what I want to do with it. If I could get to the point where my drawings are up on the screen, I think that might motivate me more. At this point, I don't know if it would be better to keep slamming my head into the wall trying to figure it out or just give up and find some random nob to work with.


If its python you're interested in try pygame.

http://www.pygame.org/

First learn how to render a sprite on screen in the game loop. Then learn how to render a tilemap by loading a txt file. Then learn how to move a sprite on the map using arrow keys. That's what I usually did when starting on any new 2d graphics library.

If this is too difficult try writing a very simple console game in python first and learn how data structures and functions work.
Come play Android Netrunner - http://www.teamliquid.net/forum/viewmessage.php?topic_id=409008
Ghin
Profile Blog Joined January 2005
United States2391 Posts
June 16 2014 06:41 GMT
#9802
Thanks, I'll try it out.

I'm not interested in Python particularly, it just seems to be what people suggest to start with. Of course this could be like the proverbial noob suggesting Protoss because "ezmode 1a race lol ez huehue."

I also tried learning Javascript, which grammatically made slightly more sense to me than Python, and C++ which seems a bit like talking to a pedantic 3rd grade English teacher who pretends not to understand because you used the word 'can' instead of 'may.' C++ seems more likely to cause my computer to explode because I didn't put a semicolon at the end of a line.
Legalize drugs and murder.
meatpudding
Profile Joined March 2011
Australia520 Posts
June 16 2014 06:51 GMT
#9803
Sounds like you're up to your eyeballs already, but you could try checking out Flixel. It's a free game library written with action script, although I believe you don't actually need a copy of Flash to use it. I've heard pretty good things about it.

Python is really easy to learn and use. I think that python.org is actually a good resource for picking it up. The Pygame library is definitely usable but a little lacklustre imo.

Game making in c++ is definitely the way to go if you want maximum quality in terms of features and performance, and gives you the most control over your code. All you need is a couple of years to write it and the patience to debug everything.

Javascript is ok, I've used js + html to make simple games before.
Be excellent to each other.
sluggaslamoo
Profile Blog Joined November 2009
Australia4494 Posts
June 16 2014 07:15 GMT
#9804
On June 16 2014 15:41 Ghin wrote:
Thanks, I'll try it out.

I'm not interested in Python particularly, it just seems to be what people suggest to start with. Of course this could be like the proverbial noob suggesting Protoss because "ezmode 1a race lol ez huehue."

I also tried learning Javascript, which grammatically made slightly more sense to me than Python, and C++ which seems a bit like talking to a pedantic 3rd grade English teacher who pretends not to understand because you used the word 'can' instead of 'may.' C++ seems more likely to cause my computer to explode because I didn't put a semicolon at the end of a line.


While there are probably easy game authoring tools out there, you might want to consider that things like this require a certain investment of time before you can get to the juicy bits.

We are so used to getting everything on demand that we want something straight away, get used to taking small steps to achieve your goal.

Just go with a really simple console game to begin with. Yes it may not be what you want, keep your goal in mind, and realise that this is just a stepping stone.

Use whatever language you want, if javascript makes sense to you the most then use javascript. Get used to understanding how to write simple algorithms, if statements, working with variables, etc.

If you want to write a simple tile based game, you will need a basic understanding of datastructures. Such as arrays and objects. A decent developer could hack one up from scratch in a day or two, but I would suspect a beginner would take more like a month so just be prepared.
Come play Android Netrunner - http://www.teamliquid.net/forum/viewmessage.php?topic_id=409008
Ghin
Profile Blog Joined January 2005
United States2391 Posts
June 16 2014 07:29 GMT
#9805
Thanks for the advice.

I actually have a copy of Flash, but the GUI makes me want to shove nails into my face. It reminds me of someone making a caricature of a Mac using, left-handed, libertarian, vegetarian hipster. It has so many sliders and menus that could easily be replaced by a 2- or 3-digit number. However, I will say that it is great for animating things. It's really easy when you can select areas of a drawing and put in joints or areas that will bend with a few clicks of the mouse.

I made a simple platform game on Flash but the characters would move through the walls about 20% of the time. I couldn't figure out why that was and the 2 or 3 examples of code I found online did the same thing. I got the feeling that the problem was with Flash and not with my terrible code.

I do want to have maximum quality in terms of features and performance, and I tried downloading a compiler, SDL, and some other libraries to do something with C++. I messed around with some tutorials, but none of them I found were in a style that made sense to me. I did find a really good C++ tutorial online, and I learned some of the grammar and punctuation, but it was geared towards writing console-style programs. It's way too much theory for someone like myself who can barely program a simple calculator.

I think my plan will be to try to make some garbage games with Python first. When I actually understand that, I'll switch to C++ and learn the more complicated concepts like programming for efficiency and performance. C++ seems much more in depth than Python. It seems like I would have to write several lines to do what Python does in 1 line, but the C++ lines would be more accurate. As far as spending my time goes, learning Python first to understand basic programming concepts seems quicker. I imagine I won't spend as much time writing and/or staring blankly at the code while wondering why the program won't start if I go with Python.
Legalize drugs and murder.
artynko
Profile Joined November 2010
Slovakia86 Posts
June 16 2014 07:53 GMT
#9806
On June 16 2014 16:29 Ghin wrote:
I won't spend as much time writing and/or staring blankly at the code while wondering why the program won't start if I go with Python.

You do this even when you have been making your living by programming for years.

If you want to make a "good" game the language isn't really important, in the end you will have to use openGL or DirectX and the majority of your coding will go into that. Python is nice when you want something that is syntactically easy, but for a new programmers the issue is rarely syntax, it is understanding OO and basic alghoritmhs. Just pick something you would like to create and start coding, you will have to delete and rewrite it many many times anyway.
Shield
Profile Blog Joined August 2009
Bulgaria4824 Posts
Last Edited: 2014-06-16 09:43:50
June 16 2014 09:42 GMT
#9807
Thanks for thoughts about age's method(s) as part of a Person class! It's been helpful!

Obviously, validation is important even in such classes. Is duplication a "necessary evil"? What I mean is this: if you have a method there to check for, say, negatives, that's ok. But what if you need the same check in another class? Do you have to go with a bit of code duplication? It probably concerns a very small fraction of code but I'd like to know if that's the way.
sluggaslamoo
Profile Blog Joined November 2009
Australia4494 Posts
June 16 2014 10:02 GMT
#9808
On June 16 2014 16:29 Ghin wrote:
Thanks for the advice.

I actually have a copy of Flash, but the GUI makes me want to shove nails into my face. It reminds me of someone making a caricature of a Mac using, left-handed, libertarian, vegetarian hipster. It has so many sliders and menus that could easily be replaced by a 2- or 3-digit number. However, I will say that it is great for animating things. It's really easy when you can select areas of a drawing and put in joints or areas that will bend with a few clicks of the mouse.

I made a simple platform game on Flash but the characters would move through the walls about 20% of the time. I couldn't figure out why that was and the 2 or 3 examples of code I found online did the same thing. I got the feeling that the problem was with Flash and not with my terrible code.

I do want to have maximum quality in terms of features and performance, and I tried downloading a compiler, SDL, and some other libraries to do something with C++. I messed around with some tutorials, but none of them I found were in a style that made sense to me. I did find a really good C++ tutorial online, and I learned some of the grammar and punctuation, but it was geared towards writing console-style programs. It's way too much theory for someone like myself who can barely program a simple calculator.

I think my plan will be to try to make some garbage games with Python first. When I actually understand that, I'll switch to C++ and learn the more complicated concepts like programming for efficiency and performance. C++ seems much more in depth than Python. It seems like I would have to write several lines to do what Python does in 1 line, but the C++ lines would be more accurate. As far as spending my time goes, learning Python first to understand basic programming concepts seems quicker. I imagine I won't spend as much time writing and/or staring blankly at the code while wondering why the program won't start if I go with Python.


The problem you have is probably because the character actually did not hit the wall, it skipped right over it. This is a common problem a lot of newish game developers face. Basically between the two frames where the object should have hit the wall, it actually didn't. For example, if a wall is one pixel wide, and a character moves at 3 pixels per frame then there is a high chance that the character will never collide with the wall.

What you need to do is use interpolation. You need to check whether the character should have hit the wall in between frames.
Come play Android Netrunner - http://www.teamliquid.net/forum/viewmessage.php?topic_id=409008
sluggaslamoo
Profile Blog Joined November 2009
Australia4494 Posts
Last Edited: 2014-06-16 10:05:24
June 16 2014 10:03 GMT
#9809
On June 16 2014 18:42 darkness wrote:
Thanks for thoughts about age's method(s) as part of a Person class! It's been helpful!

Obviously, validation is important even in such classes. Is duplication a "necessary evil"? What I mean is this: if you have a method there to check for, say, negatives, that's ok. But what if you need the same check in another class? Do you have to go with a bit of code duplication? It probably concerns a very small fraction of code but I'd like to know if that's the way.


Use a validation library if possible otherwise create your own for common validations that are flexible. Yes there would be a bit of duplication for every field that needs to be validated, though they should be one liners, I can't think of another way to do it. Unless you want to inherit a class that contains validations for subclass fields but that would be horrible.

You want something like this.

http://guides.rubyonrails.org/active_record_validations.html
Come play Android Netrunner - http://www.teamliquid.net/forum/viewmessage.php?topic_id=409008
Rollin
Profile Joined March 2011
Australia1552 Posts
June 16 2014 15:23 GMT
#9810
On June 16 2014 16:29 Ghin wrote:
I think my plan will be to try to make some garbage games with Python first. When I actually understand that, I'll switch to C++ and learn the more complicated concepts like programming for efficiency and performance. C++ seems much more in depth than Python. It seems like I would have to write several lines to do what Python does in 1 line, but the C++ lines would be more accurate. As far as spending my time goes, learning Python first to understand basic programming concepts seems quicker. I imagine I won't spend as much time writing and/or staring blankly at the code while wondering why the program won't start if I go with Python.

Learning how to use a feature (over)laden and complex language c++ effectively takes years of practice. If you're just looking to make a couple of simple games you're better off sticking with a simpler language and library for it. If you want to take the long road and do anything programming related for the rest of your life though, c/c++ is a good idea even if you don't end up using it in the long run.
Throw off those chains of reason, and your prison disappears. | Check your posting frequency timeline: http://www.teamliquid.net/mytlnet/post_activity_img.php
Mindcrime
Profile Joined July 2004
United States6899 Posts
June 16 2014 17:24 GMT
#9811
Does anyone have any experience with Crystal Reports or know of any decent documentation for its Visual Studio plugin? All I want to do is be able to pass it an object or list and have it plug in the properties into a report. I found a 700 page "user's guide", but it didn't contain one bit of code.

:[
That wasn't any act of God. That was an act of pure human fuckery.
Ame
Profile Joined October 2009
United States246 Posts
June 17 2014 08:00 GMT
#9812
For messing around with game making without programming background, would it be worth just jumping in with Unity or acquiring a copy of Gamemaker from mysterious sources?

It's probably a lot easier to just start dragging and dropping things where you want it. Eventually you'll get far enough to where you want to implement something that is too complicated/annoying to do with drag/drop, after which you can look into the scripting language and have short term goals for learning. Then you might want to do more, learn more, etc.

(D- theorycrafting)
saddaromma
Profile Joined April 2013
1129 Posts
Last Edited: 2014-06-17 13:34:49
June 17 2014 13:34 GMT
#9813
On June 17 2014 17:00 Ame wrote:
For messing around with game making without programming background, would it be worth just jumping in with Unity or acquiring a copy of Gamemaker from mysterious sources?

It's probably a lot easier to just start dragging and dropping things where you want it. Eventually you'll get far enough to where you want to implement something that is too complicated/annoying to do with drag/drop, after which you can look into the scripting language and have short term goals for learning. Then you might want to do more, learn more, etc.

(D- theorycrafting)


I find myself more comfortable with Unity, but both unity and gamemaker are fine for beginners. You'd eventually need to start programming ('scripting' is more suitable term btw). There is nothing difficult about scripting as long as you can understand what variables and functions are, which I am pretty sure 5th grader can figure out. You don't necessarily need to dwelve into complicated stuff like classes/interfaces/memory handling. Both engines have free versions, so go ahead try them.
Cyx.
Profile Joined November 2010
Canada806 Posts
June 17 2014 13:42 GMT
#9814
On June 16 2014 16:29 Ghin wrote:
I made a simple platform game on Flash but the characters would move through the walls about 20% of the time. I couldn't figure out why that was and the 2 or 3 examples of code I found online did the same thing. I got the feeling that the problem was with Flash and not with my terrible code.

Slugg already said this but just in case... This definitely wasn't a Flash problem =P I've had the exact same problem many times over with several languages, Python to C++.
Ethenielle
Profile Blog Joined December 2005
Norway1006 Posts
June 17 2014 20:48 GMT
#9815
I'm on and off writing my own rendering engine(mostly off, pixel perfect shadows and, well, shadows in general piss me off). Anyway, for the classes I expose to the engine user I want them to not know anything about the engine itself, because that would show the user internal stuff(for example the light struct that gets copied to the shader, functions that update projection matrices etc).

So far what I've done is create one completely public class that I expose to the user and one internal class for the engine that the user will never notice(pimpl'd away), which is responsible for updating the engine-relevant variables.

Unfortunately that means I have to add a callback to my exposed classes, so that my internal classes also get updated whenever the user changes something.

I'm not very happy with this solution, because the whole double class with callback thing feels messy... do any of you guys have ideas for improvement/a better solution?
Theres a fine line between fishing and just standing on the shore like an idiot.
netherh
Profile Blog Joined November 2011
United Kingdom333 Posts
June 17 2014 21:50 GMT
#9816
On June 18 2014 05:48 Ethenielle wrote:
I'm on and off writing my own rendering engine(mostly off, pixel perfect shadows and, well, shadows in general piss me off). Anyway, for the classes I expose to the engine user I want them to not know anything about the engine itself, because that would show the user internal stuff(for example the light struct that gets copied to the shader, functions that update projection matrices etc).

So far what I've done is create one completely public class that I expose to the user and one internal class for the engine that the user will never notice(pimpl'd away), which is responsible for updating the engine-relevant variables.

Unfortunately that means I have to add a callback to my exposed classes, so that my internal classes also get updated whenever the user changes something.

I'm not very happy with this solution, because the whole double class with callback thing feels messy... do any of you guys have ideas for improvement/a better solution?


A pseudo-code example might help make it clear what you're doing now, but it sounds like your classes are doing too much. I.e. a "light" class exposed to the user shouldn't contain any code for doing the actual rendering of the light. It should be purely a data structure containing whatever variables are needed, and a lighting subsystem should do the actual rendering.
Ethenielle
Profile Blog Joined December 2005
Norway1006 Posts
June 18 2014 16:41 GMT
#9817
That's what I'm doing, but the internal classes have to know whenever the user changes something in the public class, thus the callbacks. Which I don't like.. the user shouldn't know about that, either.
Theres a fine line between fishing and just standing on the shore like an idiot.
Shield
Profile Blog Joined August 2009
Bulgaria4824 Posts
June 18 2014 19:01 GMT
#9818
Have you tried the Observer pattern or is this what you mean by "callback"?
mcc
Profile Joined October 2010
Czech Republic4646 Posts
June 18 2014 19:38 GMT
#9819
On June 19 2014 01:41 Ethenielle wrote:
That's what I'm doing, but the internal classes have to know whenever the user changes something in the public class, thus the callbacks. Which I don't like.. the user shouldn't know about that, either.

But that does not seem to necessitate callbacks. Your description is kind of confusing since the problem you describe and the solution you employed seem to not match. Maybe some clearer description of the problem and some code examples to illustrate ?
netherh
Profile Blog Joined November 2011
United Kingdom333 Posts
June 18 2014 19:39 GMT
#9820
On June 19 2014 01:41 Ethenielle wrote:
That's what I'm doing, but the internal classes have to know whenever the user changes something in the public class, thus the callbacks. Which I don't like.. the user shouldn't know about that, either.


What I described didn't involve internal classes or callbacks, so I think I need a concrete example to understand what you're doing now, and what you're trying to change about it.
Prev 1 489 490 491 492 493 1032 Next
Please log in or register to reply.
Live Events Refresh
Replay Cast
00:00
WardiTV Mondays #62
CranKy Ducklings144
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
Nathanias 193
StarCraft: Brood War
Artosis 760
Bale 76
Tasteless 36
Dota 2
monkeys_forever880
NeuroSwarm136
League of Legends
JimRising 623
C9.Mang0334
Counter-Strike
Fnx 50
Other Games
summit1g13926
tarik_tv5172
Day[9].tv799
shahzam572
Maynarde161
Mew2King91
ViBE55
CosmosSc2 44
ToD41
Organizations
Other Games
gamesdonequick1018
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 14 non-featured ]
StarCraft 2
• Hupsaiya 83
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• RayReign 28
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Doublelift4950
Other Games
• Day9tv799
Upcoming Events
The PondCast
7h 3m
OSC
13h 3m
Demi vs Mixu
Nicoract vs TBD
Babymarine vs MindelVK
ForJumy vs TBD
Shameless vs Percival
Replay Cast
21h 3m
Korean StarCraft League
2 days
CranKy Ducklings
2 days
WardiTV 2025
2 days
SC Evo League
2 days
BSL 21
2 days
Sziky vs OyAji
Gypsy vs eOnzErG
OSC
2 days
Solar vs Creator
ByuN vs Gerald
Percival vs Babymarine
Moja vs Krystianer
EnDerr vs ForJumy
sebesdes vs Nicoract
Sparkling Tuna Cup
3 days
[ Show More ]
WardiTV 2025
3 days
OSC
3 days
BSL 21
3 days
Bonyth vs StRyKeR
Tarson vs Dandy
Replay Cast
4 days
Wardi Open
4 days
StarCraft2.fi
4 days
Monday Night Weeklies
4 days
Replay Cast
4 days
WardiTV 2025
5 days
StarCraft2.fi
5 days
PiGosaur Monday
5 days
StarCraft2.fi
6 days
Tenacious Turtle Tussle
6 days
Liquipedia Results

Completed

Proleague 2025-11-30
RSL Revival: Season 3
Light HT

Ongoing

C-Race Season 1
IPSL Winter 2025-26
KCM Race Survival 2025 Season 4
YSL S2
BSL Season 21
CSCL: Masked Kings S3
Slon Tour Season 2
Acropolis #4 - TS3
META Madness #9
SL Budapest Major 2025
ESL Impact League Season 8
BLAST Rivals Fall 2025
IEM Chengdu 2025
PGL Masters Bucharest 2025
Thunderpick World Champ.
CS Asia Championships 2025
ESL Pro League S22
StarSeries Fall 2025
FISSURE Playground #2

Upcoming

BSL 21 Non-Korean Championship
Acropolis #4
IPSL Spring 2026
Bellum Gens Elite Stara Zagora 2026
HSC XXVIII
RSL Offline Finals
WardiTV 2025
Kuram Kup
PGL Cluj-Napoca 2026
IEM Kraków 2026
BLAST Bounty Winter 2026
BLAST Bounty Winter Qual
eXTREMESLAND 2025
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 © 2025 TLnet. All Rights Reserved.