Home

Yaroze Diary

FTP Area

Yaroze Members

 

 

March 17th - April 6th

March has come and gone and it's time for a diary update. It's been 3 weeks of slight frustration getting to grips with the Yaroze. My goals (read previous diary) haven't changed, but now I'm beginning to realise that my perceptions of what's possible have been thrown out the window. As I mentioned previously, my first game was going to be ambitious, but I'm now having to think of a more realistic game to begin with, and during the whole process progressively see how much I can get out of yaroze. I keep having to say to myself - 2 Megs, not 20 Megs, 33 Mhz, not 333 Mhz. Nevertheless, although at times learning yaroze can be frustrating, it's a damn site better than diving straight into something like DirectX (something I'm going to do later this year - computer upgrade permitting).

I was reading the latest Arcade Magazine(including the free book Game Over), and noticed the column called 'Thinking Twice'. The column writer Neil Jackson gives some sound advice for anyone considering embarking on a career in the games industry. Most of what the guy says is true, but even though he paints a bad picture, it still won't make me think twice and my mind is still focussed on attempting to get into the industry (like a lot of you coders reading this). I reckon I'm about 40%(if you can quantify such a thing) towards my goal, considering I have a degree in CS, have done an AI game for a final year project, in addition to several years knowledge of C/C++ - actually I was looking at my very first game the other day (See previous diary) and recalled that I had written it using 'proper' C++ - classes/inheritance/polymorphism etc - the game's still utter mince though, but nevertheless I was suprised how easy the code was to understand.

 Before starting to mess about with any 3D yaroze stuff I reffered back to old Uni lecture notes which detailed the basics of 3D graphics. I then took a bold step and dusted down the Graphics Bible(C G: Principles and Practices by Foley et al), managing to actually get through the basic 3D chapter. However, this book ain't for the faint hearted. The authors sure know graphics, but some of their explanations can be confusing.

I've got a few points to raise concerning all things Yaroze-related, so in no particular order:

TurboCad and DXF

Maybe it's the package I'm using, or maybe it's me but I still haven't fully got to grips with 3D dxf files produced using turbocad. It doesn't help that it seems to be that in order to get anything displayed the correct way up you have to specify your intended z-values using the y-axis in turbocad and vice versa (and to remember to invert the z-axis). I've resorted to making all polygons double sided (for the moment) so that I can display the object fully, so that it's visible from all sides. Has anyone used turbocad for 3d dxf files and managed to get some sort of 3-d solid object(composed of several individual polygons) on screen with the minimum number of polygons (i.e not making them double sided). The damn thing is driving me crazy. Looking at the .ply files, I messed about with normals and stuff, but to no avail. I really need to get this sorted out soon.

 

Texture Mapping

Actually this is straightforward after realising what way the polygon is and the method of specifying UV co-ordinates.

 

Syncs

The bane of many a game programmer. There's nothing worse than frame slowdown - remember Atomic RoboKid anyone (on C64). Actually the best C64 game(according to my brother) was Turrican (damn good it was too). Incidentally, does anyone know what happened to Turrican's programmer - Manfred Trenz?.

I had hoped to be able to use the full frame rate in my project, but I think realistically I have to use VSync(2). It's going to be a battle to keep the syncs down from now on.

 

D-Cache

Handy, especially for those graphic routines. At first I thought my lighting calculations had screwed up, but I kept using GetScratchAddr(0) several times rather than specifying a different offest, e.g. GetScratchAddr(0), GetScratchAddr(40), etc. Dunderhead!

 

Sprite Display

Oh dear. I thought this would be straight forward, but the damn thing is just not on. I know for a fact that my tim images can be displayed (and that the image locations and cluts are ok) by virtue of the fact that I managed to texture map various polygons. However, displaying a sprite is totally different. I reverted back to some example code on sprite display and followed it exactly, using the example tims (which are displayed ok), but then I try using my tims( with identical details except converted from bmp to tim using timutil) and zip...nothing there. Maybe it's cos I've been up late doing this, but something strange is going on here. I'll sort this one out tomorrow me thinks. (07/04 - As I modify this page I fix the sprite problem - the one line I never really bothered to think could have been the cause turns out to be the one line that's damn important - SPRITE.attribute = blah.... DOH! I really need to stop midnight coding, I mean missing stupid things like this.

 

Siocons

Anyone else get this siocons problem: Run siocons first time with an auto batch file and it hangs saying Binary Write:timeout. After quitting siocons and you run siocons again it then attempts to load the first tim/tmd you have but hangs. I then have to reset the bloody thing to get it to work. Damn annoying, to say the least.

 

CodeWarrior

Dear Oh Dear. I paid 70 smash for this thing. I first noticed this program was bug-induced when I used the FIND option, and it didn't work properly. Yeah it works the second time you use it, but I mean come one, who programmed this, no, who tested this product?. I haven't touched code warrior for two weeks now, reverting back to standard dos/windows editor methods (actually I'm writing programs in Visual C++ editor - metroworks being as slow as a sloth being another reason for dumping it). Is there still time for a money back guarantee ;) ?

 

3 Weeks Effort - Could do better!

I hope this goes to show that, although yaroze is a great machine and isn't a major hassle to program in, there are still some niggling things that do tend to annoy you. I would say I'm a decent programmer having spent 5+ years messing about with coding/computers, but I still come up against minor problems, even at this early stage. Anyway, do I have any code to show for 3 weeks effort?. Nope, none that I would dare to release, but I promise I will release code to my first game when it does get finished.

Aside from learning the yaroze, I have been playing a lot of the old demo CD's. I now notice a lot more things playing these games now - for instance, the shimmering effect of moving polygons, for instance in Gran Turismo/Max Power Racing (is this due to integer rounding where the camera isn't always the correct distance away, or when the rotation is done on objects a far distance from the world origin - any ideas?), the use of fogging and 'intelligent' track/world design to hide the old polygon build up, and the huge use of 3d sprite techniques. However, the average gamer doesn't even notice such things.

So, not a great deal to report as yet, but I'm going to persevere with this whole game programming thing and see where it leads. Time to get coding and I'll be back at the end of this month with some more thoughts.

 

Rob, 7/4/99

 

 

 

 

Site/Code/Graphics © 1998 Robert Paul. Rob's World