Evil Avatar

Evil Avatar (http://www.evilavatar.com/forums/index.php)
-   Game and Software Development (http://www.evilavatar.com/forums/forumdisplay.php?f=32)
-   -   The Unreal Engine 4 Experience (http://www.evilavatar.com/forums/showthread.php?t=208726)

Mr. Lake 04-06-2014 01:27 PM

The Unreal Engine 4 Experience
 
I've been playing with Unreal Engine 4 for a bit and while a massive engine of this type isn't going to be perfect for everyone, I gotta say, I am thoroughly impressed. It's the first time a major commercial engine goes out of its way to be helpful about what you want to create and gives you everything you need (beyond art assets and sound) to get the job done. It has the most customizable interface I have ever laid hands on, and unlike most commercial engines, the first-time support and walkthroughs are literally jumping out at you begging to be watched/read and easily digested. Epic has made an incredibly strong effort toward making their new baby as easy to slip into as a new pair of silk slippers (yes, I pamper my feet).

Kismet's evolution to "Blueprints" is inspired - instead of the visual scripting system being a vestigial component of the level and perilously existing in prefabs as they did in UE3 (where code rot would essentially destroy your early-implemented prefabs if they were integrated in any way with your level script), UE4 has taken the approach of blueprints controlling how everything works. Geometry can be a blueprint. Interactions are blueprints. Pawns, weapons, characters, vehicles, items... all are and can be blueprints - UE4 gives you the robust flexibility to define these through both blueprints and (if you have Visual Studio, which you can download for free) through raw C++ code. The power you have to create truly unique systems and behaviors is immense.

There is still a learning curve with the blueprint system in the same way there was to Kismet - if you're not familiar with a visual logic system at all then this may actually be easier than it is for people who have worked with Kismet for several years. In UE3's Kismet, logic had an unspoken flow that would run left to right, top to bottom, but in UE4 the logic flow is... different. It's hard to explain, so I'll give an example:

In Kismet, when you want to make a door that slides open and closed depending on whether the player is standing in a volume this is what you'd do:
  1. Place the door asset in the world, convert it to a Mover, and create the trigger that will control it (either right-click to place a trigger actor, or create a brush trigger volume with BSP).
  2. In Kismet, add the event for the trigger on touch to play a Matinee sequence, and on untouch play the Matinee in reverse.
  3. Open Matinee, set your keyframes and animate the door's range of motion. You're done!
Now, in UE4 Blueprints it's slightly more complicated:
  1. Place the door asset in the world, set the Mobility property of the mesh from Static to Movable. Then add a trigger volume to control the door (there are several types of trigger volume shapes available from the Basic Objects placement menu in the Modes panel) and set it's collision type from "Trigger" to "Custom". You need to set the touch events to ignore everything except Pawns.
  2. In the Level Blueprint editor, make a reference to the door object and create an event to trigger when the game starts to get the door's coordinates in the world where it has been placed (not doing this will cause the door to teleport to the 0,0,0 coordinates of the world when the animation plays). Those coordinates will need to be stored in a named variable.
  3. Next, make separate event handlers for the trigger object to check both Overlap and End Overlap, and connect them to a Timeline (essentially a basic no-frills variant of a UE3 Matinee) to Play and Reverse.
  4. Finally, do a Vector + Vector sum operation using the stored coordinates of the door and the Timeline. The output sum will then need to be sent to a Set Actor Location action that will change the door's position when triggered.

Right off the bat the order of complexity has been increased somewhat. However, this is also where we begin to see the real genius of Blueprints. Once you've created this interaction, you'll never need to create it again. The entire interaction can be saved as a "Door Blueprint" that you can save and later add to the "Level Blueprint", and from there it's Blueprints all the way down.

There are a few quality of life changes as well. One major annoyance in UE3 was the inability to explicitly name objects and actors in your game for reference unless they were given that name in code. In UE4 there is a very useful new feature called the Scene Outliner, which is essentially a node list of every object placed in the level. this allows you to organize every asset placed, and makes parenting objects to other objects (for example, making a jet fighter asset the parent of all the missile assets attached to it) A BREEZE! In UE3 you would need to select the object you wanted as parent, lock the properties window, then select all the child objects and add them to the attachment properties. UE4 lets you simply drag the name of the asset you want parented (which should be easy to find because you can NAME THEM) onto it's intended parent asset and you're done! Plus, it's a super handy way to solve an annoying issue that has existed since the advent of the alpha channel:

http://i.imgur.com/rtQXTUi.png

Oh BTW, that scene is from one of the many example templates that Epic has provided for free to subscribers. There will eventually become a full-blown marketplace for assets and example code.

http://i.imgur.com/Gd14p3y.png

So the big question is this: Is it worth $19/mo?

YES

Here are the reasons why:
  • It's more about the theory of how future development should progress. We're a long way still from tools that make it easy to produce quality assets quickly (although there are plenty of middleware solutions out there that try their best), but with regard to managing complexity and depth for systems that really have the potential to provide DEEP gameplay experiences THIS IS THE TOOL. The guys at Epic are feverishly absorbing community feedback and working to streamline and make things as efficient as possible, while adding new requested features and source code to Github.
  • Over the years Epic has gotten better and better with regard to supporting their tech, external developers, partners, and indies. From what I've seen so far they have every reason to continue that trend and it's going to allow talented devs accomplish great things. UE4.1 is expected to release sometime later this month (April), and will include an updated Elemental Demo for subscribers to check out and learn (really excited to play with lava!).
  • From a quality of life standpoint it is a much more forgiving development experience than with other commercial engines I've seen like Unity and CryEngine. Everything in this new interface is at your fingertips, all working in a unified grounded ecosystem. Despite complex requirements it goes out of it's way to be helpful by offering suggestions based on the context of your current actions to predict and empower the development process - which will only get better. This is a designer's treasure trove, and with the additional support and example content/templates for creating all genres of games it's worth every penny.

lockwoodx 04-06-2014 01:36 PM

Quote:

Originally Posted by Mr. Lake (Post 2294537)
There are a few quality of life changes as well. One major annoyance in UE3 was the inability to explicitly name objects and actors in your game for reference unless they were given that name in code.

Awww but some of the best character names are born from placeholders. (Guybrush Threepwood comes to mind)

Awesome news you're digging it so far as this is one of those rare occasions it's ok for an interface to be "dumbed down" for ease of use. :D

Mr. Lake 04-06-2014 01:53 PM

It's actually not dumbed down by direct comparison to complexity... both EU3 and UE4 have their own lexicons for describing actions, concepts, and abstracts, and because the depth is greater in UE4 to micromanage complexity through nested Blueprints, the hand-holding is somewhat of a necessity. It balances out quite nicely.

UE4's logic flow in blueprints requires a fundamental understanding of the new lexicon to accomplish anything, so the fact that everything flows contextually and goes out of it's way to make suggestions based on context is essentially short-circuiting the learning curve. I think there's never been a better time to want to start LEARNING to make games than right now.

Suicidal ShiZuru 04-07-2014 01:49 AM

Nice post thanks for the info.

sai tyrus 04-07-2014 02:36 AM

Great write up Mr. Lake! Keep us posted! Thoroughly enjoyed your write-up. :)

lockwoodx 04-07-2014 03:09 AM

Quote:

Originally Posted by sai tyrus (Post 2294633)
Great write up Mr. Lake! Keep us posted! Thoroughly enjoyed your write-up. :)

Keep US posted? You heard the man this is the best time to learn how to make vidya games. We should be keeping him posted on how laymen (we) utilize the software. (and that kind of invaluable info would be solid gold to him)

Mr. Lake 04-07-2014 10:20 AM

Thanks for the kind comments!

If anyone is interested, Epic went through some considerable time to heavily document and capture how to do just about everything with their new engine. You can check out their tutorial-specific playlist here, and their channel which has occasional live streams and other examples here. If you're interested in world design, coding, animation, or game scripting, there's pretty much a video for it.

Venkman 04-07-2014 10:45 AM

I'm hoping to dive into this now that Cinema 4D transfers a little better to UE4.

Mr. Lake 06-03-2014 10:54 PM

Figured I'd post this here in case anyone didn't see it. This is a screenshot of a test level I've been playing around in. The image is taken from the editor after a preview lighting pass (I was in the middle of working and thought "ooh, that's pretty... 'snap'!"). Truth be told it's about 3 days of work planning the layout and just geeking out on all sorts of stuff. It's easy to get too deep and go completely crazy with detailing and I've been loving working with it. But enough of my babbling...

http://nik.mohilchock.com/img/ue4/ue4_01.jpg

http://nik.mohilchock.com/img/ue4/ue4_03.jpg

http://nik.mohilchock.com/img/ue4/ue4_05.jpg

vallor 06-05-2014 08:24 PM

I respect Epic and UE4. I've seen the power of it but there are two things that point me to Unity or CryEngine instead.

1) For all the cool stuff you can do with blueprints some coder has to create the initial actions in code. Sure, a community will likely spring up around sharing or selling specific blueprints but it's pretty limited right now.

2) The 5% royalty regardless of revenue. Bring in $100 on your $10,000 project and you still have to pay the $5 despite the fact you're reeling from a huge loss (from an indie perspective).

That said they have done a lot with support. There is now a dedicated support team where in the past it used to be a contractor collecting the info then going to bug an engine dev for the answer. Now they have a full line dev support team. Great move.

BeardedSonOfNel 07-16-2014 01:59 PM

Very nice write up. I just signed up today, and placed an order for the Oculus Rift DK2!

Anemone 07-17-2014 12:11 PM

5% royalty is overreach.

Sony doesn't charge a % royalty on every major motion picture shot with their cinecams. Photoshop doesn't charge a royalty on production assets created with their tools.

I'd rather pay an exorbitant up-front price than a damn % basis, much less a gross percent.

AkumaATR 07-17-2014 12:37 PM

Quote:

Originally Posted by Anemone (Post 2318052)
5% royalty is overreach.

Sony doesn't charge a % royalty on every major motion picture shot with their cinecams. Photoshop doesn't charge a royalty on production assets created with their tools.

I'd rather pay an exorbitant up-front price than a damn % basis, much less a gross percent.

Must just be a personal preference thing, then. I like this sub + % model better. I personally don't have a million dollars to burn outright, and no one's ever been willing to give me a million dollars to spend on an engine either.

BeardedSonOfNel 07-18-2014 06:36 AM

Quote:

Originally Posted by Anemone (Post 2318052)
5% royalty is overreach.

Sony doesn't charge a % royalty on every major motion picture shot with their cinecams. Photoshop doesn't charge a royalty on production assets created with their tools.

I'd rather pay an exorbitant up-front price than a damn % basis, much less a gross percent.

I'm a one guy development house with a couple of friends to provide music, and art...
I could never afford the upfront cost of UE4 under the old pricing model, and this still beats the shit out of MS taking 30% on the indie store titles, or iOS 30% take.

If I read the TOS correctly I think the first $3000 in sales aren't subject to the 5%, but I'll have to read that section again.

Anenome 07-21-2014 05:26 PM

It'd be more acceptable if that lower limit were higher perhaps. $3k is chump change. $30k starts to be reasonable.

Vallor points out that in a worst-case scenario you can end up not only not making a profit, but owing them money under this model. That's a horrific outcome. But there seems no good way to prevent it.

The result is that riskier games won't get made with this engine by indies, and maybe not even by the big guys.

BeardedSonOfNel 07-21-2014 05:56 PM

Quote:

Originally Posted by Anenome (Post 2318757)
It'd be more acceptable if that lower limit were higher perhaps. $3k is chump change. $30k starts to be reasonable.

Vallor points out that in a worst-case scenario you can end up not only not making a profit, but owing them money under this model. That's a horrific outcome. But there seems no good way to prevent it.

The result is that riskier games won't get made with this engine by indies, and maybe not even by the big guys.

That's a choice that every small house out there will have to make. For me it's currently the best choice. For some Unity will be the road to take, and others will go down another path. For rapid development and outstanding documentation UE4 is the bee's knees!

Mr. Lake 07-21-2014 07:55 PM

I'm really glad to see people digging in to this engine - it's a fantastic piece of technology and a triumph of object-oriented design. Can't wait to see how Tekken 7 makes the transition to the new tech and I sincerely hope Mighty No.9 does the same from UE3 (which now looks REALLY dated). 4.3 just came out a few days ago with its new list of features and improvements - key among which is its "Paper2D" editor for making 2D games (their previously talked about 2D side-scrolling "Tappy Chicken" is actually a 3D app using a fixed camera with isometric focus depth). I haven't played around with it too much but in general I can effectively do what I've always wanted to do... make a proper Sonic the Hedgehog game. :D

The thing is, despite the fact that each iteration yields fantastic improvements and features (the new behavior tree editor and code for example) the frequency of updates make it difficult to continually merge and integrate those features while maintaining a healthy development pace for product. Maybe more so for me since I don't have a particular project and when an entirely new system comes online (like Paper2D for example) I find myself creatively wanting to flush whatever I've been working on for the last 2 months and build something entirely new. At this rate, I will have 7 unfinished games by the end of the year... but it's all been a fantastic learning experience as well so it's not like I'm not getting anything out of it either.

To address the comments about percentage vs. upfront flat cost - this is all about budgeting and forecasting. Your expenses are for the most part going to be a flat cost; salaries, software/hardware, total burn time, legal, utilities (assuming you develop in a studio and not your actual garage), etc. You can more or less count on those expenses always landing within a particular margin and based on that you need to determine how 5% of revenue out of your gross is going to affect that bottom line and aim to perform above that margin. If there is no confidence in your product to meet or exceed those projections then why make it in the first place (beyond artistic expression)? 5% is more than fair in terms of Epic being a "development partner" in whatever endeavor you embark on with the help of their technology. As a subscriber you get support direct from their team online, feature requests, and a massive community to help with every facet of the engine and it's current quirks (because lets face it, every engine has them). I could see someone attempt the argument against a 5% royalty if you only paid the initial $19.00 for access to the technology, cancelled your subscription, and continued to use the engine without any of Epic's support or updates... but that's not really a fair exchange for Epic when you pay less than $20 for their technology powerhouse that can generate millions of dollars in revenue.

Anenome 07-21-2014 09:18 PM

Well it's a less great deal for indie and risky projects that you don't know if there's a market for at all. But it's a high-end tool and devs will perhaps graduate up to it using other tools. But that may hurt Epic on the back end. If indies build experience in Unity, etc., then they may decide to stick with it as they grow.

If I were Epic, I'd put a policy in place specifically to encourage indie use.

BeardedSonOfNel 08-29-2014 12:13 PM

Well I continue to dig deeper into the engine, and I'm prototyping two different apps right now that will use the Oculus Rift. One is for my day job, and the other is for what I hope with be the first of many apps for a Studio I'm forming.

I love using this game technology for non-game apps!

BeardedSonOfNel 12-13-2014 02:28 PM

So a few months ago I got the engine, and played with it a little bit. Prior to this I really haven't had much experience with 3D engines, and I know less about modeling. My time was limited with engine as I had several other project to complete for work.

Well this October I finally got to really sit down with the engine, and learn (still learning).
I went from never using a 3D engine to the very rough prototype you see below in just 3 weeks.

This prototype works really well in my Oculus Rift DK 2 with proper scaling.

I still need to work on the lighting, and some bad floor textures, but it's coming along :)



All times are GMT -7. The time now is 11:44 PM.