Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411421 Posts in 69363 Topics- by 58416 Members - Latest Member: JamesAGreen

April 18, 2024, 10:16:39 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsAlong Came Humans! - Sci-fi colonization game
Pages: [1] 2 3 4
Print
Author Topic: Along Came Humans! - Sci-fi colonization game  (Read 15658 times)
Prodigga
Level 0
***


Programmer


View Profile
« on: August 30, 2016, 07:50:51 PM »

Along Came Humans
A real time galactic economy simulation game.

A sleeper ships unexpectedly drops out of warp. Location unkown, but the objective is clear. Colonize planets, nurture your colonies into sprawling cities! Rebuild civilization and leave no rock unsettled!

The humans have arrived!






This post has been edited, old post contents bellow:

Hey guys, working on my next project. I want to create a game where your goal is to grow your civilisation colonise the entire galaxy. You can think of it like a 4x game, with very little emphasis on the eXterminate part of 4x.

Anyway, not much to put out there right now, I am just in the phase of prototyping some of my ideas and I thought I'd share my progress as I go along.

A part of this game involves trading resource between your planets. You will be giving freighters instructions on what to take and where to take it.

For this I needed some basic path finding - the freighters need to be able to find their way between planets on their way to their destination. Also, I wanted to add support for 'portals' that speed up travel time (Think 'warp gates' for instantaneous transportation, etc).

Here is the pathfinding finding a way around 2 'planets'. The planets simply register themselves with the pathfinding system as 'obstacles' and define their radius and position. The purple line is the raw path, and the green line is the collision corrected path.



Here are what I am calling 'tradelinks' connecting the 2 points (Blue) - Tradelinks double the speed of anything flying through it and so the pathfinder has suggested we use the trade links




Next I wanted to put together a 'freighter' script and make it pick up resource from one planet and drop it off at another. I hacked this stuff in relatively quickly as just proof of concept to get an idea of what it'll look like.

The freighter has to dock with the station orbiting the planet and request resources. The station retrieves the resources from the surface using whatever means the player has chosen (Space elevator? Rocket launches? Railgun space launch?) etc. Then it loads the goods on to the freighter and the freighter is good to go. During this time, the freighter is occupying the dock, so other freighters will have to wait (Not shown here).

One of my goals with this project is attention to small detail, and this is just a taste of that I suppose! When the freighter docks, in the final product you would be able to see a small rocket launch from the surface and arrive at the station, then a crane will load a container on to the freighter before the freighter is ready to launch.

Keep in mind this isn't real time, it's been sped up, cuz gifs be large yo! Wink Also, it's nothing pretty as I am just using some lines to visualise the underlying simulation.



Same as before, but with a tradelink



Enjoy
« Last Edit: September 26, 2016, 11:41:38 PM by Prodigga » Logged

Juskelis
Level 1
*



View Profile
« Reply #1 on: August 30, 2016, 08:13:28 PM »

This looks really cool! How many planets are planning on having?
Logged

Prodigga
Level 0
***


Programmer


View Profile
« Reply #2 on: August 30, 2016, 08:42:06 PM »

Probably around 18 quintillion. Wink

Seriously though, I haven't really thought about the exact count yet to be honest. Currently just prototyping broad concepts, and will begin to narrow down on specifics later.

I have a nice big document on my PC that I keep appending ideas to. One thing seems clear - planets are going to play a big role in the game, so there will probably be at least 1 in each system. I was thinking about the primary 'goal' or 'objective' of the player - end game milestones. Currently I have 3, each a step away from the other. The first one is to turn your starter planet into a 'gold star colony' (Just calling it this internally!), which is a planet with a certain population size, health, and happiness. Second would be to do the same on a planet that is normally not suitable for human colonisation (Ice planet, desert planet, etc). And maybe the third is to have a gold star colony on each planet type.

Oh and I have something relatively cartoony in mind for the graphics, mainly because the game itself will be fairly unrealistic in a lot of ways. (ie, planets will probably be single biome - forest planet, ice planet, etc, won't revolve around the sun, freighters and space stations will probably look 'gigantic' when placed next to planets). This game is actually something I wanted to do for a while but it was on hold. Before putting it on hold, I had created some art to give myself an idea of what the game might look like.

« Last Edit: August 31, 2016, 08:18:05 PM by Prodigga » Logged

tankorsmash
Level 1
*



View Profile
« Reply #3 on: August 30, 2016, 08:56:18 PM »

Those planets are pretty neat looking. Not quite sure how your game plays, but having huge planets to colonize sounds like a good time.
Logged

Prodigga
Level 0
***


Programmer


View Profile
« Reply #4 on: August 31, 2016, 12:00:10 AM »

Todays progress, just working on a camera + camera controls. I overlayed the simulation on top of the 3d graphics, looks sorta cool!

Logged

gornova
Level 0
***


View Profile WWW
« Reply #5 on: August 31, 2016, 02:58:01 AM »

very nice visuals and zooming is solid, well done so far! Gentleman

For my taste is more important empire building and expanding than exterminate.. maybe player could be an interplanetary company owner building trade routes, rushing against other competitor for market monopoly ?
Logged

Blog | Last game Number+
Prodigga
Level 0
***


Programmer


View Profile
« Reply #6 on: August 31, 2016, 03:50:39 AM »

Thanks buddy! Same here, I love building up my civilization. Sometimes I'll play Civilization with the AI on lower difficulty just so I can focus on establishing towns, growing them in to city, etc.

I am drawing a lot of inspiration from that side of Civilization, as well as Anno (Economy, production chains) and Transport Tycoon (Fleet management).

Currently the plan is that you will not directly control the growth of your colonies. You will be in charge of providing them with the resources they need to grow and prosper. This won't be SimCity in space! Again, Transport Tycoon is an inspiration here - if you've played if you've no doubt had the pleasure of seeing a well supplied town grow in to a city.

I would like the player to have some sort of control over the type of colony the planet will grow in to, but I have not fleshed this part out yet. For example, it would be cool to let the player estbalish a slave colony on an ore rich planet and harvest everything there, manufacture luxary goods with the ore and ship them to their home planet where people live in luxary in a giant sprawling City! Cheesy You could build a Utopia if you like, or be completely evil! Again, no solid ideas yet, just thoughts.

As for competitors, again, I'm not sure if or how I will implement it. It certainly would be cool to have neighbouring civilization in other solar systems run by am AI so you could later establish trade routes and what not between each other. Though I don't want this to be a combat game, and I'm not sure how I would handle situations where the AI takes something you wanted, for example.

You've touched a little bit on backstory - in my head I imagine you as the captain of a sleeper ship sent out to establish a new colony out in the depths of space. This sleeper ship contains everything you need to start your first colony, which is how the game would start. You can see how this plays in to the idea that you will be out there alone, with no competing factions/players.
Logged

gornova
Level 0
***


View Profile WWW
« Reply #7 on: August 31, 2016, 04:41:16 AM »

Quote
You've touched a little bit on backstory - in my head I imagine you as the captain of a sleeper ship sent out to establish a new colony out in the depths of space. This sleeper ship contains everything you need to start your first colony, which is how the game would start. You can see how this plays in to the idea that you will be out there alone, with no competing factions/players.

I like this idea, in my mind your game could be:
- player unload people on planet and let them build the colony
- move in the sector exploring new planets and so on
- gather resources to expand colony
- build new colonies, trade routes and so on

But colony management is more or less independent and depends on leader personality (for example: science guy, bioethic guy and so on) that need different kind of resources => at this points, like in transport tycoon, some other captain shows up and try to beat you building a trade company better than yours, exploring more distant, get more resources and so on..
Logged

Blog | Last game Number+
Prodigga
Level 0
***


Programmer


View Profile
« Reply #8 on: August 31, 2016, 05:04:42 AM »

Picking a character to govern a colony is a good idea, the person I charge can influence the colony's growth based on their attributes. Maybe a rugged character with a Mining background would provide a boost to mining production on the planet, and maybe the planet requires new luxary goods to remain happy (Booze? Haha). Could have an effect on what the structures look like visually too, maybe the planet slowly turns Brown over time like in Anno when you go with the industrial faction.

Transport Tycoon, for me atleast, kept me busy enough and was fulfilling enough without AI. I personally disliked it when an AI would start setting up buses and trains to service a city I was trying to grow. I think a big part of the satisfaction in this game will come from seeing your colony proposer, and having an AI have an effect on your colony might rob you of some of that satisfaction.

I do like the idea of another sleeper ship appearing and colonising nearby solar systems. You could still estbalish trade routes with them to trade resources that you might not have access to. I like the idea of growing an alliance with an AI and both benefiting from one another. For now though, I'm shelving AI until I get more of the features I have planner in to the game. Can stop and evaluate at the point. I think the added complexity of an AI civilization that you could trade and interact with is a welcomed addition to a game like this, so I'm going to keep an open mind about it going forward.

Oh, and bonus gif! This was also made a while ago, I don't think structures would be this large in the actual game, but thought I would share anyway.

Logged

gornova
Level 0
***


View Profile WWW
« Reply #9 on: August 31, 2016, 06:42:34 AM »

I like the style, please set up a website with a newsletter so i can be updated  Beer!
Logged

Blog | Last game Number+
Prodigga
Level 0
***


Programmer


View Profile
« Reply #10 on: August 31, 2016, 07:01:57 AM »

Thanks man! Will do eventually  Smiley
Logged

Prodigga
Level 0
***


Programmer


View Profile
« Reply #11 on: September 01, 2016, 03:57:52 AM »

Warning, rambling ahead! Skip to the bottom for sweet sweet gifs.

So I've done a lot of thinking, and have decided that I have to completely decoupled the simulation logic from the graphics. In the gifs I've posted above, all the entities (planets, ships, stations) are Unity Gameobjects with scripts attached. This setup won't get me very far. If I want to simulate dozens of solar systems, I don't want to have dozens of solar systems worth of Gameobjects instantiated. The simulator should be lightweight, and only calculate the bare minimum required.

Sooo, today I spent time rewriting everything and seperating all the simulation from the visual representation of things. I am able to run the entire game in a headless mode, with no GUI or other graphics. Completely in "code land", as I like to say, lol.

Now, with the entirety of the simulation available to me, I can write any type of visualiser I like. For example, I can write a visualiser that I can pass a SolarSystem object to, and have it generate all the 3d graphics required to visualise that solar system. This visualiser can instantiate 3d freighter Gameobjects and bind one to each of the simulation freighters that are currently located in the solar system. These 3d 'puppets' will just position themselves to wherever the freighter actually is in the simulation. Bam, 3d visualisation of all the freighters in that system. I'll do something similar to every type of object in the solar system, and that's how I will generate the 3d visuals for that solar system.

It sounds relatively straightforward on paper, but there is going to be a lot of challenges to tackle in the future. For example, I want the player to be able to see a freighter unload its cargo at the space station. This unload operation takes 2 seconds, and in the simulation it is represented by a 2 second timer. However, the visualisation will be a lot more complicated than that - the visualiser will need to detect when the ship has started its unload operation, and begin playing some sort of animation that needs to wrap up before the 2 second timer is up (otherwise the visualisation will be out of sync with the simulation). It gets even more complicated when initialising the visualisation of a solar system where a ship is docked at a space station and is halfway through its unload operation. The visualiser has to somehow start the unload animation halfway through. Anyway, these are problems for another day, and I already have some ideas in mind for how I am going to achieve this. Just thought I would offload some of my thoughts here!

Now, time for gifs!

I haven't started work on a 3d visualiser yet, but I have written a "debug visualiser" which just visualises the raw simulation data using lines and shapes. The Cube in the gif has nothing to do with anything, and I should've removed it before recoding the gifs, Whoops Cheesy

Here is a solar system with 2000 ships (this is way more than I expect people to build in the final game). Each ship picks up 10 food from a planet and takes it to another planet, 10x speed.



Same as before, but here I am placing tradelanes in to the system. The freighters prioritize these. (Starts at 1x speed, jumps to 10x after i place tradelanes)



Lastly, a close up of one of the stations. The stations all have a limited number of docks (Yellow circles). When a freighter approaches, it requests a dock and is put in to a queue until a dock is assigned to it. The freighter occupies the dock until it is finished unloading its cargo. The cyan circle is a hanger, which is where freighters appear when you purchase them. (Not shown here)



Chewing around 1.5-2 ms with 2000 agents, I'm happy.
Logged

Greipur
Level 6
*



View Profile WWW
« Reply #12 on: September 01, 2016, 04:16:41 AM »

Posting to follow updates, it looks promising. I would recommend getting a temporary project name for the game as soon as possible, if you're keen on having the game become known at this stage that is. Wink
Logged

Prodigga
Level 0
***


Programmer


View Profile
« Reply #13 on: September 01, 2016, 06:25:56 AM »

But thats haaaard.  Wink

I have a trello board running that I've invited a few friends on to, were just posting up names that pop into our heads. Got a few good ones, but I haven't decided on anything yet. Soon!
Logged

gornova
Level 0
***


View Profile WWW
« Reply #14 on: September 02, 2016, 02:15:25 AM »

ideas:

Star Trader Tycoon
Star shark
Stellar Trader
Interplanetary Tycoon
Colony Trader
Logged

Blog | Last game Number+
Prodigga
Level 0
***


Programmer


View Profile
« Reply #15 on: September 02, 2016, 03:08:42 AM »

Nice, added those to the list of names. Current top 5:

  • Along Came Humans
  • Colony 54
  • Humans Retold
  • Humanity's Progress
  • Star Colony
  • One More Planet

(Removed Star Colony cuz' a browser game already exists with this name!)

Really liking the sound and feel of 'Along Came Humans'.

Progress report for today: not much happened. I added in some code to handle production facilities on the planet that generate resources. (Think farms, etc). But I need to take a step back and plan this part out a little better. Going to think up a few new milestones this weekend for me to tackle next week, I'm basically out of tasks for this week!
« Last Edit: September 02, 2016, 03:55:41 AM by Prodigga » Logged

thekosmonaut
Level 0
***


View Profile
« Reply #16 on: September 02, 2016, 03:56:26 AM »

this looks really promising!
Logged

Vilanat
Level 0
**



View Profile
« Reply #17 on: September 02, 2016, 07:44:21 AM »

Posting to watch.

I hope it will be possible to demolish planets to construct those interstellar highways
Logged
Prodigga
Level 0
***


Programmer


View Profile
« Reply #18 on: September 03, 2016, 03:19:53 AM »

Haha the thought had crossed my mind - allow the user to mine abplabet dry, the planet slowly decreasing in size until, poof, no more planet, haha. Adds way too much complexity though.

More thoughts and rambling ahead..

I've been thinking a lot about how I am going to approach planets this weekend and I think I've settled on a solution.

Planning to generate planets with hexagon tiles, this will act as the building grid for the planet.

The terrain will be similar to StarCraft, where there will be X levels of elevation, and a bottom level that can't be built on. So each tile will have its own elevation and the tiles will be seperated by cliff faces if their elevation differs. The lowest elevation level will be reserved for water, lava, ice or spike pit depending on the planets biome, meaning you won't be able to construct there regardless of the planet type. This will make it easy for me to swap out the graphics if you start terraforming a planet!

Other issues I've been thinking about: simulating colony growth on planets. As mentioned, I want to be able to simulate the game in headless mode. Everything should be data driven. There is some work validation work I can offload to the graphical side - for example I don't want the user to place a space station on top of another. I can just prevent the user from placing one if it overlaps with another station. The simulation doesn't care where it is placed, for all it cares it can be right on top of another station, but I don't need to check that because I can validate the station position while the user is placing the station. That's all well and good, but colony's were an issue. They grow by themselves. They need to be able to decide where to place new buildings and make sure the buildings aren't in water and overlapping other structures. So the validation has to be in the simulation in this case, and it caused an awkward overlap between graphics and simulation. I didn't want the simulation to have to worry about what the planet looked like or have the do radial checks against everything on the planet to ensure the building placements were unobstructed. Buuuut if the planet was made up of tiles, it all becomes very easy. I just check to make sure the tile is empty and at a valid elevation, and bam, I know I can place a building there. Problem solved.

Another issue with colonies was that because they are self governed, they might construct residential buildings over tiles that you planned to build on as they grow. It would suck to have to demolish these residential structures because you wanted to build a farm on that tile. One solution would be to let the user place down residential structures themselves, but I don't want the user to have to micromanage the colony's like that. I want the colony's to feel like living breathing organisms that grow by on their own as you feed them with the resources and goods that they need. So, I've made some compromises and settled half way. I will let the player assign tiles to the colony, and the self governed colony can construct on these tiles however it sees fit. This will also let the user cap the size of a colony if they want it to stay a certain size or if they don't yet have the resources to sustain a larger colony on that planet.

Lastly, it feel alike I am going to go with Along Came Humans as the name of the game. I will sleep on it till Monday, and if I cant come up with anything better, its settled!
Logged

Prodigga
Level 0
***


Programmer


View Profile
« Reply #19 on: September 05, 2016, 02:32:43 AM »

So today was a bit rough, I had some issues and I had to format my PC. Nothing was lost, since everything is backed up to an external repository! Just had to waste a lot of time pulling down a copy of Win10, Unity, Visual Studio, etc.

After all that crap was over, I spent some time playing around with some graphics. I've been trying to figure out how I am going to represent structures on the surface of a planet, and my previous post goes in to some detail regarding that. I settled on a hexagon building grid as mentioned, and the plan was to create a 3d tileset consisting of hexagonal graphics that I could also over the tiles. One problem, however. Turns out when you generate a hexegon tiled sphere, the hexegons aren't the same shape..! That was a big problem, because it ment that chunks in my terrain would have seams, since the terrain tiles would never join up correctly.

Luckily I had seen someone who had to tackle the exact same issue. A Unity developer put together a gorgeous interactive planet demo, where you can place down mediaeval towns and forests. His solution was to build his tileset out of triangle peices, and stretch/squish the triangle tiles to fit the 6 tiles that make up a hexagon. Rather than reinventing the wheel, I will be doing something very similar to him. You can read all about it and see it in action here. Truly awesome! All credit goes to him for the technique.

The First step was to figure out how many triangle tiles I will need for each tile set to satisfy every possible combination of edges. Much to my surprise, it wasn't much at all! With 4 unique tiles, excluding the filled tile, you can cover all edge combinations!

I put together a quick tileset to test it out. This is a "glass dome" tileset that might be placed over the top of a colony located on a planet lacking a breathable atmosphere. Here are the tiles:



And here is a mock-up of some hexagons connected together using the tileset.



Tomorrow I will attempt to map the tiles to the hexegons on the surface of a sphere to see how it looks!

Also, I've purchased AlongCameHumans.com so it's official, that's the name. Wink
Logged

Pages: [1] 2 3 4
Print
Jump to:  

Theme orange-lt created by panic