codelibrary's Introduction
- Welcome to Code Library - Code library is a collection of general purpose code tools, deemed usable for other applications. Code library is not used directly, but instead used via SVN's externals feature. You create an appropriate host folder for the file in your repository, and configure it to pull files from here. - Methodology - Libraries *do not* need to be in Code Library to be useful. Only libraries that are deemed general purpose, and unlikely to change in a bad way by the project manager should be included in Code Library. This can and should include: - File IO code - Compression code - File Format Loaders - Math Libraries - Debugging Libraries included here should NOT use virtuals, RTTI, try/catch, and other such "C enhanced" features that generate code. Templates, classes, C++ casting, and such can generate the same code as C would, so they're acceptable and encouraged. Engine specific implementations, despite weather they're used in multiple games or not, should not be included in Code Library. Code Library is for general purpose new project code. If you're building a new game based on an old one, start with that games code and specialize it to suit your needs, in your own repository. DON'T ISOLATE IT AND ADD IT TO CODE LIBRARY! The only exception to the rules may be for a GUI/Menu/HUD library, as the concept of windows, borders, and so on is pretty well defined. However, there may be multiple implementations. With physics, without physics, etc. - General Organization - trunk/ trunk/Elements/. - Parts that make up a larger general purpose library. Code goes here. trunk/Libraries/. - Specific implementions of libraries, with used Elements externally linked. trunk/Externals/. - External libraries (zlib, bzip, etc) go here trunk/Platforms/. - Platform specific libraries and implementations go here. Elements and Libraries. tags/. - specifically notable revisions of code library. When a game ships, etc. branches/. - Asumed to be unused, but here for future expansion - How to use SVN Externals - Give a folder the property "svn:externals". Edit this property, adding a list of desired targets. FileIO/ svn://Duffalo/puffbomb/trunk/Code/Library/FileIO Trunko/ svn://Duffalo/twisted/test2ndtrunk Yurbo/ -r214 svn://Duffalo/puffbomb/trunk/Code/Library/Input Once you do an update, the folders on the left will be created, contianing the contents of the folders on the right. DON'T FORGET TO COMMIT THIS CHANGE, else nobody else will get it. Note, if one line is bad, all subsiquent lines will not be executed. -r is optional, allowing you to specify a specific revision. Apparently using the same folder twice (two separate externals to the same thing) causes an error too. Also, any changes made to the contents of the folder *MUST* be committed separately, by browsing to the respected folder (/FileIO/ for example). Do so only with permission from project manager. - Notes on Library creation - Recurvise svn:externals require full paths. Thusly, if the repository was ever moved, the externals would need to be updated. SVN supports symbolic links, which includes a neat hack o Windows that will copy the contents of the symbolic link target to where you want it. However, this is not portable behavior. The symlink would point to a location where the data it wants does not exist. Localhost/127.0.0.1 don't work, because the SVN actions are performed locally, not on the network machine. "../" or "/reposname/.." or any such combination don't work either. They're simply ignored. This is actually a known defect of subversions design.
codelibrary's People
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.