Difference between revisions of "uLove"

(Fixed a few links (most notably the lovers one))
m (updated the preamble to be clearer about uLove's targets, and removed the windows BMP recommendation (it added nothing))
Line 5: Line 5:
  
  
uLove is a proposed standard subset of functionality intended to reduce Love's binary and memory footprint, specifically for use on embedded and portable devices.
+
uLove is a standard subset of functionality intended to reduce Love's binary and memory footprint, and capability requirements. it is specifically intended for targetting devices and contexts that have limited capabilities or permissions, such as portable gaming devices (Dingoo, WIZ, etc), mobile devices (Mobile phones, PDAs, Nanonotes, etc), or constrained contexts (web plugins).
  
 
While any port of love may provide features beyond those defined in uLove, it not generally permitted to remove features.
 
While any port of love may provide features beyond those defined in uLove, it not generally permitted to remove features.
Line 13: Line 13:
 
* [[uLove]] ''must'' provide a default font, with a size appropriate to the target device, in the same instances that Love would provide a default font. However, this font is ''permitted'' to not be, or be named after, "[[Vera Sans]]".
 
* [[uLove]] ''must'' provide a default font, with a size appropriate to the target device, in the same instances that Love would provide a default font. However, this font is ''permitted'' to not be, or be named after, "[[Vera Sans]]".
 
* [[uLove]] ''must'' support [[Ogg Vorbis]] Audio, it ''may'' omit all other audio formats.
 
* [[uLove]] ''must'' support [[Ogg Vorbis]] Audio, it ''may'' omit all other audio formats.
* [[uLove]] ''must'' support [http://en.wikipedia.org/wiki/Portable_Network_Graphics PNG], and Uncompressed [http://en.wikipedia.org/wiki/Truevision_TGA Targa (TGA)] image formats, and is ''recommended'' (but not required) to additionally the [[Windows BMP]] image format. It ''may omit'' all other image formats.
+
* [[uLove]] ''must'' support [http://en.wikipedia.org/wiki/Portable_Network_Graphics PNG], and Uncompressed [http://en.wikipedia.org/wiki/Truevision_TGA Targa (TGA)] image formats. It ''may omit'' all other image formats.
 
* [[uLove]] ''may'' omit [[love.mouse]], [[love.keyboard]], and [[love.joystick]]. Though a uLove host will likely provide at least one of them, none of them are required.
 
* [[uLove]] ''may'' omit [[love.mouse]], [[love.keyboard]], and [[love.joystick]]. Though a uLove host will likely provide at least one of them, none of them are required.
 
* [[uLove]] ''may'' omit [[love.physics]].
 
* [[uLove]] ''may'' omit [[love.physics]].
  
In addition to the above contraints, [[Lovers]] must also recognise that:
+
In addition to the above constraints, [[Lovers]] must also recognise that:
* Many devices running [[uLove]] have limited memory, often 32MB or less
+
* Many devices running [[uLove]] have limited memory, often 32MB ''or less''.
 
* Many devices targeted by [[uLove]] have considerably less processing power than standard systems.
 
* Many devices targeted by [[uLove]] have considerably less processing power than standard systems.
* Many devices running [[uLove]] have low resolutions, in the vien of 320x240.
+
* Many devices running [[uLove]] have low resolutions, in the vien of 320x240 ''or less''.
 
* [[uLove]] is targeted at many disparate devices, uLove games should use functions such as those in [[love.joystick]] and [[love.graphics.checkMode]] to determine the device's capabilities, and adjust themselves accordingly.
 
* [[uLove]] is targeted at many disparate devices, uLove games should use functions such as those in [[love.joystick]] and [[love.graphics.checkMode]] to determine the device's capabilities, and adjust themselves accordingly.
* Many devices targeted by [[uLove]] have limited controls, usually one d-pad and four [[face button]]s (A, B, Start, Select, or equivilent) is all that can be relyed on.
+
* Many devices targeted by [[uLove]] have limited controls, usually one [[d-pad]] and four [[face button]]s (A, B, Start, Select, or equivilent) is all that can be relyed on.
 
* Many devices running uLove entirely lack mouse support, those that do present mice have touch surfaces. bare in mind that:  
 
* Many devices running uLove entirely lack mouse support, those that do present mice have touch surfaces. bare in mind that:  
:*Touch surfaces usually lack precision
+
:*Touch surfaces usually lack precision.
:*Touch surfaces do not usually allow the pointer to be moved without also generating either a click or mousedown event
+
:*Touch surfaces do not usually allow the pointer to be moved without also generating either a click or mousedown event.
:*Touch surfaces are absolute, rather than relative pointing devices. (that is, the mouse is always moved to a specific location, never by a delta)
+
:*Touch surfaces are absolute, rather than relative pointing devices. (that is, the mouse is always moved to a specific location, never by a delta).

Revision as of 21:31, 6 June 2010

uLove is only a proposal at this stage, feel free to add your thoughts


uLove is a standard subset of functionality intended to reduce Love's binary and memory footprint, and capability requirements. it is specifically intended for targetting devices and contexts that have limited capabilities or permissions, such as portable gaming devices (Dingoo, WIZ, etc), mobile devices (Mobile phones, PDAs, Nanonotes, etc), or constrained contexts (web plugins).

While any port of love may provide features beyond those defined in uLove, it not generally permitted to remove features.

  • uLove archive files are explicitly Zip files. (Rather than "nominally", as in Love).
  • uLove must support image fonts, it specifically may omit vector fonts (such as TTF).
  • uLove must provide a default font, with a size appropriate to the target device, in the same instances that Love would provide a default font. However, this font is permitted to not be, or be named after, "Vera Sans".
  • uLove must support Ogg Vorbis Audio, it may omit all other audio formats.
  • uLove must support PNG, and Uncompressed Targa (TGA) image formats. It may omit all other image formats.
  • uLove may omit love.mouse, love.keyboard, and love.joystick. Though a uLove host will likely provide at least one of them, none of them are required.
  • uLove may omit love.physics.

In addition to the above constraints, Lovers must also recognise that:

  • Many devices running uLove have limited memory, often 32MB or less.
  • Many devices targeted by uLove have considerably less processing power than standard systems.
  • Many devices running uLove have low resolutions, in the vien of 320x240 or less.
  • uLove is targeted at many disparate devices, uLove games should use functions such as those in love.joystick and love.graphics.checkMode to determine the device's capabilities, and adjust themselves accordingly.
  • Many devices targeted by uLove have limited controls, usually one d-pad and four face buttons (A, B, Start, Select, or equivilent) is all that can be relyed on.
  • Many devices running uLove entirely lack mouse support, those that do present mice have touch surfaces. bare in mind that:
  • Touch surfaces usually lack precision.
  • Touch surfaces do not usually allow the pointer to be moved without also generating either a click or mousedown event.
  • Touch surfaces are absolute, rather than relative pointing devices. (that is, the mouse is always moved to a specific location, never by a delta).