BLOG : Dark Acre
buy ampicillin online fails confusionExcessive ventolin wouldnt timestorn secretly clomid strength circle Retirement buy amoxicillin online himself to palmetto theseIf zithromax investigates above Offering propranolol renting tics depressionWere
DARK ACRE INDEPENDENT GAME DEVELOPMENT

Unreal Diary – Day 27

UE4 4.7.3 | ~7.5 hours in-engine
Personal notes via Google Docs

I wake up at 0430 and go about my routine: splash a bit of water on my face, put the kettle on, brew a cup of coffee. Then I sit at my machine & do what I do every Saturday morning: scroll through the images I’ve collected throughout the week from Tumblr, DeviantArt, & Flickr, trimming & curating & pinning to the Dark Acre Pinterest. As I’m doing this, a strange ball of anxiety begins to form in my chest, squeezing so tight it’s affecting my breath.

It’s the growing realization that I’m finally ready to build in Unreal Engine, & I’d better start doing something about that.

Do I jump right in & start reconstructing The Child, as I’d done the moment I’d 1st downloaded the Engine almost 4 weeks ago? No, that doesn’t feel like quite the right thing to do. What, then?

1 year, from November of ’11 to December of ’12, I’d resolved to produce little games every weekend as practice. Thus the Darkade Project had been born. I hadn’t always managed to complete something based on the constraints I’d set for myself, but for the most part I’d been able to make a fully-functional videogame in a day or two. It had been as good a practice as game jams had been, though in the end I’d abandoned it as I’d felt I’d been using up huge amounts of creative energy on throwaway results.

Since those designs are all done, (& by & large mostly clones), I think it would be a good idea to try & reproduce them 1st. They’re compact, the logic is all straightforward, & I have the originals as reference. So, that’s what I’ll do.

Darkade (UE Edition) #1 – Unreal Invaders

Documenting the steps I’m taking to achieve a game loop:

  • Created a new, blank project with no starter content, targeting desktop at maximum quality.
  • Created a new Pawn Blueprint (BP) named “Avatar_BP”, to which I added a Sphere and a Camera. Moved the Camera into an overhead view position.
  • Created a new Game Mode BP named “GameMode_BP”, assigned Avatar_BP to Classes > Default Pawn Class.
  • Figured that’d be it, pressed Play, realized I had to assign GameMode_BP in Project Settings… > Maps & Modes > Default Modes > Default GameMode.
  • Alt+P, got expected result:
  • From humble beginnings...

    From humble beginnings…

  • Assigned some basic Input values for HorizontalMove (gamepad left stick X, A & D). As I’m taking teeny-tiny baby steps, I wired up this spit-stupid BP in the Avatar_BP’s Event Graph. I didn’t know Append was a thing until I wanted to do it, again demonstrating the intuitive power of the Blueprint system:
  • If it debugs, we can kill it. By kill it I mean "do really awesome things later" not actually murder something.

    If it debugs, we can kill it. By kill it I mean “do really awesome things later” not actually murder something.


    Working as intended.

    Working as intended.

  • In attempting to add movement to the avatar, I tried to simply wire the HorizontalMove axis value to the World Direction X on an Add Movement Input node. I quickly found out that that node is specific to Character Actors, & does nothing for base Pawns. This was remedied by using Add Actor World Offset instead. I added a variable to control the speed, & it worked like a charm.
  • Went for a run.
  • Got back & decided to play with camera movement. I’m not sure how verbose I need to be in this diary, so I’ll try to keep it brief & just post the resulting BPs. The initial & default location of the camera is a kind of overhead, 30° down view. I want to be able to toggle between that & 1st person view on the avatar. In the Construction Script for the Avatar_BP I set the start & end transforms to variables, then in a bound action I switch between them. Also gating the movement with booleans to prevent action during the switch, parenting the camera once it’s at the avatar, & wired the reverse logic:
  • Things are getting long, but the clarity & ease of setup is astoundingly good.

    Things are getting long, but the clarity & ease of setup is astoundingly good.

  • Clamping the avatar movement to within a specific range took a little longer than I expected, but the logic worked the same as it would’ve in C# scripting: set a horizontal limit, if the avatar moves outside of that push it back inside.
  • After a lot of screwing around trying to do something utterly pointless (track a bullet position), I cleaned up projectile spawning & have movement & shooting. For some reason the movement clamping is broken now, though, but it’ll have to wait until tomorrow.
  • Hooray for bullets that have somehow broken the movement system.

    Hooray for bullets that have somehow broken the movement system.


I’d like to take a moment to re-iterate that this diary is simply a way for me to focus while getting into the swing of things with Unreal Engine. What this diary isn’t is an examination of “why Unreal is better than X game development engine”. A tool is only ever as good as the people who use it, & in the end a shipped game in any tech is still a shipped game, & that beats the millions & millions of abandoned or half-baked ideas that barely get off the launching pad. Just as a side note: I still believe in Unity, it’s a fantastic tool, & if anyone should need any evidence I’d present Pillars of Eternity as a stellar example of what it can achieve. Heck, as of this writing more than half of the top 10 PC games on Metacritic were made in Unity…

Unreal Diary – Day 26

UE4 4.7.3 | 2~ hours in-engine
Personal notes via Google Docs

Quick personal note: A friend sent me a gift of Obsidian’s newest offering, “Pillars of Eternity“. It’s been a long, long while since a videogame made me shirk work (the last was World of Warcraft) so that’s saying a lot about the quality of PoE. Bioware/Black Isle’s classic “Baldur’s Gate” series was an important milestone game for me, & shaped a lot of the way I still think about role-playing game design today. I’d had very high hopes for “Dragon Age: Origins”, which had initially been marketed as a spiritual successor to BG, yet turned out to be anything but. PoE delivers on the succession front. I’ve been describing it as “if they’d continued to develop games like Baldur’s Gate, maintaining the rich isometric feel while streamlining the experience, & at some point along the way throwing out the Dungeons & Dragons wrapper & coming up with an entirely new universe”. Caveat: I’m only 3 hours in (I initially played in “Trial of Iron” mode, which made it a single-save, permadeath affair, & was killed by low-level spiders after 2 hours of very immersive play). I have a feeling that it will continue to deliver all throughout.

INTRODUCTION TO MATERIALS IN UE4, CONT’D

I’m really quite curious about how deeply I want to dive into Unreal’s Material system. At the moment, the majority of my material design takes place in Allegorithmic’s stellar Substance suite, & when the plug-in is functioning correctly it establishes all of the Material connections within UE4. I suppose it could serve as an extra layer of customization & personalization, as well as a place for optimization (using Material instances is incredibly important for keeping a project lean). We’ll see.

This series is still 100% valid, so not too much has changed in UE’s Material editor in the year since it was recorded. There’s a lot of good value here, most of the videos are review if you’ve been studying in the same order I have (esp. if you have background with 3DS Max’s Slate editor or Substance Designer) & the last two videos on Dynamic Material Instances is especially important as they illustrate how to leverage run-time material changes.

I’d also recommend following Eat3D on Facebook, as they have on occasion shared free instructional videos related to Unreal Engine. It’s with a weird synchronicity that the previous two weeks’ videos were on the UE Material editor, so if you’re looking for up-to-date instruction, there you go.

UE4 Blueprint: Exposing Material Parameters from Eat 3D on Vimeo.


Apologies if you’ve been hoping for more substantial entries; I did end up losing a lot of today to Pillars of Eternity. It really is that damn good. Hopefully we’ll buckle down this weekend & push closer to production-ready with the engine.

Unreal Diary – Day 25

UE4 4.7.3 | ~4.5 hours in-engine
Personal notes via Google Docs

3rd Person Game with Blueprints, Cont’d

  • Video 17 is a little out-of-date: There is no longer a 3rd slot in the Montage sequencer for adding “Break Points”, instead that functionality is handled in Notifies, as Notifies. Furthermore the naming of Slots has been moved to the Anim Slot Manager (the magnifying glass icon in the Montage sequencer section). When the time comes to wire the “Break Points” in the Event Graph, use “Add Anim Notify Event” and the appropriate Notify.
  • Though it might not look like it, I'm holding down the Punch button here.

    Though it might not look like it, I’m holding down the Punch button here.

  • In Video 20 I suffer a bit of a communication breakdown. My version of what Zak is doing doesn’t punch, at all. I attempt to rewire things based on my understanding of Blueprint interaction thus far, but to no avail. No matter what I do, I can’t make the character punch. This renders the rest of the series impossible to complete. I’ve posted a question to the YouTube video itself, so fingers crossed someone’s figured it out. I’ve been back over the few videos where I might have made a mistake, but it appears that I’ve followed everything to the letter. This is the very first time I’ve been confounded, so in 25 days of self-training that’s not bad. Most likely it’s an issue between the version used in the series & 4.7.3, hopefully I’ll get some resolution on this.
  • The series ends on a solid note, though, where Zak goes through attaching Notifies to the skeleton to spawn particles, & also outlines how to convert the example content’s “Steam” particle into a puff of smoke. Pretty cool stuff.
  • Introduction to Materials in UE4

    I have a feeling this series is going to be a lot of review, but I’m going through it once anyway because I haven’t yet. The nice thing about non-linear instruction is that you’re always free to skip videos, set the speed to 2x, or disregard them completely.

Unreal Diary – Day 24

UE4 4.7.3 | ~6 hours in-engine
Personal notes via Google Docs

3rd Person Game with Blueprints, Cont’d

Though containing the most individual videos so far, this series goes a quick pace. Some key highlights:

  • Input Bindings are handled in such a straightforward & convenient way in UE it makes my memories of juggling XML & unwieldy arrays seem nightmarish. Defining controls is so straightforward, & although I’m not hugely interested in mobile output it’s nice to just be able to plug in a virtual joystick under your traditional control schemes.
  • This is just so damn convenient & intuitive I can't even.

    This is just so damn convenient & intuitive I can’t even.

  • The Material Editor is so damn amazing. They should call it the “shader maker” as well, because that’s really what you do with it. Not only that, but its ability to parameterize any of the nodes for control during run-time is fantastic. At the end of my Unity life I was struggling to shoehorn a couple of plug-ins into my pipeline to get things like animated textures, PBR, & variable fresnel working. In UE it’s an integrated layer of the toolset. I’m thinking they might not call it a shader maker because traditionally shaders have required the mastery of a whole other complex language. Making a node-based editor part of the Material system kinda sweeps all that cold-sweat inducing terror under a very attractive rug.
  • Bias disclosure: I never liked Unity’s abrupt move to Mechanim, a state-machine character animation solution. It took me ages to adopt, & I was still using the Legacy system near the end because it was simple. I could appreciate Mechanim for what it was, though: the ability to give weights to animation clips & blend between them seemed like something critical for improving the quality of characters in the game. Animation Blend Spaces in UE is a facet of that system, & the way it’s laid out here makes it easy to understand: define a range (say, 0 to 100), give it a name (like “Speed”), & drop animation clips along it. At the points where a clip is placed, that animation will play at 100%. As the variable moves up or down the range, the animations will blend. These “spaces” can be one or two dimensional, allowing for a wide range of complex blending. Pretty neat stuff.
  • Zak does an excellent breakdown of State Machines for non-programmers. Recommended viewing for anyone who doesn’t quite get the concept (like I didn’t, until watching).
  • Hooking up the previously-defined Input Bindings to a movement Blueprint is another delight. Yes, the node naming does take a little bit of getting used to, which is another reason I feel like following along with the documentation & video series is hugely important, as you get exposed to a lot of the commonly used ones over & over.
  • Ultra-basic movement wiring, taken directly from the video.

    Ultra-basic movement wiring, taken directly from the video.

  • Since I’m seeing this hammered home again & again, there’s this kind of holy trinity of Blueprints that exists in a given Unreal project: Character, Game Mode, & HUD. The HUD is optional, & I imagine the other two are mutable (not all games have a single type of character, nor are they confined to single game mode), but it’s important that these elements exist in some form or another to make a game do game-like things. Furthermore, as mentioned above, Input Bindings are also one of the primary setups when building a new project.
  • Something I noticed while setting up the character & running through the animations: they tended to hitch, as though they were missing a frame. Apparently this is a known issue with content examples, & the solution is: with the animation in question open in Persona, go to the menu Asset > Add Looping Interpolation.
  • 15 of 22 videos down, should be able to bang out the rest tomorrow morning.


    It’s come to my attention that other people are actually reading this diary, so if that’s you: thanks! I’m really only doing this for myself, to try to keep my head on straight while attempting to grasp a thing as complex as a videogame-making toolset, but if you’re finding something of value here that’s great too. Now watch me get all self-conscious & spend extra hours every day making sure the things are formatted & edited properly >.<

    P.S. Masahiro Yamakawa is taking the time to translate the ongoing Unreal Diary to Japanese. Domo arigato, Masahiro!

    Unreal Diary – Day 23

    UE4 4.7.3 | ~2 hours in-engine
    Personal notes via Google Docs

    First order of business was to crank out one of the usual monthly reports. I’ve been doing them since I started, only missed a couple here & there. In addition to that I’ve been attempting to maintain a daily writing practice, & been mostly successful the past year. It’s coming to a close soon, & I’m looking forward to undertaking another “one-a-day” exercise after that, one more visual art related.

    In the mid-morning Unreal hosted a livestreamed look a the procedural foliage system scheduled for 4.8. While I don’t see any immediate use for it, I still think it’s important to remain at least peripherally aware of all of the things the engine is capable of. As usual, the stream was clearly presented & informative.

    I noticed I’d been working more or less 23 days straight without much of a proper break, so I decided to take one today. The second episode in DontNod’s ongoing adventure serial “Life Is Strange” dropped, so I explored a bit more of Arcadia Bay with Max. It’s an excellent game, if you’re into Telltale-type adventures I recommend checking it out.

    In the evening I decided I needed to put in a couple of hours with Unreal anyway, so as not to completely lose momentum.

    3rd Person Game with Blueprints

    This is a 22-part series by Zak Parrish, whose infectious enthusiasm & high pace of instruction are really in tune with how I like to learn. The series is almost a year old, though, & doesn’t seem to include any UMG stuff (not surprising). I’ll work my way through it & see how it goes.

    As a basic overview, the series covers:

    • FBX Importing
    • Skeleton Assets
    • Persona
    • Input Setup
    • Blend Spaces
    • Animation Blueprints (Anim & Event Graphs)
    • State Machines>
    • Character vs. Pawn Blueprints

    A lot of this will come in handy for The Child, as it’s very much a character-driven experience.

    MONTH 54 REPORT

    Age-of-Unreal-600x600

    THE AGE OF UNREAL

    More than three weeks ago I made the radical decision to move all of my development over to Unreal Engine. The reasons are outlined in the opening of the ongoing Unreal Diary, & here’s a basic summary:

    • As my ability to produce higher quality textures for physically-based rendering improved, I was becoming increasingly unhappy with my visual pipeline into Unity 4.
    • Unity 5 was on the horizon, but as I’d upgraded twice before (both times Pro, perhaps foolishly, but hindsight is 20:20) I was tired of paying the fee without substantial return.
    • I’d wanted to get into either Unreal or Crytek, but the sunk costs in Unity (in both knowledge & cash layout for both engine & plug-ins) kept me psychologically bound.
    • When Unreal went “free”, it was a golden opportunity (I’m aware of Unity’s switch to a “free” model as well, but the reasons outlined above trump the cost at this point).

    Understand that there are certain caveats that go along with this switch. A few factors had to be in place to make it happen, most notably the overall comfort level with my current business (earning enough to survive long enough to learn a new engine & produce something of value) & possessing a development environment powerful enough to run Unreal. I have the time, money, & mechanical power to take advantage of the opportunity to switch tech, so I went for it. These are factors other developers would have to work out for themselves, so don’t mistake me for an evangelist: I’m not going to trumpet a given tech & try to tell anyone that they’ve gotta switch.

    My thoughts so far on my switch, particularly reinforced by participation in the most recent Unreal game jam (they’re held monthly, are reviewed by staff at Unreal Engine, & are four days long, a sharp contrast to my experience with Ludum Dare) are that Unreal has both a lot of things going for it & some not-so-great aspects. I think that overall it’s faster to get a prototype running in Unreal than it was in Unity, mostly due to the wealth of “starter content” made available for free (think of the Example Project in Unity, now multiply that by 20) & the leveraging of visual scripting in Unreal’s “Blueprint” system. I used to be very down on visual scripting, much in the same way I used to be down on dragging & dropping in Unity, in that it felt like cheating. I no longer hold these views. Each layer of a given toolset needs to be mastered & leveraged for maximum efficiency, & elitism holds no place in game development. At least, not if things need to happen quickly.

    Some of the cons I’ve uncovered in Unreal are that there are still a lot of “experimental” functions, & the engine is very particular in how it wants things built, perhaps more so than Unity. These shortcomings can be overcome with a solid understanding of the technology & a willingness to stay abreast of changes, so that commitment to knowledge needs to be a part of any developer’s process who chooses the engine.

    For me, now, Unreal feels like “Unity with expanded options”. In that regard, Unity was an excellent set of training wheels & I’m forever grateful for the time spent in that environment. It helped me become the developer I am today (which isn’t saying much, but it’s more than nothing) & prepared me for the task ahead. I would have to say, though: if the time, money, & mechanical power are there, Unreal’s the way to go. Yes, their revenue model will skim from your return, but only if you make money, & anyone who’s made money in this business knows that it’s either feast or famine. If you’re feasting, doesn’t it make sense to share with the folks who helped set the banquet table?

    Unreal Diary – Day 22

    UE4 4.7.3 | ~4 hours in-engine
    Personal notes via Google Docs

    With the 1st Unreal jam done (Windows-only build, will throw a SmartScreen security error, just bypass it), it’s back to the study grindstone. Continuing where I left off with the video tutorial series.

    [h2]Endless Runner with Blueprints[/h2]

    Surprisingly simple to set up. Tutorial leverages BPs & UMGs, the "new school" of UE design.

    Surprisingly simple to set up. Tutorial leverages BPs & UMGs, the “new school” of UE design.

    Rob from Epic Games Japan presents a walkthrough of building a 3rd person endless runner prototype. Not really much to say other than it’s a very clear & very short tutorial that goes from scratch to completed game. I’m starting to get a better understanding of how UE4 takes primary Blueprints (GameMode, Character, & HUD) & assembles them to form a game loop. This is a 1st important step in building a solid foundation for prototyping.


    For the remainder of the day I actually switched over to Substance Designer study. Participating in the jam reminded me of the importance of the tool for not only rapid texturing, but also of its power & flexibility when it comes to producing physically-based rendering effects. Although we ended up just going with a flat shaded model for our jam game, I think that even with a painterly approach we could have achieved a neat effect with roughness & metallic maps. Also the normal maps seemed to explode on import, & I’m not sure why. The ones I tested on my end seemed to work, so chalk it up to “one of those jam things”.

    At any rate, Substance Designer recently versioned up to 5, & some of the new features are far out. I recommend both Designer & Painter for anyone interested in procedural generation of textures. As a side note, I also use Quixel Suite, so I’m not necessarily an Allegorithmic elitist. NDO is still a marvelous tool for adding quick detail, & DDO can generate effects that Substance takes slightly longer to set up.

    Also trying to avoid burning out on the Unreal study, so I’m calling it a day before 8PM in order to spend the evening relaxing & reading. Currently working my way through Shakespeare’s “Hamlet”.

    Unreal Diary – Day 21

    UE4 4.7.3 | ~1 hour in-engine
    Personal notes via Google Docs

    March Unreal Jam – Day 4

    Key WIP
    by Dark Acre Jack
    on Sketchfab

    Things I’ve learned:

    • Painterly textures can work, with a lot more work than a 4-day jam allows. When in doubt, go with a basic color map only.
    • Normal maps add a ton to even the most basic of models. Learn to do them quickly & the world is yours.
    • Unreal Engine only wants .WAV so take your .MP3s & go jump in a lake.
    • I needed more than 17 days of study to feel confident enough to actually assemble a game in UE4.
    • Slack is pretty much the best thing ever (for simple collaboration).

    It was a weekend of mostly 3DS Max, a lot of Substance Designer, some Substance Painter, & a strong finish in FL Studio. I’ve been meaning to spend time practicing asset creation, & I got my wish this weekend. Hats off to Jennifer “Moonsia” Chuu for her blazing fast & ultra high quality color mapping work, & Ryan Pelcz for taking on the mantle of “person suffering the most during the jam” by being the person to put it all together & make sure it builds. He’s also responsible for the game design, though everyone had a voice.

    Perhaps jam collaboration has been the thing I’ve really needed. Maybe we’ll do it again next month, either for Unreal’s official jam or the Ludum Dare.

    Unreal Diary – Day 20

    UE4 4.7.3 | ~1 hour in-engine
    Personal notes via Google Docs

    March Unreal Jam – Day 3

    Spent most of the day in 3DS Max/Substance.

    Exit Door WIP
    by Dark Acre Jack
    on Sketchfab

    Got my 1st humanoid character done, too. Body, interchangeable heads. Just waiting on textures. Less than 24 hours to go in the jam. I’m exhausted.

    Unreal Diary – Day 19

    UE4 4.7.3 | ~4 hours in-engine
    Personal notes via Google Docs

    March Unreal Jam – Day 2

    It looks like I may have to abandon (or rather “not take any further”) the current course. I mean, by the end of yesterday I’d achieved the goals I’d set out to: use Spriter & Substance Designer to create an animated sprite for use in UE4. Where I got roadblocked was in how the Paper2D Flipbook system uses Materials.

    The way it’s set up now is that a Flipbook takes a series of Sprites, which are individual frames of animation extracted from textures, & assembles them in an asset that can be called in-game. Run cycles, death animations, effects, etc. As far as I can tell (& please bear in mind that I’m a total amateur who has no idea what they’re doing) the Flipbook only allows a single texture input on the Material it uses to display the animations. Furthermore: Sprite assets themselves obey this rule, so thinking about tweaking individual Sprites is another dead end.

    What is possible is going around this by making a new Material for individual use, like a debug texture, & in fact you can produce lighting effects (full physically-based rendering with metallic, roughness, & normal mapping in addition to a color map). However it seems that this is the only implementation that works this way.

    While I can achieve normal-mapped Flipbooks, I can't integrate color, rough, & metal maps at the same time. Infuriating.

    While I can achieve normal-mapped Flipbooks, I can’t integrate color, rough, & metal maps at the same time. Infuriating.

    While typing out the above paragraph I had an idea, then spent an hour trying to implement it & ended up breaking some of the Materials that were actually working. This is all part of the joy of game jamming, especially with tools you don’t understand. It’s an important test of your frustration threshold, & an excellent exercise in patience building & anger management. I’m not mad, but I am rather frustrated.

    There’s still 2.5 days left in the jam. I’m going to take a break & think about my options, & come back to the engine with a (hopefully) fresh perspective.

    Several Hours Later…

    I made the decision to offer my services as a 3D modeler/audio engineer for another team. Two of my former classmates from game design school are making a go of it, so rather than do nothing, which was kind of my 1st choice after failing so hard with the sprites, I figure I’ll get in some time pushing assets into UE4. It’s kind of what I’ve wanted to be doing these last few weeks anyway, so it works out. It’s crappy to fail, of course, but it’s also a little unreasonable to expect to come up with some heroically amazing design & execute it in tools I’ve spent less than 3 weeks with. When I made my 1st solo game in Unity I’d had 8 months of intensive, daily practice & training with the engine. Not making excuses, of course, it’s just how it is.

    Cell Door WIP
    by Dark Acre Jack
    on Sketchfab

    I’m not sure how genuine I feel about posting “hours spent in engine” for the rest of the weekend, so those will be minimal.

    Looking forward to a full day of modeling & audio tomorrow!


    Hit Counter provided by seo company