Want to print? Use this version Back issues are in the Archive Go back to the main site Download a zip version Don't like frames? Kill 'em. |
REM 'Letter from the Editor |
By ZKman
"Scho-o-ol's out for the summer!..." |
Ayayayayayaya! Summer approaches fast, flooding the ground with sunlight and warmth; but more importantly, giving QB Proggers more time home from school (or work vacation) to code inside! Summer is traditionally the boom-time for qbasic coding projects, and the non-paucity on the Hot List this month shows that not only is QB booming in quantity this time of year, but also in quality. Unfortunately, due to a vacation and some external circumstances, there will be no July issue. In August, though, we'll be back, and there will be in-between articles (probably 4 or more) in the meantime! Sorry! |
Art, MODS, and Project RT =) |
To help you kick off this time of year, we've presented what we hope you guys will think of as one of the premiere issues so far. Gavan has gone the distance again this month with an excellently documented second part of his art tut, showing some advanced tile techniques for more realism and "3d" look. Alias is back with another part of the highly-read voxel tut, gettin' down into the code this month. Bill McDonald, the coder of Spacewar, among others, has got you guys a great MOD tut, for those wishin' to write a MOD player. Nekrophidius, on the teams for WoS, Kalderan and many others, has an article on the SBS File Format, to start off a new series called "Tip o' the Month". Finally, I've got another RPG Design tut; this time, instead of focusing on story, we move onto battle engines, citing all the great reasons why copying DarkDread's engine is not the best idea for writing an RPG =). A few other changes in the content of the mag this month; first of all, the cgi Poll voting is *almost* finished, and, kill me if this doesn't happen, will be up next month. Also, the Must Downloads, a 7 month-old and getting-stagnant feature, has been overhauled, and will now (we hope) enthral interest more than it has in the past. If you missed it, we've had a couple of specials put up during the last month. Firstly, there's an article on Debugging by me, and QBProgger and me teamed up to review the Adventures, a game from TMB Productions. Next month's specials will probably include something on QB4.0 vs. QB4.5, among others. Finally, in our continuing quest to find where our readers are from, it was discovered that we have a reader in the Northern Mariana Islands, bringing the total to 22 countries on 5 continents. Qbasic truly is a universal language... Ciao,
|
Compiled by ZKman
JPEG Viewing in Qbasic has arrived...
Dmitry Brant (dmitrybrant.hypermart.net) announced that he had completed his late last month, about the same time as Petter Holmberg (ec.quickbasic.com), whose decoder has been in the works for about a year. Jpeg's don't have much use in qbasic games, just due to the fact that both decoders are fairly slow compared to GIF or BMP decoders, and that jpeg is a "lossy" format, which means graphics won't stay pixel-perfect, but the accomplishment is still a testament to the implacable growth of ability qbasic's coding community have seen in the last year. In related news, QBProgger has been workin' on a project, which already has the ability to load GIF and BMP files, and the loading is among the fastest in qbasic today. On top of that, the GIF2IMG also can load Gif89a, which is, as of now, unprecedented. | JPEG in qb, IRC, and Ultima |
The QBMission
The page invites you to contact any developers you know and ask if any of their games were done in qbasic, for report on the page, an effort qb:tm supports full-heartedly.
Just when you thought the treaty was comin...
GSLib, by TheBrain (Puz, SpriteShop, PP2), has been called the "fastest library available", and qb:tm's tests confirm this. Right now, GSLib only has the sparsest of features, but looks to be one to watch if you're lookin' to increase multi-fold your game engine. FutureLib is from the guys of at Future Software and is to be a more complete library written in asm. Props to both of the authors for the 2 great new libraries!
Since We're talkin' 'bout Libraries The most interesting news, though, came from the DirectQB camp recently, when Angelo informed us of the next big addition to dqb: Modem Code! Back in Issue 6's feature "The Future of QB", we stated that multiplay would becoming a huge force in the coming 2 years for qb'ers...and with it's inclusion into DirectQB, this could only become more likely. Whether the code is IRQ or TCP/IP was not revealed, but past trends show that IRQ will probably be the first included.
Progar.com - By Coders, for Coders Go and sign your page up now!
Voxeling...
Plea of IRC! =)
Short Programs...
PB3d being ported to QB
Virtual Memory in QB! This effect, although the source has not been released, is attained through using a disk cache, but still retains a good speed, according to Michael Hoopman of the DA2 team.
Free Boards at Future
MOTG Newsletter
United Proggers Online
Moving... Oops!
|
Hi-color prt, DA2 demo, Oham, and Distant Promises |
Latest Game updates:
|
Of Hell and Magic, the new action RPG by Progman, recently had a full version released to much acclaim. Featuring smooth scrolling, and Zelda-like gameplay, all qb coders should grab this *complete* marvel at this address. Next month, our review will tell you: better than Dark Ages? The number of space-shooters increased last month with 3 new announcements to join Sar2 and Freelancer. Firstly, RabidMoth sent us a demo of AIIB, which is a fairly innovative space-shooter. The graphics are fairly-good (they are fully polygonal), the special effects, such as zooming in on a ship you're chasing look very professional, and RabidMoth promises such advances as mission-style gameplay in future releases. Secondly, Eric Carr, of Spinball fame, showed off some shots of a new 3d engine called WTSC, which promises to solicit more "ooohs" and "aaahs" as the game progresses. No gameplay details are available, but past experience from Eric hints that this will be a very good title. Finally, Entropy sent us a very early shot of his new un-named space shooter, which looks to play somewhat similar to Space-a-Roo2. More details on all of these titles as they come. Distant Promises, an RPG from DarkDread, had a first demo released recently, and looks to be one to watch. Featuring a Final-Fantasy style battle engine, and, more importantly, original plot and good development even at this demo stage, be sure and pick up this game as soon as you can. Speaking about titles you need to pick up demos of, the second major demo of Dark Ages 2 was released recently, and to say it's a massive demo is an understatement. Featuring a world larger than the entire DA1 map, you can pick up items, talk to some NPC's, and see the first bit of story. Mike confirms that the next demo of DA2 will feature a demo of the much-touted battle system. The Adventures, a side-scroller from TMB that was reviewed recently in qb:tm, was released recently, and features 13 levels, as well as some interesting cutscenes and gameplay. See our review for more! A demo for Peanut Patrol 2 is said to be arriving sometime during the next week, according to The Brain. This game includes such things as Parallax Scrolling backgrounds, beautiful graphics, and some original gameplay. Now this month's shorts: JPZorilla is working on a fighting game called Raging Fire which looks very promising. View it at his address...A screenshot of the much-anticipated XENO 2 was shown recently, and looks to be a huge improvement over the original, allowing for a complex wall and ceiling structure, as well as fast speed to boot...Senseless Violence, a Diablo-style game, is coming along, and graphically is one of the most advanced qbasic titles as of yet; keep an eye on this one...DeVo's new project called "Projx3d", a 3d engine soon to be a 3d lib, a la PB3d, looks very advanced, and challenges for one of the most advanced qb titles. Along with PB3d port, this should help crank development of 3d titles in qb...Finally, Agent Squeak, another highly-anticipated side-scroller had a demo released recently, and looks very interesting; from what we've seen, the object is to collect all the cheese on the level, and gain special abilities such as fire-breathing to kill the enemies. That's all the latest news for this month. Remember, if you have any news or rumours, send them along to Qbasic: The Magazine |
By ZKman
Here's what you had to say about last month. Be sure and send us more letters soon!
I've got a problem:
Gunther Easy to fix: Instead of left-clicking (I'm assuming you're using a PC and not a Mac), right-click and hold until a menu pops up. Choose "Save File as" or "Save Target as" or whatever it is, and there ya go. |
Hi, my name is Logan Hoehn, but I go by Mastermin on the net. First off, I'd like to say that I enjoy your magazine very much, and is far better than anything else on the net. I check your page frequently for new issues. I also like the between issue special articles, but I feel you may have rushed the latest one [on debugging]. Don't get me wrong, it was fairly interesting, especially the quotes from popular coders and their bugs, but I don't think that it really gave me any insight on better debugging techniques. I find that I rarely have debugging problems anyway, and my methods are good enough for me, so I don't really need any help with it anyway. I still think that maybe you should have spent a little more time collecting ideas and debugging methods before writing this article. As far as your magazine goes, keep up the great work! -Mastermin Heya...thanks for the comments. The reason I print our email address at the bottom of an article is so that you guys can tell us what you thought of it. Specifically, the debugging article was aimed somewhat more for people with less than a year of coding experience, with the quotes put in for more advanced coders. Sometimes, though, something that seems like a good idea for an article turns out not to be so - even though debugging is a very important part of programming, there's not much to write on it. We hope you like the next few specials better, and thanks for your comments! |
Hi... There is another QB Space shooter you probably haven't encountered. I made StarFire in QB over a year ago. It was a fun (hopefully ^_^) and challenging space shooter, with bad sound, but ok graphics and good gameplay (lots of enemies and weapons). You can take a look at this address. Hope you like it! David Karlov Not too shabby! If you dig space shooters, check this out during the wait for AIIB, SaR2, Freelancer, and the others. |
Ok, zkman, you wanted my comments, so here I am. First of all, I don't care what this Timothy guy says, and I also don't care if this game (Killers) is "disowned as a qb game". And you're right, I don't change my style just because people don't like it. Whether or not it is a qb game or not is irrelevant. Maybe a few people are jealous? I could just as easily make this in straight asm. Secondly, I may just use [the Killers screenshot] graphics as final art, because it's no mystery that I suck when it comes to art. Music and code are a different story. However, because I'm using MIDI, I can't do the music, so I have a very talented MIDI composer doing that part. And why might I use these graphics? Well, maybe I can stir up some more controversy. Think about it...how many people have heard of WoS, if not just because of the naked woman in it? Is there any chance that there might be a reason I put that picture in it? And finally, (sorry to make this letter so long), but those of you who witnessed the ongoing fight between me and zkman, keep your words to yourself because we settled our differences like grown adults. Something a lot of people in this community need to learn how to do. nekrophidius As monthly readers know, some controversy was stirred up over nekrophidius's fairly explicit new project "Killers". However, nekro is never one, as he says, to change his style because of other people. If anyone else has something to say in support (or not) of this letter, send it in and I'll print it in the next issue. |
This is about virtually every Qbasic game with sound; it's a major prob for me. You see, qmidi and BWSB games only support the realms of 220 to 22F when finding sound cards. Unfortunately, my card is on address (or is it interrupt) 22H. So I can't hear any music on many games, like Wetspot 2 and SaR2. Some games, like Bob Sagat Killer 2000, work on my PC, and WAV files run perfectly, so what's the problem? Is it tough luck for me or is there a way to fix it? I'm sure other people have the same problem, so Help! Plus, can you tell me where to get info on Vampira? It looks like a class game! Timothy Hmm...The reason BSK2000 will work (I think) is that it uses M/K's .mkj music format, and not qmidi or BWSB. I'm not sure if there is an option to get your soundcard to work with those 2 problems. Any readers care to comment? I'm pretty sure syn nine's page is at bowdown.to/synnine. His old page is synnine.8m.com, so that might have a link to it too. |
Hey, this is Bill. About your review [of SpaceWar]... 1) I originally made the game on 2 color 286's in computer class about 2
years ago. It was terrible, but got me 100%.
The music sounds repetitive because no one in Pyroelectric Software cand do music (we tried, but failed) and the Music engine is not BWSB! It's .HSC by Steve Bigras but modified for me. The .HSC format is only FM Music :( but with our upcoming game Pistol Force, it will have MOD music and still use dqb and have fades and all that stuff we've come to expect in a game. Back to Spacewar, the AI sucks, yes, I know, but at least the routines are different for each type of ship. This was my first attempt at AI and I thought I did a pretty good job, but I guess you disagree. Bill McDonald
Thanks for the information. About the AI, it's not "bad", but when I've just played Freelancer with planes and tanks criss-crossing and running to bomb and all that, it doesn't seem very adequate. But, remember, the 5.6 SpaceWar got is *not* a bad review. 1.0 is bad. 10.0 is good. 5.6 is average. |
Hi. I was just wondering if you could, in your next issue, post links to all the files that are featured in your magazine (Dark Ages 2, SFB2, etc.) or maybe even post them on your site. Due to my connection (Aol), I am not always able to download items at other sites, though I find I can always download items at your site. Thanks for the site, Anthony I'd like to post up all of the files in Must Download and whatnot on the site, but I have a limited amount of space with which I can post files, and some of the games are too large. There are many browsers you can download, though, and then just open once you've connect via aol, like Neoplanet, Internet Explorer, or Netscape. |
qbasic: the magazine reserves the right to edit any letter recieved for purposes of clarity and space. But you already knew that.
|
![]() Here's the results of the Issue 7 survey from Qbasic: The Magazine! We need more people to Vote! So do it! Favourite Game | Last Month | Change 1. Wetspot 2 1 <> 2. Dark Ages (t) 2(t) <> 2. Mono. Shooter (t) 3(t) U1 2. Agent Squeak (t) 3(t) U1 5. MiniRPG3 (t) -- -- 5. Peanut Patrol (t) -- -- Comments: Wetspot 2 destroys all of it's competition this month. Expect some shake-up here in coming months with the new games coming out... Favourite Utility | Last Month | Change 1. DirectQB 1 <> 2. FutureLib (t) -- -- 2. PP256 (t) -- -- Comments: DirectQB dominates the voting utterly in this survey. Dash still hasn't made it back on the list, but the new upgrades might push it up. Best Upcoming | Last Month | Change 1. Dark Ages 2 (t) 1 <> 1. ProjectRT (t) 3(t) U2 1. Freelancer (t) -- -- 3. MiniRPG4 (t) -- -- 3. Dash2 (t) 3(t) <> 3. S. Violence (t) -- -- 3. WTSC (t) -- -- 3. Kalderan (t) -- -- Comments: Enhanced gets the trifecta with Project RT tying for 1st. Last of the Legends, tied for #1 last month, falls off the list. Vote today by emailing your votes for:
|
You need this stuff! |
We've got a slightly different format in the Must Downloads this month. From
now on, we'll be displaying the 10 programs you *need*, and that's all. And the
ratings will go in terms of pure playability or usefulness, not nostalgia. So
here's the new list (in no particular order)! Oh, and if you see somethin' missing,
write in and tell me!
|
Absolute Assembly Petter Holmberg of Enhanced Creations's assembly converter. By typing in normal asm, this proggy will convert the asm into goods that qb will understand. Super-spiffy!
| |||
Dark Ages One of the most engaging QB games ever, as well as one of the only complete rpg's. This was featured in PC Gamer! Check it out!
| |||
Monospace Shooter
| |||
Wetspot & Wetspot 2
| |||
SFB2
| |||
PP256
| |||
DirectQB
| |||
Dash
| |||
QMIDI4.1
| |||
Of Hell and Magic |
One of the classic qbasic sites on the internet, formerly run by Apester, and now by the venerable LordQB, Qbasic RPG's is one of the best choices for your RPG needs. Tutorials, links, a board, game info, it's all here. This site is one of my personal favourites, and, if it would've been updating more, probably would've been one of the first awardees. We hope that the new site (and know that it will) rebirths into a qb mecca, as it's history and legacy proceed it. | One of the Classics... |
By zkman
Be original! |
Battles in RPG's are very often the most significant part of a role-playing game design, but because of the success of games like Final Fantasy 7 among Westerners, and the influence of Darkdread's games on qb coders, prosaic battle layouts are the rule of the day in qbasic. This often leads to a dull and monotonous play for your users. You don't want battles to be used simply as a way to earn money or give challenge to a short title, having players lull into a "click-through" or "push-through" state of battling where one merely chooses "Attack" again and again. But what other kind of battle systems are there to use in your games? And how can nonconformity to past titles make yours a "legend"? Read on... |
Types of battle engines The Strategy RPG generally relies on a few things: non-random battles, specific weaknesses/advantages, and large battlefields that allow a character to retreat as well as advance. Many strategic RPG's also employ a technique where every encounter is full-planned, and a long arrangement; something like only having 20 battles in a game, but having each last more than a half hour. The most important thing, though, is to remember that strategy RPG's have to allow a character to know the strengths and weaknesses of each type of enemy. For instance, a Ghoul can fire a magic spell at everyone within a radius of 2, but is weak against Water magic, or something similar. Also, formations should be allowed to gain an advantage. Remember, a strategy RPG means anything from allowing characters to fight on a simple grid-layout, to a full-fledged Warcraft in your RPG. Final-Fantasy style RPG's are the most common type with qbasic coders, simply because they are not very difficult to code. A final-fantasy RPG generally means groups of "good characters" on one side of the screen, and "enemies" on the other, with each attacking in turn. The only problem with this setup is that it's very easy to get into a "click, click, yawn, yawn" system unless you throw in some tricks. For instance, how about allowing your character to steal from the enemy, or give the character a "special" ability if they kill each difficult boss. Keep in mind that stagnance is easy to accomplish with such a system, but with legerdemain of the method, a legend will be made. The final "metasystem" is the Action RPG. This basically encompasses every RPG that has a different battle system than the two listed above, but is generally referring to Zelda-style gameplay. In such a system, there are no "turns"; basically, if you press the button, you swing your sword, if you click the mouse, you cast the spell. The enemies are almost-always on-screen in such a system, as well. But zelda-style is not the only flavour: games such as Samarai Showdown RPG allow you to fight your battles "Street-Fighter" sytle. With this system, you are free to let your mind run with an idea, but this generally accounts for the longest time spent programming, which is why you have seen it rarely in qb (Of Hell and Magic and Ziel being notable exceptions). |
Shining Force - a Strategy RPG |
![]() |
  |
Now that I have a general idea... Special abilities are very consequential to a player's enjoyment of an RPG. Not only do special abilities allow for additional eye-candy, they also allow the player to greater plan what they're going to do, and will test a player's patience (if they'll use a big ability now instead of later). Making special abilities, both for players and enemies, rare and important, will further the excitement over them, and also take humdrum gameplay away from your game, with players looking forward to something other than "attack". Special abilities also make good rewards for players at specific points; who can forget when they got each spell in Zelda 64? Items are also affected by the choices you make when creating your battle engine. For instance, in a Fantasy RPG, there's no point in creating multiple weapons that are basically the same gameplay wise. Your players will not see the point. Instead, make each item/weapon/defense significant, and, if possible, make each effective against a certain type of enemy, so that there is no "best"; some are good some of the time, others better at other times. Quality over Quantity When a player looks forward to your skirmishes, and attempts to seek out all the ways in which to gain a slight advantage, or even says "Yeah, this is cool", as they play it, you have accomplished a good battle system. Although a battle system is not nearly as important as a good plot or character development in an RPG title, when the player feels the battles are "getting in the way", they are not quite tweaked. Good luck!
|
By Zkman
Peanut Patrol 2's first screens to come out, this side-scroller cranks at 147fps on my 166.
![]()
|
By Alias
Alright, everyone think back two months, before I discussed landscapes and "fixed" VOXEL.BAS, long, long ago when I gave you the voxel-editing program to create your own voxels. Well, a lot has ahppened. Syn9 has released his voxel viewer. His uses a very similar format to the one I gave out two months ago, and with only a few changes they are interchangeable. In fact, there is a program that can change them, load them, save them, edit, and do a lot of other cool stuff! The downside is that it uses a totally different palette from the program I gave you at first. | Interpolation for Dummies =) |
  |
Now I'm getting ahead of myself, I haven't even defined a list voxel yet! Silly me. Well, you remember that editor that I presented in the first part, it saved and viewed images in a 3D grid. This allows for wonderful detail and very level performance, but the voxels are limited in size. The only way around this without creating humongous arrays is to switch to a list voxel - that is, instead of storing whether there is a voxel at a given location, you store every location that there is a voxel. OK, now that we understand what a list voxel is, we can draw it. The image viewer that Syn9 released is fully capable of that - fire the puppy up with your favorite voxelmap and watch it go! Now look at it: the detail, the power of creating whatever you want, and look at how fast it is! On my Pentium 90, I get just about 6 fps for most voxels. For any kind of cumputer that's NOT obsolete like mine, voxels are playable, even in QBasic. Also keep in mind that this is a fairly crude implementation - by Syn9's estimates, the new version should run about 10 times as fast. That's fast. A little information about the voxel formats before I let you loose: there are 3 different QB voxel formats in existence: the SVF format used by the voxel editor in part 1, which is the same as the .tmp files that you get from it (you can actually rename and interchange them, you just have to change the extention to SVF. There's VXF, which supports up to 22 x 22 x 22 voxelmaps and is also based on a 3D grid, and XVG, which is a list voxel format that is changeable in size, so long as ((xsize^2 + ysize) * ysize + zsize) < 13000. |
|
A pic of syn nine's Editor |
![]() |
  |
Now that we have list voxels I want to discuss twhat you can do with them. First, the pros: list voxels can be larger, more elaborate, take less space, and in many cases are faster to draw than their grid-based counterparts. They are generally more versatile, lending themselves to particle physics and path-based movement better, and animation methods not frame-based. The cons: they typically have a larger data set, they're nigh impossible to change, defining a definite limit is difficult, they can be slower, and debugging them is a true nightmare. Case in point: the other example program for this month was to be a list voxel loader that loaded a list voxel and then exploded it... I couldn't get it to work. Apparently either the loading or conversion code is screwy and I couldn't get anyone to help me. I am hopeful that within a week I will be able to release it as an addendum to the article. And now I want to discuss the things you can do with list voxels: You can blow them up. I'm serious: a particle explosion never looked so good. When the program is released load up your favorite voxel character or madel and let her rip - you can try your favorite character, object, powerup, villain, or whatever. You can use the effect for more than death sequences though - (*LEAK AHEAD*) One of the weapons from my upcoming game, Attack of the Blobeteers, will be the Discumbobulator, which makes the enemy turn into a bunch of pixels that kind of flutter away in all directions for a minute before re-cumbobulating.
There are more things you can do. You could have something melt, or catch fire, or swirl into oblivion, or even change into a liquid that changes shape to match its container! The really exciting part it not necessarily the way to deform it but to animate it in more useful ways. Biped motion is one. It's possible to have heirarchial voxels, and if done right, one or more voxels could 'stick' to the floor while the rest of the voxel moves.... I'll save this for my series on physics though! No point spoiling everything! In particular, I want to discuss interpolated model animation, which is a new technique aimed at smoothing out animation. Anyone who's played Quake on a really killer machine (>200 mhz) may have noticed that the models tend to jerk as they switch from one frame to the next. Because there are only a limited number of frames you can fit in and the FPS rate is really high, each frame is used several times in a row. This makes it appear choppy. However, if you you a frame that is "between" two frames that the current scene is between, rather than one or the other, you can make things much smoother. Smoother still, use a weighted average based on how far off this frame is from the scene and it appears smoothest of all - if you can pull it off. By this time you're probably using lots of math to do all this and for large models it can slow down a lot, bringing the framerate down to where it's no longer advantageous to use interpolation, that is, unless you have it optimized properly. In the new Vampira engine, developed by Syn9, it is actually fast enough that for even a lower-end pentium (>100 mhz) it's smoother than any frame-based animation out there. So, if you want to see this in action, wait for the new release of Vampira - it will no doubt rock the QB world. Well, we covered a lot today, list voxels, file formats, and stunning new forms of animation. Join me next time to cover particles, and alternate methods of 3D projection.
| Download syn nine's voxel editing program |
By nekrophidius
S |
For the longest time, QB programmers have been using the BSAVE command to save screens to files. However, the only problem we have faced is with the color palette. A typical BSAVE does not save the palette, so unless we work around this then our colors will be lost and our image appears messed up. Well, Rich Geldreich knew this as well, and he set out to solve the problem. His technique involved placing the color bytes above the image data in screen memory, where it wouldn't be seen, but where it could be easily accessed. When I discovered this technique, I gave it a name: SBS, short for Super BSave. Ever since, I've used this neat technique, and now I'll show you how to use it as well. The main advantage to this technique is that when done properly, it is amazingly fast. We'll use a couple of tricks to obtain maximum speed from this unique technique. Also, keep in mind that this is designed for the typical SCREEN 13, and may not work in other modes. ---CODE SEGMENT:CUT AND PASTE---
'Access the screen memory segment
'Let's read the palette and place it above the video display
'Using the standard BSAVE, we can save the whole thing to a single file!
---END OF CODE SEGMENT--- That writes a 64775 byte SBS file to disk. Your screen is saved! Now, there are two ways to load the screen back in, using the standard BLOAD or using BLOAD with a few extra lines of code. So, here we go... ---CODE SEGMENT:CUT AND PASTE---
'Access the screen memory segment
FOR A = 0 TO 767
'Restore the default segment
---END OF CODE SEGMENT--- There you have it. A set of super-fast screen read/write routines. Like a BMP file, this format is pretty large. However, using compression theories will eliminate that, but that's a story for another tutorial...
| F |
By Bill McDonald
Wanna know how to do a MOD player? |
SECTION 1 This is my first tutorial so i thought an intro would be nice. Please excuse any spelling mistakes and so on. |
  |
1.2 Thanks 1.3 Blah Blah Blah get on with it..Disclaimer
Disclaimer:
SECTION 2
2.2 Why Bother?
2.3 Memory Requirements and Programs needed
The programs you will need to run the examples in this tut are
|
  |
SECTION 3
TYPE LENGTH Bits RANGE Basic byte 1 8 0-255 String * 1 word 2 16 0-65,535 Integer dword 4 32 0-4,294,967,295 Long * This is as close to the actual ones that I could think of.. (anyone that can do better email me).
3.2 Setting up the arrays/variables
TYPE Song
3.3 Checking to see if its a valid .mod
Before we load a mod we have to check that it is a mod. Every mod has a signature this is in the form of a 4 letter string that equals "M.K." The signature is stored at offset 1080 (438h) in the file, so it should be checked first. At offset 1081 there should be "M.K." identifies it as a 4 channel 31 sample mod file. So the check should look something like this..
Open the mod file for binary
SECTION 4
Sample information is stored at the start of a MOD file, and contains all the
relevant information for each of the 31 samples. This includes its name,
length, loop points, finetune and what not.
4.2 Data types for the sample headers
type SAMPLE
4.3 Loading the Sample headers
for i = 1 to 31
The Name, Length, Loopstart and Looplength need to be caclulated with this formula (byte1*100h + byte2) * 2 I will provide my alternate formula in the next issue.
Byte1$ = LEFT$(Length$, 1)
For FINETUNE, if the value is > 7, subtract 16 from it to get the signed value
Conclusion Thanks for reading
|
By Gavan
  |
First off, if you have not read last month’s article (issue 10), I suggest you do so now, as it covers several vital concepts not discussed here. That said, let us delve into more shading concepts. What is that I hear? Thousands crying "No, we hate shading, we don’t want any more freakin’ shading tutorials!" ? Worry not, this article concludes all that I know (or remember) about shading; in the following months I will discuss more interesting concepts like...explosions!!! (I sense that many have now gained interest). | Transparency, Refraction, and more |
  |
bump mapping
diffusion mapping |
Mmm...examples =) |
![]() |
  |
extrusion mapping
pattern mapping
specular mapping
transparency and refraction
Do not worry, it is not vital that you know all that garbage above, just follow the tutorial and pretend to know what you are doing :’). Before we examine the following articles, you must first understand a relatively simple concept: static objects and moving objects. Static objects do not move at all, therefore they can reflect their surroundings to any degree you wish. So, for example, if you were to have a reflective object on top of a given background, since it would only be staying in one place, you could render a perfect reflection of the background. If that same object were to move onto another background, the reflection would be inaccurate and look paradoxical. Static objects are generally things that will be glued in place in your game, like a torch on a wall (note that static objects can be animated). Moving objects, however, will be subject to any type of background change, since they can potentially move. Thus, you must draw moving objects according to only an approximation of their environment (we did this last issue with reflective objects). Now, on with show. |
Specularly highlight *this* |
![]() |
  |
dithered transparency
hue/value (HV) transparency
First we will work with the object cut out. If you do not have a "color replacer" tool in your paint program, you may find this part difficult (a color replacer replaces the secondary color with the primary color). You will want to replace the brightest region of this cut out with bright values of your object’s given hue, and the darker regions with subsequently darker values of the object’s hue (6,3). This should result in a shaded object that has a texture visible behind it (unless you messed up, which is most likely the case :0) ). Then the shadow piece is replaced with a fairly dark range of the object’s hue (7,3) (this makes sense because shadows cast by transparent objects are the color of the object). Then you piece the shadow and the object together in their respective places on top of the background where you cut them out (8,3). Flat objects (5,4)-(8,4) are similar, except the individual faces are cut out and replaced with single color ranges.
psuedo-refraction
Flat-surfaced objects (5,6)-(8,6)refract slightly differently; Whichever faces point outwards away from the ground (usually the upper pieces of a flat object), these regions refract, or partially refract, given their angle. Shade these regions in some other way than their counterpart faces. You may wonder why the other faces of these objects are not transparent. Remember that refraction bends light, so the side and lower faces of an object cannot "see" the ground below them; the only thing the can "see" is air, so they are shaded normally. You may choose to make your refractive objects transparent, but it does not always look good and is simpler left alone.
true refraction
conclusion
|
It's the end of the issue as we know it |
Next issue is sure to be bangin', with bunches of articles including more .MOD, art, and 3d action, as well as a probable review of "Of Hell and Magic" and possibly the start of a new series which I promise will be *very* interesting. Also, be sure and check back every couple weeks to read the "in-between" specials we've been posting! Remember, the next issue isn't coming until August, but check back for the in-between articles! Also, don't forget to register your QB company with the Visionaries Exchange. Till next time... END |