Skip to content

[Overhaul] Future of Project Porcupine #1789

@BraedonWooding

Description

@BraedonWooding

Project Porcupine needs a system wise facelift to be relevant. Feature wise we need more to separate us from other games and I think the key is in factions and allowing you to fly spaceships around and manage trade between a few large bases. But to tackle any facelift we need to isolate the problems of the project and move to change them. So below is a mostly comprehensive (tell me if I missed anything) of ANY thing that needs work, I have given a personal judgement on what should happen, once we decide then we can work on fixing the small things, then having a more focused game to allow developers to jump in and easily make changes and have fun! I'll do some of the bigger points first then just a list.

How do we do this?

Everything on this list needs work (+ others I'm sure). But documentation is key, so it's about documenting how they currently work and suggested changes then as a community we can discuss changes then make changes; proper gamedev style.

UI

  • In most cases it's counter-intuitive and lacking. Mod dialogs are somewhat annoying to build and extend and it doesn't make a whole lot of sense and is quite static.
  • Suggestion: Begin removing the old UI systems and replace them with my UI system, it will have support for LUA very soon, using a custom LUA table to interact between them, obviously it won't be as powerful in LUA but for most cases around 90% of it can be done in the XML/JSON and even more with custom parameter support which was added recently! This means we can make it very similar to the android way but also allow more closer access ( @koosemose suggested more of an android approach ).
  • Pros: Very easy to use, allow extending the base UI element for a different array of uses, i.e. the PerformanceHUD allows you to use an update function where the settings menu uses apply and cancel functions. Custom parameters for easy API use of good base classes.
  • Cons: Not as easy to just insert into a system, requires an extensive use of layouts (which will make sure everything works pretty) but will often result in more time setting it up. Can't just 'create' a place on the screen has to assign it to somewhere, this means that a dialog will most likely just be a static window (and position) with its contents being dynamic with this system.

Job System

  • There is a lot, and I've discussed it before so New Job System(tm) #726 New Job System #1590 cover it better. Basically needs an overhaul, I'm thinking going utility route, i.e. ISearchable, IFindable, IStorage and so on.
  • Suggestion: From completely scratch, get it right second time kind of thing. MASSIVE undertaking however.

Components

  • While I have my concerns about it, I kind of also see its power and potential. Maybe a facelift from API and ease of use / documentation would reallllyyyyy help.

List of others

  • Traders, mostly incomplete
    • Suggestion: Deprecate for now, then later re-add with more focus on factions
  • Quests, broken? Lacking
    • Suggestion: Deprecate for now, then later re-add with more focus on impact on fuactions.
  • Temperature and Atmosphere, in a WIP PR
    • Suggestion: Don't add any new features that use this system and keep it deprecated till author has more time, or move it to someone else.
  • Pathfinding, issues here and there
    • Suggestion: Mostly good keep it in its current format, just isolated so it can be redone at one point.
  • Localization, actually quite good. Some old code
    • Suggestion: Actually quite like it, sometimes a bit awkward and probably needs threading and there was a PR previously that fixed a lot of issues so maybe look into that and finish it?
  • Utilities, getting there and quite powerful
    • Suggestion: No problems that I can see of, and quite popular for changes so maybe small changes but quite good.
  • Modding, weak and everywhere
    • Suggestion: A lot of code is everywhere for the modding, some of it supports it, some of it only supports one language (I'm at fault for this), and some supports really well. UI Dialogs are messy, and a lot of the code feels that way. Temperature and other key components should be moved to a mod, note they can still be native but they have to be toggleable (in case we need speed).
  • World, mostly 'future'
    • Suggestion: I personally love the 3D space we give and the ability to fight in 3D space using a 2D ship could be really cool and fun, along with allowing a great deal of help. Though I think taking an even more isometric point of view is necessary. I'm talking almost 45 degrees rather than our current ~15. Then rotating around, so basically it's like imagine a 3D view... but 2D? I mean we could even go 3D to be perfectly honest but frame rates and stuff would suffer.
  • World Gen is basically perfect right now, I quite like it
  • Characters need more stats and focus!
    • Suggestion: Ignore for now, but maybe even implement support but not direct interaction. Basically just keep everything functional and isolated so moving to a new format or adding stuff is easy.
  • Building, not context sensitive!
    • Suggestion: If I'm building a wall I want a line not an area. So have options? Seems good else wise.
  • Furniture, Not really a problem
    • Suggestion: Probably needs some changes at one point but currently good.
  • Events, not powerful enough
    • Suggestion: Too weak and safe, needs more power
  • Wallet, currency all that stuff is too weak and isn't used and probably needs changes
    • Suggestion: Really just feels 'there' needs a reason or deprecate till traders are back

If there are any more comment below!

Note: I'm not including the SettingsMenu, DevConsole and PerformanceHUD on this since they are all new features (along with asteroid generator, game time, sound...) and will receive small changes but seem to be done right. They are isolated so updating is easy!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions