QJ.NET | Videos | Forums | iPhone | MMORPG | Nintendo DS | Wii | PlayStation 3 | PSP | Xbox 360 | PC | Downloads | Contact Us
Forums | Gaming News | Videos | Downloads | Today's Posts | Mark Forums Read | Chat | FAQ | Members List | Contact

QJ.net Game Discussion - PSP, Xbox, Wii, PS3, PSP Homebrew, and PSP Guides

Go Back   QJ.net Game Discussion - PSP, Xbox, Wii, PS3, PSP Homebrew, and PSP Guides > Developers Corner > PSP Development, Hacks, and Homebrew > PSP Development Forum
The above video goes away if you are a member and logged in, so log in now!

General Lua Discussion Thread [Not For Help]

This is a discussion on General Lua Discussion Thread [Not For Help] within the PSP Development Forum forums, part of the PSP Development, Hacks, and Homebrew category; To advocate PGE Lua, I decided to benchmark it against other Luaplayer version to see how it compares in terms ...

Reply
 
LinkBack Thread Tools
Old 07-22-2008, 04:55 AM   #31

 
Nielkie's Avatar
 
Join Date: Jul 2006
Posts: 549
Trader Feedback: 0
Default

To advocate PGE Lua, I decided to benchmark it against other Luaplayer version to see how it compares in terms of speed. First benchmark is blitting speed. I'll do a font, sprite and maby a memory one later.

Enjoy:





As expected, PGE Lua is more than 4 times as fast as standard Luaplayer. Interestingly, LuaPlayerHM7 was only marginally faster than (the infamously slow) Luaplayer 0.20, even though it is meant to be based on the graphics code of Luaplayer 0.16.

Anyway, for those interested, 4 tests were run each, and results averaged between them (didn't really have much of an effect, as each test was usually within 0.01 seconds of each other)

Code used:
For LuaplayerHM, Luaplayer 0.16 and Luaplayer 0.20:
Code:
ITERATIONS = 100
SPRITECOUNT = 1000

SCREENWIDTH = 480
SCREENHEIGHT = 272

black = Color.new(0,0,0)
white = Color.new(255,255,255)

math.randomseed(os.time())

sprites = {img = Image.load("asprite.png")}
for i=1, SPRITECOUNT do
	sprites[i] = {x = math.random(SCREENWIDTH),y = math.random(SCREENHEIGHT), mx = math.random(-6,6) / 3, my = math.random(-6,6) / 3}
end

starttime = os.clock()

for j = 1, ITERATIONS do
	screen:clear(white)
	for i,sprite in ipairs(sprites) do
		sprites[i].x,sprites[i].y = sprites[i].x + sprites[i].mx, sprites[i].y + sprites[i].my
		if sprite.x < 0 or sprite.y > SCREENWIDTH then
			sprites[i].mx = -sprites[i].mx
		end
		if sprite.y < 0 or sprite.y > SCREENHEIGHT then
			sprites[i].my = -sprites[i].my
		end
		
		screen:blit(sprite.x,sprite.y, sprites.img)
	end
	
	screen.flip()
end

endtime = os.clock()

screen:clear(black)
screen:print(10, 10, endtime - starttime, white)

screen.waitVblankStart()
screen.flip()

while true do
	pad = Controls.read()
	--System.sleep(500)
	screen.waitVblankStart(30)
	
	if pad:start() then break end
end
For LuaPlayer HMv2:
Code:
ITERATIONS = 100
SPRITECOUNT = 1000

SCREENWIDTH = 480
SCREENHEIGHT = 272

white = Color.new(255,255,255,255)
black = Color.new(0,0,0,255)

math.randomseed(os.time())

sprites = {img = Image.load("asprite.png", 1)}
for i=1, SPRITECOUNT do
	sprites[i] = {x = math.random(SCREENWIDTH),y = math.random(SCREENHEIGHT), mx = math.random(-6,6) / 3, my = math.random(-6,6) / 3}
end

screen.init()

starttime = os.clock()
for j = 1, ITERATIONS do
	screen.startDraw()
	screen.clear(white)

	for i,sprite in ipairs(sprites) do
		sprites[i].x,sprites[i].y = sprites[i].x + sprites[i].mx, sprites[i].y + sprites[i].my
		if sprite.x < 0 or sprite.y > SCREENWIDTH then
			sprites[i].mx = -sprites[i].mx
		end
		if sprite.y < 0 or sprite.y > SCREENHEIGHT then
			sprites[i].my = -sprites[i].my
		end
		
		Image.blit(sprite.x,sprite.y, sprites.img)
	end
	
	screen.endDraw()
	screen.flipscreen()
end

endtime = os.clock()

screen.startDraw()

screen.print(10, 10, tostring(endtime - starttime), 1, white, black)

screen.endDraw()
screen.flipscreen()

while not Controls.read():start() do
end
And for PGE Lua:
Code:
ITERATIONS = 100
SPRITECOUNT = 1000

SCREENWIDTH = 480
SCREENHEIGHT = 272

white = pgeGfx.createcolor(255, 255, 255)
black = pgeGfx.createcolor(0, 0, 0)

monaco8 = pgeFont.load("monaco.ttf", 9, PGE_VRAM)

math.randomseed(os.time())

sprites = {img = pgeTexture.load("asprite.png",PGE_VRAM)}
for i=1, SPRITECOUNT do
	sprites[i] = {x = math.random(SCREENWIDTH),y = math.random(SCREENHEIGHT), mx = math.random(-6,6) / 3, my = math.random(-6,6) / 3}
end

pgeGfx.startdrawing()
sprites.img:activate()
pgeGfx.enddrawing()

starttime = os.clock()

for j = 1, ITERATIONS do
	pgeGfx.startdrawing()
	pgeGfx.clearscreen(white)

	for i,sprite in ipairs(sprites) do
		sprites[i].x,sprites[i].y = sprites[i].x + sprites[i].mx, sprites[i].y + sprites[i].my
		if sprite.x < 0 or sprite.y > SCREENWIDTH then
			sprites[i].mx = -sprites[i].mx
		end
		if sprite.y < 0 or sprite.y > SCREENHEIGHT then
			sprites[i].my = -sprites[i].my
		end
		
		sprites.img:draw(sprite.x,sprite.y)
	end
	
	pgeGfx.enddrawing()
	pgeGfx.swapbuffers(false)
end

endtime = os.clock()

pgeGfx.startdrawing()
monaco8:activate()
pgeGfx.enddrawing()

while pge.running() do
	pgeControls.update()
	
	if pgeControls.held(PGE_CTRL_START) then break end

	pgeGfx.clearscreen()
	
	monaco8:print(10, 10, white, tostring(endtime - starttime))
	
	pgeGfx.enddrawing()
	
	pgeGfx.swapbuffers()
end
Sprites:
For Alpha tests:

And for Non-Alpha tests:
__________________



Last edited by Nielkie; 08-22-2008 at 09:54 PM..
Nielkie is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Best prices available for:
Price Range:
$39.00 - $60.00
at 10 Stores

Price Range:
$25.00 - $48.00
at 8 Stores

Old 07-22-2008, 05:10 AM   #32

Developer
 
Join Date: Mar 2006
Posts: 1,026
Trader Feedback: 0
Default

Thanks for that test Nielkie

That PGE Lua test isn't as optimised as it could be:

Code:
ITERATIONS = 100
SPRITECOUNT = 1000

SCREENWIDTH = 480
SCREENHEIGHT = 272

white = pgeGfx.createcolor(255, 255, 255)
black = pgeGfx.createcolor(0, 0, 0)

monaco8 = pgeFont.load("monaco.ttf", 9, PGE_VRAM)

if not monaco8 then
	error("Failed to load font.")
end

math.randomseed(os.time())

-- Changed from PGE_RAM to PGE_VRAM
sprites = {img = pgeTexture.load("asprite.png",PGE_VRAM)}
for i=1, SPRITECOUNT do
	sprites[i] = {x = math.random(SCREENWIDTH),y = math.random(SCREENHEIGHT), mx = math.random(-6,6) / 3, my = math.random(-6,6) / 3}
end

starttime = os.clock()

 -- Moved this line out of the loop, texture only needs activating once, even for multiple blits.
pgeGfx.startdrawing()
sprites.img:activate()
pgeGfx.enddrawing()

for j = 1, ITERATIONS do
	pgeGfx.startdrawing()
	pgeGfx.clearscreen(white)
	
	for i,sprite in ipairs(sprites) do
		sprites[i].x,sprites[i].y = sprites[i].x + sprites[i].mx, sprites[i].y + sprites[i].my
		if sprite.x < 0 or sprite.y > SCREENWIDTH then
			sprites[i].mx = -sprites[i].mx
		end
		if sprite.y < 0 or sprite.y > SCREENHEIGHT then
			sprites[i].my = -sprites[i].my
		end
		
		sprites.img:draw(sprite.x,sprite.y)
	end
	
	pgeGfx.enddrawing()
	pgeGfx.swapbuffers(false) -- Added the false to not wait for vblank
end

endtime = os.clock()

while pge.running() do
	pgeControls.update()
	
	if pgeControls.held(PGE_CTRL_START) then break end

	pgeGfx.clearscreen()
	
	monaco8:activate()
	monaco8:print(10, 10, white, tostring(endtime - starttime))
	
	pgeGfx.enddrawing()
	
	pgeGfx.swapbuffers()
end
I've commented the three changes I made.
__________________

Check out my homebrew & C tutorials at http://insomniac.0x89.org/
Coder formerly known as Insomniac197

Quote:
tshirtz: what is irshell ??
Atarian_: it's where people who work for the IRS go when they die

Last edited by Insert_Witty_Name; 07-22-2008 at 06:43 AM..
Insert_Witty_Name is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 07-22-2008, 05:30 AM   #33

 
Nielkie's Avatar
 
Join Date: Jul 2006
Posts: 549
Trader Feedback: 0
Default

Oh right, thanks. I'll re-run the tests tomorrow.
Any reason textures are activated every loop in the examples? What does "activating" a texture actually do?
Nielkie is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 07-22-2008, 05:39 AM   #34

Developer
 
Join Date: Mar 2006
Posts: 1,026
Trader Feedback: 0
Default

Note that I just edited the optimised code, the texure:activate() call must be within a startdrawing() and enddrawing() block.

Activating a texture uploads it to the GE so that it can be used for texturing. Whether you're drawing once or a thousand times, it only needs doing once.

Note that activating a font or a texture both use the same space, so if you activate a font at any time, the texture that was activated previously will be replaced with the font and vice versa.

Hope that makes sense.
Insert_Witty_Name is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 07-22-2008, 05:43 AM   #35

 
Nielkie's Avatar
 
Join Date: Jul 2006
Posts: 549
Trader Feedback: 0
Default

That makes more sense, thanks again.

Last edited by Nielkie; 07-22-2008 at 07:07 AM..
Nielkie is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 07-22-2008, 10:18 AM   #36
 
Join Date: Jan 2008
Posts: 612
Trader Feedback: 0
Default

I'm not doubting that the PGELua is much faster or that the original test was not as optimized as it could have been, but I will argue that the regular lua test was also far from perfectly optimized. I doubt the possible changes would make a significant difference, but it would certainly show up at least after the decimal.

Perhaps tests with a simple Gu.blit function might also help show whether the GU is worth using for small sprites or not? I've found that for > 5-10 sprites all which are small (<64x64) using a simple Gu.blit function with Gu.SPRITES, the Gu begins making up for its lost time starting and ending.
Code:
 
function Gu.blit(x,y,img)
	local w = img:width()
	local h = img:height()
	Gu.enable(Gu.TEXTURE_2D) 
	Gu.texImage(img)
	Gum.drawArray(Gu.SPRITES, Gu.TEXTURE_32BITF+Gu.VERTEX_32BITF+Gu.TRANSFORM_2D,{{0,0,x,y,0},{w,h,w+x,h+y,0}})
end
Also, is there a reason the PGE function names (pgeModule.functionname) doesn't follow the standard rule for capitalization of function names in lua (pgeModule.functionName)?
TurtlesPwn is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 07-22-2008, 11:24 AM   #37

Developer
 
Join Date: Mar 2006
Posts: 1,026
Trader Feedback: 0
Default

The naming scheme is currently under review.

See the thread(s) on luaplayer.org forums.
Insert_Witty_Name is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 07-22-2008, 11:51 AM   #38
 
Join Date: Jan 2008
Posts: 612
Trader Feedback: 0
Default

Yes, I've seen and posted in that thread, but that is simply discussing the pge and module parts - the function names (createcolor,startdrawing ,clearscreen) etc are not capitalized following the standard lua convention of capitalizing the first letter of each additional word after the first.
TurtlesPwn is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 07-22-2008, 01:40 PM   #39

Developer
 
Join Date: Mar 2006
Posts: 1,026
Trader Feedback: 0
Default

That part is not conventional Lua.

It's what Lua Player does, but not Lua.
Insert_Witty_Name is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 07-22-2008, 02:02 PM   #40
 
Join Date: Jan 2008
Posts: 612
Trader Feedback: 0
Default

Ah, true, now that I think about it. But why not keep it similar to how the current luaplayer does things?
TurtlesPwn is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 07-22-2008, 02:27 PM   #41

Developer
 
Join Date: Mar 2006
Posts: 1,026
Trader Feedback: 0
Default

Because PGE Lua is not Lua Player.

They share absolutely 0 code.

It's better to stick to the base language rather than what people may be used to with something that implements that language.
Insert_Witty_Name is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 08-07-2008, 02:50 AM   #42
QJ Gamer Silver
 
dan369's Avatar
 
Join Date: Jan 2008
Real First Name: Dan
Location: Wales, cardiff
Just Played: Overlord 2
Posts: 1,383
Blog Entries: 1
Trader Feedback: 0
Default

Ummmhhh, this thread hasn't really been used in a while but i'd like to ask 1 question: What has been the best Lua game made??
taking in to account the code efficiency and gameplay.
dan369 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 08-07-2008, 03:59 AM   #43
Banned for LIFE
 
Join Date: Oct 2006
Location: East London, England
Posts: 2
Trader Feedback: 0
Default

Something by youresam or TacticalPenguin.

I would go with wedgeracer and/or lua modeller 3d.
eldiablov is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 08-07-2008, 09:17 AM   #44
 
Join Date: Jan 2008
Posts: 612
Trader Feedback: 0
Default

"lua modeller 3d."
That's not a game and was a mere 300 lines of code.

If you're going by efficiency and how much the PSP is having to do to run the game, definitely Wedge Racer - play music, render walls and spaceships, do lots of math, and send data back and forth online - at 60 frames per second

If you go by gameplay, probably Luamines and some stiff competition from the project I'm working on at the moment.
TurtlesPwn is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 08-07-2008, 09:20 AM   #45
Banned for LIFE
 
Join Date: Oct 2006
Location: East London, England
Posts: 2
Trader Feedback: 0
Default

Quote:
Originally Posted by TurtlesPwn View Post
"lua modeller 3d."
That's not a game and was a mere 300 lines of code.
Which leads me to believe it is efficient. By the way I knew it wasn't a game.
eldiablov is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 08-07-2008, 09:25 AM   #46
 
Join Date: Jan 2008
Posts: 612
Trader Feedback: 0
Default

I suppose so, but all it is doing is rendering some 3d stuff and then messing with some tables and numbers when some buttons are pressed. I'm sure it could be dropped to 200 lines or less.

Also, http://psp.metaclassofnil.com/crystalise/

Heavily rewritten luaplayer, the performance can't be wowed at because it uses OGL for the graphics and thus is much faster than luaplayer, but it is done with lua on the PSP with some of the same parts as the luaplayer we know today.

Last edited by TurtlesPwn; 08-07-2008 at 09:41 AM..
TurtlesPwn is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 08-10-2008, 06:44 AM   #47
QJ Gamer Silver
 
dan369's Avatar
 
Join Date: Jan 2008
Real First Name: Dan
Location: Wales, cardiff
Just Played: Overlord 2
Posts: 1,383
Blog Entries: 1
Trader Feedback: 0
Default

Question: Is there a good example of physics in lua?
Also is 'Jumping' a form of VERY simple physics?
dan369 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 08-10-2008, 08:57 AM   #48
QJ Gamer Green
 
_df_'s Avatar
 
Join Date: May 2007
Posts: 124
Trader Feedback: 0
Default

I would precalc a sin table for things like jumping physics. google sin/cos lookup tables or something. that should give you what you need. Jumping is physics, its a sin wave. rapid rise, level off, descend.
__________________
-- Code Monkey : Sarien, Fishguts, Cracks and Crevices --

"Did IQ's just drop sharply while I was away?" (Ripley)
_df_ is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 08-10-2008, 10:18 AM   #49
 
Join Date: Jan 2008
Posts: 612
Trader Feedback: 0
Default

Code:
math.sincache = {}
for i = 1, 180 do --don't need to go into then negatives if it's just for jumping up
	math.sincache[i] = math.sin(i)
end


	if jumpingTime >= 1 then
		playerY = onFlatGroundY + math.sincache[jumpingTime]
		if jumpingTime < 180 then
			jumpingTime = jumpingTime + jumpingTimeIncrement
			if jumpingTime > 180 then
				jumpingTime = 0
			end
		end
	elseif pad:cross() and not oldpad:cross() then
		jumpingTime = 1
	end
general idea. very pseudocodeish
TurtlesPwn is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 08-10-2008, 10:44 AM   #50
QJ Gamer Silver
 
dan369's Avatar
 
Join Date: Jan 2008
Real First Name: Dan
Location: Wales, cardiff
Just Played: Overlord 2
Posts: 1,383
Blog Entries: 1
Trader Feedback: 0
Default

Ok, thanks That gives me the general idea
dan369 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 08-10-2008, 11:00 AM   #51


QJ Gamer Silver
 
yaustar's Avatar
 
Join Date: Jun 2006
Location: UK
Posts: 2,318
Trader Feedback: 0
Default

Look at the jumping code from here: Lua Code Snippets I did a while back...
yaustar is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 08-10-2008, 05:46 PM   #52
QJ Gamer Silver
 
dan369's Avatar
 
Join Date: Jan 2008
Real First Name: Dan
Location: Wales, cardiff
Just Played: Overlord 2
Posts: 1,383
Blog Entries: 1
Trader Feedback: 0
Talking

Quote:
Originally Posted by yaustar View Post
Look at the jumping code from here: Lua Code Snippets I did a while back...
That actually what i've been looking at, and for once after about 5-10 minutes i understood How it works.
They Only question on that Is The Bool_UpLastState, are they there to stop Double jumping? Why didn't you just use oldpad?
dan369 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 08-10-2008, 07:01 PM   #53


QJ Gamer Silver
 
yaustar's Avatar
 
Join Date: Jun 2006
Location: UK
Posts: 2,318
Trader Feedback: 0
Default

They are there for the same reason as people use oldpad. At the time, I wasn't sure what the function calls for reading control input was doing under the hood.

The double jumping bug is still there is due to the code checking for a vertical velocity of 0 for being on the ground.
yaustar is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 08-20-2008, 08:45 AM   #54
 
xXChromeXx's Avatar
 
Join Date: Jul 2008
Posts: 467
Trader Feedback: 0
Default [IDEA] Lua Compilation

It is basically an idea for a Shell that comes with the most popular Lua Games and can Launch them. Therefore it takes your favorite lua games and organizes them into 1 compact EBOOT. The Shell will be able to do other things such as USB connect and Play MP3s.
__________________
My Releases:
---------------------------------------------------
[URL="http://forums.qj.net/showthread.php?t=145654"]ROFLFlasher[/URL]

[URL="http://forums.qj.net/showthread.php?t=144892"]DTS MGS Edition[/URL]

[URL="http://forums.qj.net/showthread.php?t=143735"]Arkanoid Deluxe Beta[/URL]

[URL="http://forums.qj.net/showthread.php?p=2144700#post2144700"]SAVIOR![/URL]
xXChromeXx is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 08-20-2008, 09:10 AM   #55
QJ Gamer Silver
 
Davee's Avatar
 
Join Date: Sep 2006
Real First Name: Davee
Location: Perth, Scotland
Posts: 1,046
Trader Feedback: 0
Default

There is already sooo many shells. There has to be one that does this already.
Davee is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 08-20-2008, 09:25 AM   #56
 
Join Date: Jan 2008
Posts: 612
Trader Feedback: 0
Default

I've toyed around with making a "lua arcade" system before with a bunch of games and an interface to connect to a server to download more. i made it work and all but I never made it fancy or worth releasing. a similar system would probably be better because a generic shell in lua is not worth making
TurtlesPwn is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 08-20-2008, 09:32 AM   #57
 
xXChromeXx's Avatar
 
Join Date: Jul 2008
Posts: 467
Trader Feedback: 0
Default

Quote:
Originally Posted by TurtlesPwn View Post
I've toyed around with making a "lua arcade" system before with a bunch of games and an interface to connect to a server to download more. i made it work and all but I never made it fancy or worth releasing. a similar system would probably be better because a generic shell in lua is not worth making
So maybe an arcade with a bunch of games. Sounds better
xXChromeXx is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 08-20-2008, 09:35 AM   #58
 
Join Date: Jan 2008
Posts: 612
Trader Feedback: 0
Default

and the downloadable part, thats what makes it worthwhile over lowser
TurtlesPwn is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 08-20-2008, 09:40 AM   #59
 
xXChromeXx's Avatar
 
Join Date: Jul 2008
Posts: 467
Trader Feedback: 0
Default

Quote:
Originally Posted by TurtlesPwn View Post
and the downloadable part, thats what makes it worthwhile over lowser
To add downloads would I need to make my own website and host my files there?
xXChromeXx is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 08-20-2008, 09:40 AM   #60
Enter Custom Title
 
Join Date: Feb 2006
Location: National Front Disco
Posts: 13,063
Trader Feedback: 0
Default

Quote:
Originally Posted by xXChromeXx View Post
To add downloads would I need to make my own website and host my files there?
That would be the best way to go about it, yes.
Moose is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply

Tags
discussion , general , lua , thread

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off



All times are GMT -8. The time now is 02:17 PM.



Use of this Web site constitutes acceptance of the TERMS & CONDITIONS and PRIVACY POLICY
Copyright © 2010, QJ.NET. All Rights Reserved.
Contact Us | Free Flash Games