Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

2D All the way! / Some Guy's 2D Tutorial For DBC

Author
Message
Colonel Cool
19
Years of Service
User Offline
Joined: 3rd Aug 2005
Location: Somewhere
Posted: 29th Aug 2005 00:53 Edited at: 29th Aug 2005 22:22
#Some Guy's 2D Tutorial For DBC# **Skill Level: Beginner**
#############################
# Contents #
#############################
Chapter 1: Introduction and Pong
Chapter 2: Making a Break-Out Clone
Chapter 3: Making a Space Invader Clone
Chapter 4: Making a Defender Clone
Chapter 5: Making a Duck Hunt Clone
Chapter 6: A most awesome Pac-Man Clone
Chapter 7: Ratty a puzzle game (kinda)
Chapter 8: Boxing Knock-Out
Chapter 9: Tile-Master
Chapter 10: Character-Master
Chapter 11: A Mario Clone
Chapter 12: Yes it's a Final Fantasy Clone or Zelda Whatever You Want!
################################################################################
Chapter 1: Introduction and Pong
################################################################################
Section 1.A - The Introduction
###############################################################################
Welcome to my most awesome 2D Tutorial, I'm not very modest am I? Anyways, lots of people
start out with DarkBASIC (Classic) thinking that they're gonna make a great 3D Game in whatever
genre. They're told to start small and make text games or pong whatever, then what then? What's
after the beginning? Most tutorials on the TGC forums (no offense) are vague, or more geared
towards an abousulte noob. Or not done at all, or else they die out. These tutorials will have a
beginner section don't worry, and at the end you will hopefully be a little better and do 2D games
better. You won't be an expert programmer, or 2D Master. It takes years to program and be
consider above noob status. This makes alot of people angry, but it's true at least you can be
happy that you don't have to program C++/C or Direct X SDK. This takes lots of work and quite
frankly it's geared for expert programmers. At least from what I heard, in the old days of
programming they used Assembly. Oh that's easy you say, no it's hard Assembly uses
commands like POP, etc. Before Direct X there was DOS games were made for, engines need
to be made when you work with C. Several thousand lines of code later, and a flaming keyboard
later your hands are sore and bleeding. Guess what you're just done with the engine, or you can
buy one that takes thousands of dollars. So, let's be happy with DBC and save C++ when we
make our own blockbuster game that is the true halo-killer. So that's why commerical games take
longer.

Your First Assignment - Check out some DBC games in the TGC Showcase under DBC.

Man, I wish I had that assignment before in school!

This Ends Section 1.A
################################################################################
Section 1.B - Tips and Hints On Posting On the TGC Forums
################################################################################
Some newcomers sometimes post things that may attract a flamer. Or as I can them bullies,
this results in hurt feelings and the average flamer feeling good about themselves because they
just insulted a human being with real feelings not a robot.

***You can skip this if you'd like***

Team Requests: Don't post any team requests period, unless you got a big bag full of info about
your game, games you made, a demo, source code, etc.

Game Accounments: Unless you have a screenshot, and later a demo don't post anything
dealing with a WIP (Work in progress) post. Make sure you tell about your game, and you could
post code snippets or something if you wish.

Info about your website: One user did this and man did he get flamed! TGC forum users use the
TGC forums.

Flame: Don't flame anybody it can really hurt someones feelings and make them just give up
using the forum.

What does it mean when a thread as a lock on it?: It means no one can post on the thread any
more because it's a really old thread or did not agree to the terms of conditions on TGC Forums.

What does it mean when a thread is red?: It means it a old thread about 30 days old or
something?

I can't see my post!: If your new you posts get checked before they are posted don't worry
it's not because they hate newcomers it's because they seeing if you post garbage like flames
or if you are agreeing to the terms of condition.

What boards should I use?: 2D All The Way, Newcomer Board, and the DBC Board for
newcomers or really whatever you want as long as you agree to the terms of condition.
################################################################################
Section 1.C - 4 Beginners Only
################################################################################
Okay this one's for somebody who just started. By the way try DarkEDIT it's a better editor.

Rem Crazy Lib
Rem A Mad Lib Game By <Instert your name here>

Rem Print prints text on screen, input allows user input
Rem Rem statements are skipped
Rem Variables allow you to store data
Rem string$ = "aaaaa", real# = 1.000232,integer = 12
Rem Input is a blocking command, it gets done first

input "Enter A Male Name> ",name$
input "Enter An Animal> ",animal$
input "Enter A Town> ",town$
input "Enter A Decimal Number> ",decimal#
Input "Enter Your Favorite Number> ",favenum
input "Enter A Plant> ",plant$
input "Your Name> ",yname$
Print "Okay Press Any Key To Clear the screen!"

rem wait key can be used in this situation, you can also use wait timetowait, sleep timetowait,
rem or suspend for key.

wait key

rem cls clears the screen of text and what not
cls

rem now the story
Print "There once was a king named ";name$;" that lived in the kingdom of ";town$
Print "He had a big allergy to ";animal$;"s and ";plant$;"s "
print "So one day his trusty knight ";yname$;" said I'm gonna add ";decimal#;" and ";favenum
Print "Together to find a cure for this allergy"
Print "And the knight did"
Print "Sorry this was short THE END"
wait key

rem end does just that ends the program
end
################################################################################
Section 1.D - Ping a Pong Clone
################################################################################
Ah pong, some say it was the first video game or arcade game for that matter but they're wrong.
Space Wars I think that's what it was called was the first game, it was too hard for the general
public since no one played a game before. The future founder of Atari I forget his name, tried
he (I think he did) to make a computer version of the first game called Computer Space. After the
company he worked with the same one that made the first game wouldn't agree to pay him extra
he quit and started atari which means go or check mate. Ping-Pong was copyrighted and pong
was the noise the ball made when it impacted so this began Pong. Pong was very successful
no doubt, this ends Video Game History 101, but if you want you can check out
www.classicgaming.com for a history of video games that's told better then how I told it.

It's get to making our game!

You can open up the source code, or you can view the exe file if you wish. I'd like for you to
make it on your own first. Unzip the media and stuff you'll need first before anything happens.

Source Code:

` You can use the ` Sign instead of Rem to shorter things up
` Ping
` The Chapter 1 Tutorial Game

` Setup Display
` Sync tells the computer you will be manually updating the screen
` The sync rate tells the computer how fast to update it when you put in the sync command
sync on
sync rate 40
hide mouse

` Load all the images used as bitmaps, the number at the end is
`The images numeric name
load image "paddle1.bmp",1
load image "paddle2.bmp",2
load image "ball.bmp",3

` Load the music we will be using, the number means the same
` As in the load image command
load music "Dodge This.mid",1

` Load the sound thump
load sound "thump.wav",1

` Play the music we use, which is music 1 or Dodge This
play music 1

` Start the main game loop
` Setup some variables first, all of these variables are integer ` ` ` ` numbers
oneypos = 1
onexpos = 1
twoypos = 1
twoxpos = 620
bally = 150
ballx = 150
movey = rnd(1)
movex = rnd(1)
onegoal = 0
twogoal = 0

do

`HUD or Heads Up Display
`This sets text to write over the other text on the screen
set text opaque
text 1,1,"Goals: "+str$(onegoal)
text 585,1,"Goals: "+str$(twogoal)

` Player 1 Paddle
` This means if the upkey is pressed then we'll move up one space
` Vertically
` The if downkey is pressed we're gonna be doing the opposite move
` Down
` This means if the variable for the paddle's y position oneypos
` Is less the 1 then move it down
` And if it's greater then 432 move it up

if upkey() = 1 then oneypos = oneypos - 7
if downkey() = 1 then oneypos = oneypos + 7
if oneypos < 1 then oneypos = oneypos + 7
if oneypos > 432 then oneypos = oneypos - 7

`The sprite command calls an object to be put on screen
` Sprite spritenum,x,y,imagenum or frame
sprite 1,onexpos,oneypos,1

`Player 2 Paddle
`This is mostly the same as above only with paddle 2.

if inkey$() = "w" then twoypos = twoypos - 7
if inkey$() = "s" then twoypos = twoypos + 7
sprite 2,twoxpos,twoypos,2
if twoypos < 1 then twoypos = twoypos + 7
if twoypos > 432 then twoypos = twoypos - 7

`The Ball
`We use a for next loop to create it's bouncing effect
`Remember movey = rnd(1) and movex = rnd(1)
`This means that you move down if movey is equal to one
`Or up in the case it is equal to 0
`If movex is = to 1 we move across right
` Or if it's equal to zero we move left
if movey = 1 then bally = bally + 5
if movey = 0 then bally = bally - 5
if movex = 1 then ballx = ballx + 5
if movex = 0 then ballx = ballx - 5
sprite 3,ballx,bally,3

`This means if the paddle 1 or 2 is hit the ball will move
if sprite hit(1,3) = 1 then movex = 1:play sound 1
if sprite hit(2,3) = 1 then movex = 0:play sound 1
if ballx < 1 then movex = 1:twogoal = twogoal + 1:play sound 1
if ballx > 620 then movex = 0:onegoal = onegoal + 1:play sound 1
if bally < 1 then movey = 1:play sound 1
if bally > 432 then movey = 0:play sound 1

`Wins
`We use if endif for long conditional statements
`Text can be used instead of print also
` text x,y,string$
if onegoal = 10
text 100,150,"Player 1 Has Won!"
wait 300
end
endif

if twogoal = 10
text 100,150,"Player 2 Has Won!"
wait 300
end
endif

`Refresh the screen
sync

loop

`End of Main Game Loop

Explained:

You use comments in your program to let you know what you were thinking when you
programmed the application.

Here's some examples of comments:

` Setup the display
Rem Blast the Aliens

Remstart
a group of comments started
remend

Sync is used for updating the screen manually

Loops to something until a condition is met such as this

Repeat
Print "HELLO HELLO HELLO!"
until stopprint = 1

While printtext = 1
Print "HI HI HI HI"
endwhile

For a = 1 to 200
print "YO"
next a

do
cls
text mousex(),mousey(),"I'm Following Your Mouse!"
loop

Text
Some find text boring others make text games, I like a text game personally.

Try these examples:

`This colors text the red index (r), the blue index (b) and the green index(g) and numeric
`Name of the color you give it so!
ink rgb(red,green,blue),colornum

set cursor x,y
Print string

text x,y,string

set text size textsize

set text font textfont (string)

If then statements are conditions, if endif is used when a condition is longer.

Give yourself a pat on the back you made your first game or at least your first pong game. Take
awhile play it with friends, and then get ready for a pop quiz.

***Quiz Time***

The Print Command Is Used For Printing Text?

True or False

The Repeat Until Loop Is Used In Our Pong Clone?

True or False

This is not an example of a real variable:
True or False
a# = 12.9818

Which is a string variable?:

1) a$ = "AAAA"
2) a# = 12444.11
3) a = 123

You can use the str$ command for converting a string to an integer?:

True or False

Expect Chapter 2 Coming Tomorrow.

You can download the media, no source, or exe

Formerly Ogre Software
My Current Project: Mystic I: Quest of A Lifetime

Attachments

Login to view attachments
Colonel Cool
19
Years of Service
User Offline
Joined: 3rd Aug 2005
Location: Somewhere
Posted: 29th Aug 2005 17:49
Nobody Interested?
I worked hard on this!

Formerly Ogre Software
My Current Project: Mystic I: Quest of A Lifetime
Ooska
20
Years of Service
User Offline
Joined: 29th Aug 2004
Location:
Posted: 29th Aug 2005 23:55
Everyones too busy using your knowledge to even post.

Hehe

Weird = Unique. Unique = Human.
Im human.
Hawkeye
21
Years of Service
User Offline
Joined: 19th Sep 2003
Location: SC, USA
Posted: 30th Aug 2005 00:42
A good tutorial Should really help out some begginers

Jozers
20
Years of Service
User Offline
Joined: 19th Nov 2004
Location: If I knew I would tell you!!
Posted: 30th Aug 2005 17:52 Edited at: 30th Aug 2005 17:52
thanks some guy i'm not really a newcomer but i am pants at 2D this helps alot. Cheers

Life is like a box of chocolates...
Colonel Cool
19
Years of Service
User Offline
Joined: 3rd Aug 2005
Location: Somewhere
Posted: 30th Aug 2005 20:14 Edited at: 30th Aug 2005 22:53
Thanks for the response and here you are the break-out clone chapter!

################################################################################
Chapter 2: Making a Break-Out Clone
################################################################################
Atari also made more games then pong obviously, one such game was Break-Out. A game
where you used a paddle to break bricks and earn points. You had highscore tables, and
basically that's it. Anyways, a Break-Out clone is another perfect way towards mastering 2D
Game Programming.

**Sprites Their It**

The syntax for a sprite command is this: sprite spritenumber,x,y,imagenumber

Sprites are very important to 2D Game Programming.

**Arrays**

You will need to learn how to use arrays before you can start saving our highscores we will be
using.

You can start an array statement by using dim, undim can uncreate an array but you won't be
using it much. There are up to 3 dimensions of arrays.

**str$() and val()**
Str$() can be used to convert a integer number into a string, and val() can be used to convert
a string into a integer number.

**Saving Arrays**
You save arrays by using the save array command and in reverse use the load array command.

Now that we're clear it's time for us to start programming our break-out clone. Break-Down.

Note: Again you can download the media that was set as an attachment




Source Code:
` Break-Down
` A Break-Out! Clone

`Loading
text 100,150,"LOADING - Please Wait!"


`Setup display
sync on
sync rate 50
hide mouse


`Load Images Used As Bitmaps
Load image "paddle.bmp",1
load image "ball.bmp",2
load image "block1.bmp",3
load image "block3.bmp",4
load image "block5.bmp",5
load image "block4.bmp",6
load image "slow.bmp",7
load image "animation1.bmp",8
load image "animation2.bmp",9
load image "animation3.bmp",10
load image "animation4.bmp",11

`Load Sounds Used As Wave
load sound "thump.wav",1
load sound "hollow.wav",2

`Load music used as midi
Load music "Traxxion.mid",1
load music "Dodge This.mid",2

`Variables

xpos = 300
ypos = 450

bonusappear = rnd(5)

ballx = 300
bally = 400

movex = rnd(1)
movey = rnd(1)

lives = 3
score = 0

ballspeed = 3
destroy = 0

`Arrays


dim brick1x(13)
brick1x(3) = 50
brick1x(4) = 100
brick1x(5) = 150
brick1x(6) = 200
brick1x(7) = 250
brick1x(8) = 300
brick1x(9) = 350
brick1x(10) = 400
brick1x(11) = 450
brick1x(12) = 500
brick1x(13) = 550

dim bricky(13)
bricky(1) = 10
bricky(2) = 50
bricky(3) = 90
bricky(4) = 130

dim brick1dead(13)
brick1dead(3) = 0
brick1dead(4) = 0
brick1dead(5) = 0
brick1dead(6) = 0
brick1dead(7) = 0
brick1dead(8) = 0
brick1dead(9) = 0
brick1dead(10) = 0
brick1dead(11) = 0
brick1dead(12) = 0
brick1dead(13) = 0

dim brick2x(24)
brick2x(14) = 50
brick2x(15) = 100
brick2x(16) = 150
brick2x(17) = 200
brick2x(18) = 250
brick2x(19) = 300
brick2x(20) = 350
brick2x(21) = 400
brick2x(22) = 450
brick2x(23) = 500
brick2x(24) = 550

dim brick2dead(24)
brick2dead(14) = 0
brick2dead(15) = 0
brick2dead(16) = 0
brick2dead(17) = 0
brick2dead(18) = 0
brick2dead(19) = 0
brick2dead(20) = 0
brick2dead(21) = 0
brick2dead(22) = 0
brick2dead(23) = 0
brick2dead(24) = 0

dim brick3x(35)
brick3x(25) = 50
brick3x(26) = 100
brick3x(27) = 150
brick3x(28) = 200
brick3x(29) = 250
brick3x(30) = 300
brick3x(31) = 350
brick3x(32) = 400
brick3x(33) = 450
brick3x(34) = 500
brick3x(35) = 550

dim brick3dead(35)
brick3dead(25) = 0
brick3dead(26) = 0
brick3dead(27) = 0
brick3dead(28) = 0
brick3dead(29) = 0
brick3dead(30) = 0
brick3dead(31) = 0
brick3dead(32) = 0
brick3dead(33) = 0
brick3dead(34) = 0
brick3dead(35) = 0

dim brick4x(46)
brick4x(36) = 50
brick4x(37) = 100
brick4x(38) = 150
brick4x(39) = 200
brick4x(40) = 250
brick4x(41) = 300
brick4x(42) = 350
brick4x(43) = 400
brick4x(44) = 450
brick4x(45) = 500
brick4x(46) = 550

dim brick4dead(46)
brick4dead(36) = 0
brick4dead(37) = 0
brick4dead(38) = 0
brick4dead(39) = 0
brick4dead(40) = 0
brick4dead(41) = 0
brick4dead(42) = 0
brick4dead(43) = 0
brick4dead(44) = 0
brick4dead(45) = 0
brick4dead(46) = 0

`Play Music
play music 1
loop music 1

`Get Ready Stuff
`This sets up a mini-animation
cls
do
text 300,200,"Get Ready!"

sprite 1,310,250,8

wait 600

sprite 1,310,250,9

wait 600

sprite 1,310,250,10

wait 600

sprite 1,310,250,11

wait 600

sprite 1,310,250,12

wait 600

sprite 1,310,250,13

wait 600

delete sprite 1

cls

exit

sync
loop
gosub startgame

`Main Game Loop
do
startgame:

`Player 1

if leftkey() = 1 then xpos = xpos - 7
if rightkey() = 1 then xpos = xpos + 7

sprite 1,xpos,ypos,1

if xpos < 1 then xpos = xpos + 7
if xpos > 600 then xpos = xpos - 7

`Ball
for xmove = 0 to 1
if movex = 1 then ballx = ballx + ballspeed
if movex = 0 then ballx = ballx - ballspeed
next xmove

for ymove = 0 to 1
if movey = 1 then bally = bally + ballspeed
if movey = 0 then bally = bally - ballspeed
next ymove

if ballx > 600 then movex = 0:play sound 2
if ballx < 1 then movex = 1:play sound 2
if bally < 1 then movey = 1:play sound 2

if bally > 450 then lives = lives - 1:play sound 2:stopit = 1

if stopit = 1
ballx = xpos + 10
bally = ypos - 25
movex = 2
movey = 2
endif

if spacekey() = 1 and stopit = 1
stopit = 0
movex = rnd(1)
movey = rnd(1)
endif

sprite 2,ballx,bally,2

if sprite collision(1,2) = 1 then movey = 0:play sound 2

`Hud
set text opaque
text 1,460,"Lives: "+str$(lives)
text 150,460,"Score: "+str$(score)
text 300,460,"Bricks Destroyed: "+str$(destroy)
text 500,460,"Break-Down!"

`Bricks

`Put bricks 3 to 13 on screen
for brick1 = 3 to 13
sprite brick1,brick1x(brick1),bricky(1),3
next brick1

`If the bricks 3 to 13 are hit destroy them
for aa = 3 to 13
if sprite hit(2,aa) = 1 then brick1dead(aa) = 1:play sound 1:score = score + 100:movey = 1:ballspeed = 4:destroy = destroy + 1
if brick1dead(aa) = 1 then brick1x(aa) = 800:delete sprite aa
next aa

`Put bricks 14 to 24 on the screen
for brick2 = 14 to 24
sprite brick2,brick2x(brick2),bricky(2),4
next brick2

`If the bricks 14 to 24 are hit destroy them
for ab = 14 to 24
if sprite hit(2,ab) = 1 then brick2dead(ab) = 1:play sound 1:score = score + 100:movey = 1:destroy = destroy + 1
if brick2dead(ab) = 1 then brick2x(ab) = 800:delete sprite ab
next ab

`Put bricks 25 to 35 on screen

for brick3 = 25 to 35
sprite brick3,brick3x(brick3),bricky(3),5
next brick3

`If bricks 25 to 35 is hit then destroy them

for ac = 25 to 35
if sprite hit(2,ac) = 1 then brick3dead(ac) = 1:play sound 1:score = score + 100:movey = 1:destroy = destroy + 1
if brick3dead(ac) = 1 then brick3x(ac) = 800:delete sprite ac
next ac

`Put bricks 36 to 46 on screen

for brick4 = 36 to 46
sprite brick4,brick4x(brick4),bricky(4),6
next brick4

`If sprites 36 to 46 are hit then destroy them

for ad = 36 to 46
if sprite hit(2,ad) = 1 then brick4dead(ad) = 1:play sound 1:score = score + 100:movey = 1:destroy = destroy + 1
if brick4dead(ad) = 1 then brick4x(ad) = 800:delete sprite ad
next ad

`Lives and Stuff

`If our player has no lives left then put text on the screen that says Game Over
`Then the computer is going to wait for 500 milliseconds and then jump to our highscore table
if lives = 0 then text 300,200,"Game Over!":wait 500:gosub highscores

`If our bricks are all destroyed do the positive version of what is above
if destroy = 44 then destroy = 0:text 120,150,"You Have Won!":wait 500:gosub highscores

`Refresh Screen
Sync

Loop
`End of Loop


`Highscores
highscores:

`Clear the screen
cls
paddledead = 1

for clearscreen = 1 to 50
if sprite exist(clearscreen) = 1 then delete sprite clearscreen
next clearscreen

if paddledead = 1 then xpos = 90000: ypos = 90000

`Create a 3-dimensional array called highscore

dim highscore$(5,1)
highscore$(1,0) = "None"
highscore$(2,0) = "None"
highscore$(3,0) = "None"
highscore$(4,0) = "None"
highscore$(5,0) = "None"
highscore$(1,1) = str$(score)
highscore$(2,1) = str$(score)
highscore$(3,1) = str$(score)
highscore$(4,1) = str$(score)
highscore$(5,1) = str$(score)

dim highscore(5,1)
highscore(1,0) = val(highscore$(1,0))
highscore(2,0) = val(highscore$(2,0))
highscore(3,0) = val(highscore$(3,0))
highscore(4,0) = val(highscore$(4,0))
highscore(5,0) = val(highscore$(5,0))
highscore(1,1) = val(highscore$(1,1))
highscore(2,1) = val(highscore$(2,1))
highscore(3,1) = val(highscore$(3,1))
highscore(4,1) = val(highscore$(4,1))
highscore(5,1) = val(highscore$(5,1))

if score >= val(highscore$(1,1)) then newscoreA = 1:newscoreB = 0:newscoreC = 0:newscoreD = 0
if score >= val(highscore$(2,1)) then newscoreB = 1:newscoreC = 0:newscoreD = 0:newscoreE = 0
if score >= val(highscore$(3,1)) then newscoreC = 1:newscoreD = 0:newscoreE = 0
if score >= val(highscore$(4,1)) then newscoreD = 1:newscoreE = 0
if score >= val(highscore$(5,1)) then newscoreE = 1:newscoreD = 0

if newscoreA = 1
input "New Highscore! Name Please!: ",name$
newscoreB = 0
newscoreC = 0
newscoreD = 0
newscoreE = 0
highscore$(1,0) = name$
highscore$(1,1) = str$(score)
if file exist("highscores.txt") = 1 then delete file "highscores.txt"

endif




if newscoreB = 1
input "New Highscore! Name Please!: ",name$
newscoreC = 0
newscoreD = 0
newscoreE = 0
highscore$(2,0) = name$
highscore$(2,1) = str$(score)
if file exist("highscores.txt") = 1 then delete file "highscores.txt"

endif



if newscoreC = 1
input "New Highscore! Name Please!: ",name$
newscoreD = 0
newscoreE = 0
highscore$(3,0) = name$
highscore$(3,1) = str$(score)

if file exist("highscores.txt") = 1 then delete file "highscores.txt"

endif


if newscoreD = 1
input "New Highscore! Name Please!: ",name$
newscoreE = 1
highscore$(4,0) = name$
highscore$(4,1) = str$(score)
if file exist("highscores.txt") = 1 then delete file "highscores.txt"

endif


if newscoreE = 1
input "New Highscore! Name Please!: ",name$
highscore$(5,0) = name$
highscore$(5,1) = str$(score)
endif
if file exist("highscores.txt") = 1 then delete file "highscores.txt"


for name = 1 to 5
ink rgb(255,0,0),1
Print "Name"
print highscore$(name,0)
next name

for score = 1 to 5
ink rgb(0,255,0),2
print "Score"
print highscore(score,1)
next score

text 1,450,"Press Any Key To Exit!"
wait key
end

The highscore board stinks I know. If anyone has any ideas on making a better please tell me,
I really need help with that highscore board.

Coming Tomorrow: Space Blasters.

Peace,

Some Guy

Formerly Ogre Software
My Current Project: Mystic I: Quest of A Lifetime

Attachments

Login to view attachments
Colonel Cool
19
Years of Service
User Offline
Joined: 3rd Aug 2005
Location: Somewhere
Posted: 30th Aug 2005 22:55 Edited at: 30th Aug 2005 22:57
Remember any suggestions tell me! I'm always welcome to improvement
but not flames! Feel free to mod the code also.

Formerly Ogre Software
My Current Project: Mystic I: Quest of A Lifetime
Grog Grueslayer
Valued Member
19
Years of Service
User Offline
Joined: 30th May 2005
Playing: Green Hell
Posted: 31st Aug 2005 02:00
I suggest using code snips.



Your messages will look a lot cleaner if you use snips for all code.
Colonel Cool
19
Years of Service
User Offline
Joined: 3rd Aug 2005
Location: Somewhere
Posted: 31st Aug 2005 17:55
Yeah, I will from now on. The thing was I wrote up the tutorials using notepad first.

The Space Invader Clone Is Coming Soon!

Formerly Ogre Software
My Current Project: Mystic I: Quest of A Lifetime
Phaelax
DBPro Master
22
Years of Service
User Offline
Joined: 16th Apr 2003
Location: Metropia
Posted: 2nd Sep 2005 00:00
How many boards do you plan on posting this in?

Your signature has been erased by a mod because it's larger than 600x120...

Login to post a reply

Server time is: 2025-05-17 14:06:36
Your offset time is: 2025-05-17 14:06:36