Change adoc to markdown.
This commit is contained in:
parent
82f26f0d8c
commit
521566c5b9
|
@ -1,89 +1,92 @@
|
||||||
= Yugine Editor
|
# Yugine Editor
|
||||||
|
|
||||||
The main editor view is made up of objects. Each object can have a
|
The main editor view is made up of objects. Each object can have a
|
||||||
number of components attached to it. When an object is selected, its
|
number of components attached to it. When an object is selected, its
|
||||||
name, position, and list of components are listed.
|
name, position, and list of components are listed.
|
||||||
|
|
||||||
.Basic controls
|
## Basic controls
|
||||||
* Ctrl-Z Undo
|
|Ctrl-Z|Undo|
|
||||||
* Ctrl-Shift-Z Redo
|
|Ctrl-Shift-Z|Redo|
|
||||||
* Ctrl-A Select all
|
|Ctrl-A|Select all|
|
||||||
* Ctrl-S Save
|
|Ctrl-S|Save|
|
||||||
* Ctrl-N New
|
|Ctrl-N|New|
|
||||||
* Ctrl-O Open level
|
|Ctrl-O|Open level|
|
||||||
* Ctrl-X Cut
|
|Ctrl-X|Cut|
|
||||||
* Ctrl-C Copy
|
|Ctrl-C|Copy|
|
||||||
* Ctrl-V Paste
|
|Ctrl-V|Paste|
|
||||||
* Alt-O Add level to current level
|
|Alt-O|Add level to current level|
|
||||||
* Alt-A or Alt-P Add a prefab
|
|Alt-A|or Alt-P Add a prefab|
|
||||||
* Ctrl-I Objects on the level
|
|Ctrl-I|Objects on the level|
|
||||||
* Ctrl-E Asset viewer. When on a component like a sprite, serves to select that sprite's texture
|
|Ctrl-E|Asset viewer. When on a component like a sprite, serves to select that sprite's texture|
|
||||||
* Ctrl-[ Downsize grid
|
|Ctrl-[|Downsize grid|
|
||||||
* Ctrl-] Upsize grid
|
|Ctrl-]|Upsize grid|
|
||||||
* Backtick REPL
|
|Backtick|REPL|
|
||||||
* Ctrl-[1-9] to set camera positions
|
|Ctrl-[1-9]|to set camera positions|
|
||||||
* [1-9] to recall camera positions
|
|[1-9]|to recall camera positions|
|
||||||
* 0 Set camera to home view
|
|0|Set camera to home view|
|
||||||
* ESC quit
|
|ESC|quit|
|
||||||
* Alt-1 Normal view
|
|Alt-1|Normal view|
|
||||||
* Alt-2 Wireframe view
|
|Alt-2|Wireframe view|
|
||||||
* Shift-Middle Set editor cursor to mouse position (Cursor affects how objects rotate)
|
|Shift-Middle|Set editor cursor to mouse position (Cursor affects how objects rotate)|
|
||||||
* Shift-Ctrl-Middle Set cursor to object selection
|
|Shift-Ctrl-Middle|Set cursor to object selection|
|
||||||
* Shift-Right Remove cursor
|
|Shift-Right|Remove cursor|
|
||||||
|
|
||||||
.Editor Mode select
|
## Editor Mode select
|
||||||
* Alt-F1 Basic mode
|
|
||||||
* Alt-F2 Brush mode
|
|Alt-F1|Basic mode|
|
||||||
|
|Alt-F2|Brush mode|
|
||||||
- Clicking will place what is on clipboard
|
- Clicking will place what is on clipboard
|
||||||
|
|
||||||
.Object controls
|
## Object controls
|
||||||
* G Translate
|
|
||||||
* Alt-G Snap objects to cursor
|
|
||||||
* S Scale
|
|
||||||
* R Rotate
|
|
||||||
* Ctrl-P Save object changes to prefab
|
|
||||||
* Ctrl-shift-P Save object changes as a unique prefab ("Parent")
|
|
||||||
* Ctrl-shift-T Save object changes to a side prefab ("Type")
|
|
||||||
* Ctrl-J Bake name to expose to level script
|
|
||||||
* Alt-J Remove baked name
|
|
||||||
* Ctrl-Y Show obj chain
|
|
||||||
* Alt-Y Start prototype explorer
|
|
||||||
* Ctrl-U Revert object or component to match prototype
|
|
||||||
* Alt-U Make object unique. If a level, allows setting of internal object position and rotation.
|
|
||||||
* Ctrl-shift-G Save group as a level
|
|
||||||
* Arrows Translate 1 px
|
|
||||||
* Shift-Arrows Translate 10 px
|
|
||||||
* Tab Select component
|
|
||||||
* F Zoom to object(s)
|
|
||||||
* Ctrl-F Focus on a selected sublevel. Edit and save it in place.
|
|
||||||
* Ctrl-Shift-F Go up one level in the editing chain.
|
|
||||||
* M Flip horizontally
|
|
||||||
* Ctrl-M Flip vertically
|
|
||||||
* Ctrl-D Duplicate
|
|
||||||
* H Hide
|
|
||||||
* Ctrl-H Unhide all
|
|
||||||
* T Lock
|
|
||||||
* Alt-T Unlock all
|
|
||||||
* Q Toggle component help
|
|
||||||
* Ctrl-Shift-Alt-Click Set object center
|
|
||||||
|
|
||||||
.Mouse controls
|
|G|Translate|
|
||||||
* Left Select
|
|Alt-G|Snap objects to cursor|
|
||||||
* Middle Quick grab
|
|S|Scale|
|
||||||
* Right Unselect
|
|R|Rotate|
|
||||||
|
|Ctrl-P|Save object changes to prefab|
|
||||||
|
|Ctrl-shift-P|Save object changes as a unique prefab ("Parent")|
|
||||||
|
|Ctrl-shift-T|Save object changes to a side prefab ("Type")|
|
||||||
|
|Ctrl-J|Bake name to expose to level script|
|
||||||
|
|Alt-J|Remove baked name|
|
||||||
|
|Ctrl-Y|Show obj chain|
|
||||||
|
|Alt-Y|Start prototype explorer|
|
||||||
|
|Ctrl-U|Revert object or component to match prototype|
|
||||||
|
|Alt-U|Make object unique. If a level, allows setting of internal object position and rotation.|
|
||||||
|
|Ctrl-shift-G|Save group as a level|
|
||||||
|
|Arrows|Translate 1 px|
|
||||||
|
|Shift-Arrows|Translate 10 px|
|
||||||
|
|Tab|Select component|
|
||||||
|
|F|Zoom to object(s)|
|
||||||
|
|Ctrl-F|Focus on a selected sublevel. Edit and save it in place.|
|
||||||
|
|Ctrl-Shift-F|Go up one level in the editing chain.|
|
||||||
|
|M|Flip horizontally|
|
||||||
|
|Ctrl-M|Flip vertically|
|
||||||
|
|Ctrl-D|Duplicate|
|
||||||
|
|H|Hide|
|
||||||
|
|Ctrl-H|Unhide all|
|
||||||
|
|T|Lock|
|
||||||
|
|Alt-T|Unlock all|
|
||||||
|
|Q|Toggle component help|
|
||||||
|
|Ctrl-Shift-Alt-Click|Set object center|
|
||||||
|
|
||||||
.Level controls
|
## Mouse controls
|
||||||
* Ctrl-L Open level script
|
|
||||||
|
|
||||||
.Game controls
|
|Left|Select|
|
||||||
* F1 Debug draw
|
|Middle|Quick grab|
|
||||||
* F2 Config menu
|
|Right|Unselect|
|
||||||
* F3 Show bounding boxes
|
|
||||||
* F4 Show gizmos
|
## Level controls
|
||||||
* F5 Start
|
|Ctrl-L|Open level script|
|
||||||
* F6 Pause
|
|
||||||
* F7 Stop
|
## Game controls
|
||||||
* F10 Toggle slow motion
|
|F1|Debug draw|
|
||||||
|
|F2|Config menu|
|
||||||
|
|F3|Show bounding boxes|
|
||||||
|
|F4|Show gizmos|
|
||||||
|
|F5|Start|
|
||||||
|
|F6|Pause|
|
||||||
|
|F7|Stop|
|
||||||
|
|F10|Toggle slow motion|
|
||||||
|
|
||||||
== Components
|
== Components
|
||||||
Components all have their own set of controls. Many act similar to
|
Components all have their own set of controls. Many act similar to
|
||||||
|
@ -93,19 +96,19 @@ expected to object grabbing; same with scaling, rotation, and so on.
|
||||||
If a component uses an asset, the asset viewer will serve to pick new
|
If a component uses an asset, the asset viewer will serve to pick new
|
||||||
assets for it.
|
assets for it.
|
||||||
|
|
||||||
.Spline controls
|
## Spline controls
|
||||||
* Ctrl-click Add a point
|
|Ctrl-click|Add a point|
|
||||||
* Shift-click remove a point
|
|Shift-click|remove a point|
|
||||||
* +,- Increase or decrease spline segments
|
|+,-|Increase or decrease spline segments|
|
||||||
* Ctrl-+,- Increase or decrease spline degrees. Put this to 1 for the spline to go point to point
|
|Ctrl-+,-|Increase or decrease spline degrees. Put this to 1 for the spline to go point to point|
|
||||||
* Alt-B,V Increase or decrease spline thickness
|
|Alt-B,V|Increase or decrease spline thickness|
|
||||||
|
|
||||||
.Collider controls
|
.Collider controls
|
||||||
* Alt-S Toggle sensor
|
|Alt-S|Toggle sensor|
|
||||||
|
|
||||||
== Yugine Programming
|
## Yugine Programming
|
||||||
|
|
||||||
.Object functions
|
### Object functions
|
||||||
|
|
||||||
* start(): Called when the object is created, before the first update is ran
|
* start(): Called when the object is created, before the first update is ran
|
||||||
* update(dt): Called once per frame
|
* update(dt): Called once per frame
|
||||||
|
@ -116,7 +119,7 @@ assets for it.
|
||||||
- hit.velocity: Velocity of impact
|
- hit.velocity: Velocity of impact
|
||||||
- hit.normal: Normal of impact
|
- hit.normal: Normal of impact
|
||||||
|
|
||||||
.Colliders
|
### Colliders
|
||||||
Colliders visually look different based on their status. Objects can
|
Colliders visually look different based on their status. Objects can
|
||||||
be in one of three states
|
be in one of three states
|
||||||
|
|
||||||
|
@ -132,7 +135,7 @@ do not let objects through.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.Input
|
### Input
|
||||||
Input works by adding functions to an object, and then "controlling"
|
Input works by adding functions to an object, and then "controlling"
|
||||||
them. The format for a function is "input_[key]_[action]". [Action]
|
them. The format for a function is "input_[key]_[action]". [Action]
|
||||||
can be any of
|
can be any of
|
||||||
|
@ -144,7 +147,7 @@ can be any of
|
||||||
For example, "input_p_pressed()" will be called when p is pressed, and not again
|
For example, "input_p_pressed()" will be called when p is pressed, and not again
|
||||||
until it is released and pressed again.
|
until it is released and pressed again.
|
||||||
|
|
||||||
.Your game
|
### Your game
|
||||||
|
|
||||||
When the engine runs, it executes config.js, and then game.js. A
|
When the engine runs, it executes config.js, and then game.js. A
|
||||||
window should be created in config.js, and custom code for prototypes
|
window should be created in config.js, and custom code for prototypes
|
||||||
|
@ -152,7 +155,7 @@ should be executed.
|
||||||
|
|
||||||
game.js is the place to open your first level.
|
game.js is the place to open your first level.
|
||||||
|
|
||||||
.Levels
|
### Levels
|
||||||
|
|
||||||
A level is a collection of objects. A level has a script associated
|
A level is a collection of objects. A level has a script associated
|
||||||
with it. The script is ran when the level is loaded.
|
with it. The script is ran when the level is loaded.
|
190
docs/game.md
190
docs/game.md
|
@ -1,4 +1,4 @@
|
||||||
= Yugine
|
# Yugine
|
||||||
|
|
||||||
The yugine essentially is made of a sequence of levels. Levels can be
|
The yugine essentially is made of a sequence of levels. Levels can be
|
||||||
nested, they can be streamed in, or loaded one at a time. Levels are
|
nested, they can be streamed in, or loaded one at a time. Levels are
|
||||||
|
@ -10,29 +10,26 @@ loading functions call the script file, as well as the level file. The
|
||||||
level file can be considered to be a container of objects that the
|
level file can be considered to be a container of objects that the
|
||||||
associated script file can access.
|
associated script file can access.
|
||||||
|
|
||||||
.Game start
|
* Game start
|
||||||
|
1. Engine scripts
|
||||||
|
2. config.js
|
||||||
|
3. game.lvl & game.js
|
||||||
|
|
||||||
* Engine scripts
|
* Editor
|
||||||
* config.js
|
1. Engine scripts
|
||||||
* game.lvl & game.js
|
2. config.js
|
||||||
|
3. editor.js
|
||||||
|
|
||||||
.Editor
|
* Editor play
|
||||||
|
* F5 debug.lvl. Used for custom debug level testing. If doesn't exist, game.lvl is loaded.
|
||||||
* Engine scripts
|
* F6 game.lvl
|
||||||
* config.js
|
* F7 Currently edited level
|
||||||
* editor.js
|
|
||||||
|
|
||||||
.Editor play
|
|
||||||
|
|
||||||
* F5 debug.lvl
|
|
||||||
** Used for custom debug level testing. If doesn't exist, game.lvl is loaded.
|
|
||||||
* F6 game.lvl
|
|
||||||
* F7 Currently edited level
|
|
||||||
|
|
||||||
While playing ...
|
While playing ...
|
||||||
|
|
||||||
* F7 Stop
|
* F7 Stop
|
||||||
|
|
||||||
== Level model
|
## Level model
|
||||||
The game world is made up of objects. Levels are collections of
|
The game world is made up of objects. Levels are collections of
|
||||||
objects. The topmost level is called "World". Objects are spawned into
|
objects. The topmost level is called "World". Objects are spawned into
|
||||||
a specific level. If none are explicitly given, objects are spawned
|
a specific level. If none are explicitly given, objects are spawned
|
||||||
|
@ -43,110 +40,99 @@ World.level1.enemy1.sprite.path = "brick.png";
|
||||||
|
|
||||||
To set the image of enemy1 in level 1's sprite.
|
To set the image of enemy1 in level 1's sprite.
|
||||||
|
|
||||||
.Level functions
|
### Level functions
|
||||||
,===
|
|name| description|
|
||||||
name, description
|
|---|---|
|
||||||
|
|levels| a list of all levels loaded in this one|
|
||||||
|
|objects| a list of all objects belonging to this level (objects + levels)|
|
||||||
|
|object_count| objects.length()|
|
||||||
|
|spawn(type)| creates an object from the supplied type in the level|
|
||||||
|
|create()| creates an empty level inside of this one|
|
||||||
|
|loadfile(file)| loads file as a level inside of this one; returns it. Mainly for editor|
|
||||||
|
|loadlevel(file)| loads file as a level and does running required for gameplay|
|
||||||
|
|load(level_json)| clears this level and spawns all objects specified in the level_json|
|
||||||
|
|clear()| kills all objects in this level|
|
||||||
|
|kill()| cleans up the level and kills it|
|
||||||
|
|
||||||
levels, a list of all levels loaded in this one
|
## Objects
|
||||||
objects, a list of all objects belonging to this level (objects + levels)
|
|
||||||
object_count, objects.length()
|
|
||||||
spawn(type), creates an object from the supplied type in the level
|
|
||||||
create(), creates an empty level inside of this one
|
|
||||||
loadfile(file), loads file as a level inside of this one; returns it. Mainly for editor
|
|
||||||
loadlevel(file), loads file as a level and does running required for gameplay
|
|
||||||
load(level_json), clears this level and spawns all objects specified in the level_json
|
|
||||||
clear(), kills all objects in this level
|
|
||||||
kill(), cleans up the level and kills it
|
|
||||||
|
|
||||||
,===
|
|
||||||
|
|
||||||
.Objects
|
|
||||||
Objects are things that exist in the game world.
|
Objects are things that exist in the game world.
|
||||||
|
|
||||||
,===
|
|name| description|
|
||||||
name, description
|
|---|---|
|
||||||
level, the level this object belongs to
|
|level| the level this object belongs to
|
||||||
pos, the global position
|
|pos| the global position|
|
||||||
relpos, the position relative to its level
|
|relpos| the position relative to its level
|
||||||
angle, the global angle
|
angle| the global angle|
|
||||||
relangle, angle relative to its level
|
|relangle| angle relative to its level|
|
||||||
velocity, velocity of the object
|
|velocity| velocity of the object|
|
||||||
angularvelocity, angular velocity of the object
|
|angularvelocity| angular velocity of the object|
|
||||||
alive, true if the object is valid
|
|alive| true if the object is valid|
|
||||||
varname, the variable name of the object (used for friendly naming)
|
|varname| the variable name of the object (used for friendly naming)|
|
||||||
friction, physics attribnute
|
|friction| physics attribnute|
|
||||||
elasticity, physics attribute
|
|elasticity| physics attribute|
|
||||||
flipx, true if the object is flipped on its x axis
|
|flipx| true if the object is flipped on its x axis|
|
||||||
flipy, true if the object is mirrored on its y axis
|
|flipy| true if the object is mirrored on its y axis|
|
||||||
body, the internal gameobject id of the object
|
|body| the internal gameobject id of the object|
|
||||||
controlled, true if the object is controlled by something
|
|controlled| true if the object is controlled by something|
|
||||||
phys, set to dynamic; kinematic; or static; explained below
|
|phys| set to dynamic; kinematic; or static; explained below|
|
||||||
moi, the moment of inertia of the object
|
|moi| the moment of inertia of the object|
|
||||||
mass, mass of the object
|
|mass| mass of the object|
|
||||||
visible, true if the object is visible. Set to false to disable all visible features belonging to it
|
|visible| true if the object is visible. Set to false to disable all visible features belonging to it|
|
||||||
in_air(), true if the object is not on the ground
|
|in_air()| true if the object is not on the ground|
|
||||||
on_ground(), !in_air()
|
|on_ground()| !in_air()|
|
||||||
layer, collision layer for the physics engine
|
|layer| collision layer for the physics engine|
|
||||||
draw_layer, draw order. higher numbers draw on top of lower ones
|
|draw_layer| draw order. higher numbers draw on top of lower ones|
|
||||||
scale, change to make the object larger or smaller
|
|scale| change to make the object larger or smaller|
|
||||||
from, the object this object was created from
|
|from| the object this object was created from|
|
||||||
boundingbox, the boundingbox of this object in world dimensions
|
|boundingbox| the boundingbox of this object in world dimensions|
|
||||||
push(vec), push this object each frame with vec velocity
|
|push(vec)| push this object each frame with vec velocity|
|
||||||
width, the boundingbox defined width
|
|width| the boundingbox defined width|
|
||||||
height, the boundingbox defined height
|
|height| the boundingbox defined height|
|
||||||
kill, destroy the object
|
|kill| destroy the object|
|
||||||
stop, ???
|
|stop| ???|
|
||||||
world2this(pos), return the pos in world coordinates to relative this object
|
|world2this(pos)| return the pos in world coordinates to relative this object|
|
||||||
this2world(pos), return the pos in this coordinates relative to the world
|
|this2world(pos)| return the pos in this coordinates relative to the world|
|
||||||
make(props, level), instantiate an object based on this, with additional props, in level
|
|make(props, level)| instantiate an object based on this, with additional props, in level|
|
||||||
,===
|
|
||||||
|
|
||||||
.Editor related object features
|
## Editor related object features
|
||||||
,===
|
|
||||||
gizmo, path to an image to draw in editor mode
|
|
||||||
,===
|
|
||||||
|
|
||||||
.Functions for object control
|
|gizmo| path to an image to draw in editor mode|
|
||||||
,===
|
|
||||||
clone(name; ext), create a copy of this object and extend it with ext; does not spawn
|
|
||||||
instadup(), create an exact duplicate of this object in the World
|
|
||||||
revert(), remove everything that makes the object unique; make it exactly like what it was spawned from
|
|
||||||
,===
|
|
||||||
|
|
||||||
.Physics
|
## Functions for object control
|
||||||
|
|
||||||
|
|clone(name; ext)| create a copy of this object and extend it with ext; does not spawn|
|
||||||
|
|instadup()| create an exact duplicate of this object in the World|
|
||||||
|
|revert()| remove everything that makes the object unique; make it exactly like what it was spawned from|
|
||||||
|
|
||||||
|
## Physics
|
||||||
All objects belong to the physics engine, but may be totally ignored by it.
|
All objects belong to the physics engine, but may be totally ignored by it.
|
||||||
|
|
||||||
,===
|
|static| does not and will not move|
|
||||||
static, does not and will not move
|
|dynamic| moves under the auspices of the physics engine|
|
||||||
dynamic, moves under the auspices of the physics engine
|
|kinematic| moves under the auspices of the player or other control mechanism|
|
||||||
kinematic, moves under the auspices of the player or other control mechanism
|
|
||||||
,===
|
|
||||||
|
|
||||||
Physics properties work as such
|
Physics properties work as such
|
||||||
,===
|
|
||||||
mass, affects how much a given force will move an object
|
|
||||||
elasticity, affects momentum loss on collisions; multiplicative between two objects for each collision; 1 for no loss; 0 for total stoppage; >1 for a chaotic increasing entropy simulation
|
|
||||||
friction, affects momentum loss when rubbing against another surface; multiplicative between the two objects
|
|
||||||
,===
|
|
||||||
|
|
||||||
.Textures & images
|
|mass| affects how much a given force will move an object|
|
||||||
|
|elasticity| affects momentum loss on collisions; multiplicative between two objects for each collision; 1 for no loss; 0 for total stoppage; >1 for a chaotic increasing entropy simulation|
|
||||||
|
|friction| affects momentum loss when rubbing against another surface; multiplicative between the two objects|
|
||||||
|
|
||||||
|
## Textures & images
|
||||||
A sprite is a display of a specific texture in the game world. The
|
A sprite is a display of a specific texture in the game world. The
|
||||||
underlying texture has values associated with it, like how it should
|
underlying texture has values associated with it, like how it should
|
||||||
be rendered: is it a sprite, is it a texture, does it have mipmaps,
|
be rendered: is it a sprite, is it a texture, does it have mipmaps,
|
||||||
etc. Textures are all file based, and are only accessed through the
|
etc. Textures are all file based, and are only accessed through the
|
||||||
explicit path to their associated image file.
|
explicit path to their associated image file.
|
||||||
|
|
||||||
.Finding & Addressing Objects
|
## Finding & Addressing Objects
|
||||||
|
|
||||||
|
|
||||||
.Editor & Debugging
|
## Editor & Debugging
|
||||||
Although intertwined, debugging functions and the editor are separate entities.
|
Although intertwined, debugging functions and the editor are separate entities.
|
||||||
|
|
||||||
..Debugging
|
### Debugging
|
||||||
Debugging functions are mapped to the F buttons, and are always available during gameplay in a debug build. Pressing the F button toggles the feature; pressing it with ALT shows a legend for that feature; pressing it with CTRL shows additional info
|
Debugging functions are mapped to the F buttons, and are always available during gameplay in a debug build. Pressing the F button toggles the feature; pressing it with ALT shows a legend for that feature; pressing it with CTRL shows additional info
|
||||||
|
|
||||||
,===
|
|F1| Draw physics info|
|
||||||
F1, Draw physics info
|
|F3| Draw bounding boxes|
|
||||||
F3, Draw bounding boxes
|
|F12| Drawing gui debugging info|
|
||||||
F12, Drawing gui debugging info
|
|
||||||
,===
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.Yugine video playing
|
# Yugine video playing
|
||||||
|
|
||||||
Yugine plays the open source MPEG-TS muxer, using MPEG1 video and MP2 audio.
|
Yugine plays the open source MPEG-TS muxer, using MPEG1 video and MP2 audio.
|
||||||
|
|
Loading…
Reference in a new issue