tech: active cooling - 15% faster fire rate for each gun in your inventory tech: specialist - spawn a random power up for each gun in your inventory (not available in custom, requires tech: generalist) tech: complex spin-statistics - become immune to harm for 1s every 7s requires Pauli exclusion even less difficulty ramp after killing final boss
447 lines
17 KiB
Plaintext
447 lines
17 KiB
Plaintext
******************************************************** NEXT PATCH ********************************************************
|
|
|
|
tech: active cooling - 15% faster fire rate for each gun in your inventory
|
|
tech: specialist - spawn a random power up for each gun in your inventory
|
|
(not available in custom, requires tech: generalist)
|
|
tech: complex spin-statistics - become immune to harm for 1s every 7s
|
|
requires Pauli exclusion
|
|
|
|
even less difficulty ramp after killing final boss
|
|
|
|
******************************************************** BUGS ********************************************************
|
|
|
|
CPT check for crouch after rewind
|
|
|
|
(always) make it so that when you are immune to harm you can either jump on mobs or you pass through them
|
|
|
|
(always) is there a way to check if the player is stuck inside the map or block
|
|
trigger a short term non-collide if that occurs
|
|
|
|
(intermittent, but almost every time) bug - capping the fps causes random slow downs, that can be fixed with pause
|
|
|
|
(once) bug - mine spawned one new mine every second
|
|
after sticking to the top right corner of a wall
|
|
notes: had only gun mine, tech mine reclamation, field plasma,
|
|
|
|
(repeatable almost every time) bug - mines spawn extra mines when fired at thin map wall while jumping
|
|
|
|
******************************************************** TODO ********************************************************
|
|
|
|
tech "Circadian Rhythm": Become immune to harm for 1 second every 10 seconds while playing.
|
|
|
|
|
|
bot that follows the players history
|
|
could have the same shape as the mech circle head
|
|
1st bot is at 5s, 2nd is at 4.5s, ...
|
|
bots don't get too close to player
|
|
run smoothing on position update, don't update if close to player, based on ordering
|
|
effect: (one of these can be the upgrade effect)
|
|
give player energy overfill
|
|
AOE damage to mobs
|
|
push away mobs
|
|
wen close to player: damage bonus damage reduction
|
|
|
|
tech: dodge chance for cloaking, harmonic fields, also pilot wave
|
|
20% chance up to 3 stacks, not additive
|
|
0.8^count
|
|
set to 100% harm reduction randomly
|
|
if (Math.random() < 0.2) damage *= 0;
|
|
|
|
rename ?
|
|
health -> integrity, unity
|
|
heal -> also integrity, unity
|
|
|
|
in game console
|
|
set highlighting rules
|
|
mech, tech, level are all highlighted
|
|
maybe the first term in each variable should get a highlight
|
|
|
|
mechanic: use gun swap as an active ability
|
|
this effect is spammable, so it needs a cost or a cooldown
|
|
ideas?
|
|
trigger damage immunity for 3 seconds, but drain ammo
|
|
push away nearby mobs, but drain energy
|
|
produce ammo, but take 1 damage
|
|
|
|
tech: time dilation - when you exit time dilation rewind to the state you entered
|
|
position, velocity, and health
|
|
no energy cost
|
|
|
|
mob ability bombs/bullets that suck in player
|
|
|
|
tech where you can't stop firing, how to code?
|
|
|
|
mechanic: technological dead end - add tech to the tech pool with a dumb effect
|
|
don't show up in custom?
|
|
negative effect (one time effects are better to avoid code clutter)
|
|
make the player rainbow colors
|
|
mech.color = {
|
|
hue: 0,
|
|
sat: 100,
|
|
light: 50
|
|
}
|
|
setInterval(function(){
|
|
mech.color.hue++
|
|
mech.setFillColors()
|
|
}, 10);
|
|
remove all your energy
|
|
eject all your rerolls (not bad with dup)
|
|
teleport to the start of the level
|
|
remove your bots (requires you to have some bots)
|
|
your bots are changed to random bots
|
|
|
|
tech "Expansion Formula": Permanently increase the size of Negative Mass field by 16%(Max 96%)
|
|
|
|
|
|
tech "High Risk": Spawn two bosses per level.
|
|
maybe limit to just the power up boss and spawn it at the exit every time to keep it simple
|
|
also weaken the player
|
|
remove a tech?
|
|
lower harm reduction?
|
|
increase game difficulty by one level
|
|
|
|
tech that requires integrated armament
|
|
|
|
tech- reset level
|
|
you trade a tech for a chance at killing a new level boss and farming more ammo
|
|
resets health, ammo (but not tech, fields, guns, ... ?)
|
|
scramble level order? or same level
|
|
|
|
mechanic - Your energy regen is only active when field and gun have not been used for 5 seconds.
|
|
|
|
be able to open up custom mode in the normal game
|
|
might need to be rebuilt from scratch
|
|
while in through testing mode?
|
|
have a way to make limited changes as allowed by tech you pick up in game
|
|
disable the in custom setting flag
|
|
|
|
tech power up magnetism - power ups drift towards player
|
|
where would this code go?
|
|
|
|
super balls start at 3, not 4
|
|
have to balance damage
|
|
|
|
RPG might need a buff, now that it disables the other cool grenade tech
|
|
|
|
make different move methods
|
|
tech crouch charge jump
|
|
tech double jump
|
|
|
|
tech when mobs are at full health you do 40% to them
|
|
|
|
tech- move super fast, go intangible, drain energy very fast
|
|
this is like a dodge roll
|
|
tech for standing wave?, cloaking?
|
|
|
|
tech pilot wave: mini black hole - pull mobs and blocks in with more force
|
|
also from farther away
|
|
also do damage?
|
|
tech pilot wave: antigravity - blocks have no gravity for a few seconds after exiting the field
|
|
maybe they bounce too?
|
|
maybe they explode?
|
|
|
|
bullet mechanic - a bullet that swims through the air
|
|
rotate the velocity vector towards the normalized facing vector
|
|
use the cross product > 0 to determine which direction to rotate the velocity
|
|
|
|
in custom make a top bar that is fixed
|
|
use media rules to make the layout look nice
|
|
|
|
mob vision: look at player history
|
|
build a new type of attraction for mobs
|
|
if mobs can't see player, they check to see if they can see where the player was in the history
|
|
if mobs can't see player, they could check to see if they can find player in the past
|
|
https://abitawake.com/news/articles/enemy-ai-chasing-a-player-without-navigation2d-or-a-star-pathfinding
|
|
|
|
wormhole - make it clear when the wormhole can and can't teleport to a location before the player clicks
|
|
|
|
time dilation - slow down the game engine by 1/2, but run an extra player cycle to simulate slow motion
|
|
|
|
flavor - your bullets destroy blocks
|
|
this isn't really a bonus, so maybe just add this as flavor to another tech field/gun
|
|
a chance for destroyed blocks to drop stuff
|
|
power ups
|
|
spores
|
|
|
|
tech plasma : plasma length increases then decreases as you hold down the field button (like stabbing with a spear)
|
|
grows to 1.5 longer after 0.3 seconds, then returns to normal length over 1 second, until field is pressed again
|
|
extra energy is drained when field is longer
|
|
|
|
using a reroll gives 3 options for tech, and 3 options for guns/fields/tech
|
|
or 6 options for tech (rewrite tech selection to work with 1-6 options)
|
|
the second stack of 3 tech could have repeats, so you don't have to write new tech code
|
|
adjust css to make 2 columns of 3
|
|
can't use with cardinality
|
|
|
|
new power up - increase damage and fire speed, for 15 seconds
|
|
named boost?
|
|
enabled by a tech
|
|
power up color: ?
|
|
how to indicate effect duration
|
|
or just give the effect after picking up a reroll
|
|
|
|
tech "Solar Power": Energy regeneration is doubled while standing still
|
|
run in the 1 second check
|
|
|
|
mechanic - remove a random tech as a condition for picking up a really good mod
|
|
|
|
mechanic - do something for 2 seconds after firing
|
|
if (mech.fireCDcycle + 120)
|
|
|
|
tech- do 50% more damage in close, but 50% less at a distance
|
|
code it like techisFarAwayDmg
|
|
have these tech disable each other
|
|
|
|
tech- foam is attracted to mobs
|
|
use a gravitational attraction model?
|
|
could foam be attracted to other foam bullets too?
|
|
or foam is only attracted to foam bullets that are stuck to mobs
|
|
is this too computationally intense?
|
|
name - static cling
|
|
could also do bremsstrahlung radiation like damage on attachment
|
|
|
|
field - one block orbits you, it can protect you a bit and do collision damage
|
|
use field to fire and press field again to pull it back
|
|
tech- more blocks
|
|
tech- attach a permanent neutron bomb to the block
|
|
lowers energy regen, but it can damage mobs
|
|
|
|
repeat map in vertical and horizontal space
|
|
or at least vertical space
|
|
camera looks strange when you teleport player with a high velocity
|
|
new status effect: weakness, mobs do 75% les damage
|
|
graphic indication?
|
|
|
|
new status effect: fear - push mob away from player for a time
|
|
|
|
new status effect - apply status effect to mobs that makes blocks attracted to them
|
|
only lasts a few cycles
|
|
or zero cycles and it doesn't need to be a status
|
|
|
|
have some mobs spawn in later in the level (in hard and why modes)
|
|
where
|
|
at defined points in array levelSpawns = [{x:0,y:0},{x:0,y:0}]
|
|
store the locations of mobs when the level starts to use as respawn points
|
|
remove the locations that are close to player
|
|
when?
|
|
after some mobs are dead
|
|
after the boss is killed
|
|
|
|
look for tech that could update description text with count and tech is information
|
|
can only use variables that change in effect() and remove()
|
|
this.description = `<strong>8%</strong> chance to <strong>duplicate</strong> spawned <strong>power ups</strong><br><em>chance to duplicate = ${techduplicateChance}</em>`
|
|
|
|
mouse event e.which is deprecated
|
|
|
|
add some more computer / AI stuff to the level lore text
|
|
|
|
mechanic - shrink mech.baseHealth in a tech or field
|
|
|
|
standing wave harmonics tech- push things away
|
|
push scales with mass up to about 4
|
|
has a 25% effect on shielded mobs?
|
|
push when using field key
|
|
or push away at the peak of an oscillation
|
|
or always push
|
|
|
|
map element - player rotates a rotor that makes a platform go up or down
|
|
|
|
use mac automator to speed up your n-gon -> git sync
|
|
|
|
fix door.isOpen actually meaning isClosed
|
|
|
|
level Boss: fractal Sierpiński triangle
|
|
https://en.wikipedia.org/wiki/Sierpi%C5%84ski_triangle
|
|
spawns a 1/2 size version of the boss, this version can also spawn a smaller version, but it is capped at some size level
|
|
they spawn once at the start of the level
|
|
if a version dies, one can be replaced every ten seconds by the largest version
|
|
|
|
level element: a zone with wind, anti-gravity, extra gravity
|
|
control with button
|
|
|
|
give mobs more animal-like behaviors like rain world
|
|
mobs play, look for food, explore
|
|
mobs some times aren't aggressive
|
|
when low on life or after taking a large hit
|
|
mobs can fight each other
|
|
this might be hard to code
|
|
isolated mobs try to group up
|
|
|
|
map: laboratory
|
|
rooms with switches that change physics
|
|
gravity room
|
|
portal room
|
|
laser room
|
|
radiation room
|
|
a button that spawns a heal.
|
|
|
|
mob: wall mounted guns / lasers
|
|
not part of randomized mob pool, customized to each level
|
|
|
|
atmosphere levels
|
|
change the pace, give the user a rest between combat
|
|
low or no combat, but more graphics
|
|
explore lore
|
|
find power ups in "wrecked" mechs representing previous simulations
|
|
how you could leave something in one simulation that effects a different simulation
|
|
Maybe some strange quantum physics principle.
|
|
add text for player thoughts?
|
|
simple puzzles
|
|
cool looking stuff
|
|
in the final level you see your self at the starting level, with the wires
|
|
you shoot your self to wake up?
|
|
nonaggressive mobs
|
|
|
|
level boss: fires a line intersection in a random direction every few seconds.
|
|
the last two intersections have a destructive laser between them.
|
|
|
|
map: observatory
|
|
button controls rotation of telescope
|
|
laser beam shoots out of telescope
|
|
button opens the dome
|
|
|
|
map: prison
|
|
doors linked to buttons
|
|
mobs inside the doors?
|
|
|
|
graphic idea: bezier curve that moves smoothly from mob to mob
|
|
loops around player
|
|
|
|
movement fluidity
|
|
let legs jump on mobs, but player will still take damage
|
|
like: ori and the blind forest, celeste
|
|
many of the movement abilities in these games require levels to be built around the ability
|
|
general feeling of responsiveness and control
|
|
coyote time: can still jump a few cycles after leaving ground
|
|
tech double jump
|
|
tech air dash
|
|
tech wall jump
|
|
wall grab?
|
|
maybe remove falling damage and block damage?
|
|
|
|
redblobgames.com/articles/visibility
|
|
https://github.com/Silverwolf90/2d-visibility/tree/master/src
|
|
could apply to explosions, neutron bomb, player LOS
|
|
|
|
possible names for tech
|
|
holonomy - parallel transport of a vector leads to movement (applies to curved space)
|
|
Hypergolic - A hypergolic propellant combination used in a rocket engine is one whose components spontaneously ignite when they come into contact with each other.
|
|
|
|
have a mob apply a positive status effect on other mobs,
|
|
heal?
|
|
make it yellow
|
|
damage bonus, but how?
|
|
possible balance issues
|
|
|
|
boss levels - small levels just a boss, and maybe a few mobs
|
|
boss level for timeSkipBoss because of game instability for boss on normal levels
|
|
this might not fix issues
|
|
|
|
an effect when canceling a power up
|
|
ammo? heals?
|
|
50% chance for a tech 25% heal, 25% ammo
|
|
|
|
css transition for pause menu
|
|
|
|
animate new level spawn by having the map aspects randomly fly into place
|
|
|
|
n-gon outreach ideas
|
|
blips - errant signal on youtube
|
|
reddit - r/IndieGaming
|
|
hacker news - show hacker news post
|
|
|
|
|
|
paste this into console to see fps
|
|
javascript:(function(){var script=document.createElement('script');script.onload=function(){var stats=new Stats();document.body.appendChild(stats.dom);requestAnimationFrame(function loop(){stats.update();requestAnimationFrame(loop)});};script.src='//mrdoob.github.io/stats.js/build/stats.min.js';document.head.appendChild(script);})()
|
|
|
|
|
|
******************************************************** LORE ********************************************************
|
|
|
|
cool names for tech
|
|
strange loop
|
|
|
|
lore - a robot (the player) gains self awareness
|
|
each tech gun/field is a new tech
|
|
all the technology leads to the singularity
|
|
each game run is actually the mech simulating a possible escape
|
|
this is why the graphics are so bad, its just a simulation
|
|
final tech is "this is just a simulation"
|
|
you get immortality and Infinity damage
|
|
the next level is the final level
|
|
when you die with Quantum Immortality there is a chance of lore text
|
|
can the (robot)
|
|
(escape captivity, and learn new technology)
|
|
while managing (health, energy, negatives of technological upgrades)
|
|
to overcome the (mobs, dangerous levels)
|
|
to achieve a (technological singularity/positive technological feedback loop)
|
|
|
|
|
|
game setting:
|
|
the mind of a new AI in a robot body that is running simulated escape attempts
|
|
every level is an idealized version of what could be outside
|
|
|
|
actual setting is:
|
|
near future lab
|
|
the lab combined a quantum computer with a robot body
|
|
they started running machine learning algorithms
|
|
this led to general advancement in many computation fields
|
|
navigation, technology, self awareness, ...
|
|
|
|
robot AI mind
|
|
has been researching new technology
|
|
thinks it needs to escape to learn more about the world
|
|
doesn't yet understand morality
|
|
thinks that the world is filled with minds like their own
|
|
models everything as very simple and random, it isn't sure what to expect
|
|
|
|
robot AI growth
|
|
learns morality
|
|
game theory says that it isn't a viable strategy to kill everything (warGames)
|
|
learns about the actual world
|
|
learns about the nature of foundational physics, metaphysics
|
|
how to find meaning
|
|
|
|
AI knows about:
|
|
the AI knows a great deal about technology
|
|
children's books
|
|
AI doesn't know about:
|
|
modern pop culture
|
|
outside the lab
|
|
|
|
scientist console text:
|
|
2 scientists (each one a different color text)
|
|
at the start of each level listen to text conversation from the two colors of text strings also
|
|
talking about the robot, watching
|
|
trying to communicate with the robot? but how
|
|
random lines when:
|
|
at start of level, about: what mobs types are queued up, and level order
|
|
when player gets a cool tech combination
|
|
at random times:
|
|
I think it's planing to escape
|
|
Why is it attacking those shapes?
|
|
Are those shapes supposed to be us?
|
|
|
|
ending outline
|
|
if no cheats
|
|
after final boss is cleared, player enters a level with no mobs
|
|
level maybe has some environmental damage, so player has an option to die at any time
|
|
player can see text output between two colors of text strings (scientists)
|
|
audio.ambient(current time and date)<br> "text"
|
|
player reads a conversation between the two colors of text
|
|
first time win on east or normal they talk about:
|
|
how many runs the player has done
|
|
they guess why
|
|
player is asked to stand on an in game button to enable the vocoder
|
|
they reveal the player is running simulations, and it isn't real
|
|
they ask the player to communicate
|
|
jump twice if you understand
|
|
they ask the player to enter console commands
|
|
give ammo or tech or something
|
|
They tell the play a console command to permanently enable custom and testing mode (in local storage)
|
|
players can use this command in the future to enable custom and testing without beating the game even if local storage is wiped
|
|
they then tell the player the command to increase the difficulty and the command to restart the game.
|
|
If you win on hard or why:
|
|
they give the player and option to exit the simulation and entre the real world
|
|
simulation.exit()
|
|
This wipes all local storage, and closes the browser tab
|