How do you add a new feature set to your game?

So I have this game that I’m making and want to add a new game-play feature set. My problem is that I don’t quite know how I’m going to go about it so it will be extremely r & d based to start with. So how do you tackle a task such as this?

I really don’t want to start by researching in my live project because it may require that I make project type changes that eventually get un-done due to moving in a different direction. And who’s to say that I’ll remember every change that was made during testing? I want to avoid dropping breadcrumbs in my live project that are no longer necessary should I change directions in the final design.

I was thinking of exporting all of the relevant classes into a custom package and importing them into a new Playground project but before I did, I wanted to see what is typically done first.

Thanks for your input,

Just use GIT - its what its meant for.
You don’t have to use it online - it can be purely local - thats what I do.

You can create a branch, do your tests, then merge back if you want to keep them or discard them.

I actually keep manual copies of the entire project on seperate drives anyway, so there is no danger of ever losing a version from a point in time.

Hello @KickshawProgrammer Well, as @ATate and @Pangamini pointed out, you should be using GIT. With GIT you can easily test new features on a branch without breaking the main project. I’ts also very quick to switch from branch to branch.

If your project is a “Dependency Nightmare” maybe you will want to make some new systems on a prototype project. Probably when you want to make closed systems and they don’t need you to reimport half of your project. Don’t do it for taking different directions, just to test closed systems!

Now, lets say you made a Dependency Nightmare (which I conclude you made by your post). I have a solution for you. Watch the Ryan Hipple’s talk about Scriptable Objects Architecture.
This may not solve your current game because you’ll need to implement if from the base up, but it will be useful to learn it for your next projects. With this architecture (or DOTS/ECS) you can easily test things alone on a test scene. May look hard at first, once implemented it’s easy to maintain, scale, test and debug.