Your first 3D?
Miscellaneous Forums/General Discussion/Your first 3D?
What did you first program 3D on?
Mine was an Acorn RISC thing at school when I was 13, made a wireframe cube. Had to learn trigometry for it! Mind you this put me in good stead for future maths lessons. Didn't make the polygons solid until I had an Amiga and figured out that if you draw the faces clockwise the Normal is positive when it's facing you and negative when it's not, thus it can be culled. Mind you 3D was pretty darn slow even on an Amiga.
Did a bit more in Delphi in 1997, made a 3D screensaver and that's it, no more 3D since! Just played tons of 3D games.
B3d here. =\
Never really got anything big, just little demo's that went nowhere.
BBC Basic on a BBC Micro.
I also did some pre-rendering in the 128k of a BBC Master- that was sweet :)
lol "pre-rendering" and "BBC" in the same statement sound funny. Actually my first 3D might have been on Master and I later ported it to the Acorn as the basic was the same, can't 100% remember it was sooooo long ago.
Genexi2: Probably a darn good place to start. It's certainly more relevant than my 3D coding experience, although I do have the luxury of understanding how it works mathematically, which is also ... uh pretty irrelevant these days too.
I kind of half-did some 2.5D wireframe stuff on AMOS on the Amiga, but first did proper 3D on DB, then B3D. Although I far prefer B3D, the revelation of first using DB was amazing :)
I used a 3D Game Creator thingy for the Amstrad CPC (It came free with Amstrad Action)... It was a drag and drop affair, but you had to write scripts for doors and stuff!
Dabz
AMOS 3D on an Amiga... that was my first 'shot' at 3D...
made some really nice looking cubes :)
--Mike
Pre-rendering as in I draw the 8 frames to the 8 banks of Sideways RAM then switch the current Sideways RAM through the 8 banks.
Pretty sweet- full screen motion.
..XYbotS remake from Atari console on my Amiga 500..thats first 3D shot..
I did a star lane type map using amos when I was 14 or 15. Similiar to the one in Ascendency. Basically just could rotate it, and the points had depth projection.
First "real" 3d was with blitz.
AMOS 3D for me as well. I got the Enterprise model flying in loop patterns.
I made a "crap" Enterprise model for my screensaver too, it wsan't distributed or anything.
The best language in the world of course! Dark Basic
some chunky to planar assembly stuff on the amiga + a
very ugly chunky pixel spinning coloured cube..not so
impressive + not really that fast either..i dont think i could
have a managed anything 3D on older hardware..this was
clunky enough..
I did my first 3D stuff on an atari st in stos... It was an isometric 3D engine but using polygons for the main charaters and sprites for the background. This meant that the characters could rotate smoothly. Worked quite well... it didn't ever turn into a game though.
AMOS on the Amiga here, then bought AMOS 3D wanting to do a game. I ended up making a 3D presentation package instead which I actually made money on and even maintainance fees from until recently.
Andy
I used Amos and Amos 3D too
Andy: Maintaining an app that old is cool.
Amiga here too. This was back when the SEKA assembler was considered 'cool'.
Wire frame on C64 using Zeus Assembler... and then..... nothing until B3D about 3 years ago.
BBC Basic '3D' maze program
Spectrum 48k
Vic20 - wireframe stuff.
"3D Construction Kit" on the C64
The screenshots on the box were of the Amiga version and the C64 version was a bit simple in comparision I guess. It did come with a tutorial on VHS! Quite nerdy. ;)
Windows Notepad, I made a 3D Cube with ASCI-ART.
i made a crappy triangle with opengl.
Did a 3D night-driving game on the BBC when I was 12 ... nearly 26 years ago :-(
The track (posts and white lines) was laid out using 14 colours (IIRC - but it might have been 6 to avoid the flashing combinations) and then it used colour palette switching to show/hide the straight/bend you were driving on in white
I experimented with 3D terrains on a spectrum by line drawing the terrain heights across the display, it was an effect I saw on a commercial game but I never managed to do it fast enough in BASIC. I tried recreating the program in Fortran using White Lightning but I struggled at the time.
My first finished & polished 3D game was on the Amiga using Amos3D.
"3D Construction Kit"
That's the one I used, bit hazy now... Though, I can still remember the Egyption demo that came with it!
How long ago now... say... 15 years, give or take 1 or 2 years!
Bloody hell :/
Dabz
Hello.
C-64, now that was slow :o)
First 'proper' 3d stuff was in 1989 using Modula-2: after figuring out how to do stuff in Pascal finding a language that actually had reasonable graphics commands was like WOW!!
Goodbye.
Qbasic. on a 486 something. Wireframe stuff but was unable to rotate them. They just exploded and there was lines everywhere.
I bought AMOS 3D at the same time I bought AMOS and AMOS Compiler, but found pretty quickly that I had very little aptitude (or desire) for 3D games, so stuck with 2D ever since.
The only 3D 'programming' I've done is POVRay, a freeware Raytracer where you script all your objects and scenes in a c-style language rather than the visual stuff most other raytracers use.
That's what I've used for the logo and such on my website,
http://www.xlsior.org
Late 80's IBM AT 12mhz 512k ram -Hercules Graphics -- Made a wireframe flight-sim. The only scenery was a grid ! The example I used was a program in a book called "High Performance Graphics in C. Animation and Simulation" by Lee Adams (1988). I didn't have a C compiler but I had Borland's Turbo Pascal so I converted it to Pascal and amazingly it worked.
Did wire frames on a coco2 , filled polys on the coco3 (both displaying a Cube ofcourse) wasnt very fast.
started messing with 2.5d raycasters on 80286 level hardware.
Sam
hmm some early pioneers here then.
BlackJumper: yeah the BBC never had 14 real colours, half were flashing ones. Spec had 16 colours but half were just half as bright. C64 had 16 weird but totally cool colours.
First was a 3D spining wireframe cube in AMOS. It didn't even run at full frame rate due to cos and sin functions (should of shoved them into an array). Mind you, it showed just how slow AMOS really was.
(IIRC - but it might have been 6 to avoid the flashing combinations)
14- or maybe 15- since you can stop the 8 flashing colours from flashing :)
"3D Construction Kit" here too, on tha Atari ST.
"3D Construction Kit" by Domark on the PC and GWBASIC on the PC XT - lines and points with the only rotation being for a cube.
I completely forgot about 3D Construction Kit - that was my first after all, on Amiga. Brilliant.
Another AMOS 3D fellow here. Though I don't think I ever made a single completed 3D game with it.
-AF
14- or maybe 15- since you can stop the 8 flashing colours from flashing :)
Well...Make em flash very fast to give the impression of more colours...And often headaches too... ;o)
IIRC, you couldnt do that on a BBC. the flash rates were the same unless you changed a bit of memory right up in the range of $FF40-$ff4F somewhere, which changed a ton of things- IRQ rate etc, so the whole system itself could be sped up but things like key checks would be lowered in speed.
There was a cheat, in Assembler, to change the colour value of each of the 16 colours on each line of the display, using the pixel clock, which gave way more visible colours :) I never aced that and it slowed it down to a crawl.
not 14 or 15 as if they stopped flashing they were the same as other colours iirc.
Yeah Amos was NOT as good as Blitz for sure, I tried AMOS and stuck with Blitz.
In those days making a Sin lookup table really did save loads of time, now it really is negligible. Wasn't when 386s and 486s didn't have maths Co-processors though.
no. in Mode2, colours 8-16 flashed. You could set them to white, or to any of the standard non flashing colours- but internally they were still different, so they were all usable in an animation that used pallette-switching.
[edit]
Oh and I was wrong above- you could change the flash rate. Snooker had a flashy brown ball- The BBC didnt have brown as a colour so it had to switch between black/red i think it was, No idea which two. :)
[edit2]
Perhaps theres been a misunderstanding. The bbc only has 7 distinct different colours, 8-16 were flashing variations, however, reading pixel values would return 16 different values. Useful for animations as you can switch all the colours to black and only have one white one on. You could draw one frame in each of the 16 colours, and jst switch through :)
Tut tut...amateurs. ;op
[edit]
Yeah, they were treated as 16 seperate colours.
You could also change mode during the frame. Elite used Mode4 for the wireframe and Mode5 for the dashboard (Modes1&2 on the tube version).
[/edit]
Are you talking about the hardware mod that allowed the bc's internal 16 colours to be selectable from a pallet of 16,000? :P
No, but I did read Acorn User(?) too... ;o)
It was one hot piece of kit. I wanted to do that mod! Ive got my Acorn User magazines in a suitcase somewhere :)
You could also change mode during the frame. Elite used Mode4(?) for the wireframe and Mode5 for the dashboard.
Sounds about right. You could change mode without clearing the screen but then what was on screen became garbage if you used draw commands ala bbc-basic- You had to write your own draw routines for it to work using assembly. Also, only certain mode changes allowed this, as other graphics would totally corrupt if you changed say from mode 9 to mode 0.
As for Elite- I still have no idea how they got it running so fast on such a slow computer!! :)
Yeah Amos was NOT as good as Blitz for sure, I tried AMOS and stuck with Blitz.
I stuck with Amos Pro with TOME rather than move to Blitz (perhaps Blitz2?). It just seemed to offer more variety of games (although Blitz *did* fly in comparison).
There was something about Blitz which seemed 'dirty'.
(for UK 30 somethings..)
Blitz was Magpie to Amos's Blue Peter or Tiswas to Amos's SwapShop.
I preferred my TV programs more Sally James and my Basic programming languages more Maggie Philbin.
Cygnus: Yeah misunderstanding, I meant "actual" colours not colour values as in there were 16 values but only 8 real colours (inc. black) unless you did that rapid flashing trick. This work on the C64 too btw and thus you could get tons of colours if you could be arsed.
You could change mode without clearing the screen but then what was on screen became garbage if you used draw commands ala bbc-basic- You had to write your own draw routines for it to work using assembly
Probably, I never actually did it myself. I'd of thought that only the changed part would of been corrupt?
I did prod the ULA (I wont do the poking Sheila joke) quite often, to produce memory saving custom screen modes.
Also, only certain mode changes allowed this, as other graphics would totally corrupt if you changed say from mode 9 to mode 0.
Wasn't that something to do with the screen shadowing? I dunno, I never played with the B+ or Master.
I original programmed the BBC in basic and a few years later I made a moving starfield in assembly but it was actually in a BBC Emulator I had for my Amiga!
I'd of thought that only the changed part would of been corrupt?
True, but the built in drawing commands would then reference memory as if it was a different mode, spreading muck all over the place :)
of course, the pro'd used Assembly anyway, and had to do their own system anyway. I did my first sprite system in Assembler and used Basic for the game code, was pretty neat!
Wasn't that something to do with the screen shadowing? I dunno, I never played with the B+ or Master.
Ah, Most probrably. I did alot of cool stuff with Sideways ram and shadowing :)
And about the Poking Sheila. I was so young when i worked with my BBC that it just didnt click back then!
a few years later I made a moving starfield in assembly but it was actually in a BBC Emulator I had for my Amiga!
No point in that. Doing it on a real one is much better!
I built a little house with a stack of punched cards in the late 70's does that count? :)
If not then it has to be a BBC Micro a few years later BE (Before ELite) :)
Cheers
Garion
@Grey - Yeah, it was 8 physical colours (digital RGB) and 16 logical colours.
I did my first sprite system in Assembler and used Basic for the game code, was pretty neat!
Oh yes...I remember when I worked out how to get single pixel vertical movement working with sprites in MC...Happy days!... ;o)
You could change mode without clearing the screen
The Amiga could do that too, even in AMOS -- very convenient at times.
The 'standard' resolution for a game was 320x256 on a PAL system (320x200 on NTSC) , but you had the option of switching to a higher resolution (640x512) for part of the screen, so you can put a status line of hi-res text on the screen as well without the overhead of doing everything in hi-res. And if you wanted to, switch back to lo-res for the remainder of the screen again. IIRC there was a 1-pixel seperator line between the different resolutions... (At least AMOS used one to seperate the different screens)
You could also use different color modes: e.g. top of the screen in 32 colors, bottom of the screen in HAM (4096 color) mode. Some interesting mix-and-match. Except if you picked an interlaced mode for part of the screen, the entire display would still flicker.
Nice way of getting some extra flexibility out of imposed hardware limitations.
Ahh Indeed. I could get vertical working. I didnt work on it for long enough to get horizontal per-pixel working. I did get per-8-pixel horizontal working though. Hey, youve got me in the mood to grab an emulator now!
[edit]
or was it the other way around... man, its been ages!
>Andy: Maintaining an app that old is cool.
Yeah!
>Yeah Amos was NOT as good as Blitz for sure, I tried AMOS
>and stuck with Blitz.
Ahem, so Blitz had a generalized 3D expansion?
Let's not fall into the trap of saying something was bad or good, when what we really mean is that one product may have suited us better than the other. For you, Blitz was more suited, but since it couldn't do 3D, It was useless to me, for example.
The fact is that AMOS could do 3D, something which no comparable products could do until 8 years later ... And they required a PC.
Andy
What did I program my first 3D on? I can do better than that! I can SHOW you the first 3D programs I did. :-)
If you read the other thread about "Your greatest programming accomplishment" and saw my story, this cube demo is my first C program, written on a 486, written so I could send it in with my resume to apply for my first job, a position as a C programmer at a "game" company:
http://www.seamlesstexturegenerator.com/misc/cube.zipAfter sending in that, and getting my first interview, they asked me to program a 3D game in C which I should bring in to show them during my second interview. I only had a week to do it in, and this is what I came up with, which got me the job. You'll have to select PC speaker or no sound to keep it from crashing.
http://www.seamlesstexturegenerator.com/misc/parsec.zipI didn't use any transformation matrices when writing this, so you might find the ship behaves in odd ways. + and - zoom the ship in and out for example, but it's actually scaling the ship, not moving it on the Z axis, so when you scale it all the way down, it comes back at you inverted. Holding shift while pressing the arrows will keep it from rotating as you move it around. Insert will add more asteroids, and delete will take them away. There's no way to shoot, I didn't have time to implement an actual game.
And finally, here's my third 3D app, the very Wolf3D clone I wrote to show up that annoying lead programmer. :-) It's craptacular!
http://www.seamlesstexturegenerator.com/misc/doom.zip
Your Wolf3D clone is pretty good. Although I can understand the lack of perspective correction when close to a wall, you should have CLS'd the screen every frame at the very least.
Andy: AMOS didn't have 3D did it? Only AMOS Pro? I forgot this was a 3D thread, what I meant was Blitz was better for 2D games for sure than standard AMOS. Hope this carifies.
I made a 3d battleships game in visual basic using some 3d ocx/library.
I still have it laying around somewhere...
oh here's the one I made in Delphi 9 years ago (it used to run at 18 FPS which was the windows tick rate, now it seems to run at 64 FPS in XP, this means it zooms and spins a bit faster than it used to, which isn't as good):
Press 1 to 9 to make more shapes.
Try applying Zoom and Trip Mode at the same time :-) Works well on the pyramids.
http://www.jbcomputersolutions.com/delphi/view3.zipThe normal was used to calc the brightness on each face. Note that each object is viewed from a slightly different angle.
I made a wireframe rotating thing in which you entered the number of sides for a regular polyhedron and the program displayed the shape spinning round. That was on the speccy ( i was well proud, but it never evolved into Elite like I wanted hehehe)
Andy: AMOS didn't have 3D did it? Only AMOS Pro? I forgot this was a 3D thread, what I meant was Blitz was better for 2D games for sure than standard AMOS. Hope this carifies.
There was a seperate product called AMOS 3D which did the 3D stuff... Just like there was a stripped down version called Easy AMOS... And the compiler was sold seperately as well.
My first 3D stuff was done with Blitz3D! I put off going anywhere near 3D for ages - all the talk of matrices etc. put me off. :/
I did work on a 3D game project beforehand, but I wasn't involved in the 3D side - I did the frontend. Exciting stuff. :P
Make my front ends, pleeeeeeeeeeeeease!
Heheh it's the worst bit of writing games for me, I just wanna concentrate on the fun parts :)
Heheh it's the worst bit of writing games for me
It is when you can't even experiment with design/colour without one of the artists blowing a fuse. Boring! :/
Andy: aha that explains it.
Malice: Front ends are the first thing the customer sees and the doorway to your game so they have to look good, sound good and work well. I think they are pretty important.
Malice: Front ends are the first thing the customer sees and the doorway to your game so they have to look good, sound good and work well.
That's why I hate programming them :D
I dont judge a house by it's front door. I look at how it is decorated and whether the bathroom is clean...
Tunnel racing sim on Atari ST, coded in GFA-Basic. Fully animated at 50 FPS using palette cycling.
Later a 2.5D Raycasting FPS with textures etc. in Qbasic on a 486 PC.
I dont judge a house by it's front door
maybe not that but first impressions DO count for nearly everyone. Polish sells games!
WolRon:
"Your Wolf3D clone is pretty good. Although I can understand the lack of perspective correction when close to a wall, you should have CLS'd the screen every frame at the very least."
Spoken like a true programmer spoiled by modern computers!
If I was lucky, I was getting 16 FPS with that. If I was LUCKY! I probably was getting more like 10. So Cls every frame? Are you nuts?! :-)
Cls was NOT free back then. Far from it! That's why Doom had a HOM effect when you walked outside the world. There was no point in clearing the screen and wasting precious framerate if the user was never supposed to walk outside the normal confines of the level. Nowadays, clearing the screen or not has little benefit but back then it could cost you half your framerate.
sswift: your doom thing is cool. Impressive Date too, Nov 1994! I was 19 then, must have just seen Doom for the first time too.