A DevLog is an important communication device. It ensures that team members are aware of the work you have done, and have a record of how you did it. It can also be used for marketing purposes, keeping everyone informed of what you are working on and the progress made.
DevLogger is a Unity Plugin that helps you keep a DevLog while working on your project. The goal is to make it as easy as possible to create records of key milestones and to tell the world about them without interupting the development flow.
See below for usage guide
- Capture in-game screenshots
- Capture in-game animated GIFs (HDRP and URP not supported)
- Capture in-editor windows image (scene view, hierarchy window etc.)
- Post timed notes, with or without images, to a markdown DevLog
- Manage hashtags
- Create Dev Log entries from Git commits
- Post updates, with or without images (with or without animated GIFs), to Twitter
- Post updates, with or without images (including animated GIFs) to Discord
- Create schedules for posting and get reminders of when you are due to post
- Open Source contributions welcome - lets be more productive together
This is the easiest way of installing the code:
Window -> Package Manager
- Click the '+" in the top left
- Select 'Add package from Git URL'
- Paste in
https://github.com/TheWizardsCode/DevLogger.git#release/stable
We are a big fan of enabling our users to improve Dev Logger, so we would encourage you to use the source code, it's not much harder than using the latest release.
- Fork and clone the repo and submodules into your preferred location with
git clone --recurse-submodules [YOUR_FORK_URL]
- In the project view select
Assets/DevTest PackageManifestConfig
- In the inspector click
Export Package Source
, this will export the package to a folder next to your checkout director called "DevLogger-Package" - To use this package in your development environments go to
Window -> Package Manager
- Click the '+" in the top left
- Select 'Add package from disk ...'
- Point to the
package.json
file in theDevLogger-Package
directory
If you find a bug or want to make an improvement do it inside the DevLogger project in Unity. To make it available to your work projects repeat step 2 and 3 above. This will re-publish your package locally and will be automatically picked up when you next give your development environment focus.
Once you have tested the changes please issue a pull request against our repo so we can make the code better for everyone.
Open the Dev Logger window using Tools -> Wizards Code -> Dev Logger
.
When you first open the window it will open on the settings tab so that you can setup the storage databases:
- Location to store your captured images will default to a directory in your project root. You can change this to anywhere on your machine in "Captures Save Folder". Using the checkboxes in this section you can optionally have your captures saved by project and scene subfolders. This is useful if you want to keep all your images in the same location as it will keep them separated by project and/or scene within the project.
- Create a DevLog Scriptable Object to organize your DevLog files. The easiest way to do this is simply click the "Create" button on the setup screen. The Scriptable Object will be created in the root of your Assets folder. You can move it if you want to.
- Create a Screen Capture Scriptable Object to organize your Screen Captures. The easiest way to do this is simply click the "Create" button on the setup screen. The Scriptable Object will be created in the root of your Assets folder. You can move it if you want to.
Once these steps are completed the Entry UI will be displayed.
The entry tab is where you will spend most of your time. It consists of the following sections:
This has the short and long text for your log entry. Bear in mind that the short entry will be used when posting to Twitter. The long entry will be used in the Dev Log and on Discord posts.
The meta data section allows you to define Hashtags, URLs, Git commit hashes and more that can be used alongside your descriptive text. Hashtags and URLs will be used in social media postings as well, so be aware that they will consume your character limit. To include a particular item in the list of meta-data items check the checkbox next to it.
To add a new item simply type a freeform value into the textbox and click "Add".
There is also a checkbox to indicate if this entry should be used in social amplification. This relates to scheduled social posts, see below for more.
This section is where you will find buttons for posting to your dev log and social accoutns. If an option is currently valid the button for it will appear here. At the time of writing the actions potentially available are Post to the DevLog, Twitter and Discord.
This section shows thumbnails of the media files you have collected. Each thumbnail can be selected for inclusion in a develog or social media post. You can also view the images full size or open the media storage folder from here.
When in Edit mode this section has a number of buttons enabling you to capture any of the currently open editor windows. The captures will appear in the Media section (above) when complete.
When in Run mode this section allows you to capture stills and animated gifs. These captures will also appear in the Media section.
Animated Gifs will capture a defined number of seconds before the capture button was pressed. That is, pressing the button does not mark the start of the capture, rather it marks the end of the capture. The quality and duration of the capture is configurable in the editor window.
Note it takes a short while for animated gifs to be processed, they will not appear in the media section until processing is complete. When capturing a Gif the first frame will be saved as a PNG in addition to the GIF itself.
Click the "View Devlog" button to open a Markdown version of your devlog.
You can also view all the entries in your current DevLog. You can reorder and edit and delete entries here. If you select an entry you will be presented with the option to tweet and/or post to discord from this tab. Note that these buttons will only appear if these services are correctly configured, see below for more details.
You can setup a schedule for publishing your tweets and discord posts here. This is not fully integrated into the editor yet. At the time of writing you need
to create a Schedule Entry using Create -> Wizards Code -> Dev Log Scheduled Event
. These will automatically appear in the Schedule tab. From there you can
set the time, day, channels to post to and Dev Log entry to post.
Note that for a Dev Log Entry to be available in the list for a schedules event it must have the "Social" flag set.
For Twitter the short text, meta data and images will be used. You can also set special hashtags for the scheduled event (e.g. #ScreenshotSaturday). For Discord the Short and Long text plus, URLs (but not hashtags) from meta data will be used.
Posts are not automatically sent at this time, but when it is past time to send a new tweet/discord post a "Post" button will display. Clicking this button will post to Twitter and Discord as configured.
You can have as many scheduled events as you desire.
The Git tab enables you to view the git logs for this project. This is only tested on Windows, we welcome reports and patches for other platforms.
You can click a button on the log entries to copy the data over to the DevLog entry fields where you can complete a DevLog entry.
Here you can setup the DevLogger tool. We covered the database items above in the installation section. The camera field defines which camera is used to capture GIFs. This will default to the main camera, but you can override it if you so desire.
If you want to post to Discord using DevLogger you will need to setup a Discord Webhook as follows;
- Navigatge to your server in Discord
- Open the Settings page
- Click the Webhooks tab
- Click the "Create Webhook" button
- Choose the channel the webhook posts to
- Name the webhook
- Copy the Webhook URL
- Paste the URL into the configuration box in the DevLogger window
If you want to tweet from within DevLogger you will need to setup authentication for Twitter but following these steps:
- Create a developer account on Twitter http://dev.twitter.com
- Register DevLogger at http://dev.twitter.com/apps/new
- Get the Consumer Token and Secret for the app
- Generate an Access Token and Access Token Secret
- In the DevLogger window expand the Twitter section
- Enter the consumer key and secret as well as the Access token and secret
- The twitter section will change to the twitter controls
We use PackageTools to create our releases. To build a release:
- Alongside your working repository checkout the
release/stable
branch of this repo into a directory calledDevLogger-Release
usinggit clone --single-branch --branch release/stable [email protected]:TheWizardsCode/DevLogger.git DevLogger-Release
- Update the version number in the
Release Candidate PackageManifestConfig
to match that inDevTest PackageManifestConfig
(both are in the root of theAssets
folder) - Increase the version number in the
DevTest PackageManifestConfig
to represent the next release number (not this release) - Click
Generate VersionConstants.cs
in the inspector - Commit the new constants file to Git
- Click
Export Package Source
in the inspector for theRelease Candidate PackageManifestConfig
- Commit and push the changes in
DevLogger-Release
to GitHub [But SEE BELOW]
NOTE there is currently a bug in the package manager tool that prevents the above from working, at least on my machine. You can work around the bug with the following steps:
- Delete the existing package directory
- Export the package source
- cd into the package directory
git init
git remote add origin git@...
git fetch
git add .
git commit -m "Release v0.2.5
git branch -m master release/stable
git push -f -u origin release/stable