GameDev IT and Tech

Unreal Engine 4 Swarm Farm


Anyone who’s tried to hitting the build button in Unreal Engine 4 in a level that’s got a lot of lighting going on will know that the build process can be pretty tedious. Building the lighting in the Sun Temple demo level that comes with UE4 at production level takes about an hour or so.

Being annoyed that I had to wait so damn long to build lighting, I figured Epic would have provided some way to distribute the computational load across multiple machines and did some research. It turns out that Epic did provide this functionality but all the documentation for it isn’t in the UE4 but rather in the older UDK documentation.


While it didn’t change a whole lot there really wasn’t a whole lot on the net that covered using Swarm across multiple machines so I figured I’d share how I managed to get it working for me.

This was tested on my workstation running a tetradeca core Intel E5-2683 v3(14 cores, 28 threads) and my Alienware 17 rocking the quad core Intel i7-4900MQ(4 cores, 8 threads). Engine versions were UE 4.12 on my workstation and UE 4.11 on my laptop (mostly just so I could see if it work!).

My workstation was setup as the primary client that had Unreal Engine 4 running as well as the Swarm Coordinator and the laptop as the secondary client running the SwarmAgent.

The SwarmCoordinator.exe and SwarmAgent.exe executables can be found at:
C:\Program Files (x86)\Epic Games\(engine.version)\Engine\Binaries\DotNET

All the settings are in the pic above, but to explain the different parts:

AgentGroupName -> The name of your group. It *IS* case-sensitive.
AllowedRemoteAgentGroup -> For simplicity, make it the same as AgentGroupName
AllowedRemoteAgentNames -> On the controller, put down the name or IP address of the secondary client. Additional names/IP addresses can be added seperated by a commas. On the secondary client, just put the name/IP address of the primary machine you’ll be sending the job from.
CoordinatorRemotingHost -> On the Primary machine that’s also running the controller, just put the hostname of your primary machine or the IP address(yes works too). On the secondary add the name/IP of the machine that the co-ordinator is running.

I’ll have to revisit this later when I have more than 2 machines with the swarm agent running. Hopefully it’ll help someone else trying to speed up the process of building lighting in UE4. Adding additional machines is really just a matter of adding them to the AllowedRemoteAgentNames list. I’ll have a proper answers once I get my render farm built out.


Harvard HBX (now called Harvard Business School Online HBSO) Tips & Words of Wisdom

I recently had someone e-mail me who was feeling unsure about her performance through the Harvard Business School’s HBX program. With her permission I’ve decided to post her e-mail and my response just in case there are others out there who are going through the same thing.

– – The e-mail – –

Hi Budd,

I came across your blog post regarding the HBX core program– I was wondering if you ended up passing? I am currently enrolled in the program myself and have been having doubts about my own program performance, your approach is quite refreshing and it made me curious!

Also, any tips you might have for me while completing the course would be greatly appreciated.

Thank you!!


– – The Response – –

Hi P.L.T,

Thank you for your e-mail. It’s always nice to hear from fellow HBXer. To answer your question, I did end up passing. I keep the HBX certificate in my office to remind me of the accomplishment. As for your program performance, I wouldn’t stress too much about it. When I did the program, my results weren’t that great and seeing the results some of my class mates posted on Facebook just made me feel stupid. So if you’re having doubts about your own performance, trust me you’re not alone.

As for tips on how to survive the program. Here’s a list of 10 things. (I use this format so you know how long I’ll be ranting for LOL)

1.  Think in absolute performance and not your relative performance against your peers. There’s no point comparing yourself to others, this is true not only for HBX but for everything else in life really. it’s crazy hard to figure out in absolute terms how much you’re learning so the best method I found was to compare what you know now compared to the pre-HBX you.

2. It’s pretty hard to avoid comparing yourself to others. Even if you were on the bottom of the class like I was, you need to remind yourself that there were plenty of people who applied and didn’t even make the cut. It’s like being in the Olympics, you might not be #1 there or even the top 10, but you’re still better than everyone around you where you come from that didn’t even get that far.

3. Supplement your learning. There is no textbook doing HBX. What’s covered in the lectures is just the guiding principles, you really need to do some supplemental learning on the side. While I’ve done a couple of accounting and economics courses prior to HBX, I have never in my life touched statistics (Business Analytics). Add the fact that I’ve never been that great with Math (never passed Gr. 11 math), I didn’t exactly understand everything right off the get go so I had to supplement my learning with whatever I could find whether it was Khan Academy or some random youtube videos of people trying to explain the topics.

4.Understand what kind of a learner you are. Some people can read stuff and memorize it immediately, some need to visualize it, others need to apply it. While HBX does a much better job at getting people to learn things than virtually every program I’ve ever done (and trust me I’ve done a lot), it may not be enough. I found it’s really important to understand how you best learn a new topic. Trying to rewatch the same videos over and over hoping it’ll click doesn’t always work for me so I had to find a way that I personally learned best.

5. Know don’t just memorize. This spins off the last point. Memorizing works for some people but I found that although I can force myself to memorize stuff verbatim for the short term, the important thing in business isn’t that you can regurgitate the concepts but rather know them well enough to apply. I found it to be much more effective to find a way that I can apply the business concepts in my own business. Don’t have a business? Start one. If you ever wanted to start a small business like a bakery, coffee shop or pet shop, this is a great time to get some of the ground work done. I found it to be really easy to understand the concepts when it’s your own business you need to apply this stuff you’re learning to. Trust me. EVERYTHING taught in HBX can be applied to any business out there.

6. Allocate time in your schedule for HBX, it’s hard but it’s doable. Don’t just do it on your free time, make time and dedicate time for HBX. I worked two jobs while juggling HBX and got home at 5am only to leave again around 10 or 11am. That meant I had to effectively make use of my time. I allocated about an hour a day between 5am and 6am when I got home to do my HBX courses. Whatever I couldn’t get done at home, I did during lunch at my day job. At my night job, I did all my supplemental learning. The HBX platform didn’t work on my iphone but Khan academy and youtube did so I made use of my time in between flights on those (I work for an airline at night). Personally I found 15mins to an hour a day is better than a full 3-4 hours on a random day I had off.

7. Exam prep. The exam itself is three back to back exams with no break in between. Given that the HBX courses are all technically intro courses, I deduced that like most other schools, the material covered on intro exams are more on the basic understanding of the concepts and not the deeper application of the concepts(which you’d force yourself to learn if you did what I did and applied it to your own business whether it was fictional or real). With this in mind, I found that my best course of action was to take the glossary PDF’s they give you at the end of each section, wipe the explanations and try to rewrite them with my own examples.

In case you’re wondering, the time allotted for each question on the exam is more than enough. If you’re not too sure about one question, just mark it as a question to go back to, move on and then go back to the ones you weren’t too sure about. This way you can bank minutes on easy questions to spend on the tougher ones later. I think I did the 3 hours exam in about 2 hours which honestly made me wonder if I actually did ok.

8. Fight imposter syndrome. If you’re like me, you probably feel like you don’t belong here and they must have made a mistake about letting you into the program. It’s normal. There’s no point focusing on who you were pre-HBX but rather who you want to be. You might feel like an imposter when you begin but once you finish you’ll realize that we were all imposters learning the craft at first.

9. Don’t quit. Know your goal and keep it in sight. Basically, ask yourself why did you really want to do HBX? How badly do you want that goal? Are you willing to make sacrifices to get it? For me, although I did want the Harvard education, the deep down “why” for me was to fulfil the dream of having what it takes to earn a piece of paper from Harvard and that’s what kept me going. Having to endure a whole lot of discomfort to make it happen was the price I had to pay to make this a reality.

Getting through HBX isn’t just a test of intelligence but also a test of perseverance. The Harvard Business School’s mission is to educate leaders who make a difference. You can’t lead and make a difference by giving up when things get tough. Personally I’d rather do my best, fail and learn something than to give up and quit. At least this way I can say I survived HBX and walk out knowing I still did better than those who quit.

In all honesty, getting into and through HBX was the confidence boost I needed to prove to myself that if I really, really, really, really wanted to make something happen, I could do it.

10. Get to know your peers and reach out. They’re a great resource. HBX is probably the only online program I’ve done where you can actually get to know your peers in a similar way to being in a physical class. Aside from helping you with HBX specific stuff, you can connect to some rather interesting individuals you’d never find anywhere. Going back to the previous point, I’m pretty sure HBS doesn’t accept people based on IQ alone but rather on the potential that the people they accept might actually make a difference in the world. I’d bank on more of my peers at HBX making it somewhere in life over most people I know. You never knew when you’ll need to pull the friends in high places card and this is one place where you can find people who have the potential to be in high places.

That’s about all I can think of. I hope that helps. The best thing you can do is press forward and do the best that you can. It’s pretty normal to feel like the stupidest person in the room when you’re in a room full of geniuses. I mean even though I passed, I think I was only in the 14th percentile. That meant that 86% of the people there were smarter than me, ultimately though we all ended up with the same piece of paper. Besides, I can’t inspire someone else to go through hell and back to make dreams happen if I don’t do it myself. (It makes a better story this way 😉 )



IT and Tech

64bit FFT Plugin for Photoshop

This is pretty obscure and took me a while to get working right. If you’re looking for a Fast Fourier Transform plugin for 64 bit Photoshop, it can be pretty hard to find. Thankfully someone named Phil Thornton modified a plugin that was originally made for 32bit Photoshop by Alex Chirikov to run on 64bit versions.

You can get it here

(what can the FFT plugin do for you? See this )

This was tested on a machine running Photoshop CC 2015 under Windows 8.1. I originally copied everything into the plugins folder and kept running into a disk error for some reason but managed to get it to work by moving the .dll file to the Photoshop root folder. The exact steps taken were.

1.Copy the .8bf-files from “\bin\x64” to “C:\Program Files\Adobe\Adobe Photoshop CC 2015\Plug-ins”

2.Copy libfftwx64_3-3.dll from “\bin\x64” to “C:\Program Files\Adobe\Adobe Photoshop CC 2015\”

I already had the Microsoft C and C++ development libraries installed on my system so I didn’t need the other .dll’s but I’d have to assume that the files go in the same place.

Hope that helps someone out there!




Success HBX / HBSO Reflection


Today, July 1st, 2015 marks my last day as one of the internationally select few to be a part of the HBX CORe program offered by the Harvard Business School(Now known as Harvard Business School Online or HBSO). It has been a grueling 11 weeks and to be honest, I never thought I’d make it. Technically speaking, at this very moment I’m not too sure if I actually passed as I’m still waiting to write the exams but even if I don’t it’s been a fantastic experience and I’d be more than willing to do it all over again.

Either way I wanted to thank the folks at Harvard Business School running the HBX CORe program for granting me the opportunity to take part of this program as well as all those in my cohort that have made the last 11 weeks tolerable.

Looking back, I never thought I could make the cut or much less do it. Running both a video game studio, a film studio and working overnight for an airline doesn’t leave me much time to do such a taxing course, especially since I clearly never thought I had the smarts for it but since going to Harvard was a high school dream of mine many, many, many years ago, this was definitely an opportunity I couldn’t pass up.

Instead of writing things out in a fairly standard format, I figured I’d use Arnold Schwartzenegger’s 6 Rules of Success as a framework. Before I write allow me to first show you a video that quickly summarizes the 6 rules.

(this was originally from his 2009 USC Commencement speak)

1. Trust yourself

When the opportunity to enroll into the Harvard HBX CORe program originally came to me, I didn’t think I could make the cut. It wasn’t just another one of those online courses where you just enrolled and you got in. There was an application process complete with essays and a limited number of spots and I didn’t have the money to pay for the tuition costs, but I applied anyways just to see if I could make the cut and I did.

I honestly wasn’t going to do it. The acceptance e-mail sat on my inbox flagged as important so I could look at it every day just as re-assurance in case I ever felt dumb. However thinking on the last day of the window to pay my tuition fee, I went into overdraft and moved a chunk of cash to my credit card to pay for it. Why? Because as an inner city kid from the ghettos, it’s always been a lifelong dream of mine to go to Harvard and this is definitely the next best thing, so I had to do it. I didn’t want to look back at my life thinking that it was one of those opportunities I wish I took. The pain of regret is far greater than the pain of failure in my book and even if I failed, I’d at least have the satisfaction knowing I tried.

2. Break some rules

No I didn’t cheat. Those of you that know me know that I already break the rule of getting 8 hours of sleep and with the limited amount of time I had, I had to think outside the box and break some common rules for learning by not actually studying.

That probably doesn’t make any sense to anyone but I honestly have no idea how to “study”. Throughout all my years in college and university I never once “studied” in the traditional sense trying to memorize things. Ultimately I want to learn how to utilize what I learn in my every day life and if I can’t learn it and apply it, I clearly don’t know it. My marks aren’t the greatest but at the same time they reflect what I actually know. Instead of “studying” by memorizing things into short term memory, I just learn things and reinforce my learning when I don’t know.

The other rule I broke to cut back on the sheer amount of time required was just to skip stuff. Given the limited amount of time I had per week to do the courses, I skipped a lot of stuff but it was all selectively skipped. I skipped stuff that I knew pretty well (mostly basic accounting) as well as some the stuff where I clearly had no idea what they were talking about. If I didn’t understand something well enough to do an exercise, I just skipped it and made a note of it to find other resources to learn the material(I spent a lot of time on Khanacademy learning stuff for stats.. I just don’t get along with formulas very well). Basically, I learned what I didn’t know in the limited amount of time and just deferred the rest.

3. Don’t be afraid to fail

Unless you were part of my cohort, work with me or game with me on Final Fantasy XIV, I probably never mentioned anything about HBX CORe. I’m not going to lie, I was a bit afraid of failing. Doing HBX CORe was a big thing for me. During the first week of the course and everyone giving their introductions, I felt like an imposter being surrounded by so many brilliant people. I mean I’m the guy that a decade ago took seven years to finish high school and is now just mucking around making video games and film (or trying to). Clearly, I don’t belong here.

It got so bad that during week 3 or 4 when I had the opportunity to tweet or post about my experience in the Harvard HBX CORe program for a t-shirt, I just couldn’t bring myself to do it. I felt a bit fake being here and didn’t want to mention it on Facebook and I sure didn’t want to tweet about it. Although looking back, I wish I did cause damn it, I wanted that T-Shirt!! (I did however end up mentioning HBX core a few times on Facebook after I had like 30 people from my cohort on facebook who shared the same pain, but it was waaay after it was incentivized).

None the less, the work load piled on and I definitely wasn’t understanding everything, especially when it came to my Business Analytics courses (statistics). I was actually really temped to give up since it was so taxing but realizing that this was truly something I wanted, I decided to push through it. Things I didn’t know (and there was a lot of it), I reinforced by using other resources. When I was waiting for flights to arrive at 1am in the morning or sitting on the bus at 4am going home, I was either half asleep reading about the stuff I didn’t know or half asleep on Khanacademy learning about the stuff I didn’t quite understand.

4. Ignore the naysayers

Luckily there weren’t too many people that told me I couldn’t do it. Everyone I did tell that I was doing these courses were either in the course with me and had a positive attitude about it or were just happy for me for doing it. There was however there was one person that kept telling me that I couldn’t do it and it was myself. Ignoring other people is easy, I do it all the time. Ignoring myself, that voice in my head wasn’t one I could escape. Thankfully the lack of sleep must have caused the naysayer half of me to be too tired to care. There was nothing worse than me telling myself there was no way I could do it.

5. Work your butt off

In life, nothing comes easy. If the HBX CORe program was really that easy, it probably wouldn’t be worth it. I do remember reading a lot of posts on the HBX CORe facebook group by people who complained that they didn’t have the time and that it was too taxing. Seeing these folks made me want to try harder. I didn’t want to be like them. Working multiple jobs, taking public transit for 3hrs+ each day, every day and sleeping for about 3-5hrs a day isn’t easy, but I knew that I had to work my butt off if I wanted this.

Thankfully the pacing offered by the program was actually ok. With different modules due every week and a short weekly assignment, the weeks just flew by as I put in a couple of hours a day to go through the material. That’s not to say there weren’t days where I stayed up until 4am trying to finish the modules(usually a weekend), but looking back, I’m glad I did. Needless to say, there were many nights where I passed out mid way through a module and slept with my laptop on me(ok, it’s more like napped since 3-5hrs isn’t really sleeping to many people 😐 )

6. Give something back

Here’s a secret I don’t tell too many people. Deep down I actually wanted be that guy that inspired others to do something and I can’t do it by taking the easy road. We all have our disadvantages and things we’d much rather do, but I can’t tell someone that it’s possible to do the impossible if I don’t lead by example and do it myself. If you’ve seen my LinkedIn page you’ll know that my title/tagline says “I build dreams and make things happen”. Going to Harvard was a dream I had and I made it happen even if it was rather indirect.

Whether you’re student that just got out to the working world looking for a way to expand your resume, a working professional trying to further your skills or just a regular person wanting to learn more, give the Harvard HBX CORe program a shot. It’s not cheap, it’s not easy but definitely worth it. If you don’t think you’re smart enough to get in, don’t worry. So did I but give it a shot anyways. You can check out their program here and apply here (Firefox or Chrome Browsers needed).

I really wish I could give something back to the folks at Harvard for this opportunity but if anyone has any questions about the course from someone who’s actually taken it, feel free to ask me. No I don’t get any kick backs from recommending it. It’s just that good.

PS. I’ll probably do a proper review of the course later. Who knows, maybe I can talk the folks at Harvard to let me offer “BuddSentMe” as a legit discount code 😉


GameDev IT and Tech

CryENGINE3 and multiple developers

Ok so every since I started using CryENGINE 3, it works fine when I screw around with the engine on solo projects but is almost always a huge nightmare where I have to add another person onto the project. Why? Because for the longest period of time, sharing .CRY files with team members meant I always had to worry about a file corruption error. Turns out CryTEK accidentally got rid of the old file access permissions error and replaced it with an error that said “files could be corrupt”.

I’ve been working on the Yours Truly Project with Brandon to get it ready for showcasing at th Level Up event at the Design Exchange on April 3rd, 2013 as well as the Toronto Global Game Jam arcade at Bento Miso later in the month. For a while things were ok because I was able to open the cry file he did the terrain and vegetation on and I just worked on a seperate layer. Now during the polishing phase we’re running into file corruption errors yet we know the files aren’t corrupt because the level runs in the launcher just fine.

We tried everything we could and then I was reading on CryDev about something with regards to people who were having corruption issues but the solution was because the login script couldn’t connect to the server properly. That led me to think, “what if I logged in with my credentials on Brandon’s computer?”. So I went over to Brandon’s Alienware (go team alienware!) fired up the editor, logged in with my own CryDEV credentials and proceeded to open the file. Fingers crossed, I clicked on the open button and then…………………… BAM….. FILES LOADED SUCCESSFULLY!!

Who would have thought the Files Could Be Corrupted error was really an access rights thing? Got Brandon to join Team Whisky Tango Foxtrot on CryDev.Net and added him as working on Yours Truly and so far we’ve had no problems.

The take away from the story?

If you’re going to be working with CryENGINE 3 with other people

1. Make sure you’re all on the same team working on the same project. You can assign team members and set them working on a particular project over at CryDev.Net

2. Terrain and Vegetation is stored in the cry file NOT on layers. So whoever is doing your landscape/level design will have to give out their .Cry file. Make sure it is saved to be associated with the project you’re working on or to Global Share if you don’t have a project.

3. Since everything else is on layers, use layers for everything else. If you have an environment artist placing brushes, another person doing cinematics and another person doing flowgraph logic. Have them all use external layers (set as external in the layer properties).

4. Share using source control and import the stuff your team members make. Dropbox works but might mess things up 😐 Given how CryENGINE like the Unreal Dev Kit as well as Maya and 3DS Max like to crash from time to time, you’re better off not taking anything else along with it when it croaks. That and source control like SVN will allow you to roll back to a previous working version that does work.

Just my $0.02 that I hope others will find useful. Althouh CryENGINE3 has it’s quirks it’s by far the best engine I’ve ever worked with (sorry Unity and UDK)



Game Design Canvas refinements

So I sent my Game Design Canvas to a few game designers I know and got some feedback on it. So far the feedback has mostly been positive although I did get one person tell me it seemed a little too simple but in mind, simple is good.

Any ways, added some changes to the current revision of the Canvas. Nothing really major though. Made the lines in the excel file easier to work with by merging the blocks in the same area so you can type in them easier. Also added word wrapping to all the boxes. Moved the player segment over to the left hand side swapping it with the technology/frameworks and metrics to better situate the areas. Seeing that the player segment is very much tied to the Minimum Viable Prototype/Product it made sense that it was right next to it. That and since the stuff on the top right of the canvas was more of the technical stuff it made more sense to put the technology/frameworks there.

It’s not a huge overhaul or anything but some nice refinements on a rather simple but effective tool. Keep the feedback coming folks. I do love reading what you all have to say. It just takes me some time to respond as I type wordy responses 😐




Game Design Canvas

Being a guy with a background in business as an entrepreneur, I’ve written my share of documents and plans. Now that I’m game development, I’ve noticed a lot of similarities between business plans and game design documents. Not only are the documents aiming to do similar things ie. plan things , having to write either one is always a bit of a pain. I’ve been recently challenged to do 10 game prototypes this month which also requires 10 GDDs to made. Somehow that reminded me of having to write a bunch of business plans back in the day and using  Alexander Osterwalder’s Business Model Canvas as a bit of a shorter one page alternative for quick analysis of business models as well as Ash Maury’s Lean Canvas for my start ups.

That led me to think, if business plans and GDDs are so similar, why can’t I use the idea of a canvas for prototyping games? So on March 20th, 2013, I walked into the class at triOS college and drew up a standard business model/lean canvas on the white board before slowly redesigning the canvas for game prototyping. By the end of the day and some input from others, I’ve managed to get 8 revisions of the canvas and began cranking out a few game prototypes of my own. Two days later, I’ve managed to get two more revisions that I finally thought was refined enough to share.

So here it is