* Razor Diskmag * Issue 1 * Edited by Terminator_Z Hello there and welcome to the first ever issue of Razor, the QB Diskmag. Sorry its so late, computer problems, real life problems and our tradition of always finishing projects late =) Anyways, enough from me and on with this issue, we hope you enjoy it... [Inside this issue....] [1. About Razor] [2. Your Letters] [3. Rundown of this month's new releases] [4. Other news that makes your scene] [5. ProjectRT] [6. Tim Ryan starts his series on game design] [7. Q2K] [8. SubShock] [9. Entropy starts his series on graphical effects] [10. Hack-Man]

[1. About Razor]

About Razor Well, here it is the first issue of Razor Diskmag. It's edited by Terminator_Z and coded by Maz. This first issue is a little sub-standard due to computer problems, lack of articles, etc. but all should be well for next issue. Razor is a kind of replacement for QB:tm which ended after an amazing 12 issue run on August 13th. Despite rumours, ZKMan has not left the scene, he merely no longer has the time to collect and write articles for QB:tm but is still an active member of the team over here at Razor. Razor can only continue with your support. If you would like to become a writer for us, mail or ICQ me with your ideas and I'll tell you what I think and give you info on formatting for the mag, etc. Contact info is below... ICQ : 11252603 EMail: razor@quickbasic.com Return now to the [INDEX]

[2. Your Letters]

Your Letters This section of the mag will contain all your letters, etc. and our replies. If you don't want something printed here then don't write. We reserve the right to edit any letters printed for clarity and suitability. Letters should be sent to: razor@quickbasic.com Return now to the [INDEX]

[3. Rundown of this month's new releases]

A Rundown Of This Month's New Releases Not a lot was released this month, or if it has been, I have missed it. Here are a few I took for a test drive earlier this week however. If you have anything new for me to review then send it in! 1. ProjectRT This months biggest release by far. Full review is [HERE]! 2. Classic Pacman Not a lot to say about this one. The game looks and plays very much like the original 8086 CGA version except it uses vertical scrolling which although looking nice at first does tend to get a little annoying after a few minutes of play. The graphics are not amazing, very similar to the original though the sound is pretty good and is one of the first QB games I know that has the ability to mix sounds together. without libraries such as BWSB (I hear the sound engine is still in its early stages and has a few problems with locking up some machines however) Still, its a very good re-creation and worth a download if you're into that sorta thing. Its also pure QB though its about 50% slower when run under the QBIDE. Return now to the [INDEX]

[4. Other news that makes your scene]

Other News That Makes Your Scene There has been talk of a new QB Diskmag on the scene from the guys at #quickbasic. It looks like quite a big project with many people working on it. Razor of course are giving them a sporting chance with this first issue but we're gunna have to blow them all away next month! We love the competition really =) Rumour has it that Leroy is working on some much needed TCP/IP routines to fill the void of communications over the Internet in QB. The war of the libraries continues this month and brings news of a new library on the scene set to blow the rest away. No updates on either the Dash or DQB side of things although Angelo has hinted as to a possible DQB 2 rather than going on with the current version. GSLib was looking promising although The Brain tells us that he has no time to work on it for the next month. The real news this month is with LordQB's LiquidGL' also knows as LiquidEX. This library is said to outperform even the mighty speeds of QB13h. It will be interesting to see however how it fairs against GSLib, regarded by many as the fastest in existence. Razor has recieved news of yet another celebrity QBRPG with such masters as QBProgger as main coder, MagnaUnum as story writer and LiteSabr as graphics artist. No doubt this will be quite a high profile project once it gets underway and with any luck, these guys know what they are doing and will hopefully bring us something quite special. Gleb is working on a clone of an old C64 game called Zamzara. Sounds fun! Necrolyte is back on the scene after quite some time. Little is known about why he left and little is known about his return but either way he is back now and we look forward to seeing some of his work in the near future! Marcade is offering free QB website hosting at http://www.zen-tech.net Pete's QB Site was recently reinstalled on HyperMart after it went down due to the illegal (?) distribution of QB4.5 on his site. Pete's QB Site is known throughout the QB land as a haven for up-to-date news and reviews. The site always used to be updated on a daily basis and hopefully this is how it will continue. Another side scroller demo, FoX, was released not so long ago in competition with the other existing titles such as Peanut Patrol 2 and Agent Squeak 2. The estimated release date is February 2000 for the full game but a proper playable level will be out in the coming weeks. There have been no changes to either PP2 or AS2. PP2 is on hold as The Brain, main coder, is tied up right now with other commitments. Hot of the press! AS2 has just been cancelled as Maz, main coder, no-longer wants to work on the project. He says that due to the code size and messy ASM, it has become too difficult to continue work on. This leaves us with just two side scrolers out there, Peanut Patrol 2 and FoX. Return now to the [INDEX]

[5. ProjectRT]

This month saw the release of the first proper demo of ProjectRT. This, for all of you who live under large stone pillars, is Enhanced Creations latest project. From the people who bought us Cuby and Coby, we were expecting big and yet again, Enhanced haven't disappointed us. Its by far and away the best raycaster the QB scene has ever produced and has many features such as sky, fog and loads more other technical stuff than anything else out there to date. I had the engine knocking out around about 30FPS on my Pentium II 266MHz which is easily high enough to produce the effect of smooth movement. I don't know if Angelo is planning on doing much optimisation before the final release although in my opinion, this is what is needed. I can't see this game looking good on any less than a high end Penium as is and with high sprite counts each with AI, no doubt this will also hammer down on the FPS. On the positive side however, the engine features many effects such as shading of textured walls in only 256 colours, not 64000 colours as was expected, this was due to speed I am told. The engine also comes complete with its own Quake style console and map. I can't wait to see the finished version of this game, it looks although its going to most definitely turn out as another QB gem. All that needs to be done now as far as I can see is the sprite control side of things, collision detection, etc. Hopefully this will not take too long and we will be playing the very first games made with this engine very soon! Return now to the [INDEX]

[6. Tim Ryan starts his series on game design]

Game Design By Tim Ryan A player buys a game to escape from his or her reality. Good levels and hence good games will immerse the player and suspend their disbelief. From the moment the title screen comes up, you have their full attention. From that point on, they should see and do nothing that reminds them that they are anywhere but in the world you have them in. You must furnish a setting and actors that meet the players' expectations. That is, you need to design a map that not only looks like it could fit inside the world they are playing in, but contains elements that help to draw that reality in the players' heads. A player's sense of escapism and suspension of disbelief can be ruined by a variety of common errors. These include bugs such as graphics glitches or crashes, but from a design standpoint, these also include inappropriate content. For example, a McDonalds Golden Arches on the skyline of a medieval town is obviously out of context. Similarly, if a player is told by a character to hit control-T on his keyboard to teleport, then it would remind him that he's typing at a computer and not in some fantasy realm. Generally, to maintain the players' sense of escapism all content should be appropriate to what would be seen, said or done in the game setting. Challenge: Testing the Players' Mettle Players buy games to be challenged. If there is no challenge, they might as well be interacting with their word processor or spreadsheet software. Challenge should always come in the form of testing the players' skills at the core gameplay. A shooter should test their aim and reflexes. A wargame should test their tactics. A strategy game should test their strategic sense. Some games successfully combine forms of gameplay to offer a variety of challenges, such as Command & Conquer, which has both planning/building and tactical gameplay. Challenge comes from difficulty. The trick to good level design is to present challenges that are difficult enough to merit the players' attention and make their heart or mind race, but not so difficult as to always leave them failing and disappointed. It's a delicate balance based on what is perceived as the median player skill, and it is a variable constantly adjusted up until the game ships. Entertainment Like a good television show or book, the game must maintain a players interest. The introduction of conflict, the revelation of the setting or back-story, the acquisition of new assets, the display of new art, and the increase in difficulty must all be deliberately spaced to keep the player interested and looking forward to the next level. One boring level can be the kiss of death to a game, especially if it's one of the first few levels. Game reviewers and most players only give a game that much time before they praise or trash it. Good level designers have learned to be objective about their own creations and when asking themselves, "Is this fun?" The hard part for many designers is that what they find fun may not be what the target market finds fun. As a level designer you need to understand the core gameplay, which is part of the vision expressed by the producers and lead designers. You need to try to understand and become that target market. Something that helps designers tremendously is to play competitors games. Often producers and lead designers will name successful games that they are trying to emulate. Play and study those titles. Make sure your levels entertain, thrill and excite you as well or better than the competition's levels. Frustration can also kill a game. Players stop being entertained when they encounter technical problems like slowdowns or graphics glitches. The designer can avoid a lot of these bugs if they pay attention to technical limitations and to the instructions of the artists on how to place the art. Designers can, of course, create their very own frustrating bugs, like broken AI scripts or door triggers that never trigger, or missions that don't always end when they are supposed to. Even worse, designers can create what are commonly called "show stoppers". Show stoppers are unbeatable missions or unsolvable challenges or unavoidable traps that frustrate players. A good level designer can spot these problems and resolve them with careful and rigorous play testing before consumers get their hands on it. Uniqueness Player's don't like playing, or indeed, buying, the same game twice. Of course, like Star Trek fans and readers of the prodigious Gor science fiction series, some players will continuously buy into the same formulae or even the same game with just slight variations in plot, setting, characters and art. The same can be said for level designs people don't like playing the same level twice. Not only does it ruin the entertainment value, it also fails to spark the imagination. Its therefore incredibly important that levels introduce some variation in the plot, challenge, setting, and characters (i.e. the enemies). Next month: some tips on story telling in your games... Return now to the [INDEX]

[7. Q2K]

Qlympics 2000 is here! Thats right, the Qlympics have come around once again and its time to get proggin'! This year, Tek from Neozones is our host for the event and the entries will be assessed by a panel of judges made up of a few well known figures in the QB world. This is good in someways as it will be much more fair than the old system where everyone could vote...and vote...and vote. The deadline for entries is February 2000 and there looks to be some quite fierce competition out there including ProjectRT in direct competition with the rumoured RT Killer by Pasco and the team. If you have info on any other games in the works for this competition, get in touch with Razor and we'll do our best to get some info on them for the mag. Return now to the [INDEX]

[8. SubShock]

Ok, this is the article that Razor was told not to print but then who am I to keep secrets from you anyway, eh? SubShock is a top secret project (until now that is!) being coded mainly by Magnaunum, we think. The other brains on the team include Pasco, Gleb, Hal_8900, Shea and Leroy. The project is known as SubShock and from the demo, it seems to be another raycaster, like ProjectRT but better. From what I have heard, it may well feature multiplayer capabilities over the internet, something never before done in QB. The brains behind this project are however keeping very quiet about this one though we hope to bring you more information as we hear it. If you're lucky, next issue may well see an early demo. They didn't even want this printed so I thought I better not include a link to a demo! There is a website although right now it contains only a logo and a counter but no doubt more information will become available in the near future from there so check out: http://subshock.quickbasic.com The release date for this project is Feb 2000 and so will most probably be out for Q2K. ProjectRT better look out, it looks like some big competition is in the works! Return now to the [INDEX]

[9. Entropy starts his series on graphical effects]

Bump Mapping First off, I should mention that this is the first of a hopefully regular set of tutorials explaining different graphical effects. Bumpmapping is the simulation of a lightsource moving over a bumpy surface. The bumps "reflect" the light at different angles, producing the effect shown in BUMP.EXE. The only real trick to it is knowing how the light reflects. First off, we need to know that the illumination of a point varies with the cosine of the angle between the point's normal of the surface's normal (it just is, don't ask me exactly why). We can assume that the normal to the surface is (0, 0, 1) because it sits along the x-y plane with no z-variation. And if we use unit vectors (unit vectors have magnitudes of 1) for the point normals, we know that the cosine of the angle is equal to the z-co-ordinate of the point normal, since, on a unit circle, cosine is the same as the x-co-ordinate, and we are using the angle between the surface normal and the point normal, not the tangent to the surface and the point normal (think of it as a unit circle where an angle of 0 points straight up, and rotates clockwise and the angle increases). So now we just need to know the normal to the point, which is approximated by: normal.x = texture(y, x - 1) - texture(y, x + 1) normal.y = texture(y - 1, x) - texture(y + 1, x) But we still need to know the z-co-ordinate of the normal. Since we are using unit vectors: normal.z = 1 - SQR(normal.x ^ 2 + normal.y ^ 2) The rest is (relatively) easy. We'll want to create a lightmap so this runs at tolerable speed. Assuming a gradient palette where color 0 is black and color 255 is white, we can use the following: DIM light(63, 63) AS INTEGER FOR y = 0 TO 63 FOR x = 0 TO 63 light(y, x) = 255 - 4 * SQR(x ^ 2 + y ^ 2) IF light(y, x) < 0 THEN light(y, x) = 0 NEXT x NEXT y This works because z = 1 - SQR(x ^ 2 + y ^ 2), and we need to multiply it by 256 to get the whole palette (z = 256 - 256 * SQR(x ^ 2 + y ^ 2)), and finally because x and y range from 0 to 63, not from 0 to 1, so we have to divide them by 64: z = 256 - 256 * SQR((x / 64) ^ 2 + (y / 64) ^ 2) We can factor out the 64s to get: z = 256 - 4 * SQR(x ^ 2 + y ^ 2) One final thing to factor in is the distance from the lightsource, which is almost too easy. Just add to the normals of each point the distance from the light: normal.x = (x - light.x) + normal.x normal.y = (y - light.y) + normal.y Then just lookup light(normal.y, normal.x) and you've got the color. One final thing to mention is that you can usually precalculate the point normals, unless the texture will change or something: FOR y = 0 TO ymax FOR x = 0 TO xmax normals(y,x).x=texture(y,x-1)-texture(y,x+1) normals(y,x).y=texture(y-1,x)-texture(y+1,x) NEXT x NEXT y An example routine is as follows: FOR y = 0 TO ymax FOR x = 0 to xmax lx = ABS(x - lightx + normals(y, x).x) ly = ABS(y - lighty + normals(y, x).y) IF lx < 64 AND ly < 64 THEN col = light(ly, lx) ELSE col = 0 END IF PutPixel x, y, col NEXT x NEXT y One final note is that, to make the bumps appear smaller, you can divide the precalculated normals by some number. That's all for bumpmapping. If you have any requests for the subject of my next tutorial, e-mail me. -Entropy E-mail: spau0022@tc.umn.edu Return now to the [INDEX]

[10. Hack-Man]

Hackman III Pac-Man? Nope, it's Hack-Man! (grandson of Pac-Man) So, what's so different about this game from Pac-Man? It shows off lots of features using DQB, and it has expansion, almost resembling to Wetspot! James Robert Osborne decided to make a game that allows future expansion, and lots of game play. If you were to download this game, you'll wonder a lot about it. As for being a Pac-Man clone, this game goes barely noticed! This is probably another one of the best QBasic games ever seen in the history of QBasic! You can see that this game was done well, because of its predacessors! James Robert Osborne started first programming in August 14, 1998! This game isn't too bad made by someone who's had less than 2 years of programming experience! Enough about James, let's get down to the game. This game shows off a LOT of things! It shows off animation, great AI from the ghosts, up to 4 screens per level, and the ability to create more levels using this! The sounds and graphics may not be the best, but it does allow you to customize graphics, colors, WAV files, and the unbeatable levels themselves! The home to Hack-Man 3 and James' creations can be located at: http://thunder.prohosting.com/~simplyqb/wisdom" Return now to the [INDEX]

Note from the editor: Razor Diskmag was a "disk magazine", meaning that each issue ran from its own special DOS-based executable program, which had its own unique interface. In order to make this magazine more accessible, I have formatted the magazine's text (and some graphical) content so that you can read it in your web browser. To see the magazine in its original format, you can download this zip archive.