
Saturday, March 28, 2020
GGJ @ KSU - CANCELLED
Due to the lack of registrations, the 2017 Global Game Jam @ KSU will not be held at KSU this year :'-(.
You are still encouraged to jam over the GGJ weekend, there are several sites available in Atlanta.
You are still encouraged to jam over the GGJ weekend, there are several sites available in Atlanta.
Visit By Head Of Games Design At TT-Games - Arthur Parsons
We are very lucky to welcome Arthur Parsons to our Games Design studio at UCLan this week.
Arthur is Head of Games Design at TT_Games and as such, it's so amazing that he takes time to visit our course and speak directly and openly with our students.
Arthur gave a great presentation about the criteria involved in designing and making a Lego game and offering a broad insight into the workings of the industry in terms of producing and marketing a game.
It's great to have the chance to speak with experienced industry experts such as Arthur.
His warmth and enthusiasm always motivate our students so much and encourage them to work hard and develop their passion for games design.
Arthur is Head of Games Design at TT_Games and as such, it's so amazing that he takes time to visit our course and speak directly and openly with our students.
Arthur gave a great presentation about the criteria involved in designing and making a Lego game and offering a broad insight into the workings of the industry in terms of producing and marketing a game.
It's great to have the chance to speak with experienced industry experts such as Arthur.
His warmth and enthusiasm always motivate our students so much and encourage them to work hard and develop their passion for games design.
![]() |
Monday, March 23, 2020
Rise Of The Valiant - The Second Week
Week 2 - Day 1 - "Big News!"
It's been an eventful day, but let me start at the beginning.
I spent a long time deliberating on a course of action for the week. Knowing Margaret exists just beyond the mountain, I wanted a way to connect our two homes. If Margaret could access my crops and watch after them on any days without rain, I would feel a lot more comfortable heading out into the wilderness for a few days to explore farther than I've been able to go previously. There are two real options to connect our lands. I can build a safe, reinforced tunnel beneath the mountain out of the already pre-existing network of caves, or I can build a tower that scales up the side of the cliff to the top of the mountain. I really like the idea of a tall tower to give me a vantage out over my own valley, but I really lack the necessary resources to build it. I need more manpower in order to make these two projects a reality.
Early this morning, I set out to discuss the situation with Margaret and get her input. I also asked her about the campsites that I've been finding all over the place. To my surprise, she told me that there were other humans on the planet who had passed by quite recently. They had not taken any interest in her, so she hadn't gotten the chance to socialize with them to her sincere disappointment. They spent the night on a nearby mountain and were heading west the last time she had seen them. This news changed everything.
I spent much of the day leading Margaret through the series of caves to my side of the mountain so she would know the way. As we went, I made sure to properly light the path with torches and cover any dangerous ravines with wooden planks and platforms. It is quite an uncomfortable journey even with better lighting and footing. It's a temporary solution for now, but Margaret is also convinced we need to make a dramatic change. Nevertheless, she now has a clearly marked path to and from our homesteads. She promised to take care of the crops while I"m away. After I finish this entry, I plan to set out tonight to try and catch up with the human campers.
One last thought, though: Margaret is an odd creature. She doesn't seem to have much awareness about space or what lies beyond the surface of our planet. She has no knowledge of the planet's name, or really what a planet even is. She doesn't understand why I'm so worked up about these nomadic humans, or what it could mean for me if I find them. They could be the ticket to getting off this rock if they happen to have a ship. They could even be from a human settlement that we could potentially move into that would be more self-sustaining than our simple farms. Everything may change if only I can find these humans.
Week 2 - Day 2 - "Meeting Alex"
It's late. I had a long day. I hiked for almost twenty-four hours through the mountains and valleys west of Margaret's place. I finally managed to catch up to all that remains of the human explorers. I found a broken man at an all but abandoned campsite named Alex. We talked long into the night. I think it's getting close to dawn right now. I can't keep my eyes open much longer, but finding Alex has been quite disappointing and somber to say the least.
Alex is the last man of a five-man team that was sent to survey the moons of Talitha Rim I. Apparently that's the name of the golden planet we are orbiting. The two moons were likely candidates to start a new colony for the displaced human survivors such as ourselves, but over the month the team spent here tragedy befell the group. Now only Alex remains. They do ... Alex does not have a ship of his own. They were dropped off here while other teams were dropped in other locations. The ship that sent them on this mission never returned to collect them. Alex has been waiting for several months and has given up hope. I don't know what this means for me, yet. I'm much too tired to think anymore about it today.
I'd like to take Alex back east with me, but he seems insistent on staying here at their main camp. They chose the location for its proximity to a nearby mine - abandoned long ago by some unknown prospectors. Alex assures me the mine is dangerous and the first of his team was lost trying to explore its depths. He claims winged creatures with long, elastic tongues lurk just below the surface of the planet. I sympathize with him and his loss, but I fear if he stays here all alone he will join his teammates in death. I will have another try to convince him tomorrow.
Week 2 - Day 3 - "The Beacon"
Alex refuses to return with me. He is adamant in remaining here at camp. He claims its the safest place on the planet, but was panic-stricken when I tried to enter the nearby mine shaft. He dragged me out by my arm before I got to the first set of platform stairs heading into the depths below. I'm not sure what to do about Alex. I can see that grief is causing him to lose his judgment. Aside from that, I did discover something quite valuable. Just inside the mines there is a device - a seismic transmitter - that is monitoring the geology of the planet and sending a signal to some unknown receivers. It's quite possible that I could adjust the device to transmit a distress signal instead. Alex didn't care much about the machine so I packed it up and took it homeward with me. Perhaps tomorrow I will set it up to broadcast a simple message into space.
Perhaps there is hope of a rescue after all for Alex and myself - and Margaret if she chooses to come with us.
Week 2 - Day 4 - "Tunnel Construction"
Margaret has insisted we begin work on a tunnel to connect our two homes. Apparently making the trip through the natural caves is as unpleasant for a Glitch woman as a human man. We were up before the sun rose to get started on this large project. Margaret was able to use the seismic survey machine to get accurate readings on where to construct the tunnel so that we would accurately connect both sides of the mountain at the right altitude. It was slow going once we got started with only a broken matter manipulator between the two of us, but Margaret is quite skilled as a structural engineer. The two of us have a wealth of skills that will make living on this planet more comfortable indefinitely.
When we finally broke ground on my side of the mountain, Margaret began construction on my house while I worked on the transmitter. She insisted it wasn't right for me to live in such a simple shelter with a sleeping bag. She set to work on upgrading my tiny farmstead into a real home. I helped here and there, but most of my attention went to fine tuning the distress beacon. Hopefully, it will reach someone in space soon.
Week 2 - Day 5 - "Home Improvements"
The construction on my house was completed today. Margaret returned to her own valley about halfway through the day. Before heading out, Margaret built me a table and chairs as well as a soft bed from the fabric she'd been making in her spare time this week. She is quite extraordinary. I think in days to come I may return to exploring and gathering resources so that Margaret can continue to put them to good use. It seems like the best application of our skills at this point. She seems content with our modest amount of food and our humble homes, but I'm constantly thinking of what we can do to improve the situation here on this small moon of Talitha Rim I.
Neither of us have heard anything from Alex. We are both growing extra crops for him, now, but I wish he would just come live over here on our side of the mountains. I'm worried about him living alone in such a remote location.
Week 2 - Day 6 - "Contact!"
I awoke early this morning to a strange humming coming from my second floor. Apparently, my distress signal had been received and a small frigate was on its way to the planet. Unfortunately, they were also in distress and looking for a place to set down for repairs. It appears we are going to have guests. I rushed through the new tunnel to tell Margaret that more people were coming. As always, she was delighted at the prospect of new company. Her only regret was not having any tea to serve.
There is no way to know how many are coming or how long they will be staying to make the repairs. It's clear, though, that we need to expand our farming efforts in order to feed any more mouths for any amount of time. Margaret and I agreed that consolidating our farming efforts would be our best chance at survival for now, so we set to work leveling and tilling up Margaret's Valley which had much more land available for farming. Margaret set out to cultivate more corn, potatoes and rice. I spent the entire day building a makeshift barn in the middle oft he valley where we could store up grain and crops. I'm sure in the future Margaret will make necessary upgrades to the barn, but for now it does the job.
Week 2 - Day 7 - "The Arrival"
The frigate arrived sooner than I expected. Today I met with the three crew members of the Naka. The captain is a Hylotl named Shinobu whose motley crew includes the Avian, Chef Ihui, and the Floran, Mar Ryespine. Her skillset has not been disclosed to me yet. It's not clear to me if Shinobu is a man or a woman, but it seems impolite to ask. Margaret came over to greet the crew at my place where we had a simple lunch of corn and potatoes toasted lightly on a campfire. Chef Ihui was not pleased.
I offered to let the crew stay in my home until we could make other accommodations, but they decided that was not necessary. Ihui was insistent we get a kitchen set up for him right away so we could all enjoy a proper dinner. After living on rice, pearlpeas, corn and potatoes for two weeks I could not be more delighted at this proposition. We took the crew of the Naka to Margaret's Valley where Ihui overlooked the crops. Between the five of us, we decided the best place to set up a temporary barracks would be within the tunnel itself. Only Mar seemed displeased at the lack of sunlight living under the mountain, but Shinobu assured her that she would get plenty of time outdoors in the days to come.
Between the five of us, construction of the barracks went quickly and smoothly. There were finally enough people available to clear a considerable amount of land, gather enough resources and construct a working home all at once. Margaret oversaw construction with Ihui and me, while Shinobu and Mar gathered up the stone, wood and dirt necessary to keep everything running smoothly. Unlike my first nights on this moon, they will sleep well in beds tonight.
Next week we have to assess the damages to the Naka and prepare to get her shipshape.
It's been an eventful day, but let me start at the beginning.
I spent a long time deliberating on a course of action for the week. Knowing Margaret exists just beyond the mountain, I wanted a way to connect our two homes. If Margaret could access my crops and watch after them on any days without rain, I would feel a lot more comfortable heading out into the wilderness for a few days to explore farther than I've been able to go previously. There are two real options to connect our lands. I can build a safe, reinforced tunnel beneath the mountain out of the already pre-existing network of caves, or I can build a tower that scales up the side of the cliff to the top of the mountain. I really like the idea of a tall tower to give me a vantage out over my own valley, but I really lack the necessary resources to build it. I need more manpower in order to make these two projects a reality.
Early this morning, I set out to discuss the situation with Margaret and get her input. I also asked her about the campsites that I've been finding all over the place. To my surprise, she told me that there were other humans on the planet who had passed by quite recently. They had not taken any interest in her, so she hadn't gotten the chance to socialize with them to her sincere disappointment. They spent the night on a nearby mountain and were heading west the last time she had seen them. This news changed everything.
I spent much of the day leading Margaret through the series of caves to my side of the mountain so she would know the way. As we went, I made sure to properly light the path with torches and cover any dangerous ravines with wooden planks and platforms. It is quite an uncomfortable journey even with better lighting and footing. It's a temporary solution for now, but Margaret is also convinced we need to make a dramatic change. Nevertheless, she now has a clearly marked path to and from our homesteads. She promised to take care of the crops while I"m away. After I finish this entry, I plan to set out tonight to try and catch up with the human campers.
One last thought, though: Margaret is an odd creature. She doesn't seem to have much awareness about space or what lies beyond the surface of our planet. She has no knowledge of the planet's name, or really what a planet even is. She doesn't understand why I'm so worked up about these nomadic humans, or what it could mean for me if I find them. They could be the ticket to getting off this rock if they happen to have a ship. They could even be from a human settlement that we could potentially move into that would be more self-sustaining than our simple farms. Everything may change if only I can find these humans.
Week 2 - Day 2 - "Meeting Alex"
It's late. I had a long day. I hiked for almost twenty-four hours through the mountains and valleys west of Margaret's place. I finally managed to catch up to all that remains of the human explorers. I found a broken man at an all but abandoned campsite named Alex. We talked long into the night. I think it's getting close to dawn right now. I can't keep my eyes open much longer, but finding Alex has been quite disappointing and somber to say the least.
Alex is the last man of a five-man team that was sent to survey the moons of Talitha Rim I. Apparently that's the name of the golden planet we are orbiting. The two moons were likely candidates to start a new colony for the displaced human survivors such as ourselves, but over the month the team spent here tragedy befell the group. Now only Alex remains. They do ... Alex does not have a ship of his own. They were dropped off here while other teams were dropped in other locations. The ship that sent them on this mission never returned to collect them. Alex has been waiting for several months and has given up hope. I don't know what this means for me, yet. I'm much too tired to think anymore about it today.
I'd like to take Alex back east with me, but he seems insistent on staying here at their main camp. They chose the location for its proximity to a nearby mine - abandoned long ago by some unknown prospectors. Alex assures me the mine is dangerous and the first of his team was lost trying to explore its depths. He claims winged creatures with long, elastic tongues lurk just below the surface of the planet. I sympathize with him and his loss, but I fear if he stays here all alone he will join his teammates in death. I will have another try to convince him tomorrow.
Week 2 - Day 3 - "The Beacon"
Alex refuses to return with me. He is adamant in remaining here at camp. He claims its the safest place on the planet, but was panic-stricken when I tried to enter the nearby mine shaft. He dragged me out by my arm before I got to the first set of platform stairs heading into the depths below. I'm not sure what to do about Alex. I can see that grief is causing him to lose his judgment. Aside from that, I did discover something quite valuable. Just inside the mines there is a device - a seismic transmitter - that is monitoring the geology of the planet and sending a signal to some unknown receivers. It's quite possible that I could adjust the device to transmit a distress signal instead. Alex didn't care much about the machine so I packed it up and took it homeward with me. Perhaps tomorrow I will set it up to broadcast a simple message into space.
Perhaps there is hope of a rescue after all for Alex and myself - and Margaret if she chooses to come with us.
Week 2 - Day 4 - "Tunnel Construction"
Margaret has insisted we begin work on a tunnel to connect our two homes. Apparently making the trip through the natural caves is as unpleasant for a Glitch woman as a human man. We were up before the sun rose to get started on this large project. Margaret was able to use the seismic survey machine to get accurate readings on where to construct the tunnel so that we would accurately connect both sides of the mountain at the right altitude. It was slow going once we got started with only a broken matter manipulator between the two of us, but Margaret is quite skilled as a structural engineer. The two of us have a wealth of skills that will make living on this planet more comfortable indefinitely.
When we finally broke ground on my side of the mountain, Margaret began construction on my house while I worked on the transmitter. She insisted it wasn't right for me to live in such a simple shelter with a sleeping bag. She set to work on upgrading my tiny farmstead into a real home. I helped here and there, but most of my attention went to fine tuning the distress beacon. Hopefully, it will reach someone in space soon.
Week 2 - Day 5 - "Home Improvements"
The construction on my house was completed today. Margaret returned to her own valley about halfway through the day. Before heading out, Margaret built me a table and chairs as well as a soft bed from the fabric she'd been making in her spare time this week. She is quite extraordinary. I think in days to come I may return to exploring and gathering resources so that Margaret can continue to put them to good use. It seems like the best application of our skills at this point. She seems content with our modest amount of food and our humble homes, but I'm constantly thinking of what we can do to improve the situation here on this small moon of Talitha Rim I.
Neither of us have heard anything from Alex. We are both growing extra crops for him, now, but I wish he would just come live over here on our side of the mountains. I'm worried about him living alone in such a remote location.
Week 2 - Day 6 - "Contact!"
I awoke early this morning to a strange humming coming from my second floor. Apparently, my distress signal had been received and a small frigate was on its way to the planet. Unfortunately, they were also in distress and looking for a place to set down for repairs. It appears we are going to have guests. I rushed through the new tunnel to tell Margaret that more people were coming. As always, she was delighted at the prospect of new company. Her only regret was not having any tea to serve.
There is no way to know how many are coming or how long they will be staying to make the repairs. It's clear, though, that we need to expand our farming efforts in order to feed any more mouths for any amount of time. Margaret and I agreed that consolidating our farming efforts would be our best chance at survival for now, so we set to work leveling and tilling up Margaret's Valley which had much more land available for farming. Margaret set out to cultivate more corn, potatoes and rice. I spent the entire day building a makeshift barn in the middle oft he valley where we could store up grain and crops. I'm sure in the future Margaret will make necessary upgrades to the barn, but for now it does the job.
Week 2 - Day 7 - "The Arrival"
The frigate arrived sooner than I expected. Today I met with the three crew members of the Naka. The captain is a Hylotl named Shinobu whose motley crew includes the Avian, Chef Ihui, and the Floran, Mar Ryespine. Her skillset has not been disclosed to me yet. It's not clear to me if Shinobu is a man or a woman, but it seems impolite to ask. Margaret came over to greet the crew at my place where we had a simple lunch of corn and potatoes toasted lightly on a campfire. Chef Ihui was not pleased.
I offered to let the crew stay in my home until we could make other accommodations, but they decided that was not necessary. Ihui was insistent we get a kitchen set up for him right away so we could all enjoy a proper dinner. After living on rice, pearlpeas, corn and potatoes for two weeks I could not be more delighted at this proposition. We took the crew of the Naka to Margaret's Valley where Ihui overlooked the crops. Between the five of us, we decided the best place to set up a temporary barracks would be within the tunnel itself. Only Mar seemed displeased at the lack of sunlight living under the mountain, but Shinobu assured her that she would get plenty of time outdoors in the days to come.
Between the five of us, construction of the barracks went quickly and smoothly. There were finally enough people available to clear a considerable amount of land, gather enough resources and construct a working home all at once. Margaret oversaw construction with Ihui and me, while Shinobu and Mar gathered up the stone, wood and dirt necessary to keep everything running smoothly. Unlike my first nights on this moon, they will sleep well in beds tonight.
Next week we have to assess the damages to the Naka and prepare to get her shipshape.
- Excepts from the Journal of Edge Valiant on the Founding of the Valiant Empire
Friday, March 20, 2020
Recent Playtesting - Sails And Sorcery: Some Details
The last few weeks, my Saturday playtest sessions have been spent playing Michael's game, Sails and Sorcery. It's kind of a mashup of my game Eminent Domain and the area control classic El Grande.
In Sails and Sorcery you are a pirate captain, sailing your ship from island to island, recruiting and deploying pirates, building structures, and summoning monsters in an attempt to make off with the lion's share of treasure when it's found in those areas.
Michael had been working on it for a while, he talked about it on the TMG podcast last year. In October, Mike figured it was time to get my input, so he brought the prototype to town with him for Rincon, we played a few times, and he left it with me to work on.
Because it was based on Eminent Domain, the game had a role selection mechanism (where opponents can follow your role). Michael had noticed an issue with that however, and he had disallowed following in the last round of the game. The issue was that if I make a play -- putting pieces on the board, or moving them around -- it's really easy for other players to undo my play by simply following. Disallowing the follow in the last round didn't fix the issue in the other scoring rounds earlier in the game though.
So one thing I suggested as we played was that maybe it should not be a role selection game at all. In other words, maybe there doesn't need to be following in the game. Role selection (the lead-follow dynamic) is the entirety of the player interaction in Eminent Domain, but in this game there is interaction on the board as players vie for control of different areas by having the most pieces there. With that interaction, the role selection isn't as necessary, so we tried it without.
However, without being able to act on other players turns, we wouldn't be able to get as much accomplished. So in place of following, we just did an additional role each turn (I'm going to continue using the term "role" here to mean "thing you get to boost with other cards," even though the terminology isn't as accurate any more. "Action" simply means playing 1 card for it's effect, no boosting). This seemed to work fine, and so the first few tests I did recently continued to use 1 action and 2 roles per turn, in that order.
One of my playtesters really wanted a more flexible turn order, because frequently you want to do your 2 roles in different locations (you act in the location where your ship is located), and so he wanted to do role/action/role, using the action to move his ship. I was hesitant to try this because Michael and I had said the same thing back in October, and we tried it, and I immediately did not like the results. This was partly because the "action" part of your turn was really resolving your whole ship, which had multiple things you could do.
However, I acquiesced to try it again, but with a simplified ship such that your abilities from your ship we're more static (like role icons), so it was just the card action you would be doing "out of order." We tried it, and it wasn't too bad, but I still didn't like it, maybe because I prefer the organized turn structure.
Then that player had an additional suggestion, to replace the action with another role. Most of the actions are miniature (1-icon) versions of the role anyway, so if we didn't have actions and just did 3 roles, then a bunch of rules overhead drops out, and the turn flexibility increases without feeling too weird or out of order. In addition, we said that taking a card for the role from the stacks (another aspect based on Eminent Domain) was optional. If you did it, then you'd have an additional icon for the turn, and another card in your deck. If you didn't, then you would miss out on that icon, but you could avoid bloating your deck with the card if you wanted. You only have so many cards in your hand, so often times one of your roles will only be for 1-2 icons. In that respect, the role/role/role format isn't really all that different from action/role/role after all.
We tried this new format once, and I was skeptical. I thought it would produce too much AP, or have other issues. However the first play with that format didn't take any longer on the clock than the game we had just finished using the old format. So I'll try it again next time.
Another aspect I've been tinkering with is the monsters in the game. Originally, you could use a build role to build a building, which gave you permanent influence in an area, and unlocked some ability (like the buildings in Crusaders), or summon a monster, which had some cool effect, but was otherwise similar to a building. Michael had envisioned pieces like in Blood Rage - large miniatures with player colored bases that you could snap on to show who had summoned the monster. You needed to know that, because often times the monster counted as influence toward scoring (just like your buildings did).
My opinion was that the monsters and buildings were too similar, so I suggested making them more different from each other. Buildings give you influence and power ups, so I thought monsters should give you some awesome immediate effect, and then stay in play with some global effect for everyone, like it or not. I liked the image of summoning a force of nature and then being unable to control it.
My first draft of the monsters was to make them the high end of the build role. For 2 or 3, you build a building. I tried the monsters costing 5 (and if you were really interested in summoning them, there's a way to get a build icon from one if your buildings). This was too high a cost, by the time we were ready to summon the monsters, the game was over. Michael wants them to see play every game, not just some of them, and not just maybe, and not just at the end. And I agree with him.
I also thought it was weird that the same resource both built you buildings and summoned monsters. So I made 2 changes... First, I separated the roles. You use build roles to place buildings for influence and abilities, and you use summon roles to summon monsters. I set the summon cost of the monsters to be 2 summon icons, plus 1 more for each time that monster has been summoned in the past. This is easily tracked by dropping a token on the monster card after you summon it.
I have iterated through a few versions of each monster, but I am now super happy with this format and the current effects of the monsters. Splitting up the resources was great, and this cost structure is perfect. The monsters all start out cheap, so they get used. Then they get more expensive over time so that in the late game it's hard to afford them if you haven't been summoning all game long.
The monster cost structure worked so well, I wanted to try it with the buildings too. The buildings on your player board (your ship) are in 4 rows of 2 columns, and for each row you must build left to right, just like Crusaders. Originally, the buildings in the left column cost 2 build icons, and the buildings in the right column cost 3. Additionally, each area had a certain number of build spaces (usually 2 or 3), and no more than that number of buildings could be built there.
Thinking about the escalating monster cost, I tried eliminating the build limit and old cost structure, and instead tried "buildings cost 2 icons, plus 1 more for each building already in that area. This way, you can build cheaply if you spend time sailing around or get to an area first, but once there are 2 buildings in an area, you will have a hard time building there again if you haven't specialized in it a bit, either by investing in the building that gives you a build icon, or by obtaining a number of build cards into your deck.
This works well because each building also increases the value of the area for the 1st place player during scoring.
The effects you unlock from moving these buildings off of your player board have also changed a bit. Originally, some of them were static effects, such as a role icon, or a hand size increase, and some were additional actions you could do at the beginning of your turn. While it was fun to do an extra action at the beginning of your turn, it often wasn't as useful as you wanted it to be. A free deploy doesn't help if you need to recruit pirates. A free plunder doesn't help if there aren't any opponents where your ship is. This is the kind of frustration that prompted the desire for a more flexible turn structure, but it's also the reason the more flexible turn structure was problematic. The game action happens with the card play, so it made sense to me that the buildings could all be static effects rather than additional free actions. Removing the game action from there made the flexible turn structure a lot more acceptable feeling. I've been tweaking and trying different combinations of unlock abilities, but most of them are the same as they were back in October. I'm trying to make sure there are a variety of strategic paths available in the abilities, but also make sure that you aren't forced to build a certain way (or at all) in order to succeed. Like the technology in EmDo, I expect players will build at least a little each game, and if they concentrate on it, maybe they'll build a lot. I expect most players to end the game having built anywhere between 2 and 6 of the 8 buildings and still be able to be competitive.
There are a bunch of other details I've been working on, but these were some of the biggest (and most recent) changes I've tried. Perhaps I'll post again later about other aspects, such as the scoring round format :)
In Sails and Sorcery you are a pirate captain, sailing your ship from island to island, recruiting and deploying pirates, building structures, and summoning monsters in an attempt to make off with the lion's share of treasure when it's found in those areas.
Michael had been working on it for a while, he talked about it on the TMG podcast last year. In October, Mike figured it was time to get my input, so he brought the prototype to town with him for Rincon, we played a few times, and he left it with me to work on.
Role Selection
Because it was based on Eminent Domain, the game had a role selection mechanism (where opponents can follow your role). Michael had noticed an issue with that however, and he had disallowed following in the last round of the game. The issue was that if I make a play -- putting pieces on the board, or moving them around -- it's really easy for other players to undo my play by simply following. Disallowing the follow in the last round didn't fix the issue in the other scoring rounds earlier in the game though.
So one thing I suggested as we played was that maybe it should not be a role selection game at all. In other words, maybe there doesn't need to be following in the game. Role selection (the lead-follow dynamic) is the entirety of the player interaction in Eminent Domain, but in this game there is interaction on the board as players vie for control of different areas by having the most pieces there. With that interaction, the role selection isn't as necessary, so we tried it without.
However, without being able to act on other players turns, we wouldn't be able to get as much accomplished. So in place of following, we just did an additional role each turn (I'm going to continue using the term "role" here to mean "thing you get to boost with other cards," even though the terminology isn't as accurate any more. "Action" simply means playing 1 card for it's effect, no boosting). This seemed to work fine, and so the first few tests I did recently continued to use 1 action and 2 roles per turn, in that order.
One of my playtesters really wanted a more flexible turn order, because frequently you want to do your 2 roles in different locations (you act in the location where your ship is located), and so he wanted to do role/action/role, using the action to move his ship. I was hesitant to try this because Michael and I had said the same thing back in October, and we tried it, and I immediately did not like the results. This was partly because the "action" part of your turn was really resolving your whole ship, which had multiple things you could do.
However, I acquiesced to try it again, but with a simplified ship such that your abilities from your ship we're more static (like role icons), so it was just the card action you would be doing "out of order." We tried it, and it wasn't too bad, but I still didn't like it, maybe because I prefer the organized turn structure.
Then that player had an additional suggestion, to replace the action with another role. Most of the actions are miniature (1-icon) versions of the role anyway, so if we didn't have actions and just did 3 roles, then a bunch of rules overhead drops out, and the turn flexibility increases without feeling too weird or out of order. In addition, we said that taking a card for the role from the stacks (another aspect based on Eminent Domain) was optional. If you did it, then you'd have an additional icon for the turn, and another card in your deck. If you didn't, then you would miss out on that icon, but you could avoid bloating your deck with the card if you wanted. You only have so many cards in your hand, so often times one of your roles will only be for 1-2 icons. In that respect, the role/role/role format isn't really all that different from action/role/role after all.
We tried this new format once, and I was skeptical. I thought it would produce too much AP, or have other issues. However the first play with that format didn't take any longer on the clock than the game we had just finished using the old format. So I'll try it again next time.
Monsters and their cost
Another aspect I've been tinkering with is the monsters in the game. Originally, you could use a build role to build a building, which gave you permanent influence in an area, and unlocked some ability (like the buildings in Crusaders), or summon a monster, which had some cool effect, but was otherwise similar to a building. Michael had envisioned pieces like in Blood Rage - large miniatures with player colored bases that you could snap on to show who had summoned the monster. You needed to know that, because often times the monster counted as influence toward scoring (just like your buildings did).
My opinion was that the monsters and buildings were too similar, so I suggested making them more different from each other. Buildings give you influence and power ups, so I thought monsters should give you some awesome immediate effect, and then stay in play with some global effect for everyone, like it or not. I liked the image of summoning a force of nature and then being unable to control it.
My first draft of the monsters was to make them the high end of the build role. For 2 or 3, you build a building. I tried the monsters costing 5 (and if you were really interested in summoning them, there's a way to get a build icon from one if your buildings). This was too high a cost, by the time we were ready to summon the monsters, the game was over. Michael wants them to see play every game, not just some of them, and not just maybe, and not just at the end. And I agree with him.
I also thought it was weird that the same resource both built you buildings and summoned monsters. So I made 2 changes... First, I separated the roles. You use build roles to place buildings for influence and abilities, and you use summon roles to summon monsters. I set the summon cost of the monsters to be 2 summon icons, plus 1 more for each time that monster has been summoned in the past. This is easily tracked by dropping a token on the monster card after you summon it.
I have iterated through a few versions of each monster, but I am now super happy with this format and the current effects of the monsters. Splitting up the resources was great, and this cost structure is perfect. The monsters all start out cheap, so they get used. Then they get more expensive over time so that in the late game it's hard to afford them if you haven't been summoning all game long.
Buildings
The monster cost structure worked so well, I wanted to try it with the buildings too. The buildings on your player board (your ship) are in 4 rows of 2 columns, and for each row you must build left to right, just like Crusaders. Originally, the buildings in the left column cost 2 build icons, and the buildings in the right column cost 3. Additionally, each area had a certain number of build spaces (usually 2 or 3), and no more than that number of buildings could be built there.
Thinking about the escalating monster cost, I tried eliminating the build limit and old cost structure, and instead tried "buildings cost 2 icons, plus 1 more for each building already in that area. This way, you can build cheaply if you spend time sailing around or get to an area first, but once there are 2 buildings in an area, you will have a hard time building there again if you haven't specialized in it a bit, either by investing in the building that gives you a build icon, or by obtaining a number of build cards into your deck.
This works well because each building also increases the value of the area for the 1st place player during scoring.
The effects you unlock from moving these buildings off of your player board have also changed a bit. Originally, some of them were static effects, such as a role icon, or a hand size increase, and some were additional actions you could do at the beginning of your turn. While it was fun to do an extra action at the beginning of your turn, it often wasn't as useful as you wanted it to be. A free deploy doesn't help if you need to recruit pirates. A free plunder doesn't help if there aren't any opponents where your ship is. This is the kind of frustration that prompted the desire for a more flexible turn structure, but it's also the reason the more flexible turn structure was problematic. The game action happens with the card play, so it made sense to me that the buildings could all be static effects rather than additional free actions. Removing the game action from there made the flexible turn structure a lot more acceptable feeling. I've been tweaking and trying different combinations of unlock abilities, but most of them are the same as they were back in October. I'm trying to make sure there are a variety of strategic paths available in the abilities, but also make sure that you aren't forced to build a certain way (or at all) in order to succeed. Like the technology in EmDo, I expect players will build at least a little each game, and if they concentrate on it, maybe they'll build a lot. I expect most players to end the game having built anywhere between 2 and 6 of the 8 buildings and still be able to be competitive.
There are a bunch of other details I've been working on, but these were some of the biggest (and most recent) changes I've tried. Perhaps I'll post again later about other aspects, such as the scoring round format :)
Thursday, March 19, 2020
Tech Book Face Off: Programming Massively Parallel Processors Vs. Professional CUDA C Programming
After getting an introduction to GPU programming with CUDA by Example, I wanted to dig in deeper and get to know the real ins and outs of CUDA programming. That desire quickly lead to the selection of books for this Tech Book Face Off. The first book is definitely geared to be a college textbook, and as I spent years learning from books like this, I felt comfortable taking a look at Programming Massively Parallel Processors: A Hands-on Approach by David B. Kirk and Wen-mei W. Hwu. The second book is targeted more at the working professional, as the title suggests: Professional CUDA C Programming by John Cheng, Max Grossman, and Ty McKercher. I was surprised by both books, and not in the same way. Let's see how they do at teaching CUDA programming.
Even though that last bit was a pretty harsh review, we should still explore what's in the book, if only to see how the breadth of material compares to Professional CUDA C Programming. The first chapter is the normal introduction to the book's material, describing the architecture of a GPU and discussing how parallel programming with this architecture is so different than programming on a CPU. The verbosity of this chapter alone should have been a clue that this book would drag on and on, but I was willing to give it a chance. The next chapter introduces our first real CUDA program with a vector addition kernel. We're still getting started with CUDA C at this point, so I chalk up the authors' overly detailed explanations to taking extra care with novice readers. We end up walking through all of the parts of a working CUDA program, explaining everything in excruciating detail.
The third chapter covers how to work more efficiently with threads and loading data into GPU memory from the CPU with a more complex example of calculating image blur. We also get our first exposure to thread synchronization, something that must be thoroughly understood to program GPUs effectively. This chapter is also where I start to realize how nutty some of the explanations are getting. Here's just one example of them describing how arrays are laid out in memory:
The next chapter is on how to manage memory and arrange data access to optimize memory usage and bandwidth. We find that memory management is just as, if not more important than thread management for making optimal use of the GPU computing resources, and the book solidifies this understanding through an extended optimization example of a matrix multiplication kernel.
At this point we've learned the fundamentals of GPU programming, so the next chapter moves into more advanced topics in performance optimization with the memory hierarchy and the compute core architecture. Then, chapter six covers number format considerations between integers and single- and double-precision floating point representations. The authors' definition of representable numbers struck me as exceptionally cringe-worthy here:
Now we get into the halfway decent part of the book, the extended example chapters on parallel patterns. Each of these chapters works through a different example kernel of a particular problem that comes up often in parallel programming, and they introduce additional features of GPU programming that can assist in solving these problems in a more optimal way. The contents of these chapters are as follows:
The next chapter covers the CUDA execution model, or how the code runs on the real hardware. Here is where we learn how to optimize CUDA programs to take advantage of all of those independent compute cores on the GPU, and this chapter even gets into dynamic parallelism earlier in the book rather than waiting and treating it as a special topic like the last book did.
Chapter 4 covers global memory and chapter 5 looks at shared and constant memory. Understanding the trade-offs of each of these memories is important to getting the maximum performance out of the GPU because most often these programs are memory-bound, not compute-bound. Like everything else, the authors do an excellent job explaining the memory hierarchy and how those trade-offs affect CUDA programs. The examples used throughout the book are simple so that the reader doesn't get bogged down trying to understand unrelated algorithm details. The more complex examples may be thought-provoking, but simple examples do a good job of showcasing the specifics of the topic at hand.
Chapter 6 addresses streams and events, which are used to overlap computation with data transfer. Using streams can partially, or in some cases completely hide the time it takes to get the data into the GPU memory. Chapter 7 explains more optimization techniques by using CUDA instruction-level primitives to directly control how computations are performed on the GPU. These instructions trade some accuracy for speed, and they should be used only if the accuracy is not critical to the application. The authors do a good job of explaining all of the implications here.
The last three chapters weren't as interesting to me, not because I was tired of the book this time, but because they were about the same topics that I skipped in the other CUDA books: OpenACC, multi-GPU programming, and the CUDA development process. The rest of the book was excellent, and far better than the other two CUDA books I read. The writing is clear with plenty of diagrams for better understanding of each topic, and the book organization is done well. If you're interested in GPU programming and want to read one book, this one is it.
Between these two CUDA books, the choice is obvious. Programming Massively Parallel Processors was a bloated dud. It may be worth it just for the large set of example programs it contains, but there are other options coming down the pipeline for that kind of cookbook that may be better. Professional CUDA C Programming was better in every way, and really the book to get for learning CUDA programming. The authors did a great job of explaining complex topics in GPU architecture with concise, understandable writing, relevant diagrams, and appropriate exercises for practice. It's exactly the kind of book I want for learning a new programming language, or in this case, programming paradigm. If you're at all interested in CUDA programming, it's worth checking out.
![]() | VS. | ![]() |
Programming Massively Parallel Processors
The polite way to critique this book is to say, it's somewhat verbose and repetitive, but if you can get past that, it has a lot to offer in the way of example CUDA programs that show how to optimize code for the GPU architecture. A slightly less polite way to say that would be that while this book does offer some good code examples, the writing leaves much to be desired, and much better books are out there that cover the same material. The honest assessment is that this book is just a mess. Half the book could be cut and the other half rewritten to better explain things with clearer, non-circular definitions. The only good thing about the book is the code examples, and many of those examples are also redundant, filling the pages of the book with lines of code that the reader has seen multiple times before. This book could have been a third the length and covered the same amount of material.Even though that last bit was a pretty harsh review, we should still explore what's in the book, if only to see how the breadth of material compares to Professional CUDA C Programming. The first chapter is the normal introduction to the book's material, describing the architecture of a GPU and discussing how parallel programming with this architecture is so different than programming on a CPU. The verbosity of this chapter alone should have been a clue that this book would drag on and on, but I was willing to give it a chance. The next chapter introduces our first real CUDA program with a vector addition kernel. We're still getting started with CUDA C at this point, so I chalk up the authors' overly detailed explanations to taking extra care with novice readers. We end up walking through all of the parts of a working CUDA program, explaining everything in excruciating detail.
The third chapter covers how to work more efficiently with threads and loading data into GPU memory from the CPU with a more complex example of calculating image blur. We also get our first exposure to thread synchronization, something that must be thoroughly understood to program GPUs effectively. This chapter is also where I start to realize how nutty some of the explanations are getting. Here's just one example of them describing how arrays are laid out in memory:
A two-dimensional array can be linearized in at least two ways. One way is to place all elements of the same row into consecutive locations. The rows are then placed one after another into the memory space. This arrangement, called row-major layout, is depicted in Fig. 3.3. To improve readability, we will use Mj,i to denote the M element at the jth row and the ith column. Pj,i is equivalent to the C expression M[j][i] but is slightly more readable. Fig. 3.3 illustrates how a 4×4 matrix M is linearized into a 16-element one-dimensional array, with all elements of row 0 first, followed by the four elements of row 1, and so on. Therefore, the one-dimensional equivalent index for M in row j and column i is j*4 +i. The j*4 term skips all elements of the rows before row j. The i term then selects the right element within the section for row j. The one-dimensional index for M2,1 is 2*4 +1 =9, as shown in Fig. 3.3, where M9 is the one-dimensional equivalent to M2,1. This process shows the way C compilers linearize two-dimensional arrays.Wow. I'm not sure how a reader that needs this level of detail for understanding how a matrix is arranged in memory is going to understand the memory hierarchy and synchronization issues of GPU programming. This explanation is just too much for a book like this. Readers should already have some knowledge of standard C programming, including multi-dimensional array memory layout, before attempting CUDA programming. I can't imagine learning both at the same time going very well. As for readers who already know how all of this stuff works, they could easily skip every other paragraph and skim the rest to make trudging through these explanations more tolerable.
The next chapter is on how to manage memory and arrange data access to optimize memory usage and bandwidth. We find that memory management is just as, if not more important than thread management for making optimal use of the GPU computing resources, and the book solidifies this understanding through an extended optimization example of a matrix multiplication kernel.
At this point we've learned the fundamentals of GPU programming, so the next chapter moves into more advanced topics in performance optimization with the memory hierarchy and the compute core architecture. Then, chapter six covers number format considerations between integers and single- and double-precision floating point representations. The authors' definition of representable numbers struck me as exceptionally cringe-worthy here:
The representable numbers of a representation format are the numbers that can be exactly represented in the format.This is but one example of their impenetrable and useless definitions. More often than not, I found that if I hadn't already known what they were talking about, their discussions would provide no further illumination.
Now we get into the halfway decent part of the book, the extended example chapters on parallel patterns. Each of these chapters works through a different example kernel of a particular problem that comes up often in parallel programming, and they introduce additional features of GPU programming that can assist in solving these problems in a more optimal way. The contents of these chapters are as follows:
- Chapter 7: Convolution
- Chapter 8: Prefix Sum (Accumulator)
- Chapter 9: Parallel Histogram Calculation
- Chapter 10: Sparse Matrix Computation
- Chapter 11: Merge Sort
- Chapter 12: Graph Search
As long as you skim the descriptions of the problems and solutions, and focus on understanding the code yourself, these chapters are quite useful examples of how to write performant parallel programs with CUDA. However, the authors continue to suffer from what seems to be a mis-interpretation of the phrase, "a picture is worth a thousand words." For every diagram they use, they also include a thousand words or more of explanation, describing the diagrams ad nauseam.
The next chapter covers how to kick off kernels from within other kernels in order to enable dynamic parallelism. Up until this point, all kernels have been launched from the host (CPU) code, but it is possible to have kernels launch other kernels to take advantage of additional parallelism while the code is executing on the GPU, an effective feature for some algorithms. Then, the next three chapters are fairly useful application case studies. Like the parallel pattern example chapters, these chapters use CUDA code to show how to take advantage of more advanced features of the GPU, and how to put together everything we've learned so far to optimize some example parallel programs. The applications described are for non-Cartesian MRI, molecular visualization and analysis, and machine learning neural networks, so nice, interesting topics for GPU programming.
The last five chapters were either more drudgery or topics I wasn't interested in, so I skipped them and called it quits for this long and tedious book. For completeness, those chapters are on how to think when parallel programming (so a pep talk on what to think about from authors that couldn't clearly describe much else in the book), multi-GPU programming, OpenACC (another GPU programming framework, like CUDA), still more performance considerations, and a summary chapter.
I couldn't bring myself to keep reading chapters that wouldn't amount to anything, so I put down the book after finishing the last chapter on application case studies. I found that chapters seven through sixteen contained most of the useful information in the book, but the introduction to CUDA programming was too verbose and confusing. There are much better books out there for learning that part of CUDA programming. Case in point: CUDA by Example or the next book in this review.
Professional CUDA C Programming
Unlike the last book, I was surprised by how readable this book was. The authors did an excellent job of presenting concepts in CUDA programming in a clear, direct, and succinct manner. They also did this without resorting to humor, which can sometimes work if the author is an excellent writer, but it often feels forced and lame when done poorly. It's better to stick to clear descriptions and tight writing, as these authors did quite well. I was actually disappointed that I didn't read this book first, instead saving it until last, because it did the best job of explaining all of the CUDA programming concepts while covering essentially the same material as Programming Massively Parallel Processors and certainly more than CUDA by Example.
The first chapter is the obligatory introduction to CUDA with the requisite Hello, World program showing how to run code on the GPU. Right away, we can see how well-written the descriptions are with this discussion of how parallel programming is different than sequential programming:
When implementing a sequential algorithm, you may not need to understand the details of the computer architecture to write a correct program. However, when implementing algorithms for multicore machines, it is much more important for programmers to be aware of the characteristics of the underlying computer architecture. Writing both correct and efficient parallel programs requires a fundamental knowledge of multicore architectures.We need to be prepared to think differently about problems when parallel programming, and we're going to have to learn the architecture of the underlying hardware to make full use of it. That leads us right into chapter 2, where we learn about the CUDA programming model and how to organize threads on the device, but it doesn't end there. Throughout the book we're learning more and more about the nVidia GPU architecture (specifically the older Fermi and Kepler architectures, since those were available at the time of the book's writing) in order to take full advantage of its compute power. I like how the authors grounded their discussions in specific GPU architectures and showed how the architecture was evolving from one generation to the next. I'm sure the newer Pascal, Volta, and Turing architectures provide more advanced and flexible features, but the book builds a great foundation. Chapter 2 also contains the clearest definition of a kernel that I've seen, yet:
A kernel function is the code to be executed on the device side. In a kernel function, you define the computation for a single thread, and the data access for that thread. When the kernel is called, many different CUDA threads perform the same computation in parallel.This explanation is the essence of the paradigm shift from sequential to parallel programming, and it's important to understand the effect it has on the code that you write and how it runs on the hardware. In addition to the excellent writing, each chapter has some nice exercises at the end. That's not normally something you find in programming books like this. Exercises seem to be left to textbooks, like Programming Massively Parallel Processors, which had them as well, but in Professional CUDA C Programming they're more well-conceived and more relevant.
The next chapter covers the CUDA execution model, or how the code runs on the real hardware. Here is where we learn how to optimize CUDA programs to take advantage of all of those independent compute cores on the GPU, and this chapter even gets into dynamic parallelism earlier in the book rather than waiting and treating it as a special topic like the last book did.
Chapter 4 covers global memory and chapter 5 looks at shared and constant memory. Understanding the trade-offs of each of these memories is important to getting the maximum performance out of the GPU because most often these programs are memory-bound, not compute-bound. Like everything else, the authors do an excellent job explaining the memory hierarchy and how those trade-offs affect CUDA programs. The examples used throughout the book are simple so that the reader doesn't get bogged down trying to understand unrelated algorithm details. The more complex examples may be thought-provoking, but simple examples do a good job of showcasing the specifics of the topic at hand.
Chapter 6 addresses streams and events, which are used to overlap computation with data transfer. Using streams can partially, or in some cases completely hide the time it takes to get the data into the GPU memory. Chapter 7 explains more optimization techniques by using CUDA instruction-level primitives to directly control how computations are performed on the GPU. These instructions trade some accuracy for speed, and they should be used only if the accuracy is not critical to the application. The authors do a good job of explaining all of the implications here.
The last three chapters weren't as interesting to me, not because I was tired of the book this time, but because they were about the same topics that I skipped in the other CUDA books: OpenACC, multi-GPU programming, and the CUDA development process. The rest of the book was excellent, and far better than the other two CUDA books I read. The writing is clear with plenty of diagrams for better understanding of each topic, and the book organization is done well. If you're interested in GPU programming and want to read one book, this one is it.
Between these two CUDA books, the choice is obvious. Programming Massively Parallel Processors was a bloated dud. It may be worth it just for the large set of example programs it contains, but there are other options coming down the pipeline for that kind of cookbook that may be better. Professional CUDA C Programming was better in every way, and really the book to get for learning CUDA programming. The authors did a great job of explaining complex topics in GPU architecture with concise, understandable writing, relevant diagrams, and appropriate exercises for practice. It's exactly the kind of book I want for learning a new programming language, or in this case, programming paradigm. If you're at all interested in CUDA programming, it's worth checking out.
Reasons Why This Chain Of Command Malarky Must Be Pretty Good
If you are reading this then you might have noticed that I have started to re-invigorate this erstwhile dormant blog, one of the main reasons for this has been my (rather late) discovery of these rules. A set of rules that has managed to achieve that after a seven year lay off is in itself no mean feat given my natural indolence.
Last night is a good micro example of why for me Chain of Command is a great set of rules and lives up to its recent accolade from WI of "Best game of 2017"; for me, that is literally so.
We had a game planned at the CLWS, just a vague pick up game of "medium" CoC, 2 German infantry platoons versus 1 BEF and 1 French infantry Platoon. Nothing special, but even as a simple game it was extremely tense, tough on both sides, and with neither really having any great advantage until the very end.
We plumped for a Delaying Action scenario, with the Allies deploying in a small village protected by a small wooded rise to the south of it, with an open flank to the west and the eastern side protected by walls and hedges
Over I went. British turn.He opened up at close range with a Bren and a couple of rifles, and....I got away with it...He only managed to hit 1 rifleman and inflict a couple of points of shock.
Then my turn: A double 6 plus a 4 and a couple of 3's..perfect! I returned the British fire with some 25 fire dice, got 17 hits, killed 3 or 4 British and inflicted a similar amount of shock, he was wobbly but not quite pinned, I also continued moving my left flank section up to distract the carrier. With my second turn from the double six I fired again...hitting the BEF section with another 25 dice...too much for him- the entire section was wiped out including the corporal. Much better.
A loud bang and and a shout went up from my right flank. The lone surviving rifleman from Will's section had got forward, flanked the Souma and detonated his satchel charge! Things were looking up. I despatched my 4th section round to reinforce the right now that Will was making headway.
Then the British turn, he rolled 3 sixes so the turn ended....my smoke evaporated....Gulp...The bren carrier and a section in the rear house started peppering my left hand section, The Bren carrier continued forward firing.. I took a couple of hits and several shock, I needed to get forward. In my phase the sergeant readied another smoke grenade and promptly rolled double 1! dropping it at his feet and enveloping himself in smoke. Nothing for it, The platoon sergeant ordered forward a rifleman with my only satchel charge, he ran to the Bren carrier, planted the charge and retired to safety. It was even the right figure to do it, he had a gold close assault badge on his little plastic arm! The charge went off and did absolutely nothing, didn't even scratch the carrier.
I pushed forward with the left hand section despite taking fire from the carrier, I didn't really know what to do to be honest, but at that point the game was won on the right, the last French section broke, the German force morale was hanging on by a thread (Will was down to FM 1!)but in the ensuing tests I used a CoC dice or 2 and survived and the British morale gave way. I ended on FM 7
It was a thoroughly enjoyable game, so thanks to Will, Dave and Jerry for a good evening. I don't think I've managed to convey much of the tension that was in this game. The lack of support options for the Germans meant they had to do it the hard way. I don't think it would have been as much fun if the Germans had brought along a Stug or 2. I took 12 casualties but if this had been a campaign my losses wouldn't have been too bad after adjustment.
Thinking about it, if we had been playing a game of say, Spearhead, or Command Decision, this entire game would have been about 3 or 4 die rolls between 4 stands.....
So, it looks like I'm sold on Chain of Command.
(Apologies for the lack of photos for this game, but I was having too much fun to remember to take many)
Fun Art Projects
I've not been in the mood to write articles lately, so instead I've been working on some fun projects instead. Watabou posted about Dyson Hatching, which got me thinking it might be interesting to constrain the hatch lines to Voronoi cells. I implemented that and then got carried away with colors, line spacing, line width, and other fun things. The demo is here. You can drag an image onto the diagram to use the colors from your image.

The second project was also thanks to a Watabou tweet. It inspired me to play with shaders on a Delaunay mesh. Once again I got carried away and had lots of fun making patterns. The demo is here. Play with the first two sliders to pick the pattern, then adjust the other sliders to fine tune it.

Enjoy!
Monday, March 16, 2020
Troops On Parade - 28Mm British AWI
Following a bit of a lull in the gaming here at YG I thought it was time to put together one of my Troops on Parade features which is essentially an excuse to drag out one of my lesser used collections, blow the dust off them and present them to the outside world.
![]() |
Agnews Brigade |
The flags are from GMB, some of them have had quite a bit of over painting, for some reason I found that the first batch of flags faded quite badly with the white turning a shade of light pink ! (which you can still see in certain angles / light). A bit annoying to say the least, the gold and silver cords where purchased from a local Harberdashery store.
![]() |
That dog looks familiar ! |
![]() |
Grey's Brigade |
I chose to have a recognisable feature for each of the brigades to help with on table recognition, Greys troops all have red plumes whilst Agnews have white plumes. The biggest (36 figures and pain !) was the Highlanders.
Anyone who has painted a Highland unit and given the tartan a good go will have vowed not to paint another one, this is probably my forth or fifth "not doing that again" promise, so for I've gone 5 years without (but those Crimean War Highlanders look soooo nice).
![]() |
Tartan Detail |
Photographing these reminded me they need a coat of Matt Varnish, they are finished in my old Humbrol Satin Cote style, great tough varnish but too shiny got photos.
My favourite units in the Army are these, Grants Brigade, made from the Perry Miniatures plastic box set, there is really some great feeling of movement in these units.
The unique feature for this brigade was the dark blue grey campaign trousers but I also changed the basing to give some extra depth to the Unit. This was initially purely to protect the perfectly proportioned and therefore pretty weak, plastic muskets on the figures.
But as I put the units together I found it was easier to slightly stagger the figures both forwards / backwards and sideways to get the "movement" I spoke of above, the addition of some casualty figures from the box set added to the scene and each unit has it's own diorama feel.
Which just leaves the unbrigaded Infantry. First up is a unit of Converged Grenadiers, using the great range of figures in the Perry range I was able to put a "rolling fire" layout together, with seperate bases firing, at ready, loading etc.
If you look really closely each base has different facing colours in line with the brigades of Agnew and Greg.
Which just leaves the Skirmishers and formed unit of the Queens Rangers.
Next up are the Cavalry, pretty rare in the AWI and something I neglected for quite a while. I managed to build up 2 x 6 figure units of British Light Dragoons and a unit of Queens Rangers Horse.
And finally we have the big guns, well the Artillery at least. 4 guns and 2 Howitzers of His Majesties Artillery.
So there we have another Army out in daylight for a few hours ! They are back in the cupboard now as we are back in the Desert tonight for a spot of Op Compass.
Sunday, March 15, 2020
Further Good News For UCLAN 3Rd Year Student, Peter Dimitrov.

Even more news regarding the Animal Shrine project!
We are so proud to see the work of our 3rd year Games Design student Peter Dimitrov at University of Central Lancashire, featured in 80lvl online.
Peter has had the opportunity to write an article for 80.lv about the making of his 'Feudal Japan' project !!
It's a high quality website and lots of people from the industry read it 😊
Peter has had the opportunity to write an article for 80.lv about the making of his 'Feudal Japan' project !!
It's a high quality website and lots of people from the industry read it 😊
https://80.lv/articles/building-an-ancient-animal-shrine-in-ue4-001agt-004adk/
Building an Ancient Animal Shrine in UE4 - 80.lv
80 level is a great source of valuable information about the gaming industry and its recent trends.
You can see more of Peter's work over at the following channels:
Artstation
Subscribe to:
Posts (Atom)