Levels: Brainstorms - The-Source-Eternal/Children-of-IO GitHub Wiki
Wherein we brainstorm level ideas, and have links and such too
LEARNING TREE
Brainstorming all the possible things that need to be learned. Some of them should be easy enough to see that they don’t really need explaining (at least not much), others can be introduced simultaneously, others will need analogous actions. Some in this list are currently in multiple places as they fit multiple categories. Some may sound like duplicates, but actually aren’t (e.g. transforms as they can be changed with gestures in Object Manipulation, and transforms as they can be changed programmatically). The order in which they are presented here is currently random, it isn’t meant to indicate in what order they will be presented to the player.
OBJECTS/OBJECT MANIPULATION
As they are edited in “play” functionality or in general? This will depend on editor tools
- Create/Instatiate Object -
- Transforms -
move/scale/rotate
pivot point/origin point
- Gestures -
- IO Beam -
- Camera -
- Lighting -
point lights
directional
ambient
? (I know there’s one more)
- Post-it Box -
CODING (js/custom editor)
- General Practice -
commenting
reading documentation
writing documentation
debugging
oop
functional programming
entity based programming
finding libraries/modules
np complete, etc.
node package manager
- Code -
var
- scope
- public
- private
- types
if
- else
arrays/lists (and the difference between them? which I don’t even understand)
- index
- split
- pop
iteration
- for
- while
infinite loops
function
eval
console logs
debugger
object properties
object factories
read file
save file
load file
recursive
server things (I have no idea)
time
- frames
- world time
- timer
- Game Editor DSL -
This will depend on editor tools
instantiate object
target
collision
move
position/warp
texture
material
gui
rotate
scale
tags
name
view distance
parent/children/siblings
- relative scale
- relative positions
- collision with parent
- collision with siblings
character controller
lerp (let’s call it something else)
- Related Knowledge -
html
css
COMPONENTS
This will depend on editor tools
- Transforms -
move
rotate
scale/dimension/push/pull
- Prefabs -
- Element Inspector -
changing values
adding components
deleting components
reordering components
editing components
materials
textures
- script components
- accessing code editing
- interactive numbers
- other components
OTHER EDITOR FEATURES
- File Hierarchy -
- Pre-Made Components -
rigidbody
- Physics Layers -
- Performance Analysis? -
- LOD? -
- Other Fancy Things? -
GAME MECHANICS
If someone were to want to make a game, what kinds of things would she or he want to learn to do programmatically? (Focusing on web-based interface, specifically PC)
- All -
- Gaining points
- Losing points
- Winning
- Losing
- Object destruction
- Going to another level
- (A few of those and others involve collision)
- Keyboard/input response for directional manipulation
- Displaying stats
- Displaying success or failure
- Time (sometimes)
- Buying "upgrades" of whatever sort (sometimes)
- Message popup (sometimes)
- Randomness (sometimes)
- Games With a Character -
- Dying
- Restarting
- Jumping
- Moving left and right
- Gravity
- Some form of physics
- Moving elements
- Damage
- Item switching
- Inventory
- Crouching (sometimes)
- AI (sometimes)
- Moving elements (sometimes)
- Flying (rarely)
- Puzzle Games -
- Moving pieces
- Grids (sometimes)
- Text entry (sometimes)
- Multiplayer -
- Turns
- Text Chat
- Voice Chat
- Sources -
- http://en.wikipedia.org/wiki/Game_mechanics (not the same, but still gave some ideas)
GAME DESIGN
- Storytelling -
- Flow -
- Paper Prototyping -
- QA and Testing -
GAMEISH IDEAS
- Commenting out code - Block is too high. Looking at the code you get them to comment out the part that adds 5 to its height (I guess they have to press "run" then or something? Hmmm). That makes it lower. Anywho, some kind of commenting out of code, then show them they can delete code? Note: Maybe each object has a reset button that changes its components back to what they were to start and each level is resettable as well so all the objects in the level will be what they started as. What if an object was created by the player and it is reset? Go back to when it was first instantiated?
- Input - Teach them to make the keyboard keys affect other objects, perhaps whatever object is clicked on - they can then make boxes jump, etc. Maybe once they make it jump, they have till it falls down to get under it or something.
- Tags? - First you destroy monsters into pixels or whatever, then you discover "friendlies" that give you... points or something. Then you discover how to make things that are supposed to be friendly into friendlies by adding some code, then you learn to (or perhaps this is left for players to figure out on their own) how to turn monsters into friendlies to get more... points... or whatever. (Also, learn to turn friendlies friendly using a tag?)
- NPC Character idea: a typed programming language. A child sits against the wall crying into it's hands. It's (C# perhaps?). There is a screen of code on the wall with a variable but no type. C# makes you promise that you will always let it know what type a variable is.
- This character could come in for semantic or formatting rules too
- Thibault Jochem: http://www.codingame.com/cg/
- He says: I think the "miningame" model would be easy to fit inside a real game : people just write the logic, inputs and outputs are text and the game framework interprets all of that to make things move, so it could be split in two parts: writing game logic and writing game engine
EXAMPLES & TOOLS
CAMERA (from kumavis):
Issue [#55] (https://github.com/The-Source-Eternal/Unwritten3D/issues/55)