I made a post on the UE4 subreddit a few days ago about my experience with going from a complete beginner to having a successful iten om the marketplace. It generated quite a lot of interes, so I though I’d repost it on this forum to the benefit of users who are not on Reddid, and who are in the same situation as I was a few months back, and are wondering what can be done with blueprint. Here’s the post:
Since there seemed to be some interest on the subreddit I decided to do a write-up about my last few months creating the Advance Turn Based Tile Toolkit on the UE4 marketplace. I’ll say a bit about what led me to choose Unreal Engine, and some of the things I learned as I went from being new to scripting and the engine, to releasing a successful item on the UE4 marketplace. I apologize if it’s a bit long and all over the place, but I hope it will be useful for people who are in the same situation as I was a few months back. Now that UE4 just became free I imagine there are a lot of new users who are uncertain about what can be done with blueprints, or are dreaming of releasing something on the marketplace. If you feel you fit that description read on, and feel free to ask me any questions you might have about blueprints or the marketplace.
First a bit of background: I’ve been making games in some form for as long as I can remember, though I graduated from cardboard cutouts to game developing software sometime in the middle of elementary school. I used Klik & Play (the great frandfather of Clickteam Fusion) for many years and begun making “Use Map Settings” maps for Starcraft in late elementary school to make rpg’s through the editor’s event settings. In highschool I used the Games Factory and made maps Neverwinter Nights (I just found out they’re still hosting an .ini-tweak I made 15 years ago!, as well as playing D&D 3.0 and making my own pen and paper rpg systems.
For the next few years I was mostly making PnP rpg’s (and the odd Oblivion mod), but in college I felt the calling to begin making computer again and bought Multimedia Fusion 2, having fond memories of its precursors. I worked sporadically for a couple of years on a shmup/fighting game hybrid called wizard’s tournament (You can download the latest version I made here). It seems you will have to temporarily disable phishing and malware protection for it to download, though).
The scope of the game was too ambitious for the first game I’d made in ages (a common mistake for all developers), and I finally decided to abandon it and look for greener pastures. I love turn based strategy games, and was playing a lot of XCOM and Civ V at the time, so I decided that was what I was goint to do next. I started working with Construct 2 (an engine similar to Fusion), and though the community there have made some awesome plugins for turnbased strategy, I quickly found it too limiting.
I moved on to Unity, but I was baffled by C#. All games I had made so far were through drag-and-drop game engines, and coding using text was to me a difficult transition. I followed turn based strategy tutorials and bought all relevant assets in the Unity marketplace, but I still couldn’t manage to fully wrap my head around it. This was particularly annoying since I felt I had grasped the theory behind pathfinding perfectly after reading several articles on the subject Amit’s tutorialsat redblobgames were particularly good.
I was filled with doubt. Had I really understood how pathfinding worked, or was I just fooling myself, seeing that I couldn’t make it work in Unity. I began doing programming tutorials over at codecademy.com (specifically the Python and JavaScript ones) and was ready to have another go at Unity just as UE4 was released.
I had a look at UE4 out of curiosity and was captivated by its blueprint scripting system. It seemed by the perfect fit for me personally: a visual scripting system with as much power as Unreal Script! There was still a lot of skepticism surrounding blueprints on various forums and Reddit, however; even more than there is now.
The general consensus seemed to be that blueprint was fine for doing simple things like opening doors or firing a projectile; stuff that real programmers™ shouldn’t be bothered with and lowly artists can take care of. If this was the case then UE4 wasn’t for me. If I had to learn programming to make a full game myself I’d rather learn C# with Unity than C++, which everyone seemed to be saying was horribly complicated. Pathfinding is very costly as far as processing power is concerned, and well outside the range of what most people suggested blueprints were useful for, so I figured if I could make that work in blueprints I could make anything work.
For a long time I was hoping someone else would make a pathfinding blueprint, and I was constantly searching the forums and prodding users who seemed to be working on similar things, but in the end I realized I would have to make it myself if I wanted it any time soon. I looked at all official UE4 tutorials that were available at the time and then sat to work on pathfinding. This was back in June last year, and this project is still to this day the only thing I’ve made in UE4.
To my great relief blueprints turned out to be an absolute dream to work with. It was the exact opposite of my experience with traditional scripting. I was used to try to script something, being dumbfounded about why the heck it didn’t work and spend ages looking for that missing semicolon or whatever. With blueprints I sometimes plugged things together with a vague feeling of what might work; clicking play and it would run perfectly on the first try!
This made me more and more confident, and as I was scripting something as complex A* pathfinding I would on the more interdependent bits not be able to check if something worked properly until I had scripted for a couple of hours. I was amazed to see that in most cases everything would usually still work on the first try. In the cases where it didn’t blueprint was incredible for finding out where something went wrong. Just follow the glowing lines in the blueprint editor while playing the game to see what’s going on in the script live, or hook up a few Print functions to get exactly the info you need.
After a few weeks of working like this I had made actual, working A* pathfinding in blueprints and made a celebratory forum thread about it. Granted, it was slow and inefficient and hit the loop limit for paths greater than 15 nodes, but it worked! Finally I had proof that I truly had understood A*, and was not just fooling myself.
I continued improving the blueprint and made it a lot more efficient. After a few more weeks of work I had a blueprint that ran quick enough that I was confident it could work for turn based strategy on desktops. It looked ugly as sin though. Take a look at my second thread, which has the subtitle “how not to build a blueprint” with good reason.
After this I started moving much of the code into functions, macros and collapsed blueprints. I can’t recommend doing this enough, as it makes blueprints so much tidier and quicker to work with. I sometimes hear people complain that making complicated blueprints turns your code into a jumbled mess of nodes and connections reminiscent of spaghetti and meatballs spilled on the floor. Not so if you use functions liberally. To make nodes into functions, macros or collapsed nodes, simply select them, right click and select convert to function/macro.
Next step was adding more game-like elements: moving pawns, visibility, AI and all that sort of stuff (My longest development thread, found here. Around this time people started to ask me if I was going to release my project on the marketplace. I hadn’t really considered it until then, but I loved the fact that people were impressed enough with what I’d made in my first few months of UE4 that they wanted to actually spend money on it, so I increased my work effort and began working on commenting and making the blueprint more understandable in general. This has ended up benefitting myself immensely down the road. I knew you should always comment your code, but I needed the extra motivation of making it for other people to truly make it readable and easy to use.
Around this time another UE4 user announced that he was also working on a turn based strategy system. I couldn’t have asked for better competition. He had already developed similar systems in other software and already had a prototype done that was almost as far along as my own, even though he had only started working on it one month before. He has been very professional, kind and polite in all chats we have had on the forums, and we have actually helped each other out along the way, despite being competitors.
Still, the knowledge that someone else was making something pretty similar for the marketplace spurred me on to work harder than ever, and I doubled my work efforts in order to make it to the marketplace at the same time as him. Looking back at it, if I didn’t have the competition I might actually have given up on the entire project, as I was pretty burned out at some points. So even though I sometimes wish I was the only one with a turn based strategy system on the marketplace, I think I actually owe it to my competitor that I got it done. It’s worth adding that it was never a direct competition, since we were developing blueprints that differed in many key aspects, but they still had enough similarities that I felt the heat.
I was not able to submit the toolkit until a week after he did, but I got it sent in right before Christmas. This turned out to be a bad idea, since all marketplace employees went on vacation, and I didn’t see my toolkit on the marketplace trello boards until nearly a month later. For those who don’t know, all marketplace submission will first be placed on a public trello board where users can vote for the items they most want to see on the marketplace (found here).
What I didn’t know was that you didn’t need to have a project ready for submission when initially submitting your item for the trello board; only 1-5 pictures of your item and a description. Because of this I delayed submitting way longer than I should have. Throughout the process I was often stressed and confused as to why my item wasn’t on the trello yet, and I kind of swamped the marketplace people with e-mails. They were understandably extremely busy because of the holiday backlog, meaning that I often didn’t get replies to the e-mails I sent. A tip for improving the chances of a quick reply is sending your e-mails when it’s around 10 AM in the eastern US.
After what felt like an age (in reality just a few weeks) the toolkit was finally on the trello board. After something hits the boards it usually takes about a month before it is moved to “In Process” where you’re asked to send your files to Epic and sign legal documents. Therefore I was still adding new features instead of adding the final polish to what I already had. To my surprise, however, I got an e-mail from Epic two days later saying I had gained votes so quickly that I could skip the wait entirely and send my files immediately.
I felt ambivalent about this, because I thought I still had a month to add polish. I asked Epic for more time and worked frantically every day for the next ten days and managed to submit everything just too late for the marketplace update that week, where the next week no files would be added because of maintenance… For those planning to submit content, you need to sign a digital distribution agreement and some other legal documents. They are fairly quick reads as far as legal documents are concerned, and the places you need to fill in information are clearly signed. Still, Epic told me that users not filling out these documents correctly were the main source of delay for submissions.
Anyway, two weeks later (last week) my toolkit was finally on the marketplace! I’m still adding features and work on it most evenings, and soon I’ll finally be able to start making a proper game using the system. In the meantime it’s been awesome to see what people have begun making with my toolkit, and it’s kind of strange to think that lots of other people will probably have a full game out using my toolkit long before I’ve made one myself.
In any case it’s been a huge and fun learning experience, and I’m extremely proud to finally have something completed that other people can enjoy, while most of my earlier projects have just fizzled out long before they were done.
If anyone who has bothered reading this far haven’t gotten the message already I think UE4 is the best and most fun game creation software I’ve ever worked with, and I cannot recommend it enough. If you, like me, have had trouble getting into traditional scripting, but found other drag-and-drop game creation tools too limiting, I highly recommend checking out blueprints in UE4. It’s a complete game changer.
For anyone interested in seeing how the toolkit looks now, here’s a link to my current forum thread.
Feel free to ask me any questions about learning blueprints or getting something released on the marketplace.
tl:dr (I don’t blame you):
- Blueprints are awesome, and a lot more powerful than they get credit for!
- Use functions liberally.
- Making something for someone else will end up benefitting yourself just as much.
- Competition is good.
- Don’t give up! Completing something feels good!