"No Sky of Ours" | Big-World Space Exploration[2nd Demo Now!]

I am re-purposing this post to provide links to the latest downloads and demos.

MOST RECENT BUILD: 15.5.2 Antsy Android

===================================

OLD BUILDS/MISC STUFF
Demo the First (.blend):
No Sky of Ours v15_5_1_Antsy Android.zip (522 KB)

Conceptual Planetary Colony conditions simulator (spreadsheet)

===================================

No Sky of Ours is a game of lonely open-world galactic exploration, and a semi-derpy simulation of stellar and planetary processes. And Terrible Space Monsters (eventually).

Developed in Blender 2.74

NSoO uses:
BGUI by Moguri
Textwrapper by Sebcologne

(proper credits with links will be updated shortly)

(screenshots/teasers should be here as well. In the meantime, scroll through the thread to see lots of progress pics/vids!)

It’s a good concept. I’ve felt like making something similar myself sometimes but haven’t gotten around to it.

How are you going to handle combat and settlement of planets? Is this part just a world map and the other sections of the game will take place in a different part of the game, like different scenes? Will ground battles be abstracted (like a counter of 10,000 troops moves on to a planet to capture it) or will you zoom down to the planet’s surface to handle the combat?

Combat will probably not be a major focus of gameplay. I would rather focus on the aspects of exploration, and maintaining a stable supply chain through your empire. This, coupled with a healthy dose of rogue-like random events/discoveries to make things interesting and give the player a purpose to explore.

Conflict will probably take the form more of Disasters, rather than warfare against other empires. Civil unrest in over-populated/under-supplied worlds, random space monsters, indiginous life-forms, solar storms, etc. Like I said above, I don’t really intend to make a competitive game where several empires fight over conquest of the galaxy. That element of those games was never what really got me to play them, and I usually lost interest in the current game once it got to the point of open warfare between empires.

As for colonies, I have a fairly solid idea on how to handle them.
Each world will have a Habitability level, which determines if that world can be colonized, and how big that colony can be (in terms of population).
Rather than having the Star Wars style mono-environmental planets you often see (ocean planet, desert planet, ice planet, lava planet, etc), each world has four attributes called Speres: Geosphere, Hydrosphere, Atmosphere, and Biosphere. These are tied into the four types of Resources a population consumes and produces, and uses to expand and build new things: Food, Water, Materials, and Energy.

Once a colony reaches its full capacity, it begins building a Population Pressure. When Population Pressure is high enough, that world is elegable to begin operations to move its excess population to a new world and establish a new colony. If population pressure rises too high, problems can occur (disease, unrest, excess crime/unhappiness)

These are some of the ideas I have at least. Of course they will probably change drastically as development moves forward. It’s funny how actual implementation of ideas tends to dash those ideas against the proverbial rocks :wink:

Some Updates:
(mostly under-the-hood stuff so not a whole lot to show off)

-Clean-up, optimizing, and generalizing of star generation. Tweaked star sizes and spacing.
-“Apparent Luminosity” of stars is now affected by the luminosity of the star they’re being observed from. Parking at bright stars will result in much darker surroundings, whereas parking at small dark stars will give you a much clearer picture of the sky.
-Each star now has a sub-class which stores all its information. Random name generator creates (some hilarious!) names for each star.
-Galaxy generator now accepts a seed value.
-Dynamic ‘Jump Range’, play with your jump range settings, and watch your boundaries and jump lanes update to reflect that.
-Starlanes are drawn on all colonized stars, as well as the currently-selected star.
-Colonize the current star with a keypress, for testing purposes.
-Added bloom lighting, which looks really nice for the stars, but not so nice for anything else. If only I could apply the bloom to only the star objects…


Playing with creating new colonies. The ‘halos’ get cluttered up real quick…



A “true luminosity” view of the galaxy. Stars are a little smaller, the star spacing is a little tighter, and bloom lighting is making some subtle pretties.


Until a UI is in place, all star info is spat out into the console.
Stars are given a Spectral Class and a Luminosity Class. These are roughly based on this info on wikipedia.
For example, the star “Wook” is an FIII type star, which reads as “Yellow-White Giant”.
Vekio Ryagda Tore is a red main-sequence (MV) star. Red stars are typically dwarves or smaller, but rare ‘red giants’ will be generated.

Star Luminosity will determine the temperature of planets in that system. Planets in close orbit will be hotter, while planets in far orbits will be cooler. Planets’ geological activity, surface water, and thickness of atmosphere will also contribute to temperature. Terraforming a planet’s surface to produce ideal temperatures could involve altering these elements (drying up the oceans to warm things up, or blowing away the atmosphere to cool things down, etc).

Ideas are in place to simulate some sort of ‘planetary evolution’.
Potential bodies in an orbit around a star begin as an asteroid field with a certain amount of Matter. If Matter becomes high enough, the asteroid field accretes (is that a word?) into a World with a Geosphere. If too much Matter is present, a Gas Giant is formed.
If Geosphere rises high enough, geological activity melts water ice present in the World’s crust, and creates a Hydrosphere.
If enough water is present (along with high enough temperature and gravity), the oceans begin evaporating and creating an Atmosphere.
If the right amount of heat, water, and breathable air are present on a world, a Biosphere forms.
On top of this, random ‘anomalies’ could give Worlds strange distributions of Spheres. Biospheres on worlds with no air or water, water on boiling-hot worlds, geologically dead worlds with volcanic activity, etc.

Star System Generator Test

Here is a script that will simulate the formation of a star system. You can run this straight through python – no need to plug it into blender, although you can if you want (open in a new text block and hit “Run Script”)

You can set the arguments for the star system’s number of orbits, amount of Matter, and the ‘Age’ of the solar system, on the last line of the script. It will print a list of what bodies have formed in each orbit: Asteroid Belt, Protoplanet, Planet, Gas Giant, or empty space.

It distributes the available matter over the number of orbits, than takes the Age and ‘bakes’ the matter distribution: Heavier orbits try to ‘steal’ Matter from their lighter neighboring orbits through each iteration of Age.
The result is that young systems tend to have more evenly-distributed matter, so you get larger numbers of mid-sized bodies (planets). More mature systems tend to have smaller numbers of huge bodies, separated by lots of empty space or asteroids.

Hi your images didn’t get uploaded properly. It sometimes happens when taking a long time to write a long post that the images get discarded.

anyway it all sounds good. I’m looking forward to a demo. :smiley:

Another demo video, showing the beginnings of the UI (it’s just outputting info at the moment), as well as stellar body generation and some random name generation. Random.seed() is now defined if a seed is provided, before galaxy generation.

All went real smooth today, and things are coming together too well. A little more work and a playable demo is not far down the road.

A few small things have been cleaned up and fixed. Movement is now done through python rather than the Steering actuator (which I’m coming to dislike the more I use it), and is now quick, smooth, and only uses two lines of code:


vec = own.getVectTo(own.targetStar)
own.localLinearVelocity = vec[2]*(vec[0]*20)

Some random thought about Colony Structure:
Colonies will work on a sort of feudal heirarchy. Larger, more productive, more valuable systems will be where the player sets the major goals of their empire (building fleets of ships, completing research goals, colonizing new systems) while the surrounding (usually smaller, less productive, less valuable) colonies will automate themselves to serve the needs of their ‘Lords’, or the efforts of those servant systems could be pooled into the efforts of the ruler system (so the players are managing several colonies through one colony’s interface). Those worlds themselves could have smaller colonies and outposts working to support them.
This will keep the players from having to micro-manage every colony they own on every turn, but give them enough agency to keep the game from just playing itself. It also could reinforce the element of constructing a stable and effective chain of supplies, forcing in a way the players to funnel their resources toward a few super-power colonies.
Multiple worlds within a System could work the same way; each system having a designated ‘Central World’ which all the other colonized bodies work under.

Things are coming along steadily!
Updates:
-Fog of War implemented: The game goes through each of your empires’ stars, and puts stars which are either A) Above a threshold Apparent Luminosity from that star or B) Are within a set “Sensor Range” (1.5x FTL Jump Range) of that star, into a Visible Stars list. Only stars in this list are visible in-game, and only these stars can be selected.

-Scoring system: Each player has a score equal to the total Luminosity of all owned stars. More valuable/brighter stars are more ‘isolated’ and thus harder to get to, but less valuable/dimmer stars are more tightly grouped, but have less ambient light, so they give a better view of the local space.

-Only stars which are neighbors to a colonized star can be colonized. Also, colonies are not Founded until the beginning of the turn after they have been given a colonization order.

-For testing, a hot-key auto-colonizes the brightest three stars available to the player to colonize.


A baby picture of the new UI, now utilizing a bgl/blf-based text wrapper!
As of now, there are zero Text objects in the game. All is being drawn as true text, with much more accurate control of placement, size, and text resolution.
Also, the bloom filter seems to not be affecting text, which is nice.
The small text near the middle of the screen follows the mouse cursor, updating its info as the mouse touches different targets.

Hey that is nice ! how is it on performance ?

can you place it along a surface normal? centered to a face?

Efforts continue to do more re-writing – converting the colonization mechanic to be per-world rather than per-star, and figuring things out like whether or not multiple players can own worlds under the same star.

More thought goes into the generation of worlds. A Habitability rating (based on the world’s temperature, gravity and atmosphere) determines what percentage of the world’s Size is actually available for population. I’m using a bit of Star Wars logic here and assuming all worlds with an atmosphere have breathable air (as in oxygen, nitrogen, etc) for any species who requires breath, so long as that atmosphere is not too thin/thick, or isn’t implicitly ‘poisoned’. Excessive factory production on worlds that hold atmospheres could produce a Greenhouse Effect, which slowly increases the world’s atmosphere rating (which may or may not be a good thing for the colony!). Things such as Massive Solar Storms could strip away an atmosphere and make it less habitable.

This ‘Habitable Zone’ can be expanded by building Infrastructure (the cost of which is based on how ‘uninhabitable’ the world really is) which will increase the population max, up to the hard max of the world’s physical Size. Infrastructure should be fairly expensive to build, and require a healthy upkeep to keep its population alive and happy.
If a World has a Habitability of 0% (for instance, on an asteroid belt), Infrastructure is the only means to hold any kind of population on a world.

Creatures could potentially be engineered to live in the less habitible zones, and potentially recieve energy directly from radiation etc.

I heard that dwarf stars like most of those red ones there seldom have any planets, or that they only have small ones.
Have you got any binary systems? They would be fun to see, but like red dwarves they would lose all their outer planets, though in this case to gravitational interference.

I like the planet effect in game, though it’d look better if they were orbiting their stars.
Keep up the good work!

Looking good!

The star generator does take into account the star’s color when determining the number of orbits it has. Blue and red stars have the least, where the yellow-to-orange stars tend to have the most. At first I had many more orbits (up to 12 on some stars) but have culled it down to no more than 4 orbits per star.
I am obviously not going for hard realism here, and some creative license has to be taken in order to facilitate gameplay. More and more as development progresses, it seems :wink:

Binary systems are something I’ve thought about, but haven’t had any good reason to implement yet other than they would look cool. For now though, that would throw enough wrench in my works that I might just gloss over them and stick with single stars (save it for the sequel).
There could be other types of celestial bodies that can be implemented as well. Black/white holes, wormholes, neutron stars, nebulae, etc. But I need to get the basics ironed out before I can start throwing in the fun stuff.

I will implement world orbiting at some point. Again, it’s a purely visual thing so not at the top of the priority list. The model I built for it doesn’t translate 100% as well over to the real thing, so I will have to muck with it.

Binary systems, black holes, pulsars etc… would make good landmark features, to help orientate new players. Maybe they have no functional interaction, but they just serve to create a structure within the sysyem. Like when you want to remember where a certain star is and you know it’s to the left of a pulsar.

Or maybe they could have some effect on nearby colonies. Like black holes make people unhappy but increase science research…

I’ve been working on two things the last couple of days:

  1. Integrating BGUI into the game and using it for the primary UI systems. Still playing around with things, and absorbing what documentation I can find on the module. After much hair-pulling, I have finally nailed the use of custom fonts in BGUI.

  2. Under-the-hood, course mechanics. Specifically, the function of the Colony. How it’s parent World affects it. What the Colony produces, what it consumes.


Thrown together spreadsheet calculator to play with what in-game variables are in place at the moment (although the Colony python script is still a ways down the road…). This pic shows the values for a mostly ‘Earth-like’ World, which will probably be the baseline settings for each Species’ (player’s) Homeworld, or at least the baseline for an ideal starting World. Giving the player the option to set their own Homeworld conditions (and incidentally their Species traits) should certainly be a feature, and should probably allow for diverse and extreme sorts of play styles.

This represents a no-frills Colony, with starting-value technology. Tech should boost things like food/water/production rates, or increase the benefits/decrease the penalties of Worldly effects.
There should also be some form of semi-random “Fate Card” sorts of deals which can be un-covered on colonized Worlds, based on that World’s spheres. These will be like buffs, which give that Colony a boost in whatever quality, over X amount of turns.

Here is the spreadsheet, if anyone feels like playing with it. Included is both the .ods file for LibreOffice (which it was made with) and an .xls version for MS Excel, although it is untested and not guaranteed to work.

At present, a Colony will produce these resources:
FOOD: Needed for colonist survival. Food can be produced anywhere, but produces less than Water.
WATER: See Food. Water sources are scarce, and can’t be boosted by labor (like food), but water sources produce much Water.
PRODUCTION: Materials/Labor/Costs used to construct Buildings or Ships.
RESEARCH: Used for making the science get done.

Yeah. It’s MOO2 with Water. I’ve tried working with several other, more complex sets of resources but it always seems to boil down to something similar to the above. I want a system that’s both easy for me to work with and learn-able enough for the player. But still dynamic enough to not feel stale.

As for research & technology, I think my favorite model is that of Star Ruler, and it’s ‘Technology Web’
Instead of the classic ‘Tree’ of technology, which progresses in a linear fashion, the Web is a set of inter-linking Technologies, which are researched in incremental levels. Opening up a (random) linking Tech is a research project in itself, it’s RP cost lowering as the connected (researched) Tech levels up.
Leveling up Techs also gives a small bonus to all linking Techs, as similar research affects parallel subjects.
All of this should be possible to make functionally modular; start with a few working subjects, and plug in/out more as the mechanics become more polished.

This is really, really cool.

And, I know this comment has no place here because it has nothing to do with your project, and I am sorry…but, have you ever played the games “Geometry Wars” or “Relativity Wars”. One is a shooter, the other is a strategy game a lot like this project, but both are two dimensional. However, they are more like 2.5 dimensions because they use a grid surface to represent “space-time”, and different weapons or tools affect space time, as does gravity. So, gravity and space-time can be used at weapons, obstacles, or even useful tools to speed up travel by charting useful or safe courses.

I wonder if there is a way to accomplish a similar effect in 3-dimensions? Possibly using worm-holes as a goal of “technology” that can connect non-adjacent locations? Or black-holes or gravity sinks as creating obstacles between seemingly adjacent planets? I know combat is not a particular goal of your project, but perhaps “conflict” is? And while the combat may not be controlled, the effects of conflicts might be important? Perhaps communication technologies, line-of-sight problems might be interesting?

…Sorry! That randomness aside, this is a really really cool project!

A real quick sneak-peek of the new UI.

Actually, everything is new! I’ve re-constructed the game from scratch; took out a lot of things that don’t need to be there (yet, or ever), shaved off a ton of code, polished things up, and added some sound FX.

The random name generator has been re-vamped. It uses a method I now coin ‘Scrabble-Kana’. Using Scrabble letter scores (well, reverse scores) to determine choice weights, and following loosely the basic rules of Japanese Katakana syllable structure, we now get some nice names that don’t come out too goofy, most of the time.

Oh, did someone say something about black holes?

(just experimenting…the effect is not a cheap one…)