Git Product home page Git Product logo

ninjanode's Introduction

Greetings ๐Ÿ‘‹๐Ÿฅท

CV Badge Linkedin Badge Gmail Badge Twitter Badge

My name is James (He/Him), known online as techninja, and I've been programming and contributing to the open source community for longer than I can remember. With over 12 years of experience in writing ReSTful APIs, wrappers, and developer documentation, I have honed a strong skill set in API design, implementation, and documentation with a focus on making code and examples readable and user-friendly.

I've spoken at open source software conferences, traveled the world working to get kids into STEAM through an instructional video series and drawing robots, and strive to make all the code and user interfaces I have a hand in more documented, accessible, and helpful to those that come after me.

Recent Stack Work

  • TypeScript/Javascript Node.js
  • AWS infra in code via Terraform/TypeScript CDK
  • MERN / Meteor
  • ReSTful API microservice architecture via AWS Cognito -> API Gateway -> Lambda
  • Gatsby / GraphQL
  • Github actions for:
    • Deploying CDK for diff build in comments or PRs
    • Automatic versioning and deploy upon PR merges

"I've got huge plans that could change the world, just looking for some funding and time!" "Don't we all?"

ninjanode's People

Contributors

magicmarianne avatar makerblock avatar rogerfachini avatar starphee avatar techninja avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ninjanode's Issues

Team Support: Just by adding [teamname]

Adding [$TEAMNAME] after your name in the game, you would be placed on the same team as another person or persons.

Your mines would not effect teammates, but firing non-seeking weapons at them would. (Can't eliminate friendly fire!).

Your teammates would always be visible, even when cloaked.

Add spectator mode

Instead of joining the game to play, users would choose spectator mode on the connection screen, and choose a user to follow (this is incredibly simple to do using current code as current is simply a matter of knowing which to follow, as all are drawn and updated on screen at all times) ๐ŸŽฏ

UI: Heads Up Display

I like the idea of clicking "HUD" button that would do several things at once.

You would get an overlay above the game field and see the chat window up all the time, perhaps additional stats, stats of others, etc. Also - random streaming "stats" and characters.

Mines: Permanence?

I have a ridiculous idea. If mines were more permanent, some awesome/ridiculous things become possible.

Imagine - you could build a fortress around a powerup spawn point or planet or near several difficult to navigate around planets. You could build a wall across all of space (and time). You could drop one inside a gas giant (or dust cloud/nebulae).

However, if a mine was "permanent" in that it didn't have an expiration time, it should be able to be destroyed through firing a weapon.

Map Edge Wrapping - a plausible solution?

It's an open question as to whether and how the edge wrapping of the game field should work.

Should the edge be visible? Should it only show up on the radar? Should firing work through the edge? Should you be able to see an enemy over the edge?

Proposed solutions:

  1. You can't see over the edge, but you can fire. I think this would be a fun solution.
  2. There is a "dust cloud" all along the edges. You can't see through it, even your own ship is obscured. This would create a visible edge for the player, and add a little bit of a strategic element - a place where you can hide. (Possibly from sensors too?)

Zoom Toggle

I have a laptop with a modest screen. When playing against the Brood who are using 4k monitors, they can see me a mile off. To get around this, I zoom way out in the browser when I'm traveling over long distances, then zoom in when I'm in close for combat. I would love a feature that would let me toggle zoom WAY out 25% and then zoom to 100% and back again with a keystroke.

Thanks!

Team Support: Chat!

Team chats! Instead of "t" for chat (or, talk?) you could hit some other key (g?) to only chat with teammates.

Visual Effects: Multiple star fields

Right now as you travel you see the "star field" in the background move. However, it would make a more interesting effect if there were at least three total star fields, each moving at a slightly different rate. This would give better visual effect and more of a sense of movement.

In the absolute farthest field (we'll just say the third) there would be whole galaxies. (Bonus points for using anything at all from http://mygalaxies.co.uk/ ). These would move very very slowly by.

In the next nearest field (we'll just say the second) you would see just stars. (Bonus points for any binary star systems) When you're traveling very fast, these would just move with about the speed we see now in the game.

In the nearest field (we'll say the first) you would also just see stars. But, when you're traveling very fast, they would turn into streaky lines similar to the "warp" effect you see in Star Trek.

Gameplay Options, OP/Admins discussion

The intent of this issue is to manage the discussion of how to allow users to manage gameplay options like format (Deathmatch, capture the flag, etc), power-ups, and others, in a way that is reasonable, fair and allows for all users to have some control eventually.

Once the path has been decided, this issue should be closed and new tickets opened for the work to be done.

See #16 for initial thoughts

Make mines explode when shot

...so that you can shoot a mine that another player is passing to create a larger hazard. (You might need to make the mine effect area larger to make this strategically interesting)

HUD: List of users

Should always be reorganized to display the person with the most number of kills at the top.

Power Up: Warp!

Totally random warp will send you someplace totally random. Randomly.

Power Up: Shields

Short term shield doubling effect. Or, maybe just +100 shields that are visible.

New Weapon: Slow gun

A weapon that would make the victim slower and slower the more times they got hit. These would need to wear off relatively quickly, otherwise gravity would just destroy a ship immediately.

Power Up: Ship Seeking Miss

Ship seeking missiles!!! Small damage, but pretty much a guaranteed hit.

Ideally, they would have X amount of maneuverability. If you fly out in a straight line and you're not faster than the missile, they'll get you. If you zig zag, they only have so much maneuverability (say, up to 270 degrees of total maneuvering ability?), and will just travel on straight forever until they hit something. Which would be AWESOME.

Also, if they could travel up to 270 degrees of maneuverability, you could conceivably lead them on a trajectory against whoever shot one at you. Mu-ah-ha-ha!

Mines: Magnetic?

Perhaps as a special/powerup or just a cool special weapon/secondary/tertiary weapon - but mines that would activate whenever someone was within X distance and then move towards them.

Power Up: Drones!

Tiny drones that would swim around your ship, and when you get close to an enemy either (a) intercept their fire to protect you or (b) fire very small short range lasers at them.

Thrust Lock!

Zoom Toggle is more important, but if there's time, the ability to hit a button that would keep forward (or backward?) trust held down. I use the directional keys to go, but it would be nice (for long voyages through the gaping abyss) to be able to leave thrust on the whole time rather than having to hold down forward. Perhaps doubletapping forward could lock it until back or forward is hit?

Thanks!

Invulnerability at spawn

Until action taken, or maybe 3 seconds pass? It's the only chance to pause/talk without leaving the kill zone.

Redraw and animate energy orbs

No offense, but the current energy orbs look like kiwi fruit slices. It would be way awesomer to have them be a) a glowing solid orb and b) crackling (thus animated). Three frames'll do!

NEW SHIP! Slow, heavy, with a tractor beam!

Slow top speed, slow acceleration, quick rotation, long range tractor beam, pulls you into the ship - which has a high armor and shields.

I'd say the tractor beam would have to stay on you for 1 second to establish a "lock".

Maybe the ship would suck. Or, it might be awesome.

Also, it could pull at asteroids and mines. And puppies. Space puppies.

UI: Non-scaling chat window

I love the chat feature - it is a fantastic feature.

However, when I zoom out so I can see more of space, the window becomes too small to be legible. It should not scale, even when you zoom in/out.

UI: Enemy (and Teammate!) Radar, not Compasses

Right now the top right screen shows each person playing, with essentially a compass towards them. The compass changes color as you get closer. This is nifty, especially when you want to find and hunt down one person.

However, a "radar" seems more useful overall, and would be more compact even with lots of players. All friends would be on a green spectrum (blue to green, say) and all friends would be on a red spectrum (orange to red), depending upon proximity.

If you really had to hunt down just one person, you could hover your mouse over the radar and see a list of persons appear under the radar, click their name, and have their icon as a white to yellow spectrum.

New Weapon/Powerup: Warp mines!

You pick up the "powerup" which lasts until you drop your next mine. It is a warp mine. Running into it will warp you to some random location on the map. :)

Sensors: lots of ideas on how to be unseen by them

Here's one - how about nebula (dust/gas clouds), black holes, and power-ups that hide you from sensors/compass/radar?

When you're near a black hole, you don't appear on anyone's sensors - but you can't see anyone either (unless you're in visual contact).

When you're cloaked/ghosted, you should drop off the radar as well - but everyone is visible to you.

When you're in a nebula (we'll need to add some sweet lighting animations to it) you can't detect or be detected. However, when you're inside the cloud, you can see others - but they can't see you. Or the mines you've left there. Mu-ah-ha-ha!

This all sounds like more than one "issue."

General architecture code review

Looking for a bit of code review. It all feels a bit of a mess, and could be better. The whole point is to learn something new. ๐Ÿ’ก

Mines: Colors

Mines should be, at most, three colors. Yours, your teammates', and your enemies.

We can pretend that your ship's sensors allow you to detect these differences.

Power-ups Brainstorm!

Soo.... we all knew it was coming.. power-ups! Little things that float around with icons, showing what they do. Pick em up and you get that power for a while.

One of my favorite games when I was a kid was "Carmageddon", made heavy use of mystery power-ups. Three colors denoted their intended effect: Green was universally "good" for you (faster, stronger, etc), Red was guaranteed "bad" (made you slower, vulnerable to attack), and Gray was questionable/fun/weird (controls wonky, pinball mode, etc).

While I think that type is a lot less suited to a game like this, the creativity of them is what got me. Some initial ideas:

  • Double Shield: Obvious, would show the shield at all times to show enabled
  • Double Damage: Obvious, not sure how to show that though. Bigger Projectiles?
  • Triple fire: 3 shots would come out of your ship at once, possibly angled
  • Thru Shot: Projectile flies until done, hitting/dealing damage along the way
  • Juggernaut: Can't fire, but you get double speed & acceleration, no drag, and collisions kill the other player, not you. Can still be hurt by weapons. Effect could be electric discharge around ship, or perhaps ship size is doubled?
  • Sluggernaut: Makes you fly and turn like a slug
  • Triple Speed: Probably more of a curse than anything
  • Reload Swap: Primary and secondary fire reload times are swapped, allowing for mineageddon!
  • Ghost: Ship fades in and out, can't collide or be hit with projectiles, can fire though
  • Mystery!: A random selection of any of the good or bad power-ups above

General Rules:

  • Timer and name for power up would show on screen for the player
  • Might limit to only one power up? Would be fun with no limit
  • Power-up orbs would show up randomly within play area, possibly removing after 2 minutes, or could stay in one place and spawn there after 5 minutes (a bit like Quake 3)

Looking for input from @makersylvia @datn @grayside ๐Ÿ˜„ ๐Ÿ‘

Rapid acceleration/deceleration when moving horizontally or diagonally

I cannot tell if this is a powerup or feature, though that seems unlikely since this does not occur when moving vertically. When accelerating with the ship pointed left, right, or diagonally, it randomly speeds up to a very fast speed, then quickly decelerates to it's original speed (speed cap?). I'm going to set up a dev environment and see if I can't find what's causing this.

Power Up: Reflector Shield

A faintly visible shield that will completely reflect any directed damage (say a missile, laser, etc - but not a mine) against whoever shot it.

Bonus points for reflecting at double speed.

Server AI Ships: A proposal

Space is dangerous.

As such, there should be AI ships. They should have the following behaviors:

  1. There are a minimum of 2 AI ships at any time. That way, if there is one human player, they won't always be the target - the AI's will be hostile to anyone - including the other AI's.

  2. If there are teams implemented, all AI's are on the same team. There are always X number of AI's equal to the average (rounded up) number of teammates on all teams.

  3. If there are no teams, there are 2 + floor(human players/5) number of AI players

  4. They attack the nearest player (human or AI). If there are two players nearby, they attack the weaker of the two. Alternatively, the AI could always attack the strongest player - the one with the most number of kills (or longest time on server?)

  5. The AI shouldn't be too good. So, while it can fly directly towards a human and always shoot dead on, it should always have at least a 10% chance to overcorrect a course or delay to shooting.

  6. The AI should leave mines in a firefight and possibly near powerups

  7. The AI should try to snag powerups. :)

  8. The AI should taunt users. It should call them smelly humans and bags of meat. It should type in all caps. In New Courier. Sometimes, they should talk in Windings.

  9. If a player is inactive, the AI should mess with them - laying mines all around them.

  10. Killing an AI could give you a powerup!!!

  11. When an AI is killed, it should respawn as a random ship

  12. Should the AI have a persistent name or pick one at random from a list? Should it be obvious the AI is an AI?

Ship Design: Point Based

You get X points to start with to specify top speed, acceleration, turn speed, armor, shield amount, shield reg speed, weapon speed, weapon recharge time/rate, weapon damage.

Warp: Ship ability

A slow charging ability to nearly instantaneously move a really long distance. If there's a planet in the way, you're toast. :) It would be interesting if this would charge faster in the vicinity of a star. Or black hole.

Home Planets / Spheres of Influence

A home base area, around a planet you cannot crash into, where your shields recharge twice as fast. There should be a faint shimmery border to the area that matches your color.

There should be a way to "claim" an area as your home base. Perhaps with a beacon of some kind?

New Weapon/Powerup: Turrets

It would be a special mine that would be destroyed if fired on or smashed into (it would do a little damage, but as much as a mine). It would fire a low power medium range weapon at the nearest non-team member.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.