I know you probably don't have time to wade through a bunch of junk mail, but I've been going through and reading the archives of your QB Times issues. I'm 15 years old, and I've been programming in QuickBasic for a little over 1 year, so I know a little, but there is so much more to learn. I haven't even written my own engine yet! Well anyway your QB-Times magazine has been very helpful and has enspired me to keep programming. I just love all the articles. Well, I'll stop being on your jock now! So thanks for a great magazine.
Wishing u much success in the future,
(P.S.)-I'm really looking forward to the QuickPower IDE!
Thanks for the compliment! You can always mail me with them :) It's good
to hear that people enjoy the QB Times so much, it makes us think we are
actually appericiated for going through the effort of making an issue :)
No really it's a lot of work to make one issue and hearing that you did
a good job is really nice!
About QuickPower IDE, the QB Times will keep you informed of course!
The Windows IDE for QB 4.5, QuickPower, is going great too. Nekrophidius is taking a small break right now, because he's kinda freaked because of Windows programming...
One of the best platform games in QB, Fox, is gonna be completed in a month. You can also take a look at the pictures, we've already seen the engine at work, and can say that it rocks!!!
Arrakis is finished, 50 missions, a RMG (Random Map Generator), and smarter AI, and even more stuff will be added in the final version. Get it at Future Software!! An interview with the creator is on this page too, scroll down to go to it.
|Zeta is being worked on. Aethersoft is now working on multiplayer and an intro animation. There are screenshots on the site, but we couldn't resist showing one here of the new interface - click to enlarge!|
Smoky is working on the sound engine of the Future.Library, adding 16/8 bit track support, that will be stored in XMS.
|Pete, of Petes QB Site which is known because of the frequent updates, is not updating his page anymore!!! This is because his computer broke, and he doesn't have the funds to fix it...|
|V!Planet, site of the week at Future Software, keeps on updateing. After sites like the QBSource Internet Magazine, QNN, Neonews, QBOA, and more news sites have stopped, this site still continues to provide great news to the QB World. Though the graphics could have been some better (they aren't ignoring, but they are not as good as the content), this site is still a pleasure to visit!|
|The Qlympics are delayed, again! Though it now seems to get started... submissions can be send to Tek.|
|Qbasic News is back! After a few weeks being offline, the site is now back up so post your news here!|
|Xybertech doesn't exist anymore, it's now GeoShock, which looks much better!|
|Rumours go that there will be a new site up at qbasic.com in less than 2 months. This hasn't been confirmed by the webmaster, but we'll keep a close eye on it!|
|QBTown is a new launched website. QBTown will preview upcoming projects as well as review released ones and do its best to keep the QB Community informed. Right now, there's not too much on the page, but you can submit your stuff.|
|Is QBSource.com still alive??? No updates for a month now...who can tell?|
|Neozones Productions (NOT .com!!!) has moved once again. The site is now on a new domain name Tek bought, to know: TeksCode.com.|
Which library do you use most?
This game is the reason that Qbasic was released. It is not often that a game receives such a good first impression as this one but the first time I was shown this game I was literally wetting my pants in excitement while waiting to play it.
The graphics are superb and there is perfect sprite handling routines implemented in this game. The keyboard handler does not have a fault and the sound is great too, though at one point i did have to put the "-nosound" command on due to conflicts with my soundcard. unfotunately the sound does not work at all in win2k, though that is no fault from the programmers, rather than win2k.
The game itself is extremely addictive with a great yet simple objective. All you have to do is move "columns" style blocks around to capture stars inside similar shaped blocks. Such a simple game yet so well produced.
My personal favourite part of the game is the little wizard guy flying about keeping your score. Amazing little guy who causes no visible slow down of the game. Custom font routines give the game a touch of personality that the system font can't give.
Unfortunately, or fortunately, depending on your personal stance regarding game libraries, this game uses the DirectQB lib. which is, in my opinion the easiest and best lib. to use anyway, so I am not complaining as I have used it myself. This is fortunate because it makes the game smooth and playable at a high frame rate while allowing the author maximum flexibility for making the game work well. It is unfortunate, however as many programmers tend to dismiss anythig using a lib. as a rubbish game or complain that the author has no sill of his/her own. This is definately untrue as this game is by no means crap and I have no doubt in the ability of the author.
To sum it up - Download this game! It is only 641k unzipped.
Super Stack - http://www.qb45.com
Gza_wu (Christopher Neill) - firstname.lastname@example.org
Super Stack - A definite must for anyone bored
Super Stack is an excellent game from start to finish. It has excellent animation, graphics, sound effects, and even gameplay(one thing quickbasic games are lacking these days). With so many great things, you must thank the creator Renbo for creating such an excellent game for us to enjoy.
The first thing I said when I started the actual game was "WOW!", this guy actually took his time and created an introduction with great animation. Most qb games just slap an image on the screen and fades it in, then out again. Then a title screen comes up, this was the only bit I didn't like in Super Stack, so I hope the creator will improve it. So then there are four options to pick and I picked the first one, then picked a level and started playing.
At first I was a bit confused as I didn't read the ReadMe file, so I sat there trying to find out how to play. But quickly I found out how to play, and was addicted, there was tons of great graphics which were mostly all animated excellently. I didn't know how long I sat there playing it but I knew it was pretty long. So I finished the game, though some levels were really hard.
What else can I do now, but only delete it, so as I went back to the menu there was an option to play for score, now this is great! I can play it again and again, most games now when you finish it, there's nothing else to do then delete it.
So what's my conclusion? I guess the conclusion must be that Renbo did a great job creating this game, and that you must have it to!! You can download it at the qb45.com now!
Here's the first part of a tutorial on how to program a Shining-Force-Battle-like engine.This first part deals with the ground setup : how to definate the tile type, the X position and the Y position, and the defense coefficient : this is the easiest part.The other part will deal with movements and attacks.
First, you must choose your battleground dimensions : let's take 7*10 as an example It gives us :
DIM Ground(7,10) \*\then we must fill the 'ground' array with values representing the tiles : - 1 => Herb
DATA 1,1,1,1,1,1,1,1,1,1 DATA 1,2,1,1,3,1,1,2,2,1 DATA 1,2,1,3,3,3,3,2,1,1 DATA 1,2,1,3,3,3,1,1,1,1 DATA 1,2,1,1,3,3,1,1,2,2 DATA 1,2,1,1,1,3,1,1,1,2 DATA 1,2,2,1,1,1,1,1,2,2Then we read the values :
FOR i=1 to 7 FOR j=1 TO 10 READ Ground(i,j) NEXT j,i(This is not obligated to use DATA's : you can set a separate file like battle1.grd )
Now that the whole ground is saved in memory in the 'ground' array, we must use this one to draw the ground :
FOR i=1 TO 7 FOR j=1 TO 10 IF Ground(i,j)=1 THEN LOCATE i,j : COLOR 10 : PRINT "H" IF Ground(i,j)=2 THEN LOCATE i,j : COLOR 8: PRINT "S" IF Ground(i,j)=3 THEN LOCATE i,j : COLOR 2: PRINT "T" NEXT i,jI think you understood that H, S and T means Herb, Stone and Tree. The colors are light green (10), dark grey (8) and dark green (2).
Now, the ground is drawn on the screen, but we don't have our position
and tiles proprties.
So, at the beginning of the program, insert:
XPOS=1 : YPOS=1and betweenIF Ground(i,j)=3 .... PRINT "T" and NEXT i,j , insert those three lines so that we can see our position without hiding the ground :
IF Ground(i,j)=1 AND i=xpos AND j=ypos THEN LOCATE i,j : COLOR 4 : print "H" IF Ground(i,j)=2 AND i=xpos AND j=ypos THEN LOCATE i,j : COLOR 4 : print "S" IF Ground(i,j)=3 AND i=xpos AND j=ypos THEN LOCATE i,j : COLOR 4 : print "T"Note : COLOR 4 is red
K$=INKEY$ : K$=RIGHT$(K$,1) IF k$="H" AND xpos > 1THEN xpos = xpos - 1 IF k$="P" AND xpos < 7THEN xpos = xpos + 1 IF k$="K" AND ypos > 1THEN ypos = ypos - 1 IF k$="M" AND ypos < 10 THEN ypos = ypos + 1 IF k$=";" THEN END LOCATE 1,60 : PRINT "X=";xpos LOCATE 2,60 : PRINT "Y=";yposThen let's show tiles status :
LOCATE 3,60 : PRINT "Ground=" LOCATE 4,60 : PRINT "Coefficient=" LOCATE 4,75 : print "%" IF Ground(xpos,ypos)=1 THEN LOCATE 3,67 : PRINT "Herb " : LOCATE 4,73 : PRINT "15" IF Ground(xpos,ypos)=2 THEN LOCATE 3,67 : PRINT "Stone" : LOCATE 4,73 : PRINT " 0" IF Ground(xpos,ypos)=3 THEN LOCATE 3,67 : PRINT "Tree " : LOCATE 4,73 : PRINT "30"Thought this is an example, you can change tiles name and defense coefficient. Now ,this is just a text program but you can create a tile file, with graphics. If you want to see this complete tutorial, click here. The keys are Up, Down, Left, Right and F1 to quit.
Click here to download the graphic version of the engine.
Solutions and programs:
A program doesn't really have anything to do with a computer! People were using programs long before the invention of the digital computer. For example, recipes, knitting patterns and mathematical formulae are all examples of programs. For a program is nothing more than a list of instructions that lead to some predefined end - a meal, a scarf or the solution of a quadratic equation. It is unfortunate, then that 'program' has come to mean something especially concerned with digital computers, for this causes the emphasis to be placed on 'computer' rather than 'program'. The truth is that programming is a science of great scope and generality and deserves consideration for its own sake. It is also unfortunate that programming is associated with the use of computer languages. So 'to program' has come to mean the mastery of a computer language along with all its commas and particular grammar. It is often the case that an expert programmer is supposed to be one capable of using many computer languages, but a programmer may know many computer languages and know nothing of programming!
The ability to program is in part the ability to find solutions. People who are good at solving problems usually turn out to be good programmers. Those not too good at problem solving take a lot longer and some never make it. Problem solving in general can be taught and if you're not too good then don't give up - it is possible that no-one ever showed you how to tackle a problem. Schools cover the three R's but rarely teach the skill of problem solving.
Some lucky people have an ability to do complicated arithmetic in their heads at great speed and it is often thought that this would be an advantage in programming. The popular press often assumes that someone good at arithmetic should be good at programming computers. This is not so! The real question is: 'Can the person explain how the arithmetic is done?'. For programming is a little more than problem solving. So, whereas solving a problem gives you the solution, knowing how you solved the problem gives you a program.
To make things clear let's try to examine which stage in the production of a computer program is correctly called programming. First, some statement of the problem must be found. This could take the form of a vague desire to produce some particular graphic as part of a game or the exact specification of an accounting system. This is not programming. Second, a few basic requirements for achieving the solution are outlined. These may not be very exact or well formulated. They may be at the level of deciding which machine to use or if special hardware is necessary. This is connected with programming but is more about what computers can do. Third, a sequence of steps leading to the solution is proposed. This may be in the form of a flowchart or some other description. It doesn't even have to be written down but it helps if it is. The important point is that at this stage it has nothing to do with computers. It exists as a sequence of steps in the mind of the programmer. This is programming. Fourth, the program is realised as a written program in a computer language. This is the stage that is most often referred to as programming. It is in fact the least skilful of all the stages and involves mainly the correct placement of commas and other matters of simple grammar. Given a program in the form of a flow diagram, the translation to code can be done automatically and if this were programming it would be a very dull subject indeed. In short, coding is not programming.
Expressing thought - algorithms:
All that we have said about programming is obvious from a consideration of normal human behaviour.A thought is independant of the language used to express it. The color red is the same concept whether written in English or German. In the same way, a program is independant of the computer language used to express it. The fact that it is possible to convert a program from one computer language to another should convince even the most practical mind that there is something abstract lying behind any program. In the same way that the word 'red' and the German word 'rot' both describe the underlying experience of color, so two programs in different languages can describe the same solution. The abstract thing that lies behind a program can be called an algorithm. In simple terms, an algorithm is a way of doing things and it can be expressed in many ways.
At this point it is important to realise that although it is convenient to think of an algorithm as something separate from a computer language, it is impossible to express an algorithm without using a computer language. It is often thought that the flow diagram is in some way a pure expression of an algorithm but this is not so - it's just that no-one has produced a computer that reads flow diagrams yet!
While the vast majority of people that frequent the #qbchat chatroom are intelligent and interesting qbasic coders, wanting to increase their knowledge of BASIC/ASM programming, and converse with others who have similar interests, I have become increasingly angered by the small minority of idiots who go to #qbchat only to hurl abuse at others for no particular reason.
This minority seem to think that they are being 'cool' by entering the chatroom under a profane nickname, and then proceeding to hurl bad language and insults at others, for no reason other than the sheer perverse pleasure they derive from it. These kinds of morons make me sick. If I had a shell account I would see to it that they be permanently removed from the internet as no good can come from such people being a part of our community. Sadly however, I do not have Unix or a shell account, so the morons stay - it is thus necessary that we find an alternate method to deal with this stupidity.
I recently became the victim of such stupidity...I was busy talking peacefully in the chatroom, as I had done many times before, when suddenly I received an insulting and abusive private message from a certain idiot, for no particular reason. Two (I think) of his moronic friends soon joined in. At first I was shocked. I couldn't understand why I had become the subject of a verbal attack when all I had ever done in the Qmunity is go out of my way to help other coders. I had never said anything bad to/about anyone. I soon, to my later regret, proceeded to yell right back at them. I now realise what a stupid idea that was. Fighting back with idiots who only go to the chatroom to cause trouble makes you no better than them - it makes you just the same as them! I realise this now. The best thing to do would have been to ignore them and continue to chat with my friends. Another alternative would have been to leave and come back later, in the hope that they had left. A couple of other people who entered the chatroom half way through the argument probably thought that I was yelling at them too (it's kind of difficult to direct your conversation at the right people in the main.) I apologise to anyone who thought that I was yelling at them - I was directing it at those three idiots I discussed earlier.
I would advise any intelligent coders going to the chatroom to simply ignore any abusive and obviously dim-witted individuals. Don't bother arguing with them - no good can come of it. If they go too far and start to become a problem, it is advisable to contact Leahcim, who runs the chatroom, who will then take the necessary course of action against them.
Once again, I apologise to anybody who thought I was yelling at them - I wasn't. This is the exact reason why it is advisable not to argue back with stupid and abusive people.
Thank you for reading.
-Matthew R.Knight (aka Phoenix aka Se7en aka QB31337) Horizons Interactive Entertainment
'Press a key menus'
(N)ew Game (L)oad Game (S)ave Game (I)nstructions (Q)uitAnd you press N for New Game, L for Load Game etc. This menu is fairly easy to make and I've seen it used in a lot of games. It's not very nice to see but it gets the job done. I'll list the Pros & Cons in a nice little table now:
|Easy to make
Takes almost no coding space
|Doesn't look nice|
So now you know the Pros & Cons of this menu let's get started on the coding. We'll use the example menu for this coding example:
PRINT "(N)ew Game" PRINT "(L)oad Game" PRINT "(S)ave Game" PRINT "(I)nstructions" PRINT "(Q)uit" DO a$ = INKEY$ SELECT CASE UCASE$(a$) CASE "N" PRINT "You selected New Game!" CASE "L" PRINT "You selected Load Game!" CASE "S" PRINT "You selected Save Game!" CASE "I" PRINT "You selected Instructions!" CASE "Q" PRINT "You selected Quit!" PRINT "Have a nice day!" SYSTEM END SELECT LOOPClick here to download this example.
This code will create an example menu and if you press one of the menu's keys the program will show which option you have chosen and if you selected Quit it'll print a greeting and then exit the program I'll discuss the program in blocks of a few lines of code now. We'll use the example menu for this coding example:
PRINT "(N)ew Game" PRINT "(L)oad Game" PRINT "(S)ave Game" PRINT "(I)nstructions" PRINT "(Q)uit"This just prints out the basic menu.
DO a$ = INKEY$ SELECT CASE UCASE$(a$)This starts a DO...LOOP, give a$ the value of INKEY$ (the string that holds which key is pressed) and starts a SELECT CASE with the value of a$ in captial (UCASE$(a$).
CASE "N" PRINT "You selected New Game!" CASE "L" PRINT "You selected Load Game!" CASE "S" PRINT "You selected Save Game!" CASE "I" PRINT "You selected Instructions!" CASE "Q" PRINT "You selected Quit!" PRINT "Have a nice day!" SYSTEMThis checks which key is pressed, for instance, CASE "N" checks the value of a$ (the string in which the key that is currently pressed is stored) and if it's "N" the program executes the commands within the CASE. Which is obviously
PRINT "You selected New Game!". This is the same for the rest of the CASEs, but if the users pressed "Q" for Quit, the program returns to the system with the SYSTEM command.
END SELECT LOOPEnd the SELECT...CASE and LOOP back to DO.
Of course, this code is for example purposes only and could be optimized a lot.
My conclusion for this menu is that I would not use this menu in my game. Although it's very easy to create it really doesn't look nice. There are many other nice looking and easy to create menus, like the highlight selection menu.
'Highlight selection' menu
New Game Load Game Instructions Quit GameMy Cons & Pros are listed in the table below:
|Easy to make
Takes very little code
Looks good in text games
|Doesn't look good in other games|
DIM SHARED Menu$(4) selection% = 1 Menu$(1) = "New Game" Menu$(2) = "Load Game" Menu$(3) = "Instructions" Menu$(4) = "Quit Game" GOSUB Redraw DO A$ = INKEY$ SELECT CASE A$ CASE CHR$(0) + "H" selection% = selection% - 1 IF selection% = 0 THEN selection% = 4 GOSUB Redraw CASE CHR$(0) + "P" selection% = selection% + 1 IF selection% > 4 THEN selection% = 1 GOSUB Redraw CASE " " CLS PRINT "You selected: "; Menu$(selection%) END END SELECT LOOP Redraw: CLS FOR i = 1 TO 4 PRINT Menu$(i) NEXT i LOCATE selection%, 1 COLOR 7, 1 PRINT Menu$(selection%) COLOR 7, 0 RETURNClick here to download the example menu.
I'll discuss the code now:
DIM SHARED Menu$(4)We create an array (Menu$) with four slots for our menu options.
selection% = 1 Menu$(1) = "New Game" Menu$(2) = "Load Game" Menu$(3) = "Instructions" Menu$(4) = "Quit Game"We give the selection% (the variable which holds the current position of the selection bar) the value of 1, it's at the top of the menu now. We also fill in the four slots of the Menu$ array with the names we want to give to the menu's options.
GOSUB RedrawWe go to the Redraw label, in which the menu gets drawn.
DO A$ = INKEY$ SELECT CASE A$We start a DO...LOOP, give A$ the value of INKEY$ and start a SELECT...CASE with the value of A$
CASE CHR$(0) + "H" selection% = selection% - 1 IF selection% = 0 THEN selection% = 4 GOSUB RedrawWe check if the key currently pressed is the up arrow (CHR$(0) + "H") and if it is we subtract 1 from the selection% variable which moves the selection bar one place up. Then we check if the selection% variable is 0 and if it is we make the selection% variable 4 (this moves the selection bar from the top of the menu to the bottom, because there is no option 0). Then we goto the Redraw label to put the new menu on screen.
CASE CHR$(0) + "P" selection% = selection% + 1 IF selection% > 4 THEN selection% = 1 GOSUB RedrawWe check if the key currently pressed is the down arrow (CHR$(0) + "P") and if it is we add 1 to the selection% variable which moves the selection bar one place down. Then we check if the selection% variable is bigger than 4 and if it is we make the selection% variable 1 (this moves the selection bar from the bottom of the menu to the top, because we have only four options, if you have more options in your menu you need to increase this number). Then we goto the Redraw label to put the new menu on screen.
CASE " " CLS PRINT "You selected: "; Menu$(selection%) ENDWe check if the key currently pressed is space (" ") and if it is we clear the screen and PRINT the current selection. Then we END the program.
END SELECT LOOPWe END the SELECT and LOOP back to DO.
Redraw:Here we define the Redraw: label.
CLS FOR i = 1 TO 4 PRINT Menu$(i) NEXT iWe clear the screen and print out the menu options.
LOCATE selection%, 1 COLOR 7, 1 PRINT Menu$(selection%) COLOR 7, 0We put the cursor at the line of the current selection and change the color to white on forground, blue on background. Now we print the menu option of the current selection (this gives the bar which selects the selection). Then we change the background color back to black, forground color stays white.
RETURNWe return to where the Redraw: label was called from.
My conclusion for this menu is that if you're making a text game you can very well use this menu. But if you're making a graphical game you can make the same kind of menu with graphics and that's much nicer!
Well, you now know how to do some menus. In the next issue I'll continue this article and we'll get into making graphical and mouse driven menus. I hope you like this article.. Don't hesitate to tell me :-) Also if you've any questions regarding this article you can mail me at email@example.com.
Since i got an XT computer i begun playing with Qbasic, I think I was around 10 or 11 years old. so i'm almost a truly qb programmer for 7 years...
2. Which other programming languages, besides QB, do you know?
Although i have to re-read some stuff, i can program in C, C++ , altough i like QB the most. Visual Basic a bit (its so easy, never read more than 2 pages of VB books).
3. Which programming languages do you tend to learn in the future?
I would like to get more used to the world of C (DJGPP) and the library Allegro.
4. Now about Arrakis: How should people look at the game?
I think this is one of the unique games written in QB, the new release is more bugfree and with its RMG it could keep you busy for hours. I think people will be possitive about it, and i hope to unleash a sort of revolution in the world of QB so more RTS games will come.
5. How long have you been programming on Arrakis?
About 2 years. 2 Times started over with writing an engine. The last time i wrote the engine for 70% in 8 days, while the other times it took me over 3 or 4 months.
6. Are you happy that you've finished Arrakis, or are you affraid to get bored now...?
Yes, it got somewhat bored working on the same engine and most of the time it could not compile anymore, so thats one of the reasons of the future project...
7. What are your plans for new projects?
In the QB world i wanted to make a Basic-> C translator, but it didnt work out very well. I made once a sort of GUI lib, who let you place windows/buttons etc. Maybe i will make an another update to Arrakis which will allow people to play against each other.
In the world of C, i will try to make a new engine, and start with " Arrakis 2K ", it should be much better then its predecessor which is written in QB.
8. What is the best site for getting programming info, in your opinion?
I visit the site of Future Software the most, also the Enhanced Creations Site was one of my favo's. Those 2 sites got me really into game programming. I started with game programming 2 years ago and then Arrakis was only a fiction.
9. Which projects are YOU looking forward to? Anything that really interests you?
QBPower IDE is one of the most promising projects in my opinion. If it could really remove the borders we qb programmers have, it could be a powerfull ide for us all. Arrakian Dawn is also a game i'm looking forward to. Altough it just started, i'm curious how these guys will write their engine.
10. Anything you would like to say to people who have played your game and want to make a game that is as good as Arrakis?
- Never give up
- Always rewrite your engine, atleast once. You will find that the second engine is faster and smaller.
- I recommend to make your map system working with Cells
- Ask the source of Arrakis, it could really help you out.
- Whenever your game is finished, mail me! i'm always interested in your rts game.
So you want to include some awesome 3D graphics in your game/app/program?There are some things you'll need to know first of all.This "chapter" is an into to 3D graphics and raytracing, and talks about different software that you can use.
3D images are not made like regular drawn images.You don't sit down and paint things with brushes.Instead, you make objects in a "virtual" space, as if you were arranging those objects in front of you.You can make them any color you want, give them any shape, do anything you could do in real life, pretty much.Quite a bit of the skill in making good 3D artwork is in being able to properly do stuff to objects in this 3D space, to get the effect you want.
3D objects are made in what is usually called a "modeler".This modeler is usually part of an integrated package of tools, the other of which is a "raytracer".In the modeler, you create the different objects you want, and tell them what they're going to look like.Then you use a raytracer to make a final image.A raytracer basically simulates real life.It takes beams of light and bounces them from a "camera" (the place where the picture will be taken from) all around the scene.These beams of light (called rays) bounce around and hit objects.The objects will return points of color, and these points put together form the image.Since raytraced images do this, they can easily be much more realistic than even a good artist with a regular 2D program can make.
There are a lot of 3D packages and programs out there.A few are good.There are three things to take into consideration when you're choosing what software you want to use.The first is capability.What can this program do?The second is ease of use.A lot of people ignore this, and focus on capability, but with an easy to use program, you can really get things done much faster and more efficiently.Lastly, there is cost.Its an unfortunate fact that 3D software is EXPENSIVE.And by this I mean ranging from hundreds to thousands of dollars for good software.So it's important to keep price in mind, since you probably won't be able to GET software if it is too expensive.
Capability among programs varies, but is generally the same.Most programs have about the same features.You can make 3D objects, and give them textures (what they look like).You can usually set some atmospheric effects, and have various things like transparency/translucency, reflections, etc.Stuff to make an image look real.Some programs are better in some areas than others, and some have more support from people writing plugins than others.Following is a description of all the programs that I've encountered, with my two favorite ones at the bottom.
Well, I guess that concludes this article.It was a bit long, I know, but I think that you need a good intro before getting into 3D.From this you should be able to choose a program that suits you, and make an intelligent choice about what to get.If you already have a program like this (or not included on my mini-list), or want to learn some actual 3D, then my next topic will be 3D modeling basics.It'll cover all the basics of creating 3D images, using the two programs (Extreme 3D and Bryce).For people who don't have these programs, you can download demos on the net.These demos don't let you save your final images, but through using paintshop to do screen captures, you can somewhat annoyingly get around this.
Nightwolf & Jorden
Matthew River Knight