|
Tutorials:
Source Code Note:
The source for all the tutorials are
here (The tutorials have the wrong link on them)
Thanks for your patience
Section I -Beginning
VB.NET
The very basics! This is the place to start if you're new.
No previous programming experience required!
1)Hello World(*) Displays a Message Box
showing, "Hello World" on the screen,
2)Variables(*) Shows the importance of
variables in programming, basic variable concepts and theory. Adds 2
numbers together.
3)Variables2(*) Manipulate
text and create a program to check for a correct password. An
introduction to the If statement.
4)Experimenting with Objects and
Properties(*)
This tutorial will explain to you some of
the objects in the toolbox and their properties.
5)Basics of Animation using
PictureBoxes(*)
Shows
you how to use PictureBoxes to allow a character to
animate.
6)Basic
Block Statements(*)
Shows
you 2 basic block statements, the If Statement and the While
Loop
7)Event
Handling(**)
Teaches you how to check for events while
programming a calculator
8)Tic
Tac Toe(**)
Your first game! Learn about Mod and Subs
and Regions!
Section II - Introduction to OOP / Advanced Drawing
Techniques
Start getting
more advanced by learning better techniques. Make yourself
a better game programmer.
9) GDI+(*)
Graphics API used for fast drawing.
10) OOP(*) OOP(Object Oriented Programming) tutorial
11) Animation(**) Flickerless
Animation with GDI+
12) Tips
and Tricks (*) Tips and tricks for VB.NET to help you when
you program.
13) Collision
(**) Learn about Functions, Properties, and 2 types of collision
algorithms:
Bounding Boxes and Proximity
14)
Tile
Based Collision Detection (**) All about Tile Based Collision
Detection (ahem...look at the title)
15)
Bit String Flicking for Collision Detection (***)
01010101 - Using Binary for collision detection!
16) Reading and Writing Text Files(**)
Learn how to save/load gamedata! Also learn how to read .map files and display a map!
17)
Scrolling(**)
Learn how to scroll. VERY simple tutorial. Complicated font problems
on this one, sorry.
18)
An Alternative to Arrays(**)
Sick of arrays? Welcome Collections, ArrayLists, Hashtables, Stacks
and Queues - extremely useful.
19)
Advanced Calculator(**)
Sharpen up your String parsing skills by making a calculator that
can do this:
"1 / Sin (90 * Cos (30 + Tan (3) / 2 ^
2))"
all at the same time and still give you the answer!
Coming
soon:
20) More GDI+ (Transformations, tricks, optimization, and more!)
21) XML Serialization/Deserialization (Save and load game data
without going through the hassle of parsing text files)
22) Tetris! <I finally decided on a game!> - This might not
be here ultimately. I might put it in the Programming Games section
If you're wondering where the AI tutorial is. Well it's not going to
be out for a while, I still have to learn this complicated topic -
there are books on AI. Anyways, once I learn AI programming,
I'll dedicate an entire section to it instead of squeezing in a few
tutorials at the end of Section II.
Section III - Applied Visual Basic
It is highly recommended that you finish sections
I and II before going on to section III.
The DirectX section will cover mainly Direct3D 9, but there will
also be a DirectInput tutorial also.
Section III.1 -
DirectX
DirectX is an advanced programming interface used by many industrial
game programmers.
Although commonly used in C++, Microsoft has recently released a
'Managed' version for the .NET languages.
1)
Introduction to DirectX(*)
This tutorial will serve as an Introduction to DirectX. It will
discuss the advantages and disadvantages of DirectX. It will also
get your computer DirectX-ready.
Edit: 8/11/05 - Please get the latest version of DirectX, available
here. If the tutorial links you to a specific version of
DirectX, please ignore it. Simply use the link provided above.
Microsoft will release new versions on a timely (or untimely,
knowing Microsoft and their delayal of Windows Longhorn) basis,
and I cannot keep editing the tutorials each time. As of this
writing, the latest version is the June 2005 Update.
2)
Initializing the Device (Rendering a
blue screen)
(***)
This tutorial will show you how to initialize the Direct3D Device.
The first step to learning Direct3D.
3)
Rendering
Sprites(***)
Finally, something worthwhile in Direct3D - drawing a sprite!
4)
Matrices And Transformations(***)
Start moving stuff around in D3D :).
5)
Transparency(***)
Making a sprite's background transparent
6)
Screen Space vs. World Space(***)
Learn about transformations in Direct3D.
7)
Using Direct3D.Sprite(***)
Direct3D Comes with its own Sprite class! An alternative to your
clsSprite class - easier to use.
8)
Loading a 3D Mesh!(***)
Quick intro to 3D and then Mesh rendering. You'll load a "car" mesh
and learn how to import your own meshes!
9)
Introduction to 3D Transformations!(***)
Move around the world, create a basic 3rd person camera class, and
get a brief overview of different camera types.
Coming soon:
10) DirectInput - What's the point of a 3D Game without mouse input?
11) Third Person Camera - Best suited for RPGs.
12) Hybrid First and Third Person Camera - Evil tutorial, but worth
it
13) First Person Camera
(In-Ground and Fly-Around) - Be sure to brush up on your Trig skills
though!
Section III.2 -
Networking
Time to learn how to get 2 computers to talk to each other over the
internet.
.NET offers you powerful ways of doing this in their System.Net
namespace.
Visual Basic 6 programmers will have almost no difficulty moving
from the
WinSock API to this.
1)
Multithreading(**) - Thanks
to SamSmithNZ for submitting this tutorial
This tutorial serves as the basis for learning Networking. It
basically teaches you how to not freeze your app in an
infiinite loop.
2)
Setting up a Local TCP Server(**)
Pretty basic networking tutorial. You'll learn the difference
between TCP and UDP and send a message to a server. Just note the
word Local.
Coming soon:
3) Global TCP Chat - You'll use the previous tutorial,
learn some Port Forwarding, and connect with people through the
internet in a "Public Chatroom" (only
available to vbProgrammers :D).
Section IV - Miscellaneous
Anything not covered in sections I and II
will be covered in this section.
You'll learn VB.NET essentials (for
game programming) in this section.
1)
Changing Screen Resolutions (**)
Basic and straightforward, this tutorial will show you how to change
the resolution. Thanks to tzodem for the code! All that is required
is a basic understanding of OOP.
2)
Do You Really Want To Quit (*)
Make a box which asks if you want to quit, before you quit!
3)
AddHandler(**)
Want to optimize? Want to make a class 'mimic' your form (by sharing
some of the same properties)? Then this tutorial is for you.
4)
Smart Key Movement(*)
Get rid of that stupid delay when you hold down a key!
5) FPS
Counter(**)
FPS is Frames Per Second - not First Person Shooter.
How fast is your game? Want to make it run the same speed on
every computer? We'll also have some fun with some (cheap) benchmarking.
Coming soon:
6) [API] Introduction to the Win32 API.
7) [API]
Play sounds using the mciSendString API.
8) [API] Learn how to check for more than one key press at the same
time with GetASyncKeyState
9) [API] Parsing INI files - very
useful (even though it sounds boring). Read from them or write from
them using these APIs:
GetPrivateProfileString and WritePrivateProfileString
Section V - Programming games!
It is highly recommended that you finish
sections I and II before going on to section IV.
This section will tell you what tutorials you need
to finish from sections III and IV before going on to this section.
Some tutorials may not require you to finish any tutorials from III
and IV, and some tutorials may.
The difference between the games in this section and the games in
Sections I and II is simple:
These are more complex games that
require multiple tutorials.
1) Programming an RPG (Syllabus)
-Step 1:
Setting it up
You'll
learn about how to set up our game (and make it Object-Oriented).
We'll talk about some theory in here about how we must approach
this. Finally, we'll code dynamic
character movement (the speed may increase or decrease according to
the computer's speed), animation
and loading the map.
-Step 2:
Scrolling and Physics
Besides learning basic scrolling and physics, you'll learn how to
change screen resolution.
We'll learn how to fix problems before the crop up and we'll also
add some "fine detail" to our game
which the previous tutorials didn't focus have. This is the first
tutorial that combines both scrolling and
physics. You'll also learn how to control the rate of animation.
You'll edit the map file in this tutorial
to tell it which tile will be passable or not.
-Step 3:
Coding in NPCs
OK - Now you've gotten your basic stuff going. Now it's time to add
some spice. In this tutorial you'll learn
how to load NPCs - Non Playable Characters. These guys just sit
around, waiting for you to talk to them.
We'll also learn how to code events and let your game "Wait" for
events (one event we'll code in is a
dialogue). You'll learn how to create a dialogue box and let it
display text. Another thing in this
tutorial is that you'll check for direction; if you talk to the NPC
from above then he'll turn up to face you.
Same goes for the rest of the directions as well. There'll be a
brief 'sneak-preview' to the Event Driven
Programming tutorial because to finish this tutorial, I had to add
some elements from the next one as
well.
-Step 4:
Event Driven Programming
It's time to move away from coding things manually. This Event
Driven Programming tutorial will make
(almost) everything be read by text files. You will use your
knowledge of ArrayLists to add objects with ease.
Most of the code you'll see will be familiar to you already. Just be
sure you read "An Alternative to Arrays"
tutorial in Section II before you start this tutorial. We'll add
more NPCs and make them each say different
things. Most of the code will be stripped away from form1 and into
either text files or GameClass. We'll
create a clsLevel class which will set up your entire level (default
character position, your NPCs, map, tileset
and more!
-Step 5:
Optimizations
Get rid of that darn lag! We'll speed up our application by adding
optimizations such as (1) Indexing: A way to
reference bitmaps instead of creating an array of them, (2)
Adjusting the Multiplier so that he doesn't step too
many times per frame, (3) Culling out what you don't see. The end
result is a big difference in speed!
2) Programming an Arcade Game - Tetris
Don't
expect this anytime soon (I still have the RPG section to complete),
but I might include this in the
Section
II instead. Just a heads-up.
|