1
0
Fork 0
mirror of https://github.com/Reuh/ubiquitousse.git synced 2025-10-27 09:09:30 +00:00
This commit is contained in:
Reuh 2017-04-05 20:14:48 +02:00
parent 08afbe1d6d
commit b55c6b0dfd
8 changed files with 56 additions and 4 deletions

View file

@ -5,5 +5,8 @@ return {
--- Loads an audio file and returns the corresponding audio object.
-- TODO: audio object doc & API
-- @impl backend
load = function(filepath) end
load = function(filepath) end,
-- TODO: doc
available = false
}

View file

@ -51,10 +51,19 @@ end
uqt.backend = "ctrulua"
-- uqt.event: TODO
if uqt.event then
error("uqt.event: NYI")
end
-- uqt.draw: TODO
if uqt.draw then
error("uqt.draw: NYI")
end
-- uqt.audio: TODO
if uqt.audio then
error("uqt.audio: NYI")
end
-- uqt.time
if uqt.time then

View file

@ -105,6 +105,9 @@ add(uqt.draw, {
love.graphics.setFont(defaultFont)
love.graphics.print(text, x, y)
end,
point = function(x, y, ...)
love.graphics.points(x, y, ...)
end,
lineWidth = function(width)
love.graphics.setLineWidth(width)
end,

View file

@ -68,6 +68,13 @@ draw = {
-- @impl backend
text = function(x, y, text) end,
--- Draws a point.
-- @tparam number x point x coordinate
-- @tparam number y point y coordinate
-- @tparam number ... other vertices to draw other points
-- @impl backend
point = function(x, y, ...) end,
--- Sets the width.
-- @tparam number width the line width
-- @impl backend
@ -154,4 +161,8 @@ draw = {
image = function(filename) end,
}
-- TODO: canvas stuff ; also make everything here actually be shortcut to draw to the game's framebuffer.
-- TODO: add software implementations of everything.
-- TODO: add function to draw a message (used eg for the error message when there is a version mismatch)
return draw

View file

@ -31,7 +31,7 @@
-- * Inputs which match ubiquitousse.input.default (a pointing/4 direction input, a confirm button, and a cancel button).
-- * Some way of measuring time with millisecond-precision.
-- * Some kind of filesystem.
-- * An available audio output would be preferable.
-- * An available audio output would be preferable but optional.
-- * Lua 5.1, 5.2, 5.3 or LuaJit.
--
-- Regarding data formats, Ubiquitousse implementations expect and recommend:
@ -92,6 +92,8 @@ if love then
require(p..".backend.love")
elseif package.loaded["ctr"] then
require(p..".backend.ctrulua")
elseif package.loaded["libretro"] then
error("NYI")
end
return ubiquitousse

View file

@ -480,4 +480,10 @@ input.default.pointer = input.pointer()
input.default.confirm = input.button()
input.default.cancel = input.button()
-- TODO: some key selection helper? Will be backend-implemented, to account for all the possible input methods.
-- TODO: some way to list all possible input / outputs, or make the *inUse make some separation between inputs indiscutitably in use and those who are incertain.
-- TODO: outputs ! (rumble, lights, I don't know)
-- TODO: other, optional, default/generic inputs, and a way to know if they are binded.
-- TODO: multiplayer input helpers? something like getting the same input for different players, or default inputs for different players
return input

View file

@ -45,10 +45,11 @@ scene = {
prefix = "",
--- Creates and returns a new Scene object.
-- @tparam[opt="unamed"] string name the new scene name
-- @impl ubiquitousse
new = function()
new = function(name)
return {
name = "loading scene", -- The scene name.
name = name or "unamed", -- The scene name.
time = time.new(), -- Scene-specific TimerRegistry.

17
todo.txt Normal file
View file

@ -0,0 +1,17 @@
Ubiquitousse, also known as "The World's Best Video Game Engine Of All Time", despite its perfectness, is still not perfect.
More specifically, what is lacking to officially turn Ubiquitousse into a sacred text, is:
- An i18n API. While some languages are clearly superior to others, the general consensus seems to think otherwise. Ubiquitousse
should be able to get an ordered list of prefered languages and provide translation helpers.
- Some API are still lacking an API and/or implementation. Search "TODO" for more information.
- A filesystem API, to access the game's filesystem. May also rewrite Lua's io functions, see the next item.
- A sandboxing system. Ubiquitousse should be able to run in a Ubiquitousse game safely. Since Ubiquitousse can run itself, it will
then seems reasonable to claim Ubiquitousse run the universe. See World Domination for Dummies.
- A libretro backend, so Ubiquitousse really become ubiquitous. If you didn't know, it's the goal.
- Maybe some compatibilty layer for different Lua versions.
- Some network access. Ubiquitousse needs to spread.
- Weird APIs to allow the backend to manipulate more efficiently the game:
- Memory / environment access.
- State saving / Time travel API. Real world Time Travel is optional but preferable.
- Test suite. Ubiquitousse should run perfectly. Including pixel-perfect image output. "Namého".
- At least a million followers and their souls.
- Sacrifices. A lot of them.