Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature set: Building the base. (Constructing floor, needing rooms(air), airlocks) #49

Closed
2 of 9 tasks
emilkris33 opened this issue Aug 17, 2016 · 15 comments
Closed
2 of 9 tasks

Comments

@emilkris33
Copy link
Contributor

emilkris33 commented Aug 17, 2016

This is is an outline of what i view is the set of features that is logical for us to move development towards right now and a road map for how i think we should go about getting there. This should all be uncontroversial stuff i line with what @quill18 has already talked about in videos. All feedback is greatly appreciated so we can all move towards a common vision of at least the next few steps in development.

Features to aim for

  • Everything is constructed by a character (no magical floor)
  • An enclosed with an atmosphere is required for normal functioning of most things
  • Characters can go through an airlock to access outside areas (for construction new rooms)
  • Game starts with a bare minimum construction (One small room and airlock?) and some materials
  • System for generating, maintain and requiring an atmosphere(For now just oxygen)

Roadmap

What needs to be implemented in the engine to accomplish this in rough order that it has to be done. Some things might need to be broken up into several steps.

  • Character able to walk on empty tiles
  • Character build floor incl. job creation for floor building
  • Airlocks, (different door from internal doors or a small room with two doors that we frequently depressurise?)
  • Atmosphere requirement for some buildings
  • Prevent deconstruction of outer walls and floor in a pressurised zone
  • Path-finding logic to handle differentiating between inside and outside (Only exit the airlock when required)
  • Job logic to handle bringing material for multiple constructions (Don't bring stuff for only one floor tile on each trip outside.
  • Generate initial construction
  • Expand atmosphere system. (Flow air between rooms)
@TheRiven
Copy link
Contributor

As a novice trying to work out what to do to help out, an approved task/roadmap list would definitely be helpful. I imagine I am not the only one scratching his head watching stuff popping up having never been involved in a project like this. (or any coding project for that matter! 😕 )

I have not done any serious programming until Quills tutorials, only dabbled, and so I am lacking in any 'serious' experience. I have now gotten to the stage, thanks to Quill, that I can more or less work my way through most problems (if a bit slowly) and even see some possible solutions as Quill was running through a video (an awesome feeling!).

So any directions/suggestions on where best to contribute would be most appreciated! 😄

As a side note to contribute to your roadmap : do we also want to think about power systems for buildings? or is that to soon?

@lameox
Copy link
Contributor

lameox commented Aug 17, 2016

Hey @TheRiven, I think one of the easier parts to work on will be the walking on empty tiles.

From an ingame perspective this would be kind of like floating through space. Thus I propose the notion of something like a space-suit that our characters can wear. For now this can just be the default and the characters never change clothes. So all you would really need to do, is implement a Tile-Type space and the appropriate lua script that just marks it as always passable. Then you need to adjust the Pathfinding code to treat null tiles as Space tiles and you should be done.

If you want to go the extra mile, add a Clothing attribute to the characters, and check, that the space tiles are only traversable in appropriate suits. We can then expand on that when implementing the airlocks, so the character automatically switches from spacesuit to indoor clothing and vice versa.

Hope this helps as a good jumping-off point

@emilkris33
Copy link
Contributor Author

@TheRiven It is definitely a big challenge for all of us to avoid several people working on the same thing and exactly how to coordinate all of this is something we will have to figure out. Getting started is about finding something to work on and then deciding what the minimal possible thing on the way to that you can implement and have work and then go from there. @lameox had a suggestion, you yourself mention a power system and I have atmosphere system on my road map, all of these are thing someone could potentially work on now. Start small and go from there.

@TheRiven
Copy link
Contributor

Thanks @emilkris33 and @lameox for the tips!
I think then I will give my own suggestion a go and try an set up a basic power supply and demand system for now. Hopefully it will work out!

@lameox
Copy link
Contributor

lameox commented Aug 17, 2016

That is quite the task. Good Luck and feel free to ask if you need any help!

@MattPotticary
Copy link
Contributor

I am completely new to any open source project but I was thinking of tackling the issue of not being able to destroy walls / floors for outside walls. However I am not 100% sure about how to go about it.

I was thinking of having a bool flag on the furniture class and when a room is created by the flood fill the walls are check to see if they sit next to an unpressurised room.

From there it would just be a simple check when a character is given a job to see if they can de-construct it.

@emilkris33
Copy link
Contributor Author

emilkris33 commented Aug 17, 2016

@Mattpott instead of having a flag you could just check if it is connected both to a pressurised room and to the outside when destroying.

Also for anyone following the issue i am currently working on improving the atmosphere system

@MattPotticary
Copy link
Contributor

MattPotticary commented Aug 17, 2016

Something like this in the furniture class in the de-construct method? I don't have access to unity at the moment to test it.

if tile.room.IsOutsideRoom() == false
{
    Tile neighbours[] = Tile.GetNeighbours()
    foreach Tile t in neighbours
    {
        if t == null
        {
            continue
        }
        if t.room.IsOutsideRoom()
        {
            return
        }
    }
}

@emilkris33
Copy link
Contributor Author

@Mattpott mostly though keep in mind that the tile of the wall does not have a room. You need to check the adjacent tiled for rooms. If all are outside, no problem, if all are actual rooms, no problem. If you have some outside and some actual rooms, then you have a problem.

Also think about where this should be checked when marking for deconstruction or when doing it, or both. And should it be impossible to make a hole in the space station, should you just warn the player, or are there maybe disastrous consequences to suddenly decompressing a room.

@GamerGeeked
Copy link

GamerGeeked commented Aug 18, 2016

The airlock is sort of already in (#166)

@emilkris33
Copy link
Contributor Author

@ComputerOverlord that is me implementing the idea I present here

@GamerGeeked
Copy link

@emilkris33 Ah... Sorry... Haha
It's wierd, that one, we had pretty much the same idea...

@quill18 quill18 added this to the Version 0.1 milestone Aug 22, 2016
@kd7uiy
Copy link
Contributor

kd7uiy commented Aug 29, 2016

This is covered in the wiki, it might be better to close this?

@vogonistic
Copy link
Collaborator

No, this is one of the issues we are tracking for 0.1 milestone. We might want to reword some of the criteria and check off some of them though.

@vogonistic
Copy link
Collaborator

My bad, I didn't realize how fleshed out the wiki tracking was. I'm closing this now in favor of Milestone 0.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants