Compare commits

..
6 Commits
Author SHA1 Message Date
Mark Bools 135d53bae6 Add ground up part 2 2024-08-27 18:43:52 +01:00
Mark Bools 0e62bf8c60 part 3 of mod dev series 2024-08-27 17:04:55 +01:00
Mark Bools 981e63fcb8 Adding supporter buttons to footer 2024-08-25 10:49:40 +01:00
Mark Bools d1b01fb422 Add articles associated with module development youtube 2024-08-24 18:52:24 +01:00
Mark Bools 88af3553b4 Add github to social links 2024-08-24 18:51:42 +01:00
Mark Bools 3a7d376e95 Minor typo 2024-08-24 18:50:31 +01:00
9 changed files with 114 additions and 2 deletions
@@ -0,0 +1,18 @@
+++
title = "Github Repository Setup"
date = 2024-08-22T09:00:00Z
draft = false
summary="Learning Foundry VTT Module Development from the very start"
categories = ['Technical', 'FoundryVTT', 'Foundry VTT for Module Developers']
prev = ['/post/lets-build-a-module/']
+++
In the [previous post]({{< ref "/post/lets-build-a-module/" >}}) I proposed we build a couple of Foundry modules. This post starts that process, looking at Github to hold our module code.
{{< youtube nXZ-fwcygYk >}}
Although not a detailed lesson on Github, this session covers:
* Setting up your account to use SSH keys.
* Creating a repository to hold our module.
* Cloning that repository to our local development machine so we can work on the module.
@@ -0,0 +1,41 @@
+++
title = "Local Project Documentation Setup"
date = 2024-08-24T09:00:00Z
draft = false
summary="Learning Foundry VTT Module Development from the very start. In this session: setting up the local project dcumentation system."
categories = ['Technical', 'FoundryVTT', 'Foundry VTT for Module Developers']
prev = ['/post/fvtt-mod-dev-local-project-setup/']
+++
Continuing our Foundry VTT module development journey. Having set up some basic tooling on our project we now want to keep our project well documented.
{{< youtube _p_1ItoDo8U >}}
In this session we set up a system for creating a documentation website. We cover:
* Creating a 'starter' set of documentation'
* Create a system for transforming that source into a web site.
* Putting all this into our project version control system.
# Why go to all this trouble?
## For users...
Firstly, our users will likely want some documentation helping them to use the module.
It make sense to keep this alongside the module code to make it easier to keep the documentation in line with each release of the module. (There is little more annoying, as a user, than checking documentation to find it is only relevant to some version of the module that you are not, or worse cannot, use.)
## For Foundry administrators/game masters...
Adminstrators will appreciate it if we produce clear, concise release notes explaining changes we make to the module. This is especially true if the changes are likely to change their players' experience (or worse, break their current setup).
The objective here is to provide just enough infomation so that administators can make the decision about updating a module (and what work might be involved to adopt a more complex update).
## For developers...
Finally, it is nice for developers to have docmentation for our code. While I believe that code should be (so far as practicable) self-documenting there is certainly a need in anything but the most trivial module, for documentation that:
* orients the developer, letting them know the broad architecture and function of the module, and
* documents *why* certain design decisions where taken.
While some of this can, and should, be in comments in the code, there is a lot of useful information that belongs in external documentation.
@@ -0,0 +1,25 @@
+++
title = "Local Project Setup"
date = 2024-08-23T09:00:00Z
draft = false
summary="Learning Foundry VTT Module Development from the very start. In this session: setting up the local project."
categories = ['Technical', 'FoundryVTT', 'Foundry VTT for Module Developers']
prev = ['/post/fvtt-mod-dev-github-repository-setup/']
+++
Having cloned our Github repository to our local development machine we now set up some basic tooling that will help later as we develop our module.
{{< youtube 8Qm0XJSWqYU >}}
In this session we set up:
* [`npm`](https://www.npmjs.com/), initialising our project.
* [`husky`](https://typicode.github.io/husky/) to marshal our `git` hook scripts.
* [`commitizen`](https://github.com/commitizen/cz-cli) to enforce standard `git` log messages.
These tools provide some 'guardrails' on our project that, although they may seem onerous now, will pay dividends later by facilitating:
* The production of consistent a changlog for our release notes (poviding users and other developers with timely and accurate details of what changes occur to our module).
* Management of our release versioning.
A few minutes of setup now will save hours over the life of our module.
@@ -1,4 +1,3 @@
+++ +++
title = "Foundry VTT Ground Up Part 1" title = "Foundry VTT Ground Up Part 1"
date = 2024-08-21T09:00:00Z date = 2024-08-21T09:00:00Z
@@ -19,5 +18,5 @@ In this first installment we look at:
* A lightning fast tour of the standard interface * A lightning fast tour of the standard interface
* Add Users/Players * Add Users/Players
* Create an empty Scene * Create an empty Scene
* Create Actors (player chearacters) and let Players access them * Create Actors (player characters) and let Players access them
* Create Tokens to represent Actors on our Scenes * Create Tokens to represent Actors on our Scenes
@@ -0,0 +1,23 @@
+++
title = "Foundry VTT Ground Up Part 2: Basic scenes"
date = 2024-08-27T09:00:00Z
draft = false
summary="Going from grey background to interesting scene"
categories = ['Game Master', 'FoundryVTT', 'FoundryVTT Ground Up']
prev = ['/post/fvtt-v12-ground-up-part-one/']
+++
Last time we looked at the Foundry VTT interface. We left our world with two scenes, but these were rather dull as they were just gridded grey backgrounds. In this session we introduce basic scene setup.
{{< youtube ADf2Vvu0wpI >}}
In this installment we look at:
* Adding a background.
* Adding a foreground.
* The relationship between layers.
* How elevation effects tokens and layers.
The diagram below shows the layers we use in this session and their relationship to one another.
![Basic Scene Layers](layers-diagram.png)
Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

+3
View File
@@ -40,3 +40,6 @@ timeZone = "Europe/London"
[[params.ananke_socials]] [[params.ananke_socials]]
name = 'youtube' name = 'youtube'
url = 'https://www.youtube.com/channel/UCbpj4ryAcG1eIVXHuRSDRXw' url = 'https://www.youtube.com/channel/UCbpj4ryAcG1eIVXHuRSDRXw'
[[params.ananke_socials]]
name = 'github'
url = 'https://github.com/Mondarth'
@@ -3,6 +3,7 @@
<a class="f4 fw4 hover-white no-underline white-70 dn dib-ns pv2 ph3" href="{{ .Site.Home.Permalink }}" > <a class="f4 fw4 hover-white no-underline white-70 dn dib-ns pv2 ph3" href="{{ .Site.Home.Permalink }}" >
&copy; {{ with .Site.Copyright | default .Site.Title }} {{ . | safeHTML }} {{ now.Format "2006"}} {{ end }} &copy; {{ with .Site.Copyright | default .Site.Title }} {{ . | safeHTML }} {{ now.Format "2006"}} {{ end }}
</a> </a>
<div>{{ partial "supporter.html" . }}</div>
<div>{{ partial "social-follow.html" . }}</div> <div>{{ partial "social-follow.html" . }}</div>
</div> </div>
</footer> </footer>
@@ -0,0 +1,2 @@
<a href="https://www.patreon.com/bePatron?u=125162698" data-patreon-widget-type="become-patron-button">Become a member!</a><script async src="https://c6.patreon.com/becomePatronButton.bundle.js"></script>
<script type='text/javascript' src='https://storage.ko-fi.com/cdn/widget/Widget_2.js'></script><script type='text/javascript'>kofiwidget2.init('Support Me on Ko-fi', '#29abe0', 'E1E012BACV');kofiwidget2.draw();</script>