PDA

View Full Version : [UPDATE] Phoenix Game Engine (Lua) 0.02



Insomniac197
August 24th, 2008, 22:06
http://pge.luaplayer.org/lua/sshot.png

Phoenix Game Engine (PGE) is a fully featured engine for game development written by InsertWittyName and MK2k.

PGE Lua is the Lua wrapper of that engine.

-= FEATURES =-

pge.controls - Handling button and analog input.
pge.dir - Directory access and file system operations that deal with directories.
pge.file - File access and file system operations that deal with files.
pge.font - TrueType font loading and drawing.
pge.gfx - Graphic primitives drawing.
pge.math - VFPU math module.
pge.mp3 - MP3 playback for background music.
pge.net - Net and socket functions.
pge.texture - Image loading and drawing.
pge.timer - Timer module.
pge.usb - USB functions.
pge.utils - Utility functions for using the dialogs and retrieving system information.
pge.wav - WAV loading and playback for sound effects.
pge.zip - ZIP file access and extraction.

PGE Lua uses a port of the latest Lua release 5.1.4, which has been optimised specifically for the PSP.

PGE Lua comes with 23 fully commented samples demonstrating how each module is used.

Alongside that, full documentation is available via the homepage: http://pge.luaplayer.org/

There is an emulator for PGE Lua which runs on Windows, Linux, OSX and allows PSP-less development. This is almost complete and will be released at that time.

-= VIDEOS =-

Low resolution:
http://www.youtube.com/watch?v=MT-9HJlmWkE

-= INSTALL =-

Copy the 'pgelua' folder to PSP/GAMEXXX/ (or PSP/GAME/ if your kernel is set to 3xx/4xx in the recovery menu).

-= KNOWN ISSUES =-

None as of this writing. With this being an initial release I would expect there to be a few undiscovered bugs. Let us know.

-= HOMEPAGE =-

http://pge.luaplayer.org/

-= CONTACT =-

[email protected]

-= DOWNLOAD =-

http://pge.luaplayer.org/lua/downloads/pgelua_001.zip

-= CREDITS & GREETS =-

Coded in pure C and asm using the homebrew PSPSDK.

Thanks to TyRaNiD for psplink, which was used extensively in debugging.

Thanks to all in #psp-programming on freenode.net, where quality homebrew is produced. Special thanks to those in #lua who know so much about Lua it scares me.

Personal thanks to romero126 and Soulkiller, who tested, provided feedback and helped me steer PGE Lua to where it is.

Massive thanks to Raphael and Tomaz - the work we did on triEngine helped me really understand what an engine is.

Biggest thanks to MK2k for joining the project midway through development and making it much more than I ever expected.

-= NOTES =-

Please be aware that this is not Lua Player.

PGE Lua is it's own product and shares zero code with Lua Player.

For the C developers, the C API of Phoenix Engine will be released in due course, shortly.

PGE has been in development for over a year, it's not some mis-match of code copied from other people. This is the real deal.

There are lots more plans in store for PGE and PGE Lua, a roadmap will be released shortly showing the expected development.

-= SUPPORT =-

For further help that is not supplied by the samples or documentation, there are forums for PGE at http://pge.luaplayer.org/.

We are also on IRC, channel #psp-programming on irc.freenode.net, for one-to-one help.

-= UPDATE =-

Version 0.02 has been released.


Added pge.exit() to explicitely exit at any time.
Fixed pge.texture.draw() to only allow the correct number of parameters to be passed (reported by #Gianni#).
Added pge.texture.swizzle() to swizzle a texture.
Added pge.texture.unswizzle() to unswizzle a texture.
Added an optional parameter to pge.texture.load() and pge.texture.loadmemory() to specify whether to swizzle the texture on load.
Added pge.texture.pixel() to get or set the color value of a pixel within a texture.
Added an error check to pge.file.read(), returns nil if nothing could be read.
Added an error check to pge.file.readnum(), returns nil if the number could not be read.
Added a return value to pge.file.write(), returns the number of bytes written.
Fixed pge.mp3.loadmemory() which incorrectly checked for two parameters to be passed when it only requires one (reported by TheUnderminer).
Added pge.math.deg() to convert radians to degrees.
Added pge.math.rad() to convert degrees to radians.
Moved the socket functions to pge.net.socket.function() to give a layer of separation.
Moved the socketset functions to pge.net.socketset.function() to give a layer of separation.
Added an optional parameter to pge.net.socket.receive(), to specify how many bytes to receive.
Fixed pge.texture.save() to unswizzle the texture before saving, then re-swizzle if needed.

Download: http://pge.luaplayer.org/lua/downloads/pgelua_002.zip

Zack
August 24th, 2008, 22:29
Nice work IWN :D

Safari Al
August 25th, 2008, 00:20
Very great work, I cannot wait to try this out :). Good job IWN!

Buddy4point0
August 25th, 2008, 00:27
Finally!!!
I'm sooo glad you released this!

I'm definitely going to be checking this out and using it!

Thanks a million man.

Insomniac197
August 25th, 2008, 00:55
Thanks for the kind words.

The roadmap will be posted ASAP so you know what to expect from PGE and PGE Lua in the future.

There are some great features on the roadmap :)

Certain things were held off until after the initial release. As you can understand we want the base (as given) to be proven stable before we implement new features.

Regardless of that, you can expect a lot from PGE and PGE Lua with regard to expansion.

silverstein101
August 25th, 2008, 02:24
ok, noob question

is this a lua engine? like, does this do the same thing as lua player?

dangee
August 25th, 2008, 02:53
...like, does this do the same thing as lua player?

the same thing at about 4X speeds.

The API to the PGE modules is all new, but
still boots from /script.lua

The standard lua libraries for Lua 5.1.4
should work roughly the same as for Luaplayer 0.2,
(eg os.exit() doesn't take you to the VSH)

MasterBeef
August 25th, 2008, 05:36
Wow great release for homebrew developers!

However, I'm not sure you should have stolen the logo for Bungie's scrapped game Phoenix.

man_on_the_moon
August 25th, 2008, 07:13
is this a game engine like the unreal 3 game engine engine? or is it so you can play lua games on your psp?

ray13j
August 25th, 2008, 16:36
nice work

Buddy4point0
August 25th, 2008, 16:50
is this a game engine like the unreal 3 game engine engine? or is it so you can play lua games on your psp?

This is like luaplayer, a program that makes it easier to code for your PSP.
The coding process is similar to luaplayer's but has different function names and a few different things you need to do.

As for functionality, it's much faster than luaplayer, and has a lot of great features that luaplayer has never seen.

This engine is heaven for any lua developer.

dangee
August 26th, 2008, 11:32
PGE Lua is a quality build and hi-reliable.

I'd like to port my Luaplayer scripts over to it in the
very near future.

so a dofile("LP2PGE.LUA") with binding objects like

System={}
System.createDirectory=function(dirPath)pge.dir.mk dir(dirPath)end
(where possible) would be very welcome on the roadmap.

Insomniac197
August 28th, 2008, 16:11
Version 0.02 has been released.


Added pge.exit() to explicitely exit at any time.
Fixed pge.texture.draw() to only allow the correct number of parameters to be passed (reported by #Gianni#).
Added pge.texture.swizzle() to swizzle a texture.
Added pge.texture.unswizzle() to unswizzle a texture.
Added an optional parameter to pge.texture.load() and pge.texture.loadmemory() to specify whether to swizzle the texture on load.
Added pge.texture.pixel() to get or set the color value of a pixel within a texture.
Added an error check to pge.file.read(), returns nil if nothing could be read.
Added an error check to pge.file.readnum(), returns nil if the number could not be read.
Added a return value to pge.file.write(), returns the number of bytes written.
Fixed pge.mp3.loadmemory() which incorrectly checked for two parameters to be passed when it only requires one (reported by TheUnderminer).
Added pge.math.deg() to convert radians to degrees.
Added pge.math.rad() to convert degrees to radians.
Moved the socket functions to pge.net.socket.function() to give a layer of separation.
Moved the socketset functions to pge.net.socketset.function() to give a layer of separation.
Added an optional parameter to pge.net.socket.receive(), to specify how many bytes to receive.
Fixed pge.texture.save() to unswizzle the texture before saving, then re-swizzle if needed.

Download: http://pge.luaplayer.org/lua/downloads/pgelua_002.zip

dangee
August 29th, 2008, 19:19
Pixel addressing is good news.

And the new functions enable:

System.Quit=function()pge.exit()end ; os.exit=System.Quit
math.rad=function(deg)pge.math.rad(deg)end
math.deg=function(rad)pge.math.deg(rad)end

Texture Swizzling should mean even faster load & save is possible.