Giter Site home page Giter Site logo

space-game's People

Contributors

anakrusis avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

space-game's Issues

Some text boxes have an extra blank line below

Additionally, very rarely, they can be missing the bottom line (so the last line of text is barely visible).
This is because of my badly written code of guessing how many lines a string will take up (without any attempt yet to use the p5js wrapping code as a guide)

Touch Controls Improvements

  • +/- zoom buttons in bottom corner (No more double touch zoom)
  • Dpad in the center of the screen for movement

City founding missions

Player brings along 20 or so passengers, and also a spaceport building to be placed on the planet (will need a new objective type)

  • Add the text (infotext, success text, failure text...)
  • Reward
  • bring food along

Scale mission rewards by distance

A true distance measurement will depend on if the mission is transplanetary or not. For missions between cities on the same planet, the distance will be circumferential. For transplanetary missions, the distance will be euclidean, and the error caused by the planetary masses will be assumed negligible, outweighed by the space between them.

NPC Ships

This is an especially challenging feature to implement, as it requires the use of extensive pathfinding code which is not yet implemented. Additionally, the effects on performance are not yet known.

History

  • Account of all completed missions
  • deaths count
  • backstory text of history of cities and nations
  • number of passengers killed (O god lol)

Passenger missions

The distinction between passenger missions and goods delivery missions could be that, in the event of an accident or crash, there might be a slight diplomatic rift between the player's nation, and the source and destination nations, if they differ. For domestic travel it might not be any different.

  • invisible statistics contributing to a lack of trust factor on failed passenger transit

If the stakes are so high that failure would lead to the end of the game (revocation of license/imprisoned for spaceship manslaughter) then nobody would wanna do these missions so... it should be more like color text and lack of credibility (game gradually gets worser but could also be more interesting paths for those who do naughty things)

City Info screen

  • Rename city option
  • View city inventory (for debugging now, maybe will be removed later?)
  • View city population and growth maybe
  • population graph should have numbers and lines (and title?)

Basic exploration missions

The player's home nation will commission you to explore other planets. Other nations will not do so (unless the relations between both nations are very high?)

The player can continue accepting exploration missions to the same planet multiple times, but the return of money/prestige/other unimplemented statistics will be diminishing returns. The player will be incentivized to explore new planets and things, not just the same old ones. Also, the distance between the home planet and other planets could be a factor in the reward, as with issue #7 (still unimplemented as of 5-28-21)

Moons

This is very simple to implement... a planet's moon is simply a planet whose dependent body is also a planet.

  • move player along with moon in the physics engine
  • modify text to say "Moon of the planet" (maybe a noun class in the BodyPlanet or a new BodyMoon that extends it?)

Render restructure for latest snapshot

  • all objects receive a priority value (0 being the furthest back and going up in value for further front values)
  • internal render function inside each entity (easier to trace, easier for custom behavior)
  • bodies should use the "pizza slice" function instead of collecting all points for rendering
  • as mentioned in #16 lod for planets

Reimplement path prediction

The current path prediction method is incredibly slow, often eating up 10ms or so every frame. It currently predicts up to 1000 ticks into the future every frame, which is very unnecessary and slow. There are multiple ways to optimize this, so I might experiment with:

  • A FIFO queue based system where prospective points are pushed on and popped off

  • Calculus based system deriving future points from the rate of change between the most recent points (not yet effective with current knowledge (or lack thereof))

  • Fix accumulating error?

Keyboard improvements

  • E key for general actions ( open missions, finish delivery, etc )
  • +/- for zoom when mouse wheel unavailable
  • P key now for planet centering, spacebar free undecided
  • esc key to exit menus
  • V key for verbose debug text: Buildings rendered, Bodies Rendered, Particles Rendered, etc
  • update welcome screen

Starmap

  • will load like 25 (5x5) chunks at world creation and get the names of the stars, then unload them all

Settings Menu

  • GUI scale
  • Mouse wheel sensitivity
  • Store settings in localstorage

some world seeds crash inexplicably on startup

My initial suspicion has to do with NPC ships

Confirmed that a particular seed (1792) crashes because the planet selected for spawning is completely underwater (100% humidity) and ends up with no cities

City growth over time

should not be continual growth forever such that it would take over the whole continent with buildings. Instead it should reach a "carrying capacity" and approach equilibrium where the city is at a good self sustainable size for the reasources it has (farms, houses, etc..)

Farms will be built on the outskirts. If there are too many farms, houses will be built near the center. If there are both too many houses and farms, then taller buildings like offices and apartments can be built even further inward. This continues until carrying capacity is reached

  • Demand for a proper balance of farms and houses and stuff

Mobile controls enhancement

The mobile controls are currently quite strange and prone to cause malfunctions/spaceship accidents. There is no deceleration button either, the only way for those playing on phones to decelerate is with the friction of planetary bodies!

  • split touch area into quadrants, accelerate, decelerate, rotate left and right
  • make these quadrants visible on the hud (?)

RNG and Seeds Overhaul

  • Each chunk gets a unique seed from a pairing function on the X and Y coords
  • Each planet gets a seed from the chunk seed
  • Each city gets a seed from the outermost world seed
  • Instantiable Random object of some sort

Steps To Multiplayer (Gradus Ad Ludere Pariter)

  • FIRSTLY a great deal of code must be cleaned up regarding the access of the client and server worlds-- I think minecraft does this with a world.isRemote sort of thing-- so client copies of server objects can be treated differently
  • THEN the server should register and track world changes to deliver to the clients individually, and not the whole world every tick
  • THE GUI should be more diligent when invokeing world events (Like accepting and completing missions) to do so through the means of the server
  • The server.world.getPlayer() should be expanded to involve multiple, as well as all its uses

Walls

  • would stop city growth, density propagation

Trees

Possibly part of a larger, later goal of implementing terraforming

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.