Post your free completed games here

Miscellaneous Forums/General Discussion/Post your free completed games here

Hi, I need links for free games that are in a completed state, to post on a Yahoo newsgroup. Please post download or website links for any free games that you have made, or that you know of.

Games should be of a reasonably high quality. No demos thanks - only complete and unrestricted games.

Why do you need these links?

Because if you have a good reason, I will happily give you a link
to my site.

I have a proxy newsgroup at http://groups.yahoo.com/group/proxywebsitelist that I use to promote web proxy sites via a newsletter and RSS.

I've recently started building up the links area of the newsgroup with links intended to appeal to the main userbase for proxy sites (kids), in an effort to encourage the members to talk their friends into joining.

I also use some of the commercial quality free games linked to, in the ads for the newsgroup, as an incentive for people to join (eg. http://yixxoo.com/ ).

I'm only after good quality games, though.

There is a whole list of completed blitz games here...

http://www.blitzbasic.com/Community/posts.php?topic=69886

I'll have a look at that list, but what I'm after are free games.

Here :

http://www.thereeteam.com/index.php?x0=0&y0=1&z0=10&z1=20071202&z2=0
http://www.thereeteam.com/index.php?x0=0&y0=1&z0=10&z1=20071205&z2=0
http://www.thereeteam.com/index.php?x0=0&y0=1&z0=10&z1=20071203&z2=0

;)

StarTrade
http://startrade.fetzenet.de/

SpaceFight
http://www.fetzenet.de/zweide/dl/SpaceFight.zip

BattleTanks II:
http://www.caiman.us/scripts/fw/f2349.html

http://www.greyaliengames.com/free.php

Check out Tetroid and possibly Shroom Eater :-) They are complete and free. The others on the page are just demos, but Iron Fist is WAY cool ;-)

Ever thought of looking for flash/shockwave games?

I'll probably include some links to some of the more interesting flash and shockwave games. For the more common flash games, there are a million and one flash arcades on the net.

Thanks for the links, people.

The Attack of Mutant Fruits from Outer Space

http://www.timeinvaders.com/downloads/mutantfruits-1.0-windows-installer.exe

B3D Shooter:
AppTitle "3d Shooter"
Graphics3D 640,480,0,1
SeedRnd MilliSecs()
Const Number_of_enemies = 10
Global CenterX = GraphicsWidth()/2
Global CenterY = GraphicsHeight()/2
Global Abort = 0
Global FrameCount = MilliSecs()
Global Camera = CreateCamera()
CameraRange Camera,1,10000
Global Truce = 500 * Number_of_enemies
Global DoFPS
Global Writing$ = "Press Enter to view FPS"
;assemble the player
Global CloneMe = CreatePivot()
Global Player = CreateCylinder()
EntityParent Player,CloneMe
EntityColor Player,0,0,255
Global XLook
Eyes = CreateImage(16,16)
SetBuffer ImageBuffer(Eyes)
Color 200,155,45
Rect 0,0,16,16
Color 64,32,0
Plot 4,8
Plot 12,8
Global FPSCalc = 0
TranslateEntity CloneMe,0,-7,1
TranslateEntity Camera,0,-3,1
ScaleMesh Player,1,3,1
Gun = CreateCylinder()
EntityParent Gun,CloneMe
PositionEntity Gun,0,2,2
ScaleMesh Gun,0.25,2,0.25
RotateEntity Gun,90,0,0
EntityColor gun,64,32,0
Sight = CreateCube()
ScaleMesh Sight,0.0125,0.1,0.1
EntityColor Sight,0,0,0
HeadTexture = CreateTexture(64,64)
SetBuffer TextureBuffer(HeadTexture)
Color 200,155,45
Rect 0,0,64,64
DrawImage Eyes,8,16
Global Grass = CreateTexture(32,32)
Global Light = CreateLight(2)
LightColor Light,10,10,10
EntityParent Light,Camera
Global Head = CreateSphere()
Global Turban = CreateSphere()
RotateEntity Head,0,-90,0
EntityParent Head,CloneMe
EntityParent Turban,CloneMe
EntityColor Turban,230,230,230
ScaleMesh Turban,1.25,0.75,1.25
EntityParent Sight,CloneMe
PositionEntity Sight,0,2.25,3.75
EntityTexture Head,HeadTexture
PositionEntity Head,0,4,0
PositionEntity Turban,0,5,0
SetBuffer TextureBuffer(Grass);Make grass texture

Color 0,255,0
Rect 0,0,16,16
Rect 16,16,16,16
Color 0,250,0
Rect 16,0,16,16
Rect 0,16,16,16
SetBuffer BackBuffer()
EntityType CloneMe,17
EntityRadius CloneMe,3
EntityPickMode CloneMe,1
;done...
;make bullet
Bullet = CreateCylinder()
RotateEntity Bullet,90,0,0
ScaleMesh Bullet,0.125,150,0.125
EntityColor Bullet,255,255,16
Target = CreatePivot()
;RotateEntity Target,90,0,0
Blood = CreateCylinder()
ScaleMesh Blood,5,.001,5
EntityColor Blood,160,0,0
Color 255,128,0
;done...
;Build Enemies
Dim NPC(Number_of_enemies + 1)
Dim NPCBlood(Number_of_enemies)
Dim NPCName$(Number_of_enemies)
Dim NPCPrey(Number_of_enemies + 1)
Dim NPCDead(Number_of_enemies + 1)
Dim NPCInjurePoint(Number_of_enemies + 1)
Dim NPCFiredShot(Number_of_enemies + 1)
Dim NPCDirection(Number_of_enemies)
Dim NPCTime(Number_of_enemies)
Dim NPCGunshot(Number_of_enemies + 1)
Dim NPCInaccuracy#(Number_of_enemies + 1)
Dim NPCFiringDelay(Number_of_enemies + 1)
For loop = 1 To Number_of_enemies
NPCName(Loop) = Rename$()
NPC(Loop) = CopyEntity(CloneMe)
NPCGunshot(Loop) = CopyEntity(Bullet)
NPCInjurePoint(Loop) = CopyEntity(Target)
NPCInaccuracy(Loop) = Rnd(5,15)
NPCBlood(Loop) = CopyEntity(Blood)
HideEntity NPCBlood(Loop)
EntityParent NPCInjurePoint(Loop),NPC(Loop)
PositionEntity NPCInjurePoint(Loop),0,2,1
HideEntity NPCGunshot(Loop)
EntityParent NPCGunshot(Loop),NPC(Loop)
PositionEntity NPCGunshot(Loop),0,2,150
NPCDirection(Loop) = Rnd(-1,1)
NPCTime(Loop) = Rand(1,100)
PositionEntity NPC(Loop),Rand(-100,100),-7,Rand(-100,100)
Next


NPC(Number_of_enemies + 1) = CopyEntity(CloneMe)
NPCGunshot(Loop) = CopyEntity(Bullet)
EntityParent NPCGunshot(Number_of_enemies + 1),NPC(Number_of_enemies + 1)
PositionEntity NPCGunshot(Number_of_enemies + 1),0,2,150
NPCInaccuracy(Number_of_enemies + 1) = Rnd(5,15)
HideEntity NPCGunshot(Number_of_enemies + 1)
NPCInjurePoint(Number_of_enemies + 1) = CopyEntity(Target)
EntityParent NPCInjurePoint(Number_of_enemies + 1),NPC(Number_of_enemies + 1)
PositionEntity NPCInjurePoint(Number_of_enemies + 1),0,2,1




HideEntity Blood
HideEntity CloneMe
HideEntity Bullet
HideEntity Target
HideEntity Turban

EntityParent Camera,NPC(Number_of_enemies + 1)
PositionEntity NPC(Number_of_enemies + 1),Rand(-100,100),-7,Rand(-100,100)


Collisions 17,17,1,2







Global Ground = CreatePlane()
EntityTexture Ground,Grass
TranslateEntity Ground,0,-10,0


Runtime()
End




Function Runtime();Runtime function

Repeat
Timer = MilliSecs()


Bounderies()
UpdateNPCs()
MouseLook()
If Truce = 0 GunShot()
TurnEntity NPC(Number_of_enemies + 1),0,-Xlook/5,0
MoveEntity NPC(Number_of_enemies + 1),KeyDown(205) - KeyDown(203),0,KeyDown(200) * 2 - KeyDown(208)
UpdateWorld()
RenderWorld()
If KeyDown(28) Text CenterX,10,"FPS:",1,0
If KeyDown(28) Text CenterX,20,FPS(),1,0
Text CenterX,0,Writing,1,0
Flip


If KeyHit(1) Abort = 1


While Not MilliSecs() - Timer > 25
Wend
Until Abort = 1

End Function

Function MouseLook()

Xlook = MouseX() - CenterX
MoveMouse CenterX,CenterY
End Function



Function UpdateNPCs()
For Loop = 1 To Number_of_enemies
If NPCDead(Loop) = 0
NPCTime(Loop) = NPCTime(Loop) - 1
If NPCTime(Loop) < 1
NPCTime(Loop) = Rand(1,100)
NPCDirection(Loop) = Rnd(-1,1)
EndIf
If NPCPrey(Loop) = 0 TurnEntity NPC(Loop),0,NPCDirection(Loop),0

If Truce > 0
Truce = Truce - 1
If Truce = 0 Writing = "Let the killing begin!"
FlushMouse
Else
ChooseTarget()
Attack()
DeadTarget()
EndIf
If NPCPrey(Loop) = 0
MoveEntity NPC(Loop),0,0,1
ElseIf NPCDead(NPCPrey(Loop)) = 0
If EntityDistance(NPC(Loop),NPC(NPCPrey(Loop))) > 250 MoveEntity NPC(Loop),0,0,1
EndIf
EndIf
Next
End Function





;Function









Function Gunshot()


If MouseHit(1) NPCFiredShot(Number_of_enemies + 1) = 1








For Loop = 1 To Number_of_enemies
If NPCDead(Loop) = 0
If NPCPrey(Loop) > 0
If NPCDead(NPCPrey(Loop)) = 0
NPCFiringDelay(Loop) = NPCFiringDelay(Loop) - 1
If NPCFiringDelay(Loop) <= 0
If EntityDistance(NPC(Loop),NPC(NPCPrey(Loop))) < 285
NPCFiredShot(Loop) = 1
NPCFiringDelay(Loop) = Rnd(30,40)
EndIf
EndIf
EndIf
EndIf
EndIf
Next





For Loop = 1 To Number_of_enemies + 1
If NPCDead(Loop) = 0
If NPCFiredShot(Loop) = 1
TurnEntity NPC(Loop),0,Rnd(-NPCInaccuracy(Loop),NPCInaccuracy(Loop)),0
ShowEntity NPCGunshot(Loop)

DeleteEntity% = EntityPick(NPCInjurePoint(Loop),300)
NPCFiredShot(Loop) = 2
ElseIf NPCFiredShot(Loop) = 2
NPCFiredShot(Loop) = 0
HideEntity NPCGunshot(Loop)
EndIf
EndIf

For Loop2 = 1 To Number_of_Enemies + 1

If NPC(Loop2) = DeleteEntity%
If NPCDead(Loop2) = 0
If Loop2 = Number_of_Enemies + 1 GameOver(NPCName(Loop))
PositionEntity NPCBlood(Loop2),EntityX(NPC(Loop2)),-10,EntityZ(NPC(Loop2))
FreeEntity NPC(Loop2)
;NPC(Loop2) = 0
NPCDead(Loop2) = 1
ShowEntity NPCBlood(Loop2)
If Loop = Number_of_Enemies + 1 Kill(NPCName(Loop2))
EndIf
EndIf
Next
Next


;Is An NPC Dead

End Function













Function Rename$()

Return Namegen$() + " " + Namegen$()

End Function
Function Namegen$()
NameLength = Rand(4,8)
Local Letter$[12]
For loop = 1 To namelength
char = Rand(1,26)

Select char
Case 1
Letter[Loop] = "a"
Vowel = Vowel + 1
Case 2
Letter[Loop] = "b"
Case 3
Letter[Loop] = "c"
Case 4
Letter[Loop] = "d"
Case 5
Letter[Loop] = "e"
Vowel = Vowel + 1
Case 6
Letter[Loop] = "f"
Case 7
Letter[Loop] = "g"
Case 8
Letter[Loop] = "h"
Case 9
Letter[Loop] = "i"
Vowel = Vowel + 1
Case 10
Letter[Loop] = "j"
Case 11
Letter[Loop] = "k"
Case 12
Letter[Loop] = "l"
Case 13
Letter[Loop] = "m"
Case 14
Letter[Loop] = "n"
Case 15
Letter[Loop] = "o"
Vowel = Vowel + 1
Case 16
Letter[Loop] = "p"
Case 17
Letter[Loop] = "q"
Case 18
Letter[Loop] = "r"
Case 19
Letter[Loop] = "s"
Case 20
Letter[Loop] = "t"
Case 21
Letter[Loop] = "u"
Vowel = Vowel + 1
Case 22
Letter[Loop] = "v"
Case 23
Letter[Loop] = "w"
Case 24
Letter[Loop] = "x"
Case 25
Letter[Loop] = "y"
Vowel = Vowel + 1
Case 26
Letter[Loop] = "z"
End Select



If Vowel < Ceil(loop/2) Letter[Loop] = Re_vowel$() Vowel = Vowel + 1
If Loop = 1 Letter[Loop] = Upper$(Letter[Loop])
Name$ = name + Letter[Loop]
Next

Return Name
End Function


Function Re_vowel$()
Numb = Rand(1,64)
If Numb > 0 And Numb <= 16 Return "a"
If Numb > 16 And Numb <= 34 Return "e"
If Numb > 34 And Numb <= 46 Return "i"
If Numb > 46 And Numb <= 56 Return "o"
If Numb > 56 And Numb <= 62 Return "u"
If Numb > 62 Return "y"
End Function


Function FPS()

FramesPerSecond# = MilliSecs() - FrameCount
FrameCount = MilliSecs()

Return 1000 / FramesPerSecond
End Function




Function DeadTarget()
For Loop = 1 To Number_of_Enemies
If NPCDead(Loop) = 0
If NPCDead(NPCPrey(Loop)) = 1 NPCPrey(Loop) = 0 
EndIf
Next
End Function



Function ChooseTarget()

For Loop = 1 To Number_Of_Enemies
If NPCDead(Loop) = 0
If NPCPrey(Loop) = 0
For Loop2 = 1 To Number_Of_Enemies + 1
If NPCDead(Loop2) = 0
If Not Loop = Loop2
If JRAILib_Engage(NPC(Loop),80,NPC(Loop2),500) NPCPrey(Loop) = Loop2
EndIf
EndIf
Next
EndIf
EndIf
Next

End Function


Function Attack()
For Loop = 1 To Number_Of_Enemies
If NPCDead(Loop) = 0
If NPCPrey(Loop)> 0 TurnEntity NPC(Loop),0,JRAILib_Orient#(NPC(Loop),NPC(NPCPrey(Loop)),5,1,9),0
EndIf
Next
End Function 



Function JRAILib_Orient#(JRAILib_Source,JRAILib_Recipient,JRAILib_Speed#,JRAILib_ReducedSpeed#,JRAILib_ReducedDistance#)
JRAILib_DeltaPitch# = DeltaYaw#(JRAILib_Source,JRAILib_Recipient)


If Abs(JRAILib_DeltaPitch) <= JRAILib_ReducedSpeed Return JRAILib_Pitch# + JRAILib_DeltaPitch

If Abs(JRAILib_DeltaPitch) > JRAILib_ReducedDistance
JRAILib_PitchChangeAmount# = JRAILib_Speed
Else
JRAILib_PitchChangeAmount# = JRAILib_ReducedSpeed
EndIf
If JRAILib_DeltaPitch# < 0 JRAILib_PitchChangeAmount# = JRAILib_PitchChangeAmount# * -1



Return JRAILib_PitchChangeAmount#
 
End Function
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Function JRAILib_Engage(JRAILib_Hunter,JRAILib_BowlOfVision,JRAILib_Prey,JRAILib_SightRange)
JRAILib_DeltaPitch = DeltaYaw#(JRAILib_Hunter,JRAILib_Prey)
If Abs(JRAILib_DeltaPitch) <= JRAILib_BowlOfVision And EntityDistance(JRAILib_Hunter,JRAILib_Prey) <= JRAILib_SightRange And EntityVisible(JRAILib_Hunter,JRAILib_Prey)
Return 1
Else
Return 0
EndIf
End Function

Function GameOver(Murderer$)
ClsColor 128,0,0
Cls
Text CenterX,0,"You were gunned down by " + Murderer,1,0
Flip
Repeat
Until KeyHit(1)
End
End Function
Function Kill(Victim$)
Writing = "You Killed " + Victim
End Function
Function Bounderies()
For Loop = 1 To Number_of_enemies + 1
If NPCDead(Loop) = 0
If EntityX(NPC(Loop)) > 1000 Or EntityX(NPC(Loop)) < -1000 Or EntityZ(NPC(Loop)) > 1000 Or EntityZ(NPC(Loop)) < -1000
PositionEntity NPC(Loop),Rand(-1000,1000),-7,Rand(-1000,1000)
EndIf
EndIf
Next
End Function