? ??????????????????? ????Easy Install Instructions:???1. Copy the Code??2. Log in to your Blogger account
and go to "Manage Layout" from the Blogger Dashboard??3. Click on the "Edit HTML" tab.??4. Delete the code already in the "Edit Template" box and paste the new code in.??5. Click "S BLOGGER TEMPLATES AND TWITTER BACKGROUNDS ?

Saturday, March 28, 2020

The World Is Safe... For Now

What's going on everyone!?


Today for the #2019gameaday challenge I decided to get an early game in because of our big move. I decided to play Elder Sign: Omens, basically Eldritch Horror mobile.

After getting reacquainted with the game I started to try and save the world from the ancient ones! 

After a few rounds of success in closing gates the game started showing me it's TRUE colors and killing off my party!

(I failed to grab a screenshot of the first death but it was the guardian angel) 

By the time all was said and done it was 3 dead and only Joe left. Surprisingly he pulled himself together and mustered up the courage to close the last gate himself and thus saving the world from ultimate doom and destruction! 

I'm unsure if my score is any good to be honest as this is my first win. Let me know if you play this one and if my score is good or subpar at best.


As always, thank you for reading and don't forget to stop and smell the meeples! :)

-Tim

CHIC GIRLY HOUSE | STOP MOTION + DOWNLOAD + TOUR + CC CREATORS | The Sims 4 |


  
Continue Reading »

How To Download And Install Batman Arkham Origins Black Box On PC (With ...

Monday, March 23, 2020

A Fear Of Flying They Call It


Image in Public Domain.



Being the easily impressionable student that I am, I decided to take on the collegiate tradition of studying abroad. It's a common cliche to hear alumni gush about how studying abroad changed their life, and will change yours, too. The salesmen sure know how to pitch, but I can't say I was completely sold.



I study Spanish, by the way. No, it didn't come out of a great passion for the language, or anything noble like that. In my freshman year of high school I had to select two electives. I chose Spanish and Wood Shop, since they seemed to be the easiest grades. Sure enough, they were. I intended to stay for only two years in Spanish, but stayed longer for the fiestas. Yes, I'm sleazy.

A few scholarships later, I found myself at the airport, ready to go. Well, not so ready. My proficiency in Spanish was crap. I'd only taken a cursory glance at the map, so I getting lost was inevitable. My destination was Santander, Spain. A city I'd never heard of before.

The luxurious plane trip did well to calm my nerves. I have always been pensive about flying, having heard the stories of cramped seats, crowded bathrooms, and crappy airplane food. I didn't worry too much about airsickness (since I'm not prone to vomiting), but I grasped my sick bag should Pazuzu suddenly feel the urge to possess me. I expected lifting off to be like riding on a roller coaster (did I forget mention I don't like those?) yet flying through the air hardly felt any different that riding in a car. Better even. My fears about airplanes were assuaged halfway between the in-flight movie and risotto. This was the Blackjack of Setzer Gabbani. Yet, alas, no flight lasts forever.

In the book of Exodus, Moses names his first son with Zipporah, "Gershon", while in exile from Egyptian royalty. In Hebrew, "Gershon" means "stranger in a strange land." In Spain, I thought my name was "Gershon", but in Spain, my name was "mud."

My problems started as soon as I landed in the Madrid airport. The place was a labyrinth and with no David Bowie to guide me, either. After studiously running around in circles for about two and a half hours, I finally found my plane...just about to take off! The flight crew had to stop the departure for me to get on. I scrambled into my seat, sweaty, delirious, and paranoid.

I took a taxi to my host mother's apartment, knowing my habit for getting lost. The Spanish was mostly basic, "Hola", "¿Que tal?", "Estoy bien", etc. I think those cheap formalities would've sufficed, but I overreached my hand and chewed off more than I could swallow. She gave me a slightly confused look. To this day, I wonder what it was that I said. A cat named Rita also lived there. Cats speak the same language in Spain.

I soon had to meet up with my classmates at "Ayuntamiento" which is Spanish for "town hall." I stepped into the streets nervously, my hands jammed into my pockets for fear of thieves. I tried desperately not to look a tourist, but that veneer faded as soon as I brought out my map of the city. I was lost for two hours. A fat lot of good the map did. At the end of my struggle, I gave in and searched out a taxi, but the cab driver nearly laughed me out the vehicle. It turns out that Ayuntamiento was only a few minutes away.

The next day was hardly any better. Classes began at 8:30, so I woke up at 6:00, knowing that there would be a long walk ahead of me. The school was somewhere on the other side of the city, and I had no idea what it looked like. I figured at the time that a university would be easy to spot. Well, you know what they say about assumptions.

The trek was tiring, to say the least. It often had me going uphill through the various neighborhoods and alleyways. I recalled watching The Flash on the plane. How I would've loved to have had Barry Allen's super-speed at the time. Though if I did, I might've missed out on many of the aesthetics. The shops and dwellings of Santander were melded to fit into the rising landscape. Laundry hung on clotheslines outside of the windows, while pigeons scurried on the grounds, pecking for bread crumbs. By the orange hues of sunrise, it all looked at times as if I had wandered into a painting. Though I doubt if a late student would get extra credit for cultural appreciation.

La Universidad de Cantabria was far smaller than I had anticipated, though I suppose that was for the best. If it had been any larger, I'd probably get lost there, too. The university, small though it was, would become something of a second home for me. The think with relish on the countless hours I would spend outside of the cafeteria, listening to quirky stories NPR, memorizing Spanish vocabulary, or eating what was left of my pig liver sandwich.

Perhaps it was the Sea of Cantabria that kept me (relatively) sane throughout all of that initial madness. My host mother had an apartment near the sea, so it sort of functioned as my North Star. I need only know where the sea is, and I'd (eventually) find my way home. It was a great, wide blue that glittered in the sunlight, its waves licking the shore.

I suppose there's something poetic in the sea, though I can't tell you exactly what it is.




Friday, March 20, 2020

Building A Magnetic Model Transport System

Last June I started collecting Convergence of Cyriss.  Since I was getting the faction almost completely by doing model trades, the project turned into a bit more work than I had planned for it as more than half of what I got in trades were in a horrible state.

That said, I did get most of the faction in one swoop and after a bit of hard modeling work, I had everything ready to go.

Except I couldn't really go anywhere with it because as any war gamer knows, you need some kind of transport system for an army.

That's a lot of CoC!

I've typically used Sabol foam trays carried around in a Battle Foam Pack Air case, but huge based models require specialty foam from Battle Foam, and those are pretty pricey - $23 per huge base.  If anyone knows about CoC, they know you will have at least 3 huge bases, and I ended up with 4 after all the trading was done.

I'm looking at almost $100 in foam just for the huge bases, then at roughly $8 per Sabol tray, I'm easily blowing $150 or more getting everything in foam for this faction.  Then I'm lugging the large pack air case plus an old Sabol Army Transport bag to hold my huge bases if I'm using them in my list pair.

There simply had to be a better way. Then the idea hit me...





Magnets!

I went to the local craft store and bought myself some bins that were the same length and width, but had different heights. I did some pre-measuring of each of my huge bases and my "floating" vectors to check heights.

Each bin is 15.5" x 11.5" and I ended up with 5 bins in total: 1x 8.3" tall, 2x 5.6" tall, and 2x 2.9" tall.  The bins were about $12 a piece, but more importantly I wouldn't ever have to buy more in the future. The only recurring cost for this system is going to be purchasing magnets for new models.


Securing the Models

Magnets don't work on plastic, so I needed to line the bottom of my bins with metal. My local big-box hardware store had 1 foot square steel sheet at about $5 per. Not too shabby.  The only problem was that I'd need to shave off some of the sheet to fit into the bottom of my bins. What's more is that while the overall top dimensions of the bins are the same, the bottoms are not.  

There was a bigger problem. I'm not particularly handy, and I don't have a ton of power tools.  What I do have however is my friend Ray.

This is Ray. Ray is handy. Be like Ray.

Ray is one of those guys who makes his own furniture - as a hobby...and the furniture actually looks good when he's done! He's got tools galore and was kind enough to help me out by cutting my metal for me. I had used a pair of metal snips to cut one sheet and it worked, but it didn't look great. Ray sanded that shit down for me and trimmed it up so it looked better. 

So now I had 5 sheets of steel cut to the right size for my bins. 

Mixing Plastic and Steel

Next up I just gotta stick my steel to my bins, should be easy right?

I tried superglue. That failed spectacularly. The steel pulled right off with a tiny bit of tugging. It worked well enough to hold if I didn't rumble it too much, which was good for a short term solution of carrying the CoC to play games locally. 

So next I decided to buy a two part epoxy that said it would work on metal and plastics.  So I put on my gloves, was really careful, sanded down parts of the steel where the super glue didn't take and weighted down my bins:




After 24 hours of curing....the steel peeled right off with just a little bit of force, just like the the superglue. 

At this point I was done trying to find some kind of glue or epoxy based solution. It was time for nuts and bolts. Luckily the bins I bought had the raised section in the middle where I could have the bolt-ends sit while not exceeding the lip of the base of the actual bin (ie. I won't scratch up any tables due to having bolts on the bottom of my bins). 

Construction Tips

One thing I learned: Drilling through steel sheet isn't great if you don't have special drill bits, which not being a handyman, I didn't have.  You can however put a thick nail through the steel pretty easily, which then lets the drill go through easily and drill through the plastic.  I only hammered my thumb once. Ray would be proud. Sorta. 

Because bolts take up model space, and my huge base solution is kind of tight, I elected to only use two bolts per bin rather than 4. I will see how well this holds up, and if I need to secure it more it's easy enough to mark where to put the holes, remove the plates, make the holes, and re-secure it all. 

That said, there's only a tiny bit of wiggle with the two corners secured as it is, so I believe this setup will work.  Here are my results:






Magnet Advice

I recommend buying strong rare earth magnets for this, stronger than what you'd usually buy if you're magnetizing jacks/beasts. Specifically N52 strength is preferred.  I've gotten some magnets off Amazon but the affordable ones there are generally the weaker kind, so I've preferred to get magnets for this from K&J Magnetics. I'm not affiliated with them at all, but I've used them for years and they deliver quality stuff. 

You can get away with cheaper magnets if you use multiple, and cheaper magnets work well for small based plastic models that don't require as much force. Amazon can help out here. 

I actually had quite a few magnets laying around from years gone by which reduced my magnet purchasing requirements a bit.

That said, once you've used the right magnets, everything stays very secure in the bins. I didn't take a picture, but I was able to turn the bin upside down with the models in it and not have any casualties. 

Carrying Solutions

The final bit that isn't finished yet for this is a bag to hold it all. Currently I use a set of straps I had for carrying a PC around to LAN parties to secure the bins and hold my dice bag + widgets.  This works but isn't exactly pretty.

I am lucky in that my wife is a quilter, and she's currently sewing up a bag to hold this in, complete with pockets, straps for easy carrying, and all the rest. I realize not everyone can do this or has the luxury.  The alternative was trying to find a piece of luggage or a transport/case for a sewing machine that would have the internal dimensions to hold my bins. With better planning up front (buy bins that fit in luggage more easily) this is probably more achievable, but again you're still spending a decent amount of money this way. It's still probably less than a equivalent sized Battle Foam bag + rack system, but it's a lot of work to find the right combo of bin + case. 

Costs and Benefits

I started this project thinking it'd be good long term going forward wargaming wise and would save me money. Did it? Yes, but partially because I've cheated.

I am saving a good bit of money and getting a custom case + transport system, but that's really only because my wife isn't charging for her labor to assemble the bag, Ray didn't charge me for cutting the metal to size, and I don' t have to pay myself for all the work I've done getting the bins setup.  I also didn't have to buy lots of my strongest magnets because I already had a bunch from when I played 40k/WHFB. 

I probably could have just spent the extra money up front and bought Battle Foam's Magna-Rack system and one of their cases. They're pretty damn expensive, and you still have to buy the magnets, but it's basically none of the work and it looks great.  My custom case will look as good if not better, but not everyone is married to a quilter with sewing equipment to make a custom bag. 

The real savings are in the fact that going forward for any new armies I ever pick up, I'm using magnets, not foam. 

Magnets can cost up to $0.50 per magnet of the right size/strength, so 100 models is $50 in magnets. Is there really a cost savings here?  I think so, but in hindsight, it's probably not much.

Typically $50 in foam is not going to store 100 models, especially if you're counting lots of bigger models (30mm to 50mm bases) which take up a lot of foam space, but still only require one strong magnet.   Huge bases (120mm) require multiple magnets per, but even then it's only like $2 in magnets as opposed to $22 for a foam tray. 

You can also use weaker magnets for small based plastic models, where the magnet costs are significantly cheaper, especially if you look around on Amazon where you can get 50 to 100 magnets of the right size for something like $15. 

The real savings comes in the fact that once you've bought+built your bins to transport the minis, you can use them with basically any model set you want. Compared to foam where you need to pluck out whatever kind of foam for your specific models. The other benefit is storing models that have long reach weapons or stick out oddly...like Inverters or Reciprocators. 

When it comes to storing models long term (ie. when I'm switched to another army), I can put some metal sheet in larger storage bins and just put my models into one decent sized bin. This is probably more efficient than what I have to do now to store foam trays for models. 

The other benefit is when it comes to going to tournaments. I can fit my two list pair onto a single baking sheet, which makes for a great tournament tray that securely holds everything. I've already attended one event this way and it has worked out great. The baking sheet was something like $5 and slips easily into my bag. 

Overall I'm pretty happy with how the project has come out and I've certainly saved some money going this route, but it's definitely a lot of work to get here.

Thursday, March 19, 2020

Star Trek: Picard Episode 9 Recap: The First Part Of The Season Finale Has A Major Revelation - TechRadar

Star Trek: Picard episode 9 recap: The first part of the season finale has a major revelation

I Will Be Speaking At EGLX In Toronto!

#SuzyCube #gamedev #indiedev #madewithunity @EGLXofficial 
EGLX is coming to Toronto from October 26 to the 28th and I will be giving an updated version of the talk I gave in Ottawa for CGX a few months ago! 
Read more »

DadaDumdum DadaDumdum

OK not the best  rendition of the Game of Thrones intro music but it seemed like the best intro. Yes, on Saturday I got to experience the Song of Ice and Fire wargame. Its not my usual style but its good to stretch oneself now and then and to sample what the wider world is doing and besides, I enjoyed both books and tv series.

Tully Cavalry waiting for the battle to begin.

The figures are rather nice sculpts, somewhere around 32-35 mm by eye and the all the components seem well done. The rules are simple enough but like many a modern game, the complexity comes in the capabilities of the various units and characters and figuring out how to make best use of them. The basic principles of war still apply (maintain the aim, economy of force, etc) but like many contemporary games that I've sampled it seems to be more about making the best use of your units' special abilities and avoiding those of the enemy than basic tactics.
Many of the figures are new, some straight from previously unopened boxes that had just arrived. I suspect it might take a while to get them all painted but they fought well either was and there was a bit of that nostalgia for games with unpainted Airfix in the 60's.  

They've gone to great effort to up the feel of the various factions and the main characters of the series but like many contemporary games, it seems to be designed so that the common, ordinary, soldier is a rare  thing. Everybody is special in their own way. Its a bit like a WWII game with a German force with nothing but Tigers, 88's, 155mm artillery, Pzr Grenadiers and Falschirmjaegers.

Overall, it was a day well spent with friends, learning something new and  playing a tight, and at times exciting, game. Am I going to rush out and start buying? Nope, but I'd play again if that's what was on for the day.

Meanwhile, its back to the French Revolution!

Monday, March 16, 2020

The Journeyman Project - Justice - Won!

Written by Reiko

Agent 5 Journal #5: "My work is finally done here. Sinclair is neutralized and the timeline should be back to normal now. He'll be imprisoned, I'm sure, and justice will be done. After all, if I hadn't stopped them, his robots would have killed thousands of people. It's sad that such a brilliant mind turned out to be so unstable."

Last time I finished the third time period and returned to the present to find that all of the temporal rips have been resolved. I exit the time machine and start looking around for what to do next. We've got to stop Sinclair from carrying out his final plan to assassinate the Cyrollan ambassador, but where is he?

Oddly enough, I find that if I go back into the Control Center and check the computer, it still identifies the same discrepancies as before, even though the timeline shows no temporal rips. You'd think that correcting the timeline would make the current history the same as the previously recorded history again.

The objective files make it clear that the source is Sinclair...


Well, there's nothing more to be done at the agency, so I go back down the hall to the transporter to see if I can go anywhere. When there were temporal rips left, I wasn't even able to access the transporter, but now I can. After I enter it and put my transport card in, it gives me the same four transport options as at the beginning of the game. However, this time, if I try to select anything except returning to Caldoria Heights, I just get a message saying, "Agent 5: You must discover the source of the temporal rips." I guess it isn't really a choice, then.

Back I go to my apartment complex. Surely my apartment isn't interesting, and I can't access anyone else's apartment. The only interesting place remaining is the rooftop area, which is still closed for the alien procession. But, hmm. The door has a slot on it. (The transporter seems to have eaten my transporter card this time, so it's no longer in inventory and can't be tried on this slot. It doesn't do anything even if you try it at the beginning of the game, though.)

Sinclair should have shot me here when he had the chance.


I have something else that can fit into a slot and affect electronics: the access card bomb. I drop it onto the slot and it blinks a few times and then abruptly explodes, destroying the door and punching a large hole through the wall. Through the hole, I can see a man, Sinclair, holding some kind of gun. He turns to look at me and warns me not to interfere. Instead of shooting me immediately, he goes back to lining up his shot, which gives me a moment to act. I pull out my stun gun (having to painstakingly scroll all the way to the bottom of the inventory to get to it) and stun him before he can shoot the ambassador.

Final Score (non-peaceful)

And that's all there is to the endgame. Sinclair crumples, and abruptly I've won. The game dumps me to a screen with an ending message and a final score.

Winning message: "Congratulations, agent five! You've stopped Dr. Sinclair and assured humanity a place in the Symbiotry of Peaceful Beings! A promotion is surely in the works for you. But a Temporal Protectorate agent's job is never done..."

My final score was 114187, with only one time period considered as having been solved peacefully (Mars). That was after crushing the NORAD robot in the high-pressure room, which is apparently the violent solution. It seems to have done more damage to the robot itself, anyway. I don't know why, but the game seems to think I visited 2310, the rally level, twice. I don't know if there was a glitch somewhere, or if it was because I saved after getting the antidote and reloaded, or what.

Final Score (mostly peaceful)

I also replayed the endgame from the other NORAD ending with the loader arm. Everything's exactly the same about getting to the rooftop and stunning Sinclair. For some reason, my final score there is a little lower, though: 106729. But my total energy remaining was actually slightly higher, so the penalty is all from the fact that now it thinks I tried the NORAD level twice as well. I didn't do anything except reload and use a different solution on the robot though. So I have to wonder if somehow the game is tracking when I restore a saved game? But I saved and restored at multiple places in the Mars level (the ore crusher is the most critical point) and it only counted one attempt for that level.

So I've finished the game, but I haven't achieved a fully peaceful ending. To do that, unfortunately, I have to replay almost the whole thing again, because I did the time periods in the wrong order. But since I know what I need to do, this doesn't actually take all that long.

I restore back to the point where I've done the comparison with the record disk and am ready to start dealing with the three main time periods. This time I go to Mars first. I make sure to pick up the maintenance key and the wire cutters in the transport, and I quickly dodge the robot, fill the oxygen mask, disarm the access card bomb, and thread my way through the mining maze. I carefully ride the ore crusher and chase the robot down in the extra shuttle, being careful to capture it rather than destroy it.

Last time, the rally level gave me Mercury and the Mars level gave me Poseidon.

This time, when I get the Trace and Optical Memory biochips, the memory biochip contains the Ares Objective file. I never got that in my previous playthrough. I think there must be some glitch with the memory cards if you do the levels out of order. I noticed originally that the memory biochip was supposed to originate from the Mars level, so that's a hint about that. The Ares objective is pretty straightforward: Sinclair gloats at how clever his plan is to destroy both the Mars colony and the alien ship and make it look to Earth like the aliens did it and to the aliens that the colony did it.

Shorting out the robot with the fire controls.

Next up is the rally level. I analyze the tranquilizer dart and synthesize the antidote as before. This time, when I face the robot, I use the wire cutters from the Mars level on the padlock for the fire control access cover. I open it and poke at the controls, which I think causes sprinklers or something to come on, again shorting out the robot but without doing as much damage as electrocuting it. I carefully pull all the biochips, including the Retinal one. As before, the memory biochip is updated with the Mercury Objective file.

Collected all objective files.

Finally, I redo the NORAD level. I use the shield chip against the robot's plasma shots, and then the retinal chip to bypass the retinal scanner on the Alpha station door. I play the minigame to deactivate the nuclear silos and thwart the launch. Then I use the loader arm to neutralize the robot. Its biochips are duplicates, but the memory chip gives me the Poseidon Objective file, so this time I have all three.

Final Score (peaceful)

I'm nearly done. As before, I transport back to Caldoria Heights, ride up to the rooftop level, blow through the wall with the access card bomb, and stun Sinclair. I win again, and this time I get the best result: all levels are peaceful and have one attempt (I was really careful, so I never had to reload), and I get a 25,000 point bonus for the peaceful finish. Mission accomplished. The replay only took about 45 minutes total, which means that, once you know what you're doing, the full game would only take about an hour to play through.

Credits with photos

Credits with names and titles


Each time, from the winning screen, I get an option to view the credits instead of the buttons to restore, restart, or go back to the main menu. However, the credits button from the winning screen very briefly takes me back to a screen that looks like the game screen but with a warning message about being out of energy. It's so brief that I couldn't even get a screenshot of it. Then it dumps me back at the main menu, which also has a credits button, and this one actually works properly. You can see Michel Kripalani, the originator of the Journeyman Project, in the bottom-middle slot. His friend Greg Uhler, the programmer, is next to him.

Final Maximum Score: 132827
Session Time: 1 hr 15 min (including 45 minutes for final replay)
Total Time: 8 hr 30 min

Deaths: 1 (total: 20)

In the crosshairs of Sinclair's gun

There's one more death available in the endgame: if I wait too long to stun Sinclair, he shoots the ambassador and then turns and shoots me. The ending is called "Shot by Sinclair". The message reads: "In killing the Cyrollan delegate, Sinclair felt he was ensuring the continued existance [sic] of humanity. You may have disagreed. If only there had been some way to stop him."

Next up will be the rating. We'll take a look at what this game did well and what it didn't. For one final opportunity for bonus CAPs, see if you can figure out what band produced the songs whose titles became my post titles for Journeyman Project. (The first one, Time Distortion, was just too perfect for the situation, so I ran with it from there.)

Sunday, March 15, 2020

Brainstorming With Transpose

Sometimes I get stuck and look for a way to think about a problem a different way. There are some problems that you can view in the form of a matrix/table. The structure looks like this:

A B C D E
1 A1 B1 C1 D1 E1
2 A2 B2 C2 D2 E2
3 A3 B3 C3 D3 E3
4 A4 B4 C4 D4 E4
5 A5 B5 C5 D5 E5

There are rows and columns, and I'm trying to work on the cells. Let's try an example from a simple game:

Attack Defend Special
Fighter sword armor slam
Mage fireball reflect freeze
Thief dagger dodge disarm

The rows are the character classes: Fighter, Mage, Thief.

The columns are the types of actions: Attack, Defend, Special.

The matrix contains all the code to handle each of these types of actions for each of the types of characters.

What does the code look like? The usual thing to do is to organize this into three modules:

  1. Fighter will contain code to handle sword attacks, damage reduction from armor, and slam special attacks.
  2. Mage will contain code to handle fireballs, damage reflect, and freeze special attacks.
  3. Thief will contain code to handle dagger attacks, damage avoidance from dodge, and disarm special attacks.

Sometimes it's useful to transpose the matrix. I can organize along the other axis:

Fighter Mage Thief
Attack sword fireball dagger
Defend armor reflect dodge
Special slam freeze disarm
  1. Attack will contain code to handle sword attacks, fireball attacks, and dagger attacks.
  2. Defend will contain code to handle damage reduction, damage reflect, and damage avoidance.
  3. Special will contain code to handle slam, freeze, and disarm.

I was taught that the one style is "good" and the other style is "bad". But it's not obvious why this should be so. The reason is that there is an assumption that we will often add more character classes (nouns) but rarely add more types of actions (verbs). That way I can add more code with a new module, without touching all the existing ones. It may or may not be true for this game. By looking at the transpose, it makes me aware of the assumption, and I can question it. I'll then think about what kind of flexibility I want, then decide on the code structure.

Let's consider another example.

In programming language implementations, there are different types of nodes corresponding to the primitives: constants, operators, loops, branches, functions, types, etc. I need to generate code for each of these.

Generate Code
Constant
Operator
Loop
Branch
Function
Type

Great! I can have one class for each type of node, and they can all derive from a superclass Node. But this is based on the assumption that I will often add more rows and rarely add more columns. What happens in an optimizing compiler? We add more optimization passes. Each one is another column.

Generate Code Data flow Constant folding Loop fusion
Constant
Operator
Loop
Branch
Function
Type

If I want to add a new optimization pass, I would need to add a new method to each class, and all the code for an optimization pass is spread out all over the place. This is the situation I was trying to avoid! So some systems will add another layer on top of this. Using "visitors" I can keep all the loop fusion code in one module instead of splitting it up among lots of files.

If I look at the transpose of the matrix, it reveals another approach:

Constant Operator Loop Branch Function Type
Generate code
Data flow
Constant folding
SSA
Loop fusion

Now instead of classes with methods, I can use tagged unions with pattern matching (not all languages support this). This keeps all the code for each optimization pass together without requiring the indirection of visitors.

It's often useful to look a a problem in terms of a matrix. Applied to the object-oriented structure that everyone thinks about, it might lead me to use something different, such as an entity-component-systems, relational databases, or reactive programming.

It's not just for code. Here's an example of applying the idea to products. Let's suppose there are people with various interests:

Nick Feng Sayid Alice
cars X X
politics X X
math X X
travel X X

If I were designing a social web site, I might let people follow other people. Nick might follow Alice because they're both interested in cars and Feng because they're both interested in travel. But Nick would also get Alice's math posts and Feng's politics posts. If I consider the transpose of this matrix, I might let people follow topics. Nick might join a cars group and also a travel group. Facebook and Reddit started around the same time, but they're transposes of each other. Facebook lets you follow people; Reddit lets you follow topics.

When I get stuck, or when I'm wanting to consider alternatives, I look at the problem to see if there are multiple axes of organization. Sometimes approaching the problem from a different direction can yield a better approach.

Thursday, March 5, 2020

Finance And The Great Unknown (Tradecraft)

As my book was hitting the shelves, I had this sinking feeling as the store struggled. This would be my comeuppance, the game store owner who wrote a book and promptly went out of business. 2018 was the year we had an honest conversation about debt and finances and the various tricks used to get through a month. Cash flow in the beginning of 2018 was usually enough to cover a handful of days. Being a week behind on bills was normal. Worst of all, I didn't want to acknowledge it.

When our construction project was underway and the months slowly ticked by with its business disruption, I borrowed money to pay for the work, and the decline in business. Then I borrowed a little more. Then ... a little more. All in, it was over $100,000. Could I pay it back? There were no bank loan actuaries to put on the brakes and say I had enough debt. There was me, with a modest income projection, with a make or break project. If I stopped borrowing now, I would fail. There's not really a choice here. So I kept looking at the numbers I needed to achieve while in the back of my mind, laughing hysterically. Because I have a bit of imposter syndrome and part of that is never believing my own bullshit.

So in 2018, just a year ago, I took matters into my own hands and did what I said I would never do again, and took out a home equity loan. It's amazing anyone would give me one after flipping Citimortgage the bird, and re-negotiating my mortgage on my own terms, but it had been enough years, and all was forgiven. I refinanced one of my loans and infused extra cash into the business. The problems were finally acknowledged and as nobody else wanted to loan me money to do this thing, I did it myself, paying myself a reasonable interest rate, much to the chagrin of my investors.

I paid off a loan that had the most stringent terms, a security interest on my furniture, fixtures and equipment (which I am grateful for), with a loan from me, with the least stringent terms. Legally, as an owner, if the business fails, I am last in line to be paid. That's why my investors were reluctant to loan money. It's a crap position, as opposed to other personal lenders who took on senior positions, or security interests, or whatever made them comfortable.

The ironic thing is I get mail every day offering to loan me hundreds of thousands of dollars. None of my loans are on a credit report, they're all private. Sometimes I take the time to talk to lenders on the phone explaining, "Look, I don't need any more money. Money is cheap. I need revenue. Call me when you have a plan to increase my revenue." It amuses me because it's a large corporate position. Sears doesn't need another hundred million dollars, it needs a plan to be a better Sears. If you come up with one of those, well, you've got something they want to buy.

Coming up with a better Black Diamond Games is at the end of the day, my job. But for a while in 2018, I was looking around, hoping to maybe find someone who could take me up on that offer. The guy who wrote a book on starting a game store, looking for someone to do his job. That was 2018 in a nutshell. Thankfully, we're in much better shape in 2019, in all the ways possible. It's chaotic and stressful. Good material for a second book.



PEARL SET - Novvvas




Uclan Games Design Christmas Party 2018.


The Games Design Christmas party was in full swing as a final celebration before the hols and following all the creative activity over the autumn term.

The photos speak for themselves to safely say that "A good time was had by all with prizes and lots of cake!

The Games Design staff would like to thanks everyone for joining in the merriment and a special thanks to Jim and Rhoda for running the event and the following students for their generous contributions towards the event.


Carla Brown (Year 1) for organising all the lovely food treats
Nicola Hynes (Year 2) for a smashing super chocolatey vegan yule log
Alex Keates, Lewis Wright , Dan Butler (Year 2) Luke Briggs, Sam Albanese (Year 3) for setting up the gaming and quiz questions
Dylan Swarbrick and Finley Tyler (Year 1) for setting up the Christmas lights
Dan Butler and Dominic Kay (Year 2) for the classic karaoke!