QB Express
Issue #22 ~ June 7, 2007
"A magazine by the QB community, for the QB community!"
In This Issue
Contributors
- Pete Berg (Editor)
- Imortis Inglorian (Co-Editor)
- MystikShadows
- Paul Holmlund (kiyotewolf)
- Lachie Dazdarian
- Jonathan Wallace
- Rattrapmax6
- Eclipzer
- Nathan Kessler (Nathan1993)
- Deleter
- Z!re
- Scolizer
- tunginobi
- RedCrab
- Regular Columns
- Articles & Editorials
- Tutorials
From The Editor's Desk
Written by Pete
QB Express is...alive?
Yes, we're back! It's been nearly a year since the last issue, and I'm sure most of you expected that QB Express was done for. I don't blame you. Heck, I thought QB Express might be done for.
But if there's one thing I can't stand, it's letting a good thing die. That has happened far too much in the QB community. And QB Express is too good a thing for me to let it die like that.
I've been sitting on this issue since last August, and I had planned for it to come out by the end of September at the latest. Then, all of a sudden, the busiest year of my life started up -- I moved across the country, started my senior year of college, began producing four different TV shows, got a girlfriend, got involved with a ton of clubs, trips, jobs...and Pete's QB Site fell by the wayside. (When you're already working 18 hour days and pulling three all-nighters a week, it's tough to spend your free time on anything beyond eating and sleeping.)
It wasn't until a few months ago, when I was approached by Imortis Inglorian (aka Luther Ramsey) that I began thinking about QB Express again. He offered to take the job of editor off my hands and compile this issue from all the miscellanous submissions I had received. I provided him with the template, and he single-handedly compiled and formatted this entire issue -- and started working on a plan to continue the magazine in my absense. This issue might have never come into being without Imortis' help.
Now Imortis, along with the help of MystikShadows, will be helping me to return QB Express to its former glory. We're going to try to restore QB Express to its former once-a-month publication schedule and help breathe some much-needed life into this ailing Qmunity.
This issue is a transition between the old QB Express and the new QB Express. We're working to come up with a new system for QB Express to get made every month where the workload doesn't fall on one or two people, but instead the magazine is managed by a staff. It's the divide-and-conquer approach. We're looking for regular writers, reporters, editors and columnists who we can count on to write and edit QB Express by our deadline every month. If you're interested in helping out, you should email us at QBExpress@gmail.com and we'll talk.
Next month, a new era of QB Express will begin. And we hope you will be part of it.
Submit To QB Express
This magazine can't exist without people SUBMITTING articles, editorials, tutorials, reviews, news and feedback. This is not just a solo effort by me... it's a group effort by people throughout the QB community. If you have anything to submit, or have time to write something, DO IT!
If you want to write about something, but can't think of a topic, or need inspiration, check out the "Official QB Express Article Requests" thread! There have been quite a few articles requested -- and even if none of them strikes your fancy, we can help you come up with something that you would like to write about. If you're interested in getting your own monthly column or just want to write an article or two, by all means, do it! Anything that is submitted will be included!
I also want feedback and letters to the editor regarding this magazine. I want suggestions and critiques. What do you like? What don't you like? What could be done better? Let me know!
All submissions and feedback can be sent to qbexpress@gmail.com. You can also PM me on the Pete's QB Site or QBasic News message forums. If QB Express is going to continue to be so good, YOU need to contribute!
-Pete And Imortis Inglorian
Letters
These letters all date back to July, August and September 2006, following QB Express #21. As you can tell, many of them are very outdated. Usually I would take the take the time to write responses to every letter, but I feel like at this point it's a little late to write back. Still worth a look, though!
-Pete
Letter From Lachie Dazdarian
It's me again with a letter for QB Express. Since the next date I'm online
(that's the 14th of September and the day I'm emailing this) is the day when
I'm accepting a topic for my diploma thesis, I decided to whip up another
letter as I probably won't have an opportunity to write something that
takes more than 20 minutes in the next month and a half. As I see issue #22
is still not out today so you will hopefully include this letter in it. That
is if you have time. I've sent you so many things after the summer.
Recently I discovered I didn't send you a letter I wrote months ago(before issue #21)
so I'll brush off some things mentioned there.
The letter was mostly motivated by your reaction on Paul Martos' letter regarding his
bad experience in the FB forums. I was mostly harsh toward you for condoling RTFM
behavior and describing it as "diversity of opinion". But since I wrote this so
long ago I calmed down. I'll try not to care. If some people persist in acting
like assholes, I wish them good luck with that. I only hope that this sort of
people and those who tolerate their retard behaviour will realize one day that
the atmosphere they create is destructive and negative as much as the complete
opposite, for example, nazi-admins who don't allow forum users to say "Damn!".
Among other things I complimented Rattrapmax6 for starting printing text in his
Horse Humor comic, which I big step forward.
I commented the results of "the best QBasic game developer of all time" poll as
fishy and difficult to understand. Especially 16 people valuing J.B.'s Sonic
Xtreme demo builds over all the Na_th_an's, Master Creating's or Darkness
Ethereal's work. I guess he has a lot of friends. Then again, 10 people who
voted in division 3 think my work is better than syn9's, Piptol's and Jocke's.
Flattering, but hard to understand. And Oren Bartal getting no votes?!?! You
people are crazy. I can only say once more that I don't like the concept of
this poll. Originally I wanted to keep the poll much smaller(9-10 suggestions)
filled with the obvious QB legends(where I really don't belong) with bunch of
other people only being mentioned as the notable figures in the QBasic game
design history. I just hope we won't blush the day when the final results arrive.
I also nominated Vector X 2006 and Kingdoms for Qlympics FB ports category.
I guess it's too late now. Pity but no biggie.
QB Express #21 was another big and impressive issue. One wonders how much you
and those who contribute will be able to keep it up. Let's hope this will last
as long as Oprah. :P
Just recently I was going through the old issues of QB Express only to
discover the beautiful articles in it all over again. Like Deleter’s "Game Apathy:
Another Symptom Analyzed". I would blow it up and make wall-papers of it if I
could. :P And I was embarrassed to discover I missed Na_th_an's second chapter
of "Coding a Parallax Scrolling Platformer". Heh. I should have paid more
attention but then again, I downloaded issue #12 and issue #13 together last
year after my usual summer of absence and with exams ahead of me.
Back to issue #21.
First of all, thanks for reserving so much space for Vector X 2006 in the news
brief and putting LONG in the gallery section. I hope people won't be too annoyed
with LONG since for issue #22 I sent you news on the FB port and again few
screenshots. Oh, well.
It's nice too see the ambitious 3D projects from syn9 and Xerol being developed
but on a way they also make me sad since I know I won't be able to play them
on my PC. OpenGL hates my video card for some reason. MystikShadows did suggest
me reverting to Windows 98 in order to get my PC running stuff smoother. I DO
have Windows ME but it doesn't seem to have a proper setup file. The college-mate
who gave me the CD said it doesn't matter. All I need to do is to boot my PC with
this CD. Still, now is very inconvenient time for me to do such tedious(and probably
dangerous in the sense of data loss) tasks so I'll leave that for the future. On the
other hand, one dreams of owning a better PC in the future.
I'm glad SJ Zero is back with two articles. I wonder how his Tolko mission went.
Seeing one title of his article I was ready to send him an email entitled "Stop
selling your 24 hours HEATHEN propaganda!" only to accept his arguments after
reading the article. At least partially. I agree that such short projects
can motivate people to continue in a more ambitious manner, but I also believe
that restricting your attempts only to some 24 hours compos should not be the only
way. I certainly agree with this:
"We have the technology. All we need now is the will."
Relsoft's "We are the Normal and the Bounce Equation" is a blessing from the
sky. Man, I waited for such tutorial for years. This would definitely save Ball
Blazing Fantasy from such poor ball to wall and ball to ball collision. Now the
possible FB port of BBF makes much more sense. But above all, I can finally put
a pinball game on my "possible projects" list, without fear I will have to dig
through the net to find the appropriate routines. I love you.
Thanks to MystikShadows for writing that article about network programming using
Winsock. Not EXACTLY what I'm looking for but anything that brings me closer to
using such libraries is much appreciated. What I would really like to see is some
sort of simple network PONG game that uses Winsock, to show us dummies how Winsock
can be used in games on a simplest example.
What else...thank you for the tip on Lithum's "They Came... We shot them down!".
Really fun game. And very well designed. I kinda envy them on hitting the gameplay
value so good. Lucky(or talented) sods. Still, I would like to see graphics being
improved. I hate seeing a great gameplay ruined with lack of ambition in other aspects.
Ah yes, I will attach my review of Lynn's Legacy with this email. I fear it will become
a victim of "Lynn's Legacy reviews inflation" but I don't want to to trash it.
And that would be it. Sorry for not commenting more articles. I just don't have time to
deal with many things right now.
Hopefully I'll finish by diploma thesis successfully and embark into the great unknown...
real life(adopt me, please! :P).
Best Wishes, Lachie D. :)
Letter from ASCII-World
Hi all.
We have heard and read, in the past times, alot of rumors and assumptions about our website, ASCII-World.com
We just wanna clear these things here quickly, since what we have heard came from irc, IM, email and forums alike.
Mostly these things are pure misundestandings. But since we don't wanna make this too long, we'll just quickly answer some
things that are in air about our site.
1. ASCII-World is QBASIC/GW-BASIC/DOS website.
No, we are not. We are a website dedicated to the art of text and ASCII programming.
Programming language or platform are not important, any language is welcomed here.
2. ASCII-World is antiFreeBASIC website.
Certainly not. Half of all codes posted on forum are made for FB.
Most of articles and tutorials are made for FB.
3. ASCII-World is FreeBASIC website.
No, we are not. Most of our codes and articles handles FB (and probably more in the future too), but that's because contributors
and members are mostly FB users at this point.
4. ASCII-World created to keep QB and DOS alive.
Yes and no. QB and DOS act's big part on life of ASCII programs so you can say
one of our "missions" is to play with DOS. Alltho, we like to do it, so hard to say it's our mission.
It's more like an interest and hobby or even love. call it what you want.
5. ASCII-World is safesite for those who plays with ASCII since they dont have skills to do 3D.
No. We are not retarted, pervers or lame because we like to do ASCII/text programs.
We just dont see anything interesting to program 3D scenerys or games.
Consider a man, who spends his time and efforts on an old Buick, back in the 50's.
Is he retarted? Naturally, new cars gives way better drive, but feeling ain't same.
All cant see or feel it, but someones do. So dont judge us, or then you have to judge every one who likes for something "old".
6. ASCII-World is for those who hates latest 3D OS's and hopes return of days of MS-DOS.
No, no and no. Advance is always good. After all, with out it, we would not have internet and all these other
great things we have today. But we just don't feel the need to have latest 3D desktop's or graphic drivers.
We can use older ones and we do actually like to use keyboard.
7. ASCII-World is anti-M$ site.
No, no and no. Personally, lurah think M$ sucks, but it's not ASCII-World website's purpose.
If you disagree about M$ with lurah, then hop on our forums and say so.
ASCII-World is created and owned by Stephane Richard and Kristian Virtanen.
Two man, who just loved ASCII games, tools and applications, by coincidence happened to meet on internet and after a while of conversing,
decided to create a website that would present something they both missed on internet.
For now, website is created and hosted by Stephane Richard. The domain name is owned by Kristian Virtanen and some "modernized" parts of site are made by him.
But as long as these two names are behind ASCII-World.com, guidelines of this website will remain, no matter which one owns, hosts or codes something new.
Sincerely, Stephane Richards and Kristian Virtanen
aka, MystikShadows and lurah
Letter From Imortis Inglorian
I've been meaning to write a letter to the editor, for a while now. I want to let you know
that QBE is highly addictive, as well as writing articles for it. I have you to blame for
this disgusting habit. I hope your happy...
No really, I have come to very much enjoy reading, and writing for the QBE. Enough so
that I have decided to do a multi-part series on Cryptography. I happen to have a good bit
of knowledge on the subject so I decided to share it with the QBE and all those who read it.
Also, if you ever need any help with QBE, drop me a line. I'd love to help out.
Signed,
Imortis Inglorian
Letter From Jay Schmit
Thank you so much for this site. My 10 y/o son started walking through Ted Felix's
Tutorial for Kids this weekend, and he can't get enough. He had read an ancient book
called It's BASIC, published in 1982, the same year I was learning BASIC as a 10th grader.
When I showed him the tutorial, he worked all Sunday long, tweeking the programs taught in
the first 20 chapters. Plus, my husband and I are having a blast goofing around with it,
too. It's like finding an old friend!
Thanks again for all you hard work here. I'm sure we'll be visiting often.
Jay Schmit
Letter From lurah
Hi Pete
Well, you and all contributors did it once again. Great issue, full
of articles and news with great quality.
I have followed closely post's and threads about how QBE is dying.
But after last issue, we can say that case is closed and it's nothing
else except damn good thing.
Summer is soon over, and it most likely means that Qmunity (yes, i
wana use that word now and for long in future) get's back to computers
from holiday trips.
It also means (well, usually lol) that something new and fancy comes
up.
PCopy! is one of them this far, but since i dont wana talk about it
long way here and now, i just mention that it's even better to know that
actually third
"competitor", FreebasicNews is
on it's way. This only proves that FB, QB and BASIC languages in
generally are in good health and their userbases are activated and
motivated. There is plenty of room for all three of us, and if fourth
one wants to join, i say welcome.
Also, thru this issue of QBE, i wana say thanks to buddys behind FreeBASIC Insight website. That
site just kicks ass (sorry my bad word, but it really does). All
articles this far published on that site, has been extremely great ones.
I have enjoyed every single one of them, and for now, i do check that
site daily, just to see is there something new came up. Even readers
responses for those articles has been well-mannered and comfortables to
read. I really do hope spirit of that site stays as it's now.
This can sound a boost-up of one article there, but i wana make an
reference to hartnell's latest (this far) article, The Noob’s Robot Slave and How To Re-activate it.
That article together with this topic
started by hartnell, points in a good way for peoples, that programming dont have to be so damn serious
all the time. There is no need to create anything new or amazing every time IDE opens. Peoples can and
should program something totally useless just for fun time to time. I challenge every forum to put up
something like this.
Anyway, it's nearly 3am here so better go to bed. Thanks to you Pete
and all contributors for giving this great magazine for us.
lurah.
p.s Game
Dev section on FB forums was great idea. *thumbs up*
Letter From Eric Cowles aka 1000101
Mennonite wrote in QBE #21,
"i put this idea forward at a time when people are jumping out of line to
disapprove of this or that... sometimes someone goes too, too far in
attempting to destroy another person. actually, seph comes to mind, but
there's no telling who i am referring to. you may think i am referring to
pete, who felt compelled to trash seph personaly for whatever reason in
qbe #20. i am of the impression (perhaps mistaken, to be sure!) that seph
did nothing of any sort to pete... that pete only decided to trash seph as
a bandwagon sort of thing- but perhaps seph, as i once did, managed to rub
pete the wrong way in an email- i dont know.
i could also be talking about z!re, in her inability to wish seph and his
new family the best, only to take yet another opportunity to say he's
essentially unfit to exist. i could be talking about that."
I feel that he unfairly accuses Z!re of being the purpotrator behind
suggesting that seph shouldn't be running around bragging about
procreating. I do recall that it was myself that posted first my
disaproval of people with no firm grasp of reality and/or potential
mential issues to work out of having kids. Not to mention the big thing
of being just so young.
Now, on the flip side of that, I did congradulate Nekrophidius aka
NecrosIhsan aka LostSock aka [fill in the blanks] and Rhiannon on having
thier first daughter. But there is a world of difference between seph and
Nek. Nek is older, more responsable (from everything I've garnered over
the years of the two), more mentally stable (Nek has his moments, but then
we all do. Seph, on the other hand rarely *doesn't* have his moments).
In any event, what I'm getting at is that he accused Z!re of flaming seph
for this when I was the one who started it. He should at least get his
facts straight before submitting a letter to you and your e-zine (gawd I
hate the use of "e-" this and "i-" that) so that he doesn't look like more
of a ripe turd then he already is. Further, from my stand point, and I'm
sure the stand point of other more established members of the qmunity, his
comments and thoughts on the subject and other subjects don't amount to a
hill of beans as he lacks any credentials.
Z!re has been working for over a year on FV, cha0s has been working for
over a year on LL, I've been working for over a year on GSG, many others
have thier own projects but are equally respected but less vocal such as
syn9. We and others all have been around for a long time and have done
quite a few smaller things to earn our positions in the qmunity. Nek is
one of the most respected members because of what he's done and his no-bs
attitude. Z!re is gaining similar respect for much of the same reasons,
however, she is a bit more brutish then Nek at times ;P cha0s, of all the
people I respect in the qmunity, I have little negative to say about him.
In fact, I can not think of a single instance where he didn't follow the
old rule of, "if you can't think of something nice, don't say anything at
all." I'm not saying that he hasn't bashed anyone, just that I can't
think of a time.
To wrap this up, this is directed more at Mennonite and those others who
don't get the whole "ranking" within this virtual community, it works like
this: You start with nothing. Your opinions are worth that until you
show you are a helpful and/or contributing member of the community. If
you act like a childish n00b then you will be treated like a childish
n00b. This is why seph is still nothing in the community. It's people
who run the websites that allow us to congregate, people who produce
useful programs to use, libraried to implement, provide helpful advice and
solutions and/or games for us to play such as Nek (WOS), v1ctor (µGL,
FBC), Blitz (µGL), cha0s (LL, lots of help on the forums), Z!re (FV),
lillo (FL, FL2, Wetspot, lots more), Jorden (qbasicnews.com) and many more
for what they have done and provided over the years. There is no leaders
or rulers, only people that are respected and afforded thier
eccentricities due to what they have accomplished and done.
Eric Cowles aka 1000101
Letter From MystikShadows
What a pleasant surprise it was that evening when suddenly (unexpectadly I might add)
I saw a post on ASCII-World saying "QB Express #21 is now available". Not sure if I'm
the only that noticed that but typically, in my time zone, it usually comes out in the
morning, or early afternoon, #21 the first night time edition ;-). Unexpected, and
definitaly something I was glad to see popup when I hit refresh, on last time "as a
last minute refresh" of my forum making sure I had the lastest posts and there it
was.
I'd like to set the record straight about mennonite here. I'm sure some of you
(ok, maybe the majority of the readers) are wondering why I'm doing anything with
mennonite (maybe some in no so civilized word usage ;-) ). For one thing, I'm
very well aware of what's been happening this past couple of months, i've read
menn's posts just like you all have, so I'm not doing this out of ignorance.
In fact, as I posted on FB.NET, I'm doing this maybe with more knowledge about
mennonite than most have. Of course, I can't undo menn's posts, the internet
doesn't have a CTRL-Z. Nonetheless, since QB Express #15 (I say this because I
know everyone remembers QB Express #15 series of mennonite emails) I've emailed
menn, he explained the whole thing, with links to prove his points back then and
well, with all that much more info, in a way, you can say it all adds up to the
infamouse "how do I do that in QB? Simple, use FB instead!" ordeal that's been
happening. But through these emails, menn gave me some good details about how
he sees FB or any BASIC dialects. And well, me and him (although we use very
different approaches to sharing our visions ;-) seem to see things the same way.
I can't control menn of course (there's laws against that hehe) he can choose to
express his vision, thoughts and concerns the way he wants, but the base of
things remain is that we do share the same vision (or very damn similar on alot
of points) of how we see a BASIC dialect. But all this is not about what we want
FB to be, I'm not that egotistical to want to just throw my vision in the air and
expect it to superseed anyone else's vision including the creator of FB himself,
I'd never expect that and OF COURSE, nothing I've done was ever for that reason
either. We all have the choice to think, believe and decide what can happen,
and I've made mine. Besides, menn hasn't done anything per se to me to make me
change my decision. :-).
I would like to explain my point of view as well as all my comments I've been
making for the past couple months. Obviously, they haven't been taken the right
way so here, I'll clear that up (or atleats try to). I've said before, that My
vision of BASIC is based on the 8 founding principles of BASIC, and yes, that was
true then and still is today. One thing I do want to clear out though, when I start
sharing my vision of what BASIC should be (in that article I did for example) or
when I post on the different forums. I do it for a reason that is far beyond my
own scope and needs of a BASIC. Let me explain. The only thing I've ever
officially asked for from FB was PCOPY in text mode. It was my only request
back then and still is today (although I've been confirmed that it won't ever
get added). The rest of my comments about FB isn't about what I want FB to be.
Every single suggestion I've made aside of PCOPY were for the good of the FB
project itself (but not with the hopes that FB will change to fit my
recommendations though, that's the part people get wrong). Some of you who
thing FB is perfect have all the reason to think so. Because for you, the
move from QB to FB has been systematic and gradual, aside PCOPY, FB is very
usable in my case too and I do use it (i'm even porting my IDE project to
FreeBASIC because thanks to chaOs and Some help from DrV I now have something
I can use in lieu of PCOPY that gets the job done (thanks to both of you for
that, I'm very grateful for it).
Right now there's about 20 developers or so actively contributing to the FB
sourcecode base (the compiler, library ports, IDE, all contributing to
shaping FB into what it is today and what it will be tomorrow. I'm sure that
just in those 20 or so developers there's already some discrepencies, some
internal discussions that are made on different parts of the language. Vic said
that those that contribute determine the faith of the project, that's great,
I have to agree with that. Nothing can be done to change that, so I am using a
different approach in my comments and suggestions I make. One thing no one can
deny is that FB is growing in features and in number of users (forum memberships
are a good proof of that, 1200 and some members and growing). I don't think even
VIC can deny that one of the reasons FB exists is because he wants people to use
it. I'm sure he's very happy when he sees new projects being made and created
and and new users joining the forum and getting interested in FB (right Vic? ;-)
thought so hehe). So here's my point. for this I'll stick strictly to commercial
BASIC compilers users, but as we all know, there are many users from other
freely available BASIC compilers too. Ok, 10s of millions of VB 6 users, that's
alot no? I say VB 6 users, because a whole many VB 6 users just don't want to
make the move to VB.NET (With, in some cases, commercially viable reasons) for
example, some with very large projects they did in VB 6 just can't be ported to
VB.NET without a very considerable effort. Others just don't like the .NET
mentality as it was originally expressed back then and with today's new and a bit
different vision of .net, it seems making the move to VB.net just doesn't represent
the best alternative solution. Anyways, these VB 6 users know where VB 6 is heading
for. So yes, I can bet that alot of these users are looking at FB today and I'm sure
more will too in the future. Same thing for PowerBASIC users (we know what PB users
are saying about FB, and we know they are wrong in what they are saying too). My comments
and suggestions are all based on what these VB, PB, maybe some GFA Basic users, looking
at FB right now, might be wondering about. I've used all these languages (and other
BASIC dialects as well over the years) I'm in a good position to see, clearly, the
differences in philosophy of these languages, and can compare them as they were and
as they are, to FB. I guess I'm testing the FB forum as to how it would react to
either critics (made from VB, PB and whatever BASIC) against FB, but it doesn't
stop at critics either, I know for a fact that that there has already been questions
asked on the forum. Questions like "In VB you can do this, can FB do that too?" some of
these questions could have been answered in a more openminded fashion.
Now, If VIC's goal is for FB to become the most popular OpenSource BASIC to ever surface
the earth (which FB can definitaly become and even is fast becoming) then he should expect
to see alot of these VB versus FB questions, critics, ideas and suggestions, because users
of these other commercial BASIC languages (including of course, Free ones, like Envelop
BASIC (now phoenix), RapidQ, BCX, XBasic and XBLite and others) are probably all very
interested in what FB can do, and to me, I don't think that answers remenescent of "hey,
if you don't like this, use whatever you're using now" will get very far. Some of these
suggestions I've made myself, but others of these posts have been made by new users
(not me or menn). At the very least, these discrepencies should be noted down (even
if in a personal file somewhere) and attacked one by one to see if there's any FB can
please more users, maybe they are on a hidden file, if that's the case, great, I mean
it really all depends on what VIC sees in FB, but I think he wants people to use it.
OF course, the first batch of people that might want to use it are users of other BASICs
don't you all think? We all know how VB works, sure it's for windows only, but no one
can deny of how spoiled VB 6 users are hehe. Again, I'm not saying FB should change to
look like VB or PB or whatever other language, what I am saying though, is that Forum
Members should definitaly expect alot more of these differences, comparisons, critics,
ideas and suggestions that come from users of other basics. I want PCOPY in text mode,
it's ok if I don't get PCOPY as an intrinsic FB function, chaOs created something though
that gave me that functionality. I think this is a perfect example of what should happen.
atleast it shows that there is concern for users used to working a certain way because of
their other BASIC related backgrounds. Some things might not be possible, but a negative
(almost flaming like) reply to that still wouldn't be the answer. This isn't a complain,
it's an observation, if you look through the FB.NET forum you can see such examples of
these negative replies. I want FB to succeed like every one else does, and this type of
reply doesn't help (and no, I don't mean the replies to menn, like I said, other users have
gotten these replies to what seemed to be very legitimate questions or suggestions. 20 or so
develpers defining what could potentially be a couple million of potential users, well you
do the ratio and tell me a good reason why there shouldn't be some differences in vision hehe.
20 against a few millions hehe.
So again, to be clear, I'm not asking FB to change to become the next VB or the next PB
or whatever, I'm just doing these selective suggestions because I know users of other basic
are looking into FB, and I think that if my suggestions (among others) were atleast looked
at, or even better, taken care of in some way (like chaOs did for my PCOPY suggestion) FB
would look even better to the eyes of other BASIC users even if the answer has no choice
but being no, that feature doesn't exist and it won't be implemented. Phew, I hope I've
cleared that up good. And I hope everyone realizes that I do all this for the good of FB
and no other reason.
A quick correction if I may, in my last letter I seemed to indicate that I supported
the use of meaningful code in my comment on Moneo's "fallacy of meaningful code" article.
I don't and I wanted to clear that out, I support the article itself which means that I
don't support meaningful code, if that makes things any clearer hehe.
And now for the rest of the letter, if veins didn't appear in your eyes yet ;-). Ok, a word
about PCOPY! I hope, like you do, that it livens things up and creates more activities and
life than there already is in the QMunity. But since there's more than FB at stake in
PCOPY! (with an exclamation mark if you please hehe) I also hope it can stir things up
in those other language users as well. Basically, with a little luck, maybe the whole
BASIC internet world will be shaken up, but we'll start at the beginning and see how
things go :-). For those of you who are wondering, PCOPY! is on the verge of coming
out, my guess is it will be out before you get to read this paragraph. We're making
every effort to make sure the first issue does come out as soon as we possibly can
dish it out.
Well, the newsbrief section is still as lively and full as ever. People are busy being
busy doing things with FB or for FB and man, it's always great when we can see that
develop itself in every newsbrief section of every QB Express. I'm not sure if all of
you have read RDC's book in the making yet about FreeBASIC, but you should. RDC is a
gifted writer, there's just no two ways about that. So if you didn't yet, go read it,
you'll see how important his book has the potential to be. Brilliant work. It's fun to
see all the new engines come out too, Wallace's Inspiration is really something. What
I like about that, YAGL, and the other libraries is that they offer different alternatives,
different philosophy which gives users choices in which library reflects best their way of
working. And well the rest of the newsbrief is allways exciting to see.
Qlympics 2006 the name really says it all. I think it's by far the biggest best initiative
ever undertaken By the QMunity, About the QMunity and of course for the QMunity. I've been
following all the voting, the polls, been making sure I voted on the polls on your website
and of course I already filled out my QLympics voting ballot. This is one thing I can't
wait to follow in QB Express #22 and get all the final results at the end of all this.
Definitaly got me curious to say the least and of course, I'll be following this closely :-).
SJ Zero's "How to Design and Program a Game in 24 Hours" is impressive. It defines a very
well structured frame of mind and really seems very structured and feasible after reading
this to make a game in this frame of time. When I first read the title, I said "hmmm, ok!"
But after reading it, I can officially say I stand corrected. There's alot of good comon
sense in that article, and I think alot of people should read it and learn from it :-). I
almost skipped over his "Polemic For the Future of FB" article because at first glance
(and with my french background, I thoguht polemic was some math based principle hehe) but I'm
glad I didn't, short but motivational is all I have to say to that article. Great work there
too. Let's not forget his "Computer Controller Design" article too. Sure we've seen code like
this before, but now, we can all give it meaning and historical background to why things are
the way they are. Quite an interesting read, I've enjoyed it quite a whole lot.
rdc's "The Next (R)evolution in Computing" shares a very unique vision on things. I really
like the human centered computing versus the machine centered computing. When you look at
everything happening around the computing world, it seems that his vision might even be
closer to our present than we think. On my side, I've always been seeing one thing. STill
today, computers are used to do things we humans don't want to do, in the IT world, it's even
more true than it's been. But in general, we really haven't begun to create with a computer,
we've only been replacing what already existed (automating processes and the likes). Who
knows, maybe RDC's vision is exactly what we should concentrate on to shape the 2nd half
of the computer era, hence also, really start "creating". His "Single-Dimension Dynamic
Arrays in Types" article is no less impressive. I mean, who here doesn't wish this could
be done, and now, they can see that it can. Sure it takes pointers to do it, but look at
rdc's code in there, it really doesn't seem to be too complicated to use at all considering
the power it offers. Another great one from the disfunctional one himself :-).
I'll be the first to say that I just about never heard of Digg It. I say just about because
I do remember some articles friends sent me that came from there, but I never paid attention
to what Digg It actually was. Thanks a whole bunch for this presentation of what it really
was. It's in my favs now hehe. Like you said, it's really a geek's pot of gold at the end
of the CRT Rainbow ;-). THere's a heck of a lot of read all over the place there. So I'll
be busy for atleast a little while ;-).
As for the comics, well, they were all good. I see rattrap went back to computer drawing his
horse and of course, the text is definitaly clearer to read now ;-). 0 and 1 comics really
speak for themselves hehe. And tunginobi's humor is really growing on me. always a fun
distraction from the rest of the magazine, awesome.
To me, the name "Kristopher Windshor" is a new name, I don't believe I've heard of him since
about a month ago when menn posted a post on my forum about his iOS GUI project. Since I've
seen the iOS project however, didn't take too long to see that Kristopher is no newbie to
nothing. his "i-TECH Tutorial: Using Circles as Objects in Games" is just one example of
the things that he knows and can, as you can see, explain with great detail and clarity.
I'm looking forward to alot more articles from Kristopher, hoping he has the time to write
more. Absolutely great read if I do say so myself.
Good ole Moneo is at it again, his "Generating Random Integers" gives a great explanation,
details of how things work and why things should be done the way he describes them in this
article. You know, sometimes you read something that makes so much sense, you just can't
seem to find anything wrong with it, accept it, and live the rest of your life with this new
and well founded knowledge in your head. Well folks, this is one of those pieces of knowledge.
Brilliant work Moneo.
"Ecliptorial: Volume I - Floor Mapping Tutorial" When you read the first part of this title,
did you, like me, think Eclipzer was starting the writings of his own bible (and colt)? hehe.
You know, there's something to be said about someone, anyone, that has a specific knowledge, a
popular knowledge and shares that knowledge with those who want to learn. How many of the
readers wanted to know a good floormapping technique? I won't count all the hands that are up.
I gotta say, so far, Eclipzer's article have been among the most interesting ones for me. And I
am so looking forward to what he'll be writing on next. Almost so, as I'm awaiting for na_th_an's
eith part of his tutorials on IF games, and whatever else he might want to write about
(get the hint na_th_an? huh huh? hehehe). So Eclipzer, keep on writing, I can garantee that you
have atleast one interested reader and I'm sure many others too.
Finally some new reading material from Relsoft, his "We are the Normal and the Bounce Equation"
explains something I've seen asked, in many forums, for a while now. I think alot of people
will be happy to see this material, for one thing, it's Relsoft, his reputation definitaly
precedes him, so you know it's good. Not to mention, that I can already see where and how
these formulas can be used in 3D games too. Can't wait to see what comes out of his head next ;-).
Keep on keepin on Rel.
You know, my motivational comments on all these (and all those i've done in the past) are
really easy to do when the material is so good. Look at them, they really speak for themselves,
I just take what they say and "pretend" i said it myself so good they are hehe. Everyone should
really patt himself on the back for all the wonderful material we can read in QB Express every
single month. Thanks to all of you guys, you sure are making my motivational (cheerleading)
very VERY easy to do. And Pete, you're in there too man, with your gift of taking everything
that's submitted to you and putting it all together spectacularily well every month really makes
QB Express worth the read that much more. I mean, come on, 9 tutorials, 6 great articles, the
comics, the newsbrief, the letters, it's alot of stuff, how many reader here would take the time
to read all this material every month on any other subjects and if it wasn't presented so brilliantly?
Patt yourself on the back Pete cause if you don't, I'll go do it for you, and you don't want that,
it could hurt...hehe.
MystikShadows
Stephane Richard
Have a letter for the editor? Send all your rants, raves, ideas, comments and questions to qbexpress@gmail.com.
News Briefs
News from all around the QB community, about the latest games, site updates, program releases and more!
NOTE: This news is very out-of-date, some of it dating back to the Summer of 2006, some of it from spring of 2007. It's still interesting, though!
Thanks to Imortis Inglorian for compiling and writing most of these.
QB Site News
- The QBasic Games Directory Now Open
-
The QBasic Games Directory,
by Dean Janjic, is now officially open! It's been open for
testing for some time now, but it wasn't absolutely functional.
There is no fixed date for the arrival of actual downloads. Please be
patient, as we have 442 actual entires in the system and uploading
.zips for each of them will take a while. In the meantime, check out
the thoughtfully-written descriptions and screenshots! There's
catagories and filters to help you find what you're looking for also.
Again, Dean Janjic designed this entirely in PHP and MYSQL.
This was his pet project, and I'm just glad I got the chance to host
it. :)
- Code Something Useless?!?
-
Lurah (Almost undoubtedly inspired by Hartnell's
kickass article on the Noob's Robot Slave) has created what I'll Call A "Code Something Useless"
forum, Dedicated entirely to F-U-N with code.
Lurah says:
"This section is meaned for useless/fun or other codes that are created with laugh in thoughts."
- Freebasic Report Launched!
-
For all the FB fans in the house, there is a new freebasic related news website/zine online at:
http://report.freebasic.info/
For information about the site, please visit:
http://report.freebasic.info/keep_us_alive.php
Please come check us out. we hope to see your contributions in the near future.
To quote Eclipzer:
The FreeBASIC Report is a user-content driven online magazine for the FreeBASIC community.
Simply put, we now have a means to quickly and easily showcase our contributions to the FB
Community. Whatever your forte, be it games, demos, tutorials, comics, rants, or articles,
FBR supports it.
The beautiful thing about FBR is that the whole process is automated. You submit your
content, and it takes care of the rest. Unlike previous zines, there's no waiting and
wondering for issues to release. So long as there are people contributing to the mag,
it will continue to grow.
Finally, FBR's focus is on community and as such supports a host of features, such as user
icons, link icons, download links and reference links to promote this. FBR is also included
in the FB Top 50. Essentially, if you're looking to promote your FB related knowledge,
product or project, FBR will play a huge role in quickly realizing that aim.
- Hee Hee... .tut...
-
hartnell has started a great new project. I'll let his post speak for itself.
My project wound up landing on my website as a separate wiki. It currently has 64 pages,
7 tutorials, and 2 members. (I'll update this from time to time.)
http://fb.gamedesignnovice.com/w/FreeBASIC_Game
You can see how active it is at any time by going here :
http://fb.gamedesignnovice.com/w/Special:Recentchanges
In the very near future, there will be three separate projects going (FreeBASIC,
Brutus2D and Basic4GL) to implement .tut. Having them tied together allows these
three projects to look at what the other projects have done when they need help or
just for general inspiration in wording.
I also moved it because I couldn't stand the wikispaces wiki software. I'm a mediawiki
kind of guy.
Everything has been moved except the variable tutorial, which isn't for me to do. Voodoo
should do that if thats what he wants. If I moved it, it would be very rude.
If you like what's done so far, here's how you can help :
The FB Game wiki is using the old GDN logo. If you can design a 135x135 logo for it, it
would be greatly appreciated.
If you have news or want people to know about a project you are working on, you can post it
on the current events page.
http://fb.gamedesignnovice.com/w/Current_events>
If you want to become a regular member and have more spare time than the average person,
our Things to Do page is here :
http://fb.gamedesignnovice.com/w/Things_to_Do
Finally, even .tut is a work in progress. If notice something that should be a tutorial
or a concept that needs to be explained in .tut, please add them to the .tut pages. You don't
need permission.
http://www.gamedesignnovice.com/wiki/Dot_tut
If you can't think of something, feel free to ask a question about something you'd
like to know.
-hartnell
P.S. Still have a BOOMSTICK!
Project News
- New QBasic Game! Bounce 3: On the Town
-
Bounce 3 features new graphics including lightning, spotlights, a camera shake effect,
and moving helecopters in a great side-scrolling game!
The compiled version and source code can be downloaded here, along with instructions:
http://geocities.com/tzmne/projects/bounce3/index.html
Enjoy! {:-D
- Baskid BASIC Interperter
-
Hi friend, Im creating a Basic interpreter called Baskid Im using Free Basic as progrgamming
tool if you want to put Baskid on you web page I will like to much :) I need a lot of
feed back :) the link is http://www.esnips.com/web/vinianssBusinessFiles thx in advance
- EMS Magic 1.0 Released
-
Now you can enjoy all those QB classics you couldn't run before in Windows XP, due to EMS
problems: Wetspot 2, Shell Shock, Ultimate Super Stack, FoX, and more! Over 70 games and
demos have been tested as fully working.
Grab it here: http://emsmagic.phatcode.net/
(Easy-as-cake Windows installer available.)
Also works for running other DOS programs requiring EMS in Windows XP,
including Impulse Tracker and Quattro Pro.
- Wallace software Releases Pre-release Alpha of Dove GUI
-
I have coded enough of my new GUI Dove to post a demo of it. It runs real
executable programs written in FreeBasic so it is one of the fastest, if not
the fastest GUI every written in QB/FB. Comes with 2 demo programs (plus a
screensaver and primative error handler.) Source code for all 4 programs are
included.
www.freewebs.com/wallacesoftware/doveos.htm
- download is at the bottom, below the screenshots.
Let me know what you think of the GUI and the screenshots.
- Marvelous Twilight released!
-
Download:Windows version
Our own entry to the Shmup-Dev Autofire Shooter Compo.
A 2 player manic-shooter in the likes of Strikers 1945, Dodon Patchi and a cute-em-up from the
likes of Parodius and Harmful Park.
- AFLIB2 Remixed!
-
Hello to you all, and I got some good news and bad news.
The bad news first: due to the changing times and advanced functionalities of the newer
version of FreeBASIC (including current v0.17b CVS releases), AFlib2 will NO LONGER be
supporting 8-bit color depth at all. :( !
And now, this brings us to some damn good news: AFlib2 will now have FULL SUPPORT for 15-, 16-,
24-, and 32-bit color depths, and so will the SNES-based Mode-7 effects, definitely!!! (^-^)v !!
Hence, this newest version that I am working on will be called AFlib2 Remixed... the proud new
successor here in which many of the effects and stuff that you loved from the original 256-color
AFlib2 will be making a comeback into the hi-color/truecolor graphics modes, including some all
new ones also!! ;)
Just hang on tight... ladies and gentlemen, it is gonna be a great ride!!! d=^-^=b
- FBIDE Dead
-
VonGodric announced that he was disscontinuing the FBIDE project, but that he was going
to replace it with something better. Here is the post:
Hey everyone,
first of all about FBIde -it's dead. I lost the sources and what is on cvs is very old
and frankly a peace of crap. I have started anew with writing a new codebase for editor,
but rather then do blindly I'd like to start a discussion what should an IDE for freebasic
be like and what not.
Besides most of my problems that I announced a while ago have been solved and now I am inspired
yet again to work on it.
I am willing to lead the project and do most of the job -but I'd like some support with
testing, graphics (for icons and etc), ideas and writing and designing the code.
So please people tell me and offer advice and criticism -what you'd like to see or have in
next FBIde. And anyone who would be willing to help with the project?
The thread can be seen here.
- New IDE for FreeBASIC made in FreeBASIC
-
KetilO has released a new IDE closely based on his RadASM. It has a large number of features
and the ability to make your own plugins for it. KetilO also updates it very regularly, based on Bug
Reports and user requests. You can download it from here.
If you want to report bugs or ask for features, you can post here.
- Try Before You Buy FreeBASIC
-
sir-mud has made a page where you can type in and compile FreeBASIC Code.
It will then give you an exe download. It can be found here.
Other News
- PCopy 10,20,30 Released
-
ASCII-World has release 3 issues of their PCOPY! magazinesince the last QBE! Gotta love that motivation!
You can come here to
download and view the issues.
- Former QB Community Member sentenced to Federal PMITA Prison
-
Former member of the QB Community, Jeremy Hammond, who went by Xec96 during his tenure
here, has been sentenced to federal prison for illegally accessing the Web site of a
conservative political activist group and downloading the credit-card numbers of thousands
of its members. Many of you may remember Xec for hosting Vplanet, writing
Shellshock, the vertical shooter, and Quelda,
the Zelda Clone. Here is the full story.
Quote:
A Chicago man was sentenced to 2 years in prison Thursday for illegally accessing the Web site of
a conservative political activist group and downloading the credit-card numbers of thousands of
its members.
Jeremy Hammond plotted to use the credit cards to make donations to humanitarian and charity groups
opposed by the Protest Warrior Web site into which he hacked, but he changed his mind, according to
court records.
According to his lawyer, Hammond has extreme left-wing political views. He admitted to the FBI that
he was a member of hackthissite.org, which identifies itself as "an online movement of hackers,
activists and anarchists," the court records show.
After Hammond's father had noted his son was 19 at the time and used poor judgment, U.S. District
Judge James B. Zagel picked up on the point, but used more blunt terms.
"You were an idiot when you did it," the judge said. "At the perspective of my age,
all 19-year-olds are idiots."
Prosecutors had sought up to the maximum 5-year prison term and said they wanted Hammond, now 21,
immediately jailed for violating bail by failing two recent drug tests and being arrested on
disorderly conduct charges.
But Zagel said that was too harsh a sentence in this case and allowed Hammond to surrender to
prison on Jan. 3.
Hammond was "more interested in countering speech he found wrong rather than picking the pockets"
of political rivals, the judge said.
In addition to imposing the 2-year prison term, Zagel ordered Hammond to pay about $5,250 in fines
and restitution and barred him from participating with hackthissite.org or similar Internet groups
for three years after his release from prison.
"The threat of what you did is damaging to democratic discourse, your side's as well,"
Zagel told Hammond.
Hammond's father, Jack, contended his son's hacking was an immature act of revenge for a similar
attack on hackthissite.org's Web site.
Though he faulted his son's judgment, the elder Hammond said his son's "basic inner moral
code is good."
But Assistant U.S. Atty. Brandon Fox said this wasn't the first time Hammond had illegally
hacked. He wrote pro-drug messages on the anti-drug DARE Web site, hacked into a former
employer's computer system and was expelled from college for hacking, Fox said.
Fox urged a stiff prison term to punish Hammond for his disrespect for both the law and the
opposing political opinions of others.
In court papers, Hammond's lawyer, Matthew McQuaid, had compared his client's computer skills
to "a comic book character's `superpower.'"
In court Thursday, McQuaid contended Hammond was too emotionally immature to "harness" his
political opinions.
According to the court records, Hammond gained access to the credit-card information of about
5,000 people who had bought items or donated online on Protest Warrior's Web site.
An acquaintance of Hammond's who tipped off authorities to Hammond's involvement was upset
because Hammond allegedly had let an associate take the fall for a previous hacking, the records show.
In comments to the judge, Hammond, who pleaded guilty in September, said his motivation wasn't
thievery but rather "political rivalry."
----------
mo'connor@tribune.com
- FreeBASIC Daily Builds Made Available
-
DrV, ikkejw and 1000101 have set up automated scripts to compile FreeBASIC from the CVS daily.
They have made them available to everybody. Below are the links to the FreeBASIC.net forum where
you can get information and download links on each of the Platforms.
DOS Provided by DrV
http://www.freebasic.net/forum/viewtopic.php?t=6437
Linux Provided by ikkejw
http://www.freebasic.net/forum/viewtopic.php?t=6438
Windows Provided by 1000101
http://www.freebasic.net/forum/viewtopic.php?t=6439
Review of Lynn's Legacy developed by Josiah Tobin and cha0s, 2006
Written by Lachie Dazdarian
(September, 2006)
Introduction
I apologize if you already read several reviews of this game. Being a beta tester of Lynn's Legacy, loving the chapter one demo so much and the fact this is convincingly the best FreeBASIC game so far are plenty enough reasons for me to feel obligated to review the game. I think I would compile this review even if I didn't have anyone to show it to, simply for the sake of recording all the conflicting thoughts I have on the game.
This review was written while playing Lynn's Legacy version 1.1, downloaded from sourceforge.net. If any of the bugs/features I mentioned were fixed/improved in a later version, I was not aware of them while writing the review.
I contemplated a lot about the most fitting review format for Lynn's Legacy. After finishing the game this sort of review, sans categories, seemed the most suitable. I think you'll realize very soon why.
The Review
The release date of Lynn's Legacy came as a surprise too me, since the final version arrived very soon after the chapter one private demo(3 dungeons). I knew that the demo was only a portion of already completed work, but I got the impression that they still had a lot of work ahead of them. Also, the summer was on the doorstep so the time seemed perfect for improving the full product and fixing possible flaws, as much as it takes. Extensive beta testing of the full game probably should have happen, taking the size of the game into consideration. I recommend this to everyone. If you have completed a huge project, beta test the full version once more. The flaws of Lynn's Legacy illustrate why this is necessary very clearly.
I was also surprised to read(more skim-through) a notable amount of negative critics in the FreeBASIC.net forum regarding Lynn's Legacy. I was ready to give those people piece of my mind in this review, still under the positive effect of the beta demo, only to realize later I partially agree with them. I cannot know how much since I didn't take the trouble to save the mentioned forum posts and burn them on a CD(I'm writing this offline).
After finishing the beta demo I was quite eager to play the final product. The 3 dungeons demo was such a sweet and enjoyable ride. Perhaps too good. Deep inside I felt it would be very difficult to maintain the quality and fun gameplay from the first third of the game. Still, I hoped the game wouldn't lose much of its initial shine and momentum.
We all know how the game starts. Lynn is flying over a sea on a Wyvern Ray, escorting a mysterious package to the mainland. After the package explodes, Lynn appears unconscious inside a forest, on an unknown location, with some of memory lost. There is nothing I can complain on the very intro. Everything works fine until the part when Lynn enters a small town and encounters a group of people gathered around a strange portal. I just didn't like this scene. Lynn's confrontation with the town mayor felt forced and staged, but I guess the designers simply were fixed to start the plot like this. To make Lynn a ball-busting type of character and the mayor a loser. Anyway, the story picks up quite fast and redeems for the awkward start. At least for those people who find the scene preceding the first dimension awkward.
Perhaps I should say that Lynn's Legacy plays like any other Zelda-style game, featuring real-time battles but no real RPG experience growth system. It's mainly an action game.
I'm still not sure how to construct the review but I think I'll break it into two parts. In the first part I'll be describing my experience of playing the entire game, because I think that's the best way to convey my impressions about it. Second part will have the more common, category-based structure.
The first three worlds behind the portals(let's call them dungeons) are small masterpieces. They all work perfectly, providing enough challenging enemies, well thought-out maps and intelligently designed bosses. Each dungeon features wonderfully drawn tiles and enemy sprites and introduces new type of enemies, requiring from you to learn and change your fighting tactic. The ice feature in Geldius(dungeon 2), for example, is a brilliant idea. That was the toughest dungeon to beat.
Up to this part I felt everything was going great but kept wondering if the game can actually go any higher in providing excellent gameplay. Is there any room for a better experience or I got the best of the game already? In other words, will the rest of the game live up to its great start? I was sad to discover that the answer is...no.
The first sign that not everything is going to be a-ok was the moment when I visited the tailor and was able to buy all the suits but one(which can't be bought at that point anyway). I had over 500 gold coins after dungeon 3. I'm not sure if the designers imagined for the game to develop like this. So for the first 3 dungeons I only had the default suit, while after dungeon 3 I suddenly have 4 extra suits. From this moment in the game I could run faster using the cat suit or heal myself using the regeneration suit. I don't know if other two suits have special properties. Maybe the leather suit makes you swing faster. I wore it all the time though I couldn't make out if that is the case. Also, I almost never used the cat suit so I'm a bit confused with people commenting how it makes playing the game much more enjoyable. Anyway, at that point you feel the game is unbalanced. The moment you buy suits you are momentarily much more "powerful". Maybe the designers predicted that people would spend more money on buying extra health points from the "salesman" and not having enough to buy all the suits right away. Again, I'm mentioning this moment in the game only as a sign to me that the game will decline in quality and not necessarily as a bad thing itself. After finishing the first 3 dungeons another part of the main world becomes accessible - the desert. It's quite large and a nice place to explore.
The 4th dungeon/dimension mainly disappointed me in being too easy. Yes, the story backed up the non-aggressive behavior of one part of the enemies in the diaries scattered around the dungeon, left by the previous explorers of it. Still, this doesn't change the fact that the dungeon was way too easy to beat. The dungeon boss is designed satisfactory, but I felt he could have used more attack powers/modes. Definitely easier to kill than the previous 3 bosses, but at least to kill him I had to run around employing, that well known but always fun, hit and run strategy. A note that I was killed only once in this dungeon and pretty much on surprise.
The 5th dungeon, called Nerme, is somewhat more difficult but still not enough. I never felt cornered. All I had to do was to be careful. Definitely less difficult than dungeons 2 and 3. So you can guess already that the progression of difficulty after dungeon 3 simply disappears. Also, quite few enemies were recycled from the main world and placed inside Nerme. The map design of Nerme is good, with I note that I started to notice a certain lack of inspiration. You see, the Nerme map design relies too much on the concept of going far to a certain location to get some key, then getting back to a door which now you can open, just to repeat a similar procedure in another part of the dungeon. The Nerme boss fully displays the obvious loss of inspiration, going from its dubious graphical design too unimaginative and unchallenging attack pattern. The easiest boss to kill yet. After the 5th dungeon I was able to explore another part of the main world, which is quite well drawn and designed. In it I found a material necessary for the tailor to create the last, missing suit. Since the tailor's house was way in the other part of the main world I decided to skip returning to the tailor and proceeded to the next dungeon, only to discover later that this was the last chance for me to visit the tailor. After I finished the game I did use an old save game position(I was smart enough to zip the save games every now and then) and acquired the last suit. I did make me swing faster but since I finished the rest of the game without it and without much hassle, the trip back to the tailor is obviously not worth the trouble.
The 6th dungeon, called Divius, while featuring new enemies with new attack patters, does not deliver in challenge and difficulty. It is quite large, I'm not sure but maybe the largest of all. It features several tilesets but not nearly well designed as the tilesets in the first 3 dungeons. It disappoints again with few poor enemy designs, notably a small mosquito looking bug which fires a huge circle of fireballs, quite unsuitable feature for such a small creature. Divius boss is also poor, being completely static(it the first phase) and attacking you only when you attack it, which makes it almost non-lethal, having in mind you have the healing suit. Its second phase features a moving creature, but it can be killed in 4-5 seconds, if you attack it in the right moment. Again, it's not very lethal since you can freely use the the healing suit suit while keeping yourself on a safe distance. I was killed only once by the mosquitos in this dungeon.
I remember the designers describing the last two dungeons in QB Express #17 as "somewhat ambitious final section" so I was expecting for the game to finally redeem itself for the fall of quality after dungeon 3. The last part of the game does feature a lot of dialogues and story twists but fails again in the most important element - gameplay. Boring and mostly not very threating enemies, more or less poorly designed. The boss in the 6th dungeon did kill me several times. I even started to fear I didn't buy enough health points to be able to beat it(I had 15 health points at that point). I was dreaded for a while with the thought I will have to play dungeon 6 and 7 again. Still, after few tries I killed it and was left with one health point. The second phase of this boss is terribly designed and very tedious(not challenging) to kill. I should say that after finishing the game, I went into killing few bosses again just to get the story a bit better. While doing this I figured out a better tactic to kill the first phase of the boss in the 7th dungeon/dimension. It's simple. Approach him, face him, stand still and swing. And that's it! This time I had some 6 health points left. That's plain ridiculous. Another reason why the full version of Lynn's Legacy had to be beta tested.
The last dungeon is quite short and one could say messy. Again, the story conveniently backs this up. The final battle is, I'm sad I have to use this word, pathetic and in a way symbolizes the entire decline of the game's quality from its great starts to such disappointing finale. I'm not happy I have to render the last portion of the game like this since it's obvious that Josiah and cha0s invested a lot of effort in that very section. But effort alone doesn't count much.
Now I'm ending the most negative part of the review. I just implore Josiah and cha0s to stick through it. Anyway, if they skipped to the final score then they could have seen I didn't hold this decline of quality too much against them. Actually, I sympathize with them. This thing happens to best. I don't how many of you remember/know about Shadow of the Beast 2(1,2,3), a beautiful adventure/action game from Amiga platform. It features brilliant art and graphical design. A classic. But its last portion is quite poor while the very ending appalling. Horrible, I would say. Most likely done in 15 minutes. And we are talking here about a classic and professional game designers who were paid for their work. That's just one example. So I understand.
Nevertheless, I had to diagnose these flaws clearly as I eventually want to give an objective conclusion. I hope Josiah and cha0s are not too irritated with my observations. Being a game designer I know how this feels. You are aware of the game flaws but somehow hope people won't make too much notice of them and will concentrate only on the good things and the huge effort put in the entire product, which is the case with Lynn's Legacy. Once you realize this didn't happen(and it rarely happens) you are annoyed at best and blame people for not respecting hard work.
The graphics are excellent and there is no doubt about it. Some parts of it, namely the animation of characters, are close to being great, in the lack of a better word. I wish I had a thesaurus. :P
As the game progresses the very graphics don't really lose in quality, as it is the case with the design of tiles and sprites.
Josiah is obviously a talented and skilled artist but is he an equally good graphical designer(at this point) remains a question. Again, I think the size of the game is here the biggest problem. I believe he fell into a trap of sizing the game without thinking if he can fill it with enough varied and thought-out content. I suspect the design team was fixed on having 8 dungeons and didn't want to compromise on that. Perhaps it doesn't seem logical, but I think Lynn's Legacy would feel much more even and complete if one or two dungeons were discarded during production. One more thing on the topic of graphics. Since I'm already talking about graphical design(more or less) I should mention I didn't like the look of the health salesman and his name. I mean, Salesman?!? If you would ask me I would take some townsmen character, put a pointy hat on him and refer to him as to a wizard or a magician. I mean, what's a health salesman?
The music is very nice. I was never annoyed with it and few tracks, strangely the less "rich" ones, create a quite powerful atmosphere. The environmental sounds incorporated into some music tracks are a full hit. I guess the only negative comment I can think of is - I wish each dungeon featured its own track. A pathetic comment, I know.
The sound effects are truly excellent. I especially liked the Lynn's attack and hurt sound. For some reason I didn't hear her speaking in the game, though I noticed these sounds in the package. If I ever endeavor into making an ambitious project I might ask Josiah and/or cha0s for tips on creating proper sound effects. Just browsing through the net for sounds similar to those you want is obviously not enough, as everyone who played my games can testify(ugh).
The story is very good, but not impressive. I'm sure Josiah and cha0s didn't aim that high. It's relatively original and well written(developed). I remember reading someone comparing it with Matrix but I highly disagree with that comparison. There is really only one small element connecting these two stories and that's it. I mean, when I think of the zillion brain-dead simplified stories from other QB RPGs these kind of remarks seem tendentious. The strongest feature of the story is its carefully constructed development throughout the game. I did personally felt that the story was slightly stretched and over-told, but these are just trifle remarks. How they say it, I'm grasping for straws. The truth is that not many people tried to construct such a long and developing story in a QBasic game and it will probably take some time before someone attempts a similar thing in FreeBASIC. So, respect! :P
The very gameplay is excellent, which I pretty much stated while describing the experience of playing the first 3 dungeons. This is, in part, a result of cha0s' excellent(and fast) engine. Wonderful code and far beyond my capabilities. I'm discovering a new respect for him. My honest admiration cha0s. Second is the fact Josiah can draw all the frames of a character in order to enable proper multi-frame swing animations. The lack of this killed certain games by certain someone(cough-cough).
Third element that makes the gameplay is the design of enemies which functions perfectly for a while. It's obvious that the gameplay is not equally excellent throughout the game, but that is only the result of poor and under-tested enemy designs in the later dungeons. Nothing I disliked in the very engine and game mechanics. Some people complained on the collision. While there is no reason to be anal about it, the mock-angled view(in the sense that it's not a top-down view) tends to confuse and makes it hard for the player to decide when to swing when an enemy is attacking from down. I could never get to hit that small black monster with a fork(I don't know how you call it in English) in Evernight before it would hit me, if it was attacking me from down. Technically the collision is perfect, but can visually fool the player. Anyway, I didn't mind this much, but since some people complained on the collision I wanted to express my thoughts on it.
Oh yes, there are few bugs I noticed. Few came as a shock since they didn't appear in the chapter one demo. These include Lynn not being animated while she pushes a rock and ghost-type of characters(cloak wearing) not being animated when tracking Lynn. Also, when you give an object to a certain character in the game(like the Nerme Idol) it does not disappear from the items switch icons. I tried to ignore these bugs with hopes they will be fixed in a future version.
Most reviews include replay value section so I guess I should say something on that. As with most of the games I reviewed, I really don't feel like playing this game over and over. And I'm sure such long games don't need to accomplish that. Since the story is complex you will probably want to beat few bosses once more, just to re-read few parts it. Due the size of the game it's definitely worth being played after few years, for the sake of nostalgia.
The game took some 8-9 hours to complete, in two sessions, with a note that I was playing it quite franticly in order to leave myself enough time to write a proper review. I don't value play time as something terribly important, but Lynn's Legacy sure deserves compliments on this. The thing is, the game almost never robs your time by forcing you to repeat certain tasks over and over or perform some unnecessarily long missions(with the exception of few long key hunts). This is the case, for example, with leveling-up in Mattress Warrior and many other QBasic RPGs(I dare to say it's the case with most of them). Lynn's Legacy doesn't do that.
Apparently, this game ended up being thrown into the RPG genre which is quite wrong. Lynn's Legacy is a pure action game with some adventure elements, or better yet, exploration elements. Where people see RPG elements in this game escapes me. Perhaps in the fact that Lynn can buy extra health points. But that's all. No other features that characterize Lynn(like stamina, dexterity, defense points, etc.) or any experience points. I doubt people will listen to me and Lynn's Legacy will most likely belong in the RPG category to majority.
So to conclude. Excellent game but not great. A huge accomplishment to respect and admire. The best FreeBASIC game yet. It will definitely be a classic in our community. Did it had a chance to become a freeware classic? We can only speculate. Josiah and cha0s had a great game in their hands, but somehow it slipped them. Lynn's Legacy failed to deliver what it promised. I hope Josiah and cha0s learned something from the development of Lynn's Legacy. Mainly, not to over-size a game if they don't have a ready content(conceptually worked-out) to fill it in. Accepting the constructive negative critics as valid is one of the steps to grow as a game designer and release an even better project one day.
If I would have to summarize all of my thoughts into one sentence I would say - I really liked the game but did not love it.
The Verdict
Graphics: 88 %
Sound: 90 %
Gameplay: 78 %
Total score: 85.33 %
Download Lynn's Legacy here.
Kill the Killing?
Written By Deleter
Killing in Games
Killing in games. Can it stop? Should it stop? Yes and no. As games are
usually an attempt to recreate the universe, albeit sometimes with large or
small changes, they should probably then do as it does. Which would be,
sure, you can kill. Of course, in life, the object is not to kill things. So
then, maybe we should discard that reality and throw out killing altogether?
From a neutral point of view, that type of game would be no worse than a
game bent on killing. From a popular point of view, that game doesn’t stand
a chance. A game with killing not based on killing would really be the
perfect game. There is only one problem. There are no perfect gamers. And as
of such, there cannot really be a total agreement on a level of killing, at
least not anytime soon. Change, which is libel to come regardless of how
resolute either or any side is, comes at its own pace in its own stride.
But still, lets not get metaphysical here, isn’t there another reason why
killing is so rampant in games today? Is it really just because its fun, and
no killing isn’t? I think not. Personally, I think killing is a much, much
easier design decision than any other. When bloke #00F1A comes onscreen, if
all the player needs to do is kill him, why, he doesn’t even need a name!
Just an AI subroutine, a 3d model, and a gun in his hands, and the game
designers are set.
That’s not to say programmers are lazy or anything. In fact, if they had a
clear idea of what they were going for, there wouldn’t be much stopping
them. The problem is game designers, in fact just about everyone, doesn’t
know what that goal really is. The minute you give Mr. 00F1A a name, an
identity, you’ve just entered a much, much deeper realm of design and
intricacy. This is because you can’t just stop there, a single entity in
fact would be nothing, if it didn’t not have other entity around it which to
derive itself from. A cat solitarily could just as easily be a mouse, a
couch, or a planet. It’s not the individual entities that have identities
because they cannot support it. Rather, it’s the mouse and the house and the
dog and the owner and the food dish and the kitty litter that make a cat
what it is.
The problem is, what I am driving at here is still as blunt as a basketball
when we really need a needle. Killing games don’t need identity, because it
is just a bunch of ends. Ends are exactly what you get when you isolate
identites, because again, they derive their very existence from the things
around them. When everything is a separate piece, it all ends. So going from
a killing game, to a “normal” one, you have to make a very difficult
transition. It’s an impossible balancing act with a bunch of top heavy
dominoes.
In fact, that’s an awesome way of looking at it. One person, is a very top
heavy domino. Without an intricate world at his fingertips, he falls over.
His identity cannot support itself and thus he devolves into something more
pathetic. This is something that many people have seen in games, even in the
best of those that don’t choose to kill everything. An NPC who runs over the
same pathetic lines, in the same pathetic town, in front of the same
pathetic house for hours and hours. Your guide repeats the same useless help
while you sit frustrated at the unsolved puzzle. The butcher, who does not
change a bit after you kill his son for the hell of it. The king who is
still the same pain in the ass jackass even after you saved the princess and
slayed the dragon.
You’ve run into these and you know it. Sure, RPG’s don’t necessarily aim to
be anything special, but they still run into these problems more than other
games. Most likely this is because they aren’t always totally about killing.
So maybe then, making a game without killing at its center, is about playing
dominoes. Perhaps start with smaller, less top-heavy dominoes. That is,
don’t make a world that goes with a complex social structure. That doesn’t
mean make modern day with a bunch of hermits, it means make a structure that
is naturally simple. Such things as packs and tiny communities fit this
bill. The other advantage of these notably smaller units is that they will
be easier to set up, just like setting up a smaller amount of dominoes. The
last thing you can do is to make your system simple. Sure, even with small,
bottom-heavy dominos you could still set up two figure eights with several
tri layer bridges, but if you just wanted to make a self supporting
structure, you wouldn’t.
Likewise, your game system ought to be simple. With a human society, this
translates almost directly to a simple social system. Have a handful of jobs
or functions, then write out the rules governing interactions. Once this is
done, write out the rules of how each individual unit will act on its own.
Give it some basic needs, and set up rules to determine when it will be
self-satisfying, or when it will depend on the structure and interaction
rules that you have set up. Such a system, with much design, tweaking and
work, could be made self-reliant. Also, with the proper placement of a
player, could be a gold mine for an open RPG. It could also provide an
interesting dynamic for a sim. Of course, with a slightly larger system, it
could also provide fair ground for a shoot-em-up, and would probably provide
some interesting dynamics, though it could get boring once all the NPC’s are
wiped out.
What I suggest is of course nothing but my speculation on what is
necessarily to get PC games off of killing.
-First, you must realize that killing should not be forbidden, it just
shouldn’t be given the spotlight.
-Second, just taking killing out of its place does not make a good game, in
fact it makes a crappy one.
-Third, the game must be designed to be self-supporting, which is probably
the hardest part. Balancing all the elements and providing the necessary
identity for the entities is a challenge, even at a very simple level.
-Fourth, this is a rant and as of such is worth only its words; if it were a
technical document you could no doubt ask for much more. Since it is nothing
more than a collection of my ideas and thoughts on the subject, it aspires
to be no such document, but instead more of a broadcast of what I hope
contain at least a fragment of coherent thought for you, and not just a
waste of time. As of such, I hope you enjoyed it, even if you didn’t get
anything useful on it.
If you have anything thoughts on the subject, you can find me on the
freebasic.net forum, or at deleter8 {at} gmail {dot} com if for some reason
you are allergic to forums ;).
A serious article debating the pros and cons of FreeBASIC
written By Z!re
Hi and welcome to my article, let me start of by saying FUCK YOU.
Yup, thats right, a big FUCK YOU. Now, here's where you stop reading if you're an
uptight idiot who is offended by random crap he/she finds on the internet.
You are stupid, all of you. This includes me ofcourse.
One thing that really pisses me off, is jewish spoiled brats who refuse to admit they're
jews. Even when they themselves state they are jews.
If anyone, other than themselves, state the obvious fact that they are jews, they blow up.
My many years of studying this, leads me to the conclusion that they are just fucking retards.
That, and they probably feel sad to have their dicks cut to shreds just because some made up action
figure says it's cool.
There's another thing that really pisses me off, action figures. They're so stupid.
'Thou shall not kill' What The Fuck!? What kind of an action figure is that? I'd buy the 'Kill
the kids with the RPG launcher' action figure anyday!
Although, maybe the first action figure is being sarcastic? I mean, many
of the retards who spend $99.99 on him go around killing people, they always have,
ever since production was started sometime around 500AD. And the manuals! Have
you guys read those things? Insane, thousands of pages of contradictions and bullshit.
There's even a comitte who decides what bullsh*t goes and bullshit doesent.
Give me the proper manual already! Does the arm attach to the neck or what!?
Know what? Nevermind, I'll just go ask the retarded jewboys.
Retarded jewboys, usually found hanging in groups with the n00btards and fanbois.
To be avoided at all costs.
One time, my mother told me not to make fun of other people.
So I roundhouse kicked her in the throat, "shut the fuck up bitch!"
If all the jewbous, n00btards and fanbois got together, they'd be strong,
they could even challenge like, one or two of the somewhat smart people in a game
of chess. Well, maybe not chess, but atleast tic-tac-toe! Ofcourse the jewboys,
n00btards and fanbois are too fucking stupid to even form coherent sentences.
Meet Chandler.
Chandler is anormal teenage boy, he has a happy home, and a loving family.
But Chandler has a terrible illness. What is it you might ask? Cancer? No.
Chandler suffer from the horrible AOL infection. The effects range from such humble
manifestations as writing 2 instead of to. But it doesent end there, fullblown cases of
AOL have show a tendency to frown upon common sense and logical reasoning. Something which
severly hinder their progress in life.
Many AOL disseased people still flip burgers and clean greasy pots at the high age
of 38. Though, most never make it to that age, they die young caused by mercy killings
fom the somewhat intellectuals.
Then we have the physics experts, so what if two trains travel at the speed of
light, noone gives a shit anyways.
Lets break down the theory:
Two trains, we assume passenger trains that allow observers, traveling towards each other
Two rails, we assume we dont want the trains to collide, would they even collide at the speed
of light? Who knows, I dont, and I dont even give a d*mn!
A shitload of people who wanna see a blur pass by their window as the trains pass each other
Fact:
Two cars passing each other do not travel at A+B speed, they travel at A or B speed.
Assuming car A and car B
Conclusion:
Put in oven for 15-20 minutes. Serve hot with a hint of pepper.
Please, dont applaud me. I cant stand it.
Whats wrong with people today? Stand up, grow a spine. If something is
crap, dont say it's awesome!
What? You think the world is filled with nice people who will hire
you, just because you 'showed some effort'?
If you cant fucking do the job, get the fuck out of my office!
And no, I dont want to see your 'hello, world!' program! I swear,
you show it one more time and I'll rip your fucking skull out, through
your a$$!
Stay tuned for the next article, where I will debate, among other things,
Shakespear and drug addicted retards
[Cop-out]
The opinions expressed in this article in no way represent
those of QBExpress.
[/Cop-out]
-Imortis Inglorian
Random Musings
Written By Scolizer
I (like almost all of you) have come a long way since the QBasic days. I know many different
languages, from different paradigms (procedural, functional, logic, and OOP versions of all
three), and in different contexts (console, GUI, web, database).
This morning, I was lying in bed, being nostalgic, and I realized: I've never had as much fun
programming as I did when I was programming in QBasic.
Why is this? I mean, compared to the languages I know today, QBasic sucks - one global
namespace, extremely difficient libraries, no higher order functions, very limited custom
types (no OOP, e.g.), no uniform input/output mechanism, and no macros.
So why was QBasic still so much fun? Here are a few of my guesses:
- I did it for fun - making games, solving puzzles. Nobody was paying me to do it,
I wasn't trying to change the world the open source, and I didn't have to do some
teacher's crappy assignments. It was just for me and the other teenagers who would gawk
at the cool things we could do.
- I was naive - I had no idea how crappy my programs were, and I thought I was the greatest
programmer in the world.
- I knew the whole language - QBasic is small. Every other language has so many libraries
attached with it that 50% of my time is spent browsing the manual. Granted, those large
libraries make me more productive, but doing the plumbing myself is actually kind of fun sometimes.
- Great IDE - I still haven't found an IDE as awesome as the QBasic one. The QBasic IDE
was still better than Visual Studio, Eclipse, IDLE, RHINE, and Emacs of today. What made
it awesome?
- Full screen editor - QBasic immersed you in it's own world. I did most of my QBasic
development in pure DOS, and that's the way I liked it. No other processes running;
just me and the language.
- Context sensitive help - just press F1 and you've got syntax, semantics, and examples
right there. The F1's of today either don't exist, are not integrated (involves much resizing
of windows), are difficient in documentation ("but how do I USE the function?"), or take a
minute to load (e.g. Visual Studio)
- Stepwise debugging - F8 to step, F9 to set/reset a breakpoint. And stepping was FAST.
- Rapid navigation - F2 to see all your subs/functions, F6 to switch windows (especially
useful in help mode), F4 to switch between run mode and edit mode, F5 to run. And all of
the shortcut keys worked INSTANTANEOUSLY. No garbage collection, memory swapping, waiting
for compilation, or cruddy window managers to slow you down.
- Immediate mode - want to run some code RIGHT NOW? Just do it in the Immediate window.
- Community - (e.g. you guys!). Granted, there's a community for just about every language
out there, but QBasic is the only one I know of that teaches you how to do antialiasing, do
X86 assembly, make your own font editor, roll your own 3D graphics, write a simple musical
melody, reverse engineer an EXE file, and handle multiple palettes.
When did I become such an idealist - searching for a language that gives me power instead of
a language that gives me fun?
What do you guys think? Have you found a language today that makes programming as fun as it
used to be? (Are you still looking, or have you given up?)
Searching For The Unknown
Tunnel Striker ver.1.5 by INT Software, 1998
Written by Lachie Dazdarian(July, 2006)
Introduction
Yes, I'm back with another article. Since I'm practically done with my exams(wee!) and will be online few days after starting this article, I thought it wouldn't be bad to whip something up before my summer exile, which will probably last till the very end of August.
As you already see, I'm bringing you another issue of "Searching For The Unknown" column, featuring a 3D target shooting game entitled Tunnel Striker. I must admit that even after so long time since the last issue of the column I'm not sure if this game is right for it or if any other on my list would do too. I simply fail to find another game for which I'm sure it can result in an interesting and average sized article.
Nevertheless, the cake is already bitten(I'm making this up :P) so let's hope I can make the article worthwhile my trouble and your attention.
The Review
By simply being a finished 3D QBasic game, Tunnel Striker is already interesting enough. Of course, there are quite few superior 3D QBasic games to Tunnel Striker but let's not ask too much here.
The gameplay of Tunnel Striker is rather simple. Each level is a rectangle tunnel through which you fly forward. I can only assume it's in some flying craft but that's nowhere specified. The goal of each level is to hit a set number of targets with a set amount of ammo(number of shots). The game is mouse controlled and you steer the craft by moving the target mark. This is kind of awkward since steering and aiming is connected, but I guess that's how the designer imagined it. A really nice thing is that you can't slam into the tunnel walls.
As you fly forward cyan targets shaped like sticks pass by, together with the red obstacles you need to avoid. Aiming is very tricky since every movement of the target mark causes the movement of the craft.
The safest method to make a hit is to wait for targets placed in the corners while being in the very same position, since the tunnel walls stop the sideway movements of the craft. This can take a lot of time so you will most likely be tempted to hit the targets on other positions. That, however, usually ends up with nothing but it's a nice way to spend time until a target placed in a corner arrives. A smart feature in targeting is the fact that the target mark lights up when it's on a target. That helps a lot. Each time you shoot you need to wait for some 2 seconds for the weapon to reload. This prevents you to make double or triple shots in case the first or the second was really close to hit.
The game features 10 levels and already on the 5th or 6th level you are given just enough ammo to hit the required number of targets and no more, which is really challenging.
The simplicity of the gameplay has its positive aspects but also causes few undesired effects. In other words, the game is quite addictive and fun but also repetitive and sometimes frustrating. In the execution of the gameplay I would only like to complain on the fact that the game doesn't end when the remaining number of targets to hit exceeds the remaining ammo. You need to shoot out the remaining ammo for the game to end or just press ESC.
You can already see that the graphics are nothing spectacular. Simple vector-based graphics featuring single color surfaces. I don't have much complaints on this very fact but I would have liked if the game colors(of walls, targets and obstacles) changed with levels. It's something that could have been easily done so I assume the designer didn't think of it.
The graphical design also could have been better. It looks incoherent and unpolished while many places in the game(like the level starting message) look like last minute work done in a hurry. And the usage of the PRINT statement is a big minus. Still, a cool thing one the main menu are the 3D effects featuring rotating options or the entire main menu disappearing into the screen when you exit the game. The designer obviously knows his 3D.
Tunnel Striker allows you to play the game in two graphical modes. They are referred to as "full screen" and "non-full screen" mode but that's not a really good way to describe them. The full screen mode basically means playing without a "cockpit" drawn on the edges of the screen. The non-full screen mode features this cockpit but it's really ugly(third screenshot in this article) and I don't recommend playing with it. Luckily, the default mode is full screen.
While talking about the game graphics and design I almost forgot the feature I liked the most in Tunnel Striker - music. The game features several tracks for different parts of it(main menu, level starting, level track) but the most memorable is the level(in-game) track, which is the same for all the levels. It's really brilliant but I'm not sure if it's original. If it is, great work, if it is not, excellent pick. It has that specific "computer game sound", creates an atmosphere of suspension and also has a sort of mystic travel/whatever feel. Well, just hear if for yourself. The game also includes Sound Blaster sound effects which are ok. No complaints there.
Like I said before, the game is relatively addictive and fun to play but not really on a long run. Well, not in my case. The game kept me hooked on the screen for some 3-4 hours, first time I played it. I managed to reach 6th or 7th level. I forgot. But on the second try, which was done for the purpose of this article, the game lost that initial lure and I just didn't have enough will to play it more than to 4th level.
Despite all the complaints, I highly recommend this game to everyone. I think most of you will like it for an hour or two. For collectors interested in the history of 3D game design in QBasic this is, of course, a must have.
The game package comes with the source code so Tunnel Striker is also suitable for a FB port. I'm personally not very motivated since I just ported Vector X, but perhaps some of you might be. The game has space for improvements, mostly in graphical design but also few in gameplay too(like adding a game mode with time limited levels or something).
Final score
5.2/10
Get Tunnel Striker
To download Tunnel Striker click here: tunnelstriker.zip (360 KB)
A note: You will probably need VDMSound to hear the music. Also, if you run the game without VDMSound, the sound effects might give you problems(slowdown the game) so you will probably have to disable them. The game is compiled and works fine on my PC with Windows XP installed(if we forget the sound problems).
Wow! This was short, hope nobody minds(stop rolling with your eyes SJ!). I will definitely do one or more articles/reviews during the summer. Many things on my todo list, one of which includes porting LONG to FB.
Until next time, stay among the living(or I will kill you). :P
Join The Good Fight: The Anti-”Holy War” Movement
Imortis Inglorian
Say What Now?
This is another rant article. I want to express my thoughts on a topic that affects us all.
It is one that is seen as an annoyance, but has a much more detrimental effect than can be seen
short term. Not everyone sees it as a problem, and some even enjoy and thrive with it. For
those who haven't guessed yet, I'm talking about the all mighty Flame War. But not just any flame
wars, these are special. These are ones I like to call “Holy Wars”. These are flame wars that
take on an almost religious intensity. I will once again break this down into categories like
the article I did in Issue #20.
Category #1: The “You Don't Think Like I Do So You Are Wrong” Category
This little “Holy War” pops up in many different forms and guises. Many of you may remember
the numerous battles waged over the use of GOTO. Or perhaps the skirmishes over topics like
Windows vs. Linux? Open Source Software vs. Commercial Software? [Blank1]BASIC vs. [Blank2]BASIC?
Programming Language A vs. Programming Language B etc... More often than not these are started
because someone states an opinion that someone else does not agree with. That someone else will
respond by telling their own opinion and the original someone will take it as a personal attack.
And thus the grenades begin flying.
The issue here is that people have always been inherently trigger happy. They just can't wait
to “defend” themselves. Before you break out the riot shields make sure there is a need for them,
because there are always weapons behind them, held at the ready. Don't get me wrong, I'm all for
a little bit of butt kicking in the right situation, but it is never ALWAYS the answer. It always
amazes and saddens me to see people at each other's throats over such small and trivial things.
The biggest problem here is that arguing will never convince someone to change. The more
you fight against someone, the more that person will be convinced of their original opinion.
It's a loosing battle from all sides. If the person really is wrong, they loose because they
are still wrong, and you loose because you have wasted your own precious time and effort.
Another problem with this type of argument, is that it will reappear again and again throughout
history and on into the future. This is the way I see it: Beating a dead horse is a waist of time,
effort, and beating implements.
Category #2: The “You Must Be Some Kind Of Idiot” Category
This one comes in when someone makes a statement or asks a question
that shows a lack of information on their part. Many times such a statement or
question is followed almost instantly by a response like this:
“RTFM, stupid.” (For those who don't know RTFM = “read the frickin' manual”)
It's true that the “Manual” may be on public display for all to see. It's true
that the forum may contain numerous references to this same thing. However what you
see as on display may be similar to what Arthur Dent said in Douglas Adams book,
“The Hitchhicker's Guide to the Galaxy”:
“On display? I had to go down to the basement... All the lights were out and it was
in a bathroom stall with a sign on the door that said 'Beware of Jaguar'!”
This is hopefully a exaggeration, but I think my point is made. (Also I don't
believe that is the actual quote, but close enough.) Many people are not as
web/tech/computer savvy as the rest of us. They might not know what to do. To
mangle an old saying:
“If you teach a man to fish, he will feed himself for a lifetime. If you tell
him, 'Go learn how to fish and to STFU!', you will probably never see him again.”
Is it that hard to repeat yourself? You could even keep a list of forum topics
that come up frequently in a text document so that when the question comes up, all you
have to to is copy and paste a link to it. If someone KNOWS what they should do, but
doesn't do it anyway, then you can yell at them. That's where you should use the
beating implements. Not on the dead horse...
Category #3: The “I Don't Like You So I Will Be Harsh To You Because I Can” Category
This often happens when a person has made an annoyance of themselves in the past.
I can understand being quick to judge someone based on their past behavior, but it is
possible for a person to change their ways. It is best to treat this person how you
would like to be treated. And for that to happen, you have to be truly honest with yourself
about how you want to be treated. I'm sure many people will look at that statement and say,
“I hope someone would do that to me so I would change.”
This one can come out of the blue at any moment and bring up any and all mistakes you have
ever made, just like an ex-girlfriend. Ever done something stupid? I know I have. I'd like
to think that I have atoned for them, but I'm sure at some point in my life, this category
will rear it's ugly head and hit me with the photos from the New Year's party right between my
eyes. No one is immune.
Category #4: The “I Like To Start Arguments” Category
As strange as it sounds, there are people who enjoy stirring up fights. These people
will say things that they know will start a brawl, just to see the aftermath. These people
are often easy to spot, and thus, easy to avoid. Just don't “feed the trolls” and your in
the clear.
In Conclusion:
All of these thing can be avoided if you put in a little effort. If you would like
advice on how to put in this effort, may I suggest “How To Win Friends and Influence People”
by Dale Carnegie. It's an excellent read for anyone, really. Try to be a bit less
confrontational. Your freedom of speech is not being infringed upon by way of tact.
I promise. If you are too blunt, you will drive away people who could one day become a
major contributer to our community.
All I ask is that people try to stop polluting our forums and lives with pointless battles.
There are a million other ways to spend your time and energy. I will not try to force anyone
to join my cause because that would be doing exactly what I frown upon. Instead, I ask that
people consider what they are doing and what I have said. So please, join the Anti-Holy War
Campaign today, and help make tomorrow better for everyone.
How To Use EMS In The QBasic Enviroment Without Bugs
Written By Paul Holmlund (kiyotewolf)
My name is Paul Holmlund. My nickname is Kiyote Wolf, and in the future I
will probably mention my name as that alone.
My knowledge I wish to spread to the Qmunity is this:
HOW TO USE EMS IN THE QBASIC ENVIRONMENT WITHOUT BUGS
Tip 1:
Have you seen your program try to access pages of EMS memory only to find
that the pointer has been lost in the middle of running and your program
sits and malfunctions?
Tip 2:
Have you draw multiple graphics pages in EMS and find them only to be delivered
to the screen as garbage or other undesirable gibberish?
Tip 3:
Have you had a sound load into EMS and find that it is scratchy and garbled making
it unusable?
Answer!
Put the pointer redirect command, memory move and pointer retrevial commands into
DEF FN?????........:END DEF blocks!! I have tried and tried to use EMS for a long
time, and tearing my hair out as to why my commands add up to missing data. If you
make the pointer that changes the 16K pointer for EMS memory block chunks, grab
16/64K bytes and drop it into a CONVENTIONAL MEM. array, or refresh the screen from a
direct EMS to VidMem PageCopy routine as a part of the MAIN BODY of the program this
way! You can try to put all of these commands into a SUB or FUNCTION, and as I have
found out, QBasic must reset the EMS pointer each time it drops out it's stack and
processes SUB/FUNC routines. Basically, what I am trying to say, you can put the EMS
change routines into SUB's and FUNC's, but trying to recursively access these subroutines
from another SUB or FUNC leads to a loss of the pointer. If you call all of these
SUB/FUNC's needed to change or modify EMS from the MAIN BODY in a DEF FN
() Start EMS Support - Reserve EMS Space
// Define DEF FNxx routine calling EMS Sub's/Func's
// Define SUB that calls the DEF FNxx routine
[] Call the SUB to do complex routine (which calls DEF FNxx calling EMS SUB)
[] Continue until done
() End
^______ This comes from PLC/Flowchart design coding, which I picked up for abbreviated
code flowcharting. It seems to help me develop rapidly.
Conclusion
I hope this helps a LOT of people!!!!
BTW, my site is
http://www.freewebs.com/kiyotewolf/
I have a guest book and am planning on making pixel scrollers and some side scrollers soon.
For those of you that programmed the C=64 and remember the wedge in 6502 Asm, I have found
a way to develop the wedge for QBasic programmers, that can operate VERY fast in the background
without requiring a TIMER:WHILE/WEND or other time halting operation. It's kinda neat!
Drop me a line if you wanna hear my ideas or chit chat!
kiyotewolf@yahoo.com
.:Ciao! .:Kiyote Wolf
Chain-like Animation Tutorial
Written by Lachie Dazdarian(August, 2006)
Introduction
This tutorial is basically a showcase of my attempts to create a chain-like animation. In my usual style, it will be written on a dummy-level. I hope you won't be annoyed with that.
About what kind of animation am I talking about? It's a style of animation like on this screenshot(the dragon):
This kind of animation also appears in The Griffon Legend, and Josiah Tobin referred to it, in his review of The Griffon Legend, as bio-animation, though I failed to find it under that name on the net. My google skills are appalling.
So allow me to call this chain-like animation, since it really functions like a chain. Another valid descriptions could be string-like animation too, because these kinds of animations are often more similar to a string connecting beads than to a chain.
The Stuff
Let's just say we want to create a snake consisted of [insert number] blobs and be able to move it around the screen. The blobs should be a part of one chain/string and move in that manner.
Before all, we should decide how we want to declare our chain(s). My idea is to declare an array defined with two elements, first representing the chain number and second every specific ring(piece, blob, bead, whatever) of that chain.
Like this:
const numofchains = 10
const numofrings = 50
DIM SHARED MyChain(numofchains, numofrings) AS MyChainType
numofchains will represent the maximum possible number of chains that can be simultaneously active and you don't have to declare it like a constant. numofrings will represent the maximum number of rings(pieces) each chain can feature. Again, you don't have to declare it like a constant. I could have done it like this too:
DIM SHARED MyChain(10, 50) AS MyChainType
But declaring these numbers as constants allows us more flexibility, in case we want to connect them with certain FOR loops and be able to change our game/program parameters faster. With a chain declared on this way we must have in mind that managing a chain piece MyChain(10, 51), MyChain (11, 20) or any other out of bounds will result in shit hitting the fan. If you want your game to feature chains consisted of 100+ pieces simply change the numofrings constant accordingly.
Before 'DIM SHARED MyChain(numofchains, numofrings) AS MyChainType' we need to define the "MyChainType" user defined type. This is how I constructed it:
TYPE MyChainType
X AS SINGLE
Y AS SINGLE
OldX AS SINGLE
OldY AS SINGLE
Sprite AS INTEGER
Mode AS INTEGER
Exists AS INTEGER
Length AS INTEGER
PullDistance AS INTEGER
EndDistance AS INTEGER
Fixed AS INTEGER
Speed AS SINGLE
END TYPE
Some of these variables don't make much sense now but will become later. X and Y speak for themselves, Sprite will represent the sprite that makes the piece/ring, Exists if a chain piece is active or not, PullDistance will define the distance on which one piece starts to pull another, EndDistance the distance on which one peace will prevent the other to move any further in case one of the pieces is fixed(a chain with a ball hanging on the wall). Speed will define the speed of movement in pixels of every chain piece.
Before all let's set our graphic mode:
SCREENRES 640, 480, 8, 2, 0
SCREENSET 1, 0
SETMOUSE 0,0,0
After than we should set the number of chains and rings per chain in our specific program:
set_num_of_chains = 1
set_num_of_rings = 25
Make these variables as shared. I decided to have one chain consisted of 25 pieces/blobs. Like I already said, it will represent a snake.
Before working with the chain we need to initiate proper values of every piece in the chain:
FOR initchain = 1 TO set_num_of_chains
FOR initring = 1 TO set_num_of_rings
MyChain(initchain, initring).Exists = TRUE
MyChain(initchain, initring).Sprite = 1
IF initring = set_num_of_rings THEN MyChain(initchain, initring).Sprite = 2
MyChain(initchain, initring).PullDistance = 12
MyChain(initchain, initring).EndDistance = 14
MyChain(initchain, initring).Speed = 2
MyChain(initchain, initring).X = 320
MyChain(initchain, initring).Y = 20 + initring * 7
NEXT initring
NEXT initchain
This initiates a chain on the horizontal center of the screen with every new chain piece being 7 pixels more close to the bottom of the screen(MyChain(initchain, initring).Y = 20 + initring * 7). Note the pixel "distance" variables I picked. And note how the last chain piece is of different look(sprite variable) since it will represent the snake's head.
My loops usually look like how it follows so I'll use the same in this program:
DO
screenset workpage, workpage xor 1
CLS
MyChainLayer
workpage xor = 1
do
loop until timer& - st >= (1/fpslimit)
st = timer&
SLEEP 1
LOOP UNTIL MULTIKEY(SC_ESCAPE)
Be sure to declare fpslimit as a constant with:
const fpslimit = 80
Where fpslimit will define the speed of our program in frames per second.
Also, you should declare workpage and st like this:
DIM SHARED workpage
DIM SHARED st AS DOUBLE
Don't forget to declare the usual TRUE/FALSE constants too:
const FALSE = 0
const TRUE = 1
MyChainLayer is a subroutine we need to declare with:
DECLARE SUB MyChainLayer ()
This sub will include all the code that connects the chain pieces into a chain.
After the main loop the code goes:
SUB MyChainLayer ()
' Loop through our chains and chain pieces of
' every chain.
FOR countchain = 1 TO set_num_of_chains
FOR countring = 1 TO set_num_of_rings
' Store the chain piece position before moving it.
MyChain(countchain, countring).OldX = MyChain(countchain, countring).X
MyChain(countchain, countring).OldY = MyChain(countchain, countring).Y
' If not moving the last chain piece(IF countring + 1 <= set_num_of_rings)
' and if the current piece is not fixed move it!
IF countring + 1 <= set_num_of_rings AND MyChain(countchain, countring).Fixed = FALSE THEN
' If the next chain piece(countring+1) is more than PullDistance pixels left from
' the current chain piece(countring), move the current chain piece toward left.
IF MyChain(countchain, countring).X-MyChain(countchain, countring+1).X > MyChain(countchain, countring).PullDistance THEN
MyChain(countchain, countring).X = MyChain(countchain, countring).X-MyChain(countchain, countring).Speed
' Align the current piece with the next piece it follows, if it's higher
' or lower from this piece. This part is tweaked in the sense of
' alignment speed and requires tweaking with speed changes.
IF MyChain(countchain, countring).Y > MyChain(countchain, countring+1).Y THEN MyChain(countchain, countring).Y = MyChain(countchain, countring).Y-ABS(MyChain(countchain, countring).Y-MyChain(countchain, countring+1).Y)*0.08*MyChain(countchain, countring).Speed
IF MyChain(countchain, countring).Y < MyChain(countchain, countring+1).Y THEN MyChain(countchain, countring).Y = MyChain(countchain, countring).Y+ABS(MyChain(countchain, countring).Y-MyChain(countchain, countring+1).Y)*0.08*MyChain(countchain, countring).Speed
END IF
' If the next chain piece is more than PullDistance pixels right from
' the current chain piece, move the current chain piece toward right.
IF MyChain(countchain, countring).X-MyChain(countchain, countring+1).X < -MyChain(countchain, countring).PullDistance THEN
MyChain(countchain, countring).X = MyChain(countchain, countring).X+MyChain(countchain, countring).Speed
IF MyChain(countchain, countring).Y > MyChain(countchain, countring+1).Y THEN MyChain(countchain, countring).Y = MyChain(countchain, countring).Y-ABS(MyChain(countchain, countring).Y-MyChain(countchain, countring+1).Y)*0.08*MyChain(countchain, countring).Speed
IF MyChain(countchain, countring).Y < MyChain(countchain, countring+1).Y THEN MyChain(countchain, countring).Y = MyChain(countchain, countring).Y+ABS(MyChain(countchain, countring).Y-MyChain(countchain, countring+1).Y)*0.08*MyChain(countchain, countring).Speed
END IF
' If the next chain piece is more than PullDistance pixels up from
' the current chain piece, move the current chain piece toward up.
IF MyChain(countchain, countring).Y-MyChain(countchain, countring+1).Y > MyChain(countchain, countring).PullDistance THEN
MyChain(countchain, countring).Y = MyChain(countchain, countring).Y-MyChain(countchain, countring).Speed
' Align the current piece with the next piece it follows, if it's left
' or right from this piece. This part is tweaked in the sense of
' "alignment speed" and requires tweaking with speed changes.
IF MyChain(countchain, countring).X > MyChain(countchain, countring+1).X THEN MyChain(countchain, countring).X = MyChain(countchain, countring).X-ABS(MyChain(countchain, countring).X-MyChain(countchain, countring+1).X)*0.08*MyChain(countchain, countring).Speed
IF MyChain(countchain, countring).X < MyChain(countchain, countring+1).X THEN MyChain(countchain, countring).X = MyChain(countchain, countring).X+ABS(MyChain(countchain, countring).X-MyChain(countchain, countring+1).X)*0.08*MyChain(countchain, countring).Speed
END IF
' If the next chain piece is more than PullDistance pixels down from
' the current chain piece, move the current chain piece toward down.
IF MyChain(countchain, countring).Y-MyChain(countchain, countring+1).Y < -MyChain(countchain, countring).PullDistance THEN
MyChain(countchain, countring).Y = MyChain(countchain, countring).Y+MyChain(countchain, countring).Speed
IF MyChain(countchain, countring).X > MyChain(countchain, countring+1).X THEN MyChain(countchain, countring).X = MyChain(countchain, countring).X-ABS(MyChain(countchain, countring).X-MyChain(countchain, countring+1).X)*0.08*MyChain(countchain, countring).Speed
IF MyChain(countchain, countring).X < MyChain(countchain, countring+1).X THEN MyChain(countchain, countring).X = MyChain(countchain, countring).X+ABS(MyChain(countchain, countring).X-MyChain(countchain, countring+1).X)*0.08*MyChain(countchain, countring).Speed
END IF
END IF
' If a chain piece exists draw it!
' According to the piece sprite draw a specific kind
' of blob. In a proper game CIRCLE statements should
' be replaced with PUT and memory buffers holding the
' blob sprites should be connected with
' MyChain(countchain, countring).Sprite.
' Sprite = 1 ' green blob
' Sprite = 2 ' red blob(snake's head)
IF MyChain(countchain, countring).Exists = TRUE THEN
IF MyChain(countchain, countring).Sprite = 1 THEN
CIRCLE (MyChain(countchain, countring).X, MyChain(countchain, countring).Y), 15, 2, , , , F
CIRCLE (MyChain(countchain, countring).X, MyChain(countchain, countring).Y), 15, 118
LINE (MyChain(countchain, countring).X-5,MyChain(countchain, countring).Y-5)-(MyChain(countchain, countring).X-4,MyChain(countchain, countring).Y-6), 47
END IF
IF MyChain(countchain, countring).Sprite = 2 THEN
CIRC