Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

  • Days Won


Brain last won the day on February 16

Brain had the most liked content!

Community Reputation

18985 Excellent

1 Follower

About Brain

Personal Information

  • Website
  • Role
    Amateur / Hobbyist
    Business Development
    Game Designer
    Level Designer
    UI/UX Designer
  • Interests


  • Twitter
  • Github
  • Steam

Recent Profile Visitors

37968 profile views
  1. Brain

    Firework Factory 3D version

    Mr Boom's Firework Factory rewrite in Unreal Engine 4. Previously attempted rewrite from scratch using DirectX 11. Due for release July 2019.
  2. Brain

    Assets used for free game?

    If in doubt, use a large site like turbosquid, and pay something for the models. They have some very expensive models on there, but also some very good ones for pocket change. Most of my 3D models in my game come from there and/or are kitbashes of stuff on there. Because you've paid them, and they've certified and guaranteed that the license is correct, so long as you abide by the reasonable terms (e.g. don't go using a porsche in your racing game or an AK-47 in your first person shooter!) if someone did try to sue you, you have reasonable defence that you bought it from turbosquid, and paid for it, and turbosquid have done their due diligence, which pins the fault clearly on the asset's seller. It's not completely watertight and I am no lawyer, but this is how i see it, and it's common sense to me. I'm sure if someone was vindictive enough, they could go after you, turbosquid, and the seller of the asset together. If in doubt, take legal advice, if still in doubt don't do it!
  3. Brain

    Mr Boom's Firework Factory

    Mr Boom's Firework Factory is a fast paced puzzle game written in Unreal Engine 4 with a combination of Blueprints and C++. Through many levels of mayhem, you'll discover the secret behind the firework factory. This game is approaching the point where a complete vertical slice can be submitted to various distributors such as steam. I welcome contributors, please note that this is a hobby project and there is at yet no agreement as to profit sharing etc.
  4. Hi everyone! Another week, another update to the development blog for Mr Boom's Firework Factory! The Easy Stuff: Creating the Stock Room This week, I have been creating a way to reward players for successfully completing levels. Every time a level is completed with a three star rating (the best possible rating) the game will route the player to the stock room on the completion of the level. The stock room is an enclosed area, containing some junk and six boxes. Selecting from the boxes will reward the player with one of the following: A random power-up Nothing (along with a condescending message) A booby prize, for example a burned cereal box. This new feature can be seen working in the video below: The booby prizes, if won, will just stack to an inventory, e.g. multiples are represented by "x2", "x3" etc. These can't be gotten rid of an have absolutely no use except cosmetic, so I can imagine that the player may find a way to meta-game this, and i may add an achievement relating to this if there is time before release. It is obvious on the video above that selecting boxes in the stock room is simple enough if the player is using a mouse and keyboard, simply clicking on a box will select it, and this is done effectively using the onclick events within blueprint on those particular components for the crates. The More Interesting Stuff: Making This Work With A Gamepad This becomes slightly more complex when dealing with a gamepad. Unreal Engine 4 has facilities when dealing with UMG for UI so that each control which can receive focus has a 'next' control for each direction, so if for example "Up" is pressed when focused on control A, it can be told that control B is "Up" in relation to it, and that control "B" should then receive focus. When dealing with an actor built with components, which is not UI, we're out of luck and have to implement this ourselves. Time to roll up our sleeves and see how I did this! Firstly, we must map out visually how each of the crates relate to each other. Consider that each crate has an index number between zero and five, and that for each crate index, we have a table of relations based on the direction of travel for which is "nearest" to it in that direction: So, for example, if the current crate was crate index 1 and we wanted to move up, then the crate index would become 0. Similarly if the crate index was 0 and we wanted to move right, the crate index would become 2. We can represent the currently selected crate then as a simple integer value. All clear on this? OK, let's continue! Based on this layout, we can click on each of the components in the actor, and set up these representations using the tags within the component, always sticking to a uniform layout, tag index 0 representing down, index 1 representing up, index 2 representing left, and index 3 representing right: Once all these have been defined, we have a way, completely within data, and without having to adjust code, of being able to indicate the relationship between the components so we can navigate between them. All we need to do now is write some code to do it. Firstly, we need a function which if given a a direction (as an integer) will update the current crate to a new crate, still going with the same constant directions as above, 0 = down, 1 = up, 2 = left, 3 = right. We'll call this function "Move Selection Cursor", because... well why not?: We will also need to define in the constructor, or in the Begin Play Event, the indices of each of the crates in a simple array (as a member variable of the actor class) which this function can use. Remember the order of the items in this array is important as we determined our layout in the first picture when we mapped out the relationships between the objects. If there were more objects or in different positions in relation to each other, this would need to be adjusted: Once we have done this, it is a simple matter to attach five events to action mappings, which will allow us to detect input events from the gamepad, and route them to the functions we have created. For readability's sake, we can also define four constants (see the top left in the green square) representing our index values for up, down, left, and right respectively, which means that the code becomes more understandable, rather than just a mass of magic numbers between 0 and 3: Once this is in place, as many before me have said, sometimes in jest and sometimes in seriousness, "it just works". I hope you found this journey into the depths of my mind enlightening, please do comment and leave feedback if you have any questions or comments! Stay tuned for more blog entries!
  5. Brain

    [BzLog 4]: Worldmap

    I think this would work better as a robot apocalypse. The blockchainZ ammo is a special ammo containing EMP nanites and a virus that disables the robot which was developed in short supply just before the world ended. The facilities to make it lost, what's left is all there is. The zombie hatchery could become a machine factory, automated production of robots, destroying it doing the same but also allowing you to scavenge tech resources for your settlement. What do you think?
  6. Brain

    Steam, Tutorials and more!

    Thanks! I was in two minds as to if i should release a game on a big national public holiday, I had a feeling that people would be too busy with family stuff etc to be playing games. Then I thought about it some more and thought "i'll just extend the sales push over more than one day"? I don't really know 4th July holiday that well though, being British, so if anyone here can advise as to if this is a smart move or a really foolish one, please let me know!!!
  7. Brain

    Steam, Tutorials and more!

    Thanks! The official release date is July 4th, I planned to release around independence day because it's quite popular to release fireworks at this time of year in the U-S-of-A... 🎆
  8. Hi everyone, It's been two weeks since my last blog post, and many things have happened in the development of Mr Boom's Firework Factory. The R&D Department The game now has a fifth level (not including the tutorial level mentioned below) which is set in the factory's R&D department. The R&D department is a rather dodgy area, very much below board, dealing with radioactive waste (for use in fireworks??? You be the judge!) and toxic gases. As you can tell from the products in use, this place has taken a turn for the worst and isn't what it seemd to be when the player started out on their journey: The poison gas crates emit a huge cloud of green gas when they explode, which causes the player to lose vision of the game temporarily. If done at the wrong moment, this can be catastrophic: The radioactive goop crates were previously covered in a past blog post and leave goop stains all over the level, which are destructive to anything that passes over them. Getting the game on Steam Next, and most importantly, I have finally set up the store front on Steam, and configured my build process to push builds to steam via Steampipe. This took a little time to get working, and during this time I established a closed beta. Under the offer of free keys for the game, and credit in the game's credits page, many people contacted me asking to take part, and based on the feedback they gave I now have a reasonable sized bug list and feature list on the project's Trello. The most commonly requested of these was a tutorial, to explain the controls and the basic aim of the game. Each user had to have the basic controls explained by myself (there was no readme, or online help) and the basic aim of the game, as it seems that the game is sufficiently different from most of the puzzle games available on steam as to confuse many new players. Without further ado, this leads on to the next item on this blog post... Creating a tutorial level for fun and profit! To be effective and useful, the tutorial level in my game had to have the following qualities: Be very easy to complete Allow for multiple different choices of input method (e.g. keyboard, gamepad) Have obvious points where gameplay could pause and pop-up hints can occur Still be possible to fail, to try out failure and see what happens Not be easy to break the tutorial flow Be possible to complete the tutorial in under a couple of minutes I decided to settle on a simple level, with the fewest possible number of usable junctions that can be placed whilst still allowing a crate to bounce between them in a loop (two), and the fewest number of machines (one). The level would work by popping up a dialog box indicating how machines worked, and how to move the camera, then emitting one crate from the machine, and after it had emitted the crate, popping up another dialog box indicating how to rotate crates. Once this dialog box had popped up the ability to rotate junctions became available, until this point the player can't rotate the junctions to help prevent breakage of the 'scripted' events. As soon as the player has rotated the correct junction to the correct angle, the next scripted event will trigger, popping up a dialog box to confirm that this was the correct action. There is a short delay of a couple of seconds before the final dialog pops up to explain how crates wait for the grab claw, and then the level ends. There were two verisons of this tutorial, which only varied based on the text content of the speech bubbles; one for keyboard/mouse usage and one for the gamepad, with different summaries of the buttons to use. If played efficiently, this takes about one and a half minutes. As far as tutorials go, this is pretty much short and sweet. First attempt (AKA: How to scare off new players) The first iteration of the tutorial level had dialog boxes which just contained raw text: This did work, somewhat, but it had two flaws which required a second iteration be done, these flaws were: Each dialog box was a wall of text, off-putting to the new player and hard to digest Aligning the dialog text with the rounded speech bubble and having it work on any resolution of screen was proving to be near impossible Tutorial Trek - The Next Iteration The next version of the tutorial involved me spending a good couple of hours in GIMP polishing images. Instead of using raw walls of text that are hard to align with a speech bubble and still look good, i decided to draw the speech bubbles as PNG images: I ended up drawing six of these, two of each of the first two speech bubbles that were controller specific, and two of the last two generic bubbles. I drew each one with some particular features in mind to make them better than the wall-of-text equivalents: Each speech bubble was to make more effective use of the rounded bubble area Where a bubble mentioned controller or keyboard controls it would use the expected iconography to indicate what to press Names of controls, or important gameplay elements would be highlighted in red, e.g. crate, machine, left stick. Actual images of gameplay elements would appear in the bubbles to help the player relate (this way the player knows what a machine looks like as they saw one in a tutorial bubble, most real life factory machines are not square boxes with an exhaust sticking out of them!). These images would sometimes overlap the edge of the bubble by design, to draw attention to them. Most importantly: All wordage was to be shortened as much as possible! I then rolled them out into the game: And that, as the say, is all he wrote. Feedback and comments are as always very welcome!
  9. Brain

    Dungeon Crawler

    i like what im seeing. The graphics kind of remind me of Gauntlet. Out of curiosity how do you plan to generate the dungeons? Do you plan to use a PRNG to determine the entire dungeon from a seed value, then save that seed value to a save game file?
  10. Hi, Due to the design of the forum theme, if a post has for example 5 upvotes and 5 downvotes, it is impossible to view who gave/took the reputation for that post. This is because the reputation needs to be non-zero for the box to show which you can click to view the user list. Is this something you are able to fix please? Thanks!
  11. I think you need to start smaller. What games have you written before? Start out with a Mario clone or something. Most people say start even smaller. Hope this helps!
  12. DirectX 12 and 11 are entirely different beasts. Think of them like being like comparing assembler and C++, they have different problem domains they solve. For anything other than an AAA engine, or the learning experience, really you should be considering dx11, not dx12. Hope this helps!
  13. Brain

    BorderStrain Steam Beta Invite

    I like the look of your game and if I had more free time i would definitely help. Your announcement and the info given here are great, and that should stand you in good stead. Don't give up though as it's hard work to even get people to try a game for free - it's taken me over a week to get a reasonable number of testers for my own game via steam news posts etc. Good luck!
  14. Brain

    Let's make a game in UE4

    Good luck with your project, if you let people know what genre of assets you've made, perhaps show some images, it will inspire more people to join your team! Hope your project goes well!
  15. Brain

    A wild thought appeared

    As a quick hack, i would try something like separating the image into many different quads, calculating the average, minimum and maximum colour values of each quad, and storing those as my image thumbprint. Comparing a second image, you could determine if they were somewhat alike if the averages, minimums and maximums of the second image fell in the range of those of the first, for over a set percentage of the quads, e.g. 75% of the quads had an average within acceptable "distance" of the first image's thumbprint. Kind of like edit distance, but for images. This is definitely a solved problem as Google and TinEye are doing it already, but as to how they do it? That's beyond my knowledge and I tend to go for quick hacks like this that work rather than dive into deep complex maths to solve a problem.
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!