ANNOUNCMENT -- vbProgrammers: Please read.
I'm not gone yet :). I decided to take a look back at this site again and reexamined the reasons for its creation.
It's all about giving back to the community. Information exchange is crucial in this world, and without it we woudln't progress. As programmers, we learn from our masters and our peers. Beginner programmers are guided by more experienced programmers (or resources they've created, such as articles, books, or websites). As these new programmers get more experienced, it becomes their duty to give rise to the inexperienced programmers. The cycle continues...
A month ago I decided to write a book, "Learning Visual Basic.NET - The Game Programmer's Path." The book uses the website's tried-and-true trial and error method of teaching. It quickly introduces the reader to Visual Basic.NET and progresses through game development. It begins with simple games such as tic-tac-toe, pong, checkers, tetris, brickout, demonstrating the development process and game loops. Then, the book moves onwards to introduce AI with games such as pacman, and space shooters. Advanced scrolling and level-creation is introduced with a game similar to Mario. Complicated event-driven concepts such as information storage (character stats, inventory, etc), optimization, etc. are introduced in a mini RPG. I haven't decided yet whether or not a section on 3D will be introduced or not.
Here's the dillemma I'm facing. Information exchange is meant to be free, right? Right. Well the flip side of the coin is: If I wrote this book I'd make profit, and have a major ++ on my college application. Problem is, books take months to write. I'm up for it, however.
Well, going back to the Information = Free idea. If I made a WikiBook (www.wikibooks.org) would anyone contribute? A WikiBook is an open-source book which anyone is free to edit (and features a History system that allows an article to be reverted to a previous version if it gets messed up). The key to such a project is a large fanbase, as you'd have many users submitting small bits of content at a time, which amounts to something. It's a shame, really - last summer (when I was constantly updating the site) if I launched the project I might have gotten this project rolling along quite smoothly.
I need some suggestions, please post your thoughts here.
Check out the Introduction to 3D Transformations
tutorial. You'll make a very basic 3rd person camera, but we'll
retune and refine this in a 'proper' 3rd person camera tutorial.
Next tutorial should be a Networking tutorial, and yes
I'll include some information about port forwarding and you'll be
able to talk to some of your buddies online.
For DirectX people there'll be a DirectInput tutorial,
although it'll be short because it's a "set it and forget it"
Any new ideas for tutorials? - Post on the forums if
you've got ideas. I'm thinking of a Scripting (or Text Reading, for
conversations with people) tutorial for the RPG Programming Tutorial
Series. I'll have to work on that though... I did discover
some sweet code while I was in India claiming that VB.NET has its
own code parsing thing, so we don't have to invent our own scripting
language :). We'll have to see though.
Got back from vacation (India) yesterday - it was super
hot there, heh.
I typed up an Optimizations tutorial for the RPG
Programming Series - check it out. I hope I wasn't being
too brief, I typed this up while still being in
jetlag mode :)
Next up is a Direct3D tutorial. Introduction to 3D
Transformations. You'll learn some basic trig (so don't worry if
you don't have previous experience, and we'll program a camera class.
For you impatient folks, I've uploaded a class diagram
for the Introduction to Direct3D Transformations onto the
vbProgramming forums. It's basically just a scanned paper that shows
how I thought about making a Camera (transformations) class - and I
finished programming it in a few hours (successfully) too: Pencil
and paper owns! I cannot even stress how useful pencil and
paper is for mapping out your classes and methods, especially this
camera class. Jumping right to code is probably not always a good
idea :). Anyways, if you want to check out the class diagram: I
beleive it's in the Math section, in a post called "FPS Camera" of
Guess what networking folks? Next up is your turn. I'll
have a Global TCP Chat tutorial out. I've begun experimenting with
stuff and it works pretty well, and it supports basic commands such
as /logout and all. Hmm, who knows? Maybe in the future this will be
turned into the "Official vbProgrammer Chat Program" where all us
vbProgrammers can get together and start chatting ;). Gotta love
Uh.... I do have some bad news. The site
redesign is being delayed >_<. I'm not very creative at all, haha.
I'll get to it later, I'm taking web design in school this year (I
might fail the course beacause of lack of creativity, color, and
graphics) -> so hopefully I'll learn a few CSS tricks here and
Back on track with a hot new tutorial - check out the Advanced Calculator tutorial. I originally programmed this in
Java for a final in school.... now I turned it into a tutorial I
guess (Hey SJ people, no cheating! You can't take this code and
convert to java and turn it in as your final!!!).
Anyways, you'll get to learn how to make a calculator
that does this (all in 1 line)
1 / Sin (90 * Cos (30 + Tan (3) / 2 ^ 2))
and give you the correct answer!
I'll be out for about a month due to summer vacation,
by then I'll probably have my new site all good to go, thanks to
Adam Coimbra for help with some insane graphics and layout!
Check out the new Direct3D tutorial: Loading A Mesh.
You'll learn how to load a 3D Model and rotate it. Probably the most
interesting tutorial yet in the Direct3D series. To move on in the
RPG Programming Series, I have to release the API tutorials, which
is what I'm doing next.
Quick update. Someone (who wished to remain anonymous) requested
that I should put images for each tutorial showing what you
accomplish. Great idea! This is generally what makes me angry when I
go to other sites, and all I see is code... not the end result. I'll
start working on that right away! Keep the suggestions coming guys.
My quest for finding a host has officially ended! I found a host
that gives me 450 TERABYTES
Thanks to Samm for telling me about this =D. No ads, no popups.
Although I'm in a slight dillemma. That host doesn't give me a
domain name, which is fine. I'm not too sure what to do though.
Should I opt for a .TK domain redirect? Any other alternatives?
Also, how should I get the word out that this site is "old"?
I mean, should I go around changing all my tutorials and say
"This is the old site, go here for the new one"?
Guys, please post on the forum and let me know what to
do. Meanwhile, I'm learning CSS .... heh. Yes, the site will look so
much better than this one, I'll guarantee you that. Thanks to Adam
Coimbra for helping me out with some of the images (sorry, I'm not
very creative when it comes to art... or anything for that matter:
this is why I like code. More concrete).
The new site will be unveiled once I finish converting all the
tutorials to the new format.
Whoops. Sorry about not updating you concerning why
I've been out. Well, to cut the story short, I was preparing for the
APMEH (Advanced Placement Modern European History exam) - which I
actually took today (and did ok - my brain is not exactly
working right now... I wrote 3 pages on how Russian Communism didn't
live up to the expectations of Karl Marx, and a couple other
essays), and my final exams (which I'm taking in a few weeks).
Well, I have a tutorial for you guys -
"Direct3D.Sprite" - good stuff.
I ought to start 3D in Direct3D, however, being a High School
Sophomore my math isn't all that great. Heh - any help with the
"Technical" details will be appreciated. All I can do is give you a
basic understanding with some working source code - I'd really be
happy if someone took the time to explain it in depth. I'm not
exactly sure what I'm going to release next in the 3D tutorial....
possibly just an introduction to 3D and correct Matrix settings
(it's not too difficult, despite how it sounds). And after that, a
"Loading a 3D Character" tutorial for sure - now that'll be fun. The
issue I'll definately run into is definitely when I get to
"Programming a Camera" - this is where my math will fail me. Never
fear though, I'm reading (right now actually) through a bunch of
books, mapping out stuff on paper and trying to figure out how
things work, through my crappy limited knowledge of sin and cos -
I'll get it one day.
Meh, Networking isn't looking too well though.
Unfortunately I don't have internet in my room (long story) so it's
I'm actually not very sure what to do concerning the RPG
Programming Tutorial Series. I haven't programmed in so long that I
completely forgot where I left off. I remember planning on doing
something for the next one in the series. I think it was something
about (hint hint hint) "Dialogue Scripting". To do that, I'll have
to introduce the API tutorial section, as we'll be using INI files
Still dunno though, I gotta take a look at my code again, been a
That's all for the updates.
Well as some of you know, my CPU overheated.
Fortunately I ordered a heatsink (Zalman 7700-AlCu) and fixed all my
problems (it's a very long story, cut short).
Now I understand that there's been a problem recently about the
source for the RPG Programming Series not working. I couldn't upload
this source to the forum (size limit), so FadiXP said he would host
it for me. If you're reading this, thanks man. But unfortunately,
he... disappeared. So all the files are no longer there. My message
to vbProgrammers is:
Post on the vbProgramming forums if
you know of any good file host that lets you upload files over 1 MB.
I've looked into things such as HostCubix, which is great (Thanks
elNerdo), but it requires you to constantly post on their forum.
Anything that requires less "maintenance" would be appreciated.
Meanwhile, I've uploaded it to
However I'm really running out of space here (for files,
tutorials are small... around 5 kb each; but source code is large), so this will only be
I've begun to take a look at my site statistics (really useful
feature) - it seems as though most of the crowd likes the DirectX
section. I'll remember that, and come out with some new tutorials.
Anyways, I felt kind of guilty on not having updated in
about 2 months, so I decided to look into Networking and create some
tutorials for you guys. Special thanks to elnerdo, a member of
vbProgramming forums, both of worked hard on this together.
Eventually, we got to the point where he could send me a message
from his computer and I would be able to receive it. Trial and error
So, I present to you the Mutlithreading
tutorial. Multithreading, as you'll read, is a very important thing
when it comes to Networking. Basically it lets you run a sub on a
separate thread. A thread is a process that can run
concurrently with others. We'll be dealing with infinite loops,
where a server or whatnot constantly checks for messages being
received. But that loop would hang the system, if not for
Also, check out the Basics to TCP tutorial.
It'll explain the differences between the TCP and UDP protocols, and
let you set up a basic (local) message server. Note: You will have
to create two projects tutorial.
Remote servers, servers that allow you to connect to other computers
through the internet, will be discussed in the next Networking
Check out the Event-Driven Programming tutorial.
Here's a brainstorm of what I think I'll add to the RPG
Programming Series (these are not in any particular order, I'm just
writing what comes to my mind first)
-Flexibility (ex: Files don't HAVE to be in certain
-Creating a DLL from the Engine
-Creating an installer file for the game.
-Buildings and Warps (ex: "If you walk near the door
then enter the building")
-The Battle Engine
-Everything else I mentioned in the syllabus
I gave a lot of it away actually. There's a lot more I plan to do,
and frankly there's no stopping point :). It just gets better and
better as we go.
Uploaded a "Smart Key Movement" tutorial to eliminate
the delay you see when holding down a key.
Uploaded an "FPS" tutorial (no, not first person
shooter, Frames per second) - you can finally see how fast your game
is, and make it run the same speed on all computers (as long as
they're not too slow).
The "new look" that FadiXP gave to my site uses ASP files (I think),
but I don't think 8k supports .asp files - I'll check it out.
JEEZ I keep forgetting about the Section II source code.
Three tutorials in one week, 5 in 2 weeks. Not bad. I just got lucky
with snow days (no school, nothing to do, stuck at home ... nowhere
to go becuase of the snow...etc) and I don't have any new
games to keep me preoccupied. So once I get Half Life 2, don't
expect tutorial mania :P. HL2 will keep me quite busy.
Check the Tutorials section for a list of tutorials I plan to come
2 New tutorials. Finally, in a long time - a new
tutorial in Section II - "An Alternative to Arrays". New RPG
Programming Series tutorial, "Loading NPCs." The next RPG
Programming Series tutorial is finished in code, I just have to
write the tutorial for it. To do this tutorial, please take a look
into the AddHandler tutorial. To do the Event-Driven Programming
tutorial (not out yet, coming after this), please do the Alternative
to Arrays tutorial.
FadiXP has generously given his domain name to me for
keeping files. He also (very kindly) gave me a new design for this
site, expect changes soon. Thanks man!
Thank you vbProgrammers for notifying me of errors in
my tutorials. I'll try to fix as quickly as possible. Most of these
errors are wrong links, misinformation (I said an integer was 64-bit
but it's 32) and spelling errors (I probably won't bother with these
though.....ulnlses t'is psleld ilke htsi).
Pretty much it. School's been keeping me busy. I'm at a somewhat
constant rate of one tutorial per two weeks. Hope that's good enough
for some of you :).
For those of you who still don't have .NET - look for Microsoft
Visual Basic.NET Express 2005. It's a beta, and it's free(it was
when I tried it). Just google it (Since when did google become a
verb?), it'll be on Microsoft's site.
Hey sorry for those of you who have 56k and want to do DirectX
programming, but can't download the SDK. All I can say is - see if
you can download it at a friend's house who has broadband or
something. I thought that you could ask microsoft for the CDs
(US only), I guess not though.
DirectX 9 update is out! Visit
and get the December update.
Happy new years all you vbProgrammers.
Check out the latest tutorial: World Space vs Model Space. It's
mainly a direct3d theory tutorial, but nevertheless an important
In addition, I've finished the next tutorial in the RPG
Programming Series, Loading NPCs (Non Playable Characters). However,
I'm unsure of myself if I've taken the correct approach to this
tutorial or not. Therefore, I'll wait till I finish the Event Driven
Programming tutorial and then finish this tutorial out. Sorry guys.
I just don't want to mislead people with bad code.
If you've noticed, I've put up a few Miscellaneous
tutorials out there. Check out the latest one - AddHandler.
I might start putting up a few APIs up there too (One that lets you
check for multiple keypresses at the same time(I forgot the name),
and mciSendString - an API that lets you play sound). Actually, I
should really create an introduction to APIs tutorial first, or I should
create a section specifically for APIs. We'll see as time goes on.
It's really time for me to start working on the
source for Section II. I'm so absent-minded. Anyone want to do me a
favor? If you've taken one of my Section II tutorials and if you've
done the source can you please send it to me? Here's my
You know what? I'm thinking of redoing my hello world tutorial.
Wow I've gotten a lot of questions regarding that tutorial. I
guess some people have a hard time starting out. I reread the
tutorial (I made it a while ago), yeah I can understand where it
gets rough for you people.
Anyone have any links/book recommendations to learn some
networking? It's something I'd like to get started on.
Uploaded 2 tutorials, one in the Miscellaneous section
and one in the Games section. The Miscellaneous tutorial is a "Do
you really want to quit" tutorial, and the games section is the
second tutorial in the RPG programming series where you'll learn
scrolling, collision detection, and how to change screen resolution.
It's time for me to get to work on the source code for Section II.
Besides that, next up is a tutorial on DirectX - "World Space vs.
Screen Space" - The Concept of Transformations. " Meanwhile I hope
you enjoy the RPG tutorials (no they're not all done, I've only got
two done so far). I'm not 100% sure what the next tutorial in the
series will be; a quick guess is something along the lines of making
the RPG more Event-Driven, a very important thing for games. I might
also sneak in "Smart Key Movement" too - you'll find out soon.
Two tutorials in one day! Check out the Changing Screen
Resolutions tutorial in the Miscellaneous section (very short).
Check out the first tutorial in the RPG Programming
Series (be sure to view the
syllabus as well).
Been a long time since I've updated. Sorry guys, just
been busy with school. Anyways, check out the new Transparent
Sprites tutorial. Next up in the DirectX section: "World Space vs
Screen Space" (Scary? Nah not really). I found an old GDI+
RPG Game Engine which I made quite some time ago (it's sort of
incomplete), so I'll create a "Making an RPG with GDI+"
tutorial in the Games section.
Source for Tutorials 5- 8 in Section I are uploaded -
these include the big ones such as Tic-Tac-Toe and the Calculator
tutorial :). Only 8 or 9 more to go!
The Matrices and Transformations tutorial is out! Learn how to
move stuff in Direct3D - the correct way!
Source for Tutorials 1 - 4 in Section I are uploaded.
Sigh, yet another download problem - you can fix this with a few
tweaks. For some reason the thing downloads it as a .php file, to
fix it do this:
1) Right click the download link, hit Save Target As
2) When you download it, be sure to RENAME the file to:
3) Extract the files
Check out the Rendering A Sprite tutorial! Kind of
tricky and weird, but interesting.
I'm going to take a 2 week break from the tutorials to work on the
source code for the tutorials in section 1 and 2 (err, I had someone
coming up to me asking for the code to the Hello World tutorial
recently...so I thought "wow my explanations must suck" so ..
yeah I'm uploading the source o_O)
Anyone good with networking want to help with the Networking
section? I actually might consider adding an ADO.NET Section. Oh
yeah - look forward to seeing XML tutorials (mainly
Serialization/Deserialization), heh nifty.
Wow its been a crazy summer (MAJOR site fixes, lots of new
Since its been about a year, anyone want to post comments about my
site (so that I know what are the strong points, and the weak points
about my site that I need to improve on).. I haven't gotten many
negative comments :). Thanks guys - but please be honest, because
negative comments will only lead to improvements.
I'm happy to announce (and you'll be happy to hear)
that I'm uploading source code for the old tutorials. In the next
few weeks, you'll see changes in the forums, the source code will be
attached for all the tutorials. The code will be in VS.NET 2002
format - VS.NET 2003 users can easily click "OK" when it asks to
DirectX tutorials will (depending on the source) have a 9.0a
equivalent and a 9.0c equivalent(9.0a is for 2002 users, and 9.0c is
for 2003 users - MS dropped support for 9.0b and 9.0c for
VS.NET 2002, but don't worry - I'll have the source code for both if
they are different).
The Initializing the Device tutorial is out! Check it
out. I fixed the "Corrupted Source Code" problems :).
Uploading it as a RAR file rather than a ZIP seemed to fix it - look
forward to seeing some source code.
Introduction to DirectX tutorial out! This gets your
computer DirectX ready and immerses you in the world of DIrectX
I'm going to do Direct3D tutorials as requested by many
people. Don't worry - I'll definitely have some more GDI+ tutorials,
but I will also work on the D3D tutorials as well, in sequential
order from easiest to hardest as usual. I am thinking of wrapping up
the GDI+ section, and programming a battleship game(without AI..lol,
AI tutorials will come don't worry). The only inconvenience
of this tutorial is that it won't involve networking - you cant play
battleship with 2 people on the same computer :). Thus, after the
DirectX section, I will be creating a networking section once I
learn some. A number of people have requested a game section. This
will come after the DirectX and Networking sections, but not
By now you guys should know enough Visual Basic code, so you don't
have to learn DirectX before you do Networking..etc, becuase
of this, I can do them in different orders. Basically, it's not
going to be like earlier, where you needed to understand the
previous section before going on to the new one - this time, you
know enough code to figure it out (don't worry I'll still explain my
code like I always do), you can apply it to whatever you want.
The next thing you got to do is look into API's and look into the
other aspects of VB.NET. This is where you apply VB.NET to other
stuff (again, like DirectX, Networking, and of course - games!).
I figured out why Dreamweaver was making a huge fuss over the
font - it's mainly becuase of the SquishyWare Syntax
Highlighter. From now on, i'll try to either do my own syntax
highlighting (to keep HTML clean), or just space the code
accordingly and change the font color to black.
You will see an Introduction to DirectX tutorial and a
Device Initialization tutorial soon.
Check out the scrolling tutorial. Please
bear with me on this font problem!!! Its driving me insane!!! It
might be easier for you guys to uhh.. paste the entire tutorial into
Word and read from it.
Sigh.. AI Tutorials delayed! Sorry
people. I'm looking for help on those tutorials
1) AI "Thinking": Tic Tac Toe
2) AI :Smart Movement": Path Finding
The next tutorial will be Scrolling! I'll get back to the AI
Wow, a tutorial on the next day! That's a first. Check out the Reading and Writing Text Files for loading/saving games tutorial.
Check out the Bit String Flicking tutorial - i tried to keep it simple!
the TileBasedCollision tut. I realized it had a ton of
errors Gonna get my new comp very
soon. The free VB.NET
offer is over. Next up: Using Bit String Flicking for
guys! Check out http://msdn.microsoft.com/vbasic/atthemovies .
They're giving away VB.NET for free! Don't Beleive ME ! Check it out
for yourself. All you have to do is watch 5 short movies and rate
them and they'll send it to you! For those of you using VB.NET 2002
or using SharpDevelop - this is your chance to get VB.NET (For a
limited time only "until supplies last").
I havent gotten
many tutorials out because my computer died - And im editing this
page from NOTEPAD at this moment!
Check out theTile Based
Collision Detection tutorial
Collision Detection finally up. Check out
Proximity and Bounding Boxes collision.
Check out the Tips and Tricks tutorial
I got the animation
tutorial up :-D
OOP tutorial uploaded.
Next up: Animation
uploaded - check it out!
Next: OOP - the long awaited
Finally! Your first game! Tic Tac Toe Tutorial finally uploaded
- sorry for the delay!
Gotten settled, I
uploaded a calculator tutorial called Event Handling
I finished summer reading - now its
time for school. After I get settled ill upload more
I uploaded 2 tutorials - which I've been working on
for a week. They teach you the Basics of Animation and using the
I'm taking the files from my Geocities account and I'm
converting them to make it took better for this site. I'm
almost done catching up. I'm behind on a lot of stuff.
Finally, I got
so frustrated at finding a "free" editor, that I bought myself
Microsoft FrontPage. Summer Vacation is almost over. I'll try to fit
in as many tutorials as I can before school starts.
This time I
promise, I'll update