Project PewPew; a web-based space sim

Overview

A web-based space exploration / building / trading / combat game, from the viewpoint of a lone captain. Explore the over 80 million star systems, join an empire, remain a freelancer, indulge in piracy, found a colony, build a space-station, become a deep-space explorer, the choice is yours. Play in one of the public galaxies or create a private galaxy for you and your friends.

Project PewPew is just a codename, until I come up with a really good, unique game name. :slight_smile:

Inspiration

There are several excellent sandbox space simulations out or soon to be released, but they all take top of the line PC’s or consoles. This is designed to give the player all the fun and mechanics of one of those games, but on a platform that will run anywhere, including phones. This means graphics are very minimal, sprite-based.

Also, I want this to be the perfect “spare time” game for me. Something I can spend as little or as much time playing as I want, where time away doesn’t penalize me.

This is important In terms of game “feel”, this is an excellent example of what a player might hear when arriving at a new star system: Adrift

Mechanics

The Galaxy is made up of a 2D grid 40,000 sectors tall and 40,000 sectors wide. 95% of these sectors are empty space, the remaining are star systems (and the occasional anomaly). When a player enters a star system, a new map is shown, a detail view of the star system, with the star in the center, and asteroids, planets, etc orbiting appropriately.

The galactic core will be generated at birth, then the rest of the galactic frontier will be generated as needed. This will allow for empires, races, to have set systems they control.

After a geological scan of a planet, a surface capable ship can land. A planets surface is 100 by 100 sectors. Each sector can house a facility (mine, housing, power plant, trading depot, hangar, etc)

Ships come in a wide array of sizes and hull configurations, mostly randomly generated during galaxy creation. Players begin in a 1-crew ship, but some ships that can be build / bought can hold a crew of over 2000.

Crew are mostly just statistics with a name. You can assign a crew member to each main section, their personal stats will affect those sections accordingly. For example, a crew member with a high piloting skill, chosen to fill the navigator role will add to the overall evasion of a ship, slightly reduce travel time, etc.

Bigger ships let you assign crew to each of the main sections, with the stations requiring certain number of crew underlings to properly manage it.

With enough money you can hire construction crews to build facilities on planets surfaces, and in space.

A player can broadcast access codes to other players, which allows them varying levels of access to the facility.

Facilities have automated defenses. Automated in the sense they operate independently of the player. For example, an asteroid mining facility in an asteroid field might need personnel of 50, 5 of them being combat oriented crew who man the facilities weapons. If the owning player is actually on/near the facility, they can take direct control of the combat.

Technical

PewPew will have 2 major components.

API

Every game logic decision will be handled by the Go powered API, which will be glorious. All the game data will be stored in MongoDB. The ability to have secondary indexes will be invaluable for the various web views. (Galaxy view, system view, planet view).

I intend to have the API be open, so a player could use their API key for their account to directly interact with the API. Player-built tools are encouraged.

Front-end

I intend to use one of the JS-based game frameworks to handle the front end. Possible candidates include:

The front end will ONLY be for the UI, all game logic will take place within the API.

Mobile browsers I consider first-class citizens, and am designing for them in mind.

Possible Features

  • For a fee a player can purchase a private galaxy, and give access to their friends
  • Technology, races, star systems can be set via JSON data, allowing a private galaxy to be very different from the vanilla PewPew content.

Business Items

Players will buy a license for the game, varying from 1 month access to lifetime. I intend lifetime to be the no-brainer decision.

Sections to cover in greater detail

  • Races / Empires
  • NPC Activity
  • Combat
  • Construction
  • Trade
  • Player / real world interaction
  • Ship building
  • Travel

The Plan

Obviously, I cannot get all the functionality in place before launch, so the idea is to have a subset that is fun, and if the interest is there to keep building.

If I have a core set of functionality to show off, I could see some sort of crowdfunding effort be successful, and help me develop it faster.

Feedback

Yes please! Anything from ux ideas, to discussion on accurate celestial orbits welcome.

1 Like

There is a lot to go through here, so to get started I am just going to start at the top and quote-reply to bits I have questions/thoughts on. :slight_smile:

Races? Is there a back story there? Are races mutated from a seed race, or are they dramatically different?

Have you seen the The Aether Sea? It is a Fate World book, I recommend it for no other reason than it is as close as we have to a Fate-powered Spelljammer. Oh, wait, there is another reason I recommend it: it has a nifty way to use crew attributes to contribute to the operation of the ship, in particular combat.

A couple excerpts from The Ships chapter:

An aethercraft’s got a bunch of stations, places where folks can control somepart of the ship. They’re just components that the crew can man. Stations comein all sorts of styles, from wheels that physically link up to the rudder, to boardsetched with runes that the user presses to control the ship.

To start, ships have two stations: a control station, to change its heading andspeed, and a communications station, to trade information with folks in nearbyships.

and

To invoke ship aspects, including any situation aspects the ship picks up, play-ers can spend their own fate points or the ship’s fate points. Aethercraft tend tobe slow at getting fate points, so using your own might be wise. Holding onto abit of the ship’s stock might come in handy for punching a last-minute getawayor handling an unexpected boarding party.

I am not suggesting to drill down to that level of customization, but it would neat to give every crew member a semi-secret set of traits that automagically contribute to resolutions in the game. A later phase of the of game could have a currency (in the sense that players, not characters, spend it on stuff) to invoke events, like a victory celebration. During that period crew members that have gone on certain kinds of missions/events can get commended/level up. It would basically just read a bunch of flags attached to each crew object, and give it a new set of traits.

I like the idea of deciding to spend resources to make my crew members/citizens better, at the cost of other upgrades (hence the currency idea). It allows for different kinds of play. For instance, you can have a Federation Ship, which invests heavily in personal enrichment and each officer ends up being able to turn any fight around single-handedly, or you can dump everything into a huge metal cube powered by completely replaceable drone-cyborgs. :slight_smile:

Something I’ve always noticed is that games that break the fiction to have good group management tend to be ones I’ve favor. In real life we don’t have the ability to ACL every aspect of our being. But in a game that I want to play 30 minutes a day across a few sessions, not having to worry that all the things are destroyed when I log in is peace of mind.

If you play up the empire deal, it would be neat to have really complex hierarchies that are taken care of for players, like having empires with 50 layers of management, but it really just means that upper tiers get resources from lower tiers, and access/direct facility use is handles on a friend’s list basis.

Probably something that would need to be playtested, but you definitely don’t want crazy interstellar bank fraud. :slight_smile:

Entirely different races, similar to how Master of Orion has races.

Something I think would be super cool, is to load in races / empires via config files @ galaxy generation. So, say you wanted to generate a star trek-like universe with Romulans, Klingons, etc when you had a private galaxy generated for you, you would submit your custom race config as part of it. (Thinking JSON formatted).

In a similar vein, give the ability to set points of interest in your new galaxy, and the rest of the galaxy is generated around it. For example, player could set sector 300,150 to be the Sol star system, with 8 planets, with their stats, bases, orbiting stations, orbiting station Genesis has a bar, in that bar is Agnus McDerver, who is the start of your custom storyline, etc.

Could races, technology, empires, stories all be passed via JSON and the rest of the galaxy is filled out? Totally, and that is exciting to me.

Part of me thinks PewPew could be the platform that people load their custom modules into. I focus on making the game streamlined, and the content can be made whenever. I go back and forth on this, as making it too agnostic can make the logic get quite challenging.

Does that sound like functionality players would utilize?

That makes total sense, have it be a thing outside the game fiction.

Totally! Finding the balance on what an excellent crew can accomplish on a mediocre ship will be a fun thing to work out.

I think there are two types of crew, officers and the team they manage. (In smaller ships, it might just be the officer for their entire team. Think Firefly. ) Officers bonuses are 50% of that stations bonuses, the team makes up the remaining 50% of possible bonuses.

I also think the idea of ‘moments of greatness’ would be really fun. Like, you are in combat, shields down, and your ship is fired upon. Suddenly you see “Engineer LaForge had a moment of greatness, the shields are up and at 80%!”, and the pulse impact splashes against your now functional shields. It could be one of the traits you can set for a race, their percent chance for moments of greatness. Droid crew members, which are competent, but have static skills, could never have moments of greatness.

Test edit

Quick Update

After much fun learning, I have a prototype Go script that will generate my galaxy for me, and I am super excited about it. :smile: Also Go is really awesome.

Here is an example sector!

---------------------------------------------- Sector (3,3) -----
[                                *                              ]
[                                                               ]
[                                                    *          ]
[                                                               ]
[                                        *                      ]
[                                                               ]
[                                                               ]
[                                                      *        ]
[                                                               ]
[    *                     *                                    ]
[                                                               ]
[                                                               ]
[                                                    *          ]
[                                                               ]
[                                                               ]
[                    *                                          ]
[                                                               ]
[                                            *       *          ]
[                                                               ]
[                      *                                        ]
[                                                               ]
[                                  *                            ]
[                  *                                            ]
[      *                                                        ]
[                                                               ]
[                                                *              ]
[                                                               ]
[                                                               ]
[                                                               ]
[                                                               ]
[                                                               ]
[                        *                                      ]
-----------------------------------------------------------------

If you’re curious, take a look here to see the script. Note that it pulls in data from this json config file for lots of decisions. What this does is generate however many sectors you specify for your “cradle” aka beginning known galaxy. All the races will be present in this area.

Eventually it will determine who owns stars based on info in the config, but for now it just generates all the stars with appropriate coordinates, and star type based on mostly legit data from wikipedia.

Note that repo won’t be the actual game repo, it’s just a play area for me.

I am taking a break on backend stuff to try out several front-end html5 game frameworks and see which I like the most. So far I am heavily leaning towards Phaser.io, and not just because I love beam weaponry.

I am putting this on hold. I realized web based wouldn’t work for this, and I wasn’t excited enough about it to go the distance to make it a good game.

Shelving for now!