Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by bruno-ribeiro · May 16, 2017 at 04:18 PM · gitupdatesteamsprojectsteamwork

Creating a core project to be used on several projects

Hello there,

I want to create a core project with some functions like save & load progress, level selection, scene transitions etc. so other people can create games with it.

The problem is: while these other people work on their projects, I'll keep updating the core project with new features and bugfixes.

How can they easily update their version of the core project on their projects? Should we use some version control scheme like git, or AssetBundles?

Thanks, Bruno

Comment
Add comment · Show 2
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image NoseKills · May 16, 2017 at 04:49 PM 0
Share

I have a mercurial repository with everything game-independent in it (so far only code) and i add it as a subrepository to all the projects i start.

avatar image tanveertak · May 16, 2017 at 08:55 PM 0
Share

yes using version control system like git(bit bucket/tortoise) will make it easier .Other user will clone your projects and other might pull your projects if changes by using commit -m messages if updated. others will see by the log commit -m message you have done latest

3 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by Vallant · May 17, 2017 at 07:24 AM

https://docs.unity3d.com/Manual/AssetPackages.html

What will help is an asset package, like the standard assets or things on the asset store.

"You can re-name an updated package and Unity will recognize it as an update, so you can use incremental naming, for example: MyAssetPackageVer1, MyAssetPackageVer2."

Make a place to download them from like a cloud drive, git, or something. Then the people working on other projects should be responsible for adding the updated asset package to their collaborate/git.

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image
0

Answer by jmgek · May 16, 2017 at 11:03 PM

"How can they easily update their version of the core project on their projects? "

Your best bet would to create a .dll (library) for your projects, for a few reasons

  • Once you have it created and built out you can just toss it in your project directory and continue to use all the library functions, as if they had the scripts loaded into their project directory.

  • If your worried they will steal your project code they will have to unpack your dll (Not that many people know how, and if you use Managed code C++ it's even harder)

  • You give them a single file: "For this example, create a new project in Unity and copy the built file /bin/Debug/DLLTest.dll into the Assets folder. Then, create a C# script called “Test” in Assets, and replace its contents with the following code:"

  • It's cleaner and it gives you more knowledge for the industry Working with libraries is a industry standard.

You can even end up selling it on the asset store if you wish.

https://docs.unity3d.com/Manual/UsingDLL.html

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image
0

Answer by ThePunisher · May 16, 2017 at 11:08 PM

If this core project only provides code, then you can create a library that produces a DLL and bring that DLL as an asset into each of the games that require it.

For example, our company setup a library that provided a myriad of functionality. Some were simple utility scripts, while others were complex mono behaviors that people could attach to get up and running quickly. This library was a Microsoft Visual Studio solution which was version-controlled on a perforce server. Game Developers would then setup their Perforce client workspace to include the library and their game. This library would be pre-configured with a post-build step to deploy the DLL into the unity project's asset directory. When an update was made to the library all the game developers had to do was sync their workspace (which included the library) and rebuild the solution.

Let me know if you need me to elaborate or go into detail for anything I described above. I'm sure there's a multitude of ways of implementing such a library but this is what worked best for us.

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

7 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

What is the best method for collaboration in very small teams (2-3 people)? 1 Answer

Better teamworking process or tools than pure Git 1 Answer

Help with using Git for version control 2 Answers

Make git ignore *_Data/ build output 1 Answer

Unity Xcode project and source control 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges