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 -

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
  • 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)