[Twitch] UE4 programming discussion - June 12, 2014

We’re announcing this one early so everyone has time to submit loads of questions. Our next Twitch broadcast will cover a couple topics of interest.

First, you may recall Ryan Brucks’ FlipBook tool created for Zen Garden (see here, jump to 31:00). We got a better look at his work in today’s company meeting, and we think everyone else would benefit to see it in more depth, so Ryan will be back again to show how you’ll get to use this starting in 4.3.

In addition, we’ve seen the huge number of votes on the UE4 Roadmap for more programming workflow videos, so Lauren Ridge from the docs team will be leading our main discussion. Lauren is currently recording an extensive video series to help coders dive into UE4 more easily. Josh Markiewicz (and possibly other senior programmers) will be available to field questions, and this is where we’ll spend the bulk of our time.

WHEN
Thursday, June 12, 2pm ET countdown clock]

WHERE
www.Twitch.tv/UnrealEngine

WHO
Ryan Brucks, Senior Environment Artist
Josh Markiewicz, Senior Gameplay Programmer
Lauren Ridge, Technical Writer

AGENDA

  • Welcome & Intros
  • Unreal Engine News from E3
  • Community Spotlight
  • Ryan’s Epic Friday FlipBook
  • Programming Discussion
  • Q&A

\PROGRAMMING DISCUSSION NOTES

  1. State of docs and tutorials - UE4 Programming Series by Lauren Ridge

2 Several topics Josh Markiewicz can address (here’s where your questions come into play):

Game modes
Game state and flow
Networking replication and connectivity
Multiplayer features and management
Life cycles of gameplay objects

What other questions do you have about programming in UE4: Input, framework, plugins?

We’ll pull in as many subject experts as we can to help you be more productive.

Sounds like it should be a really interesting session.

So my question is a general “why design it this way” thing. Well, actually I’ve got two :slight_smile:

  1. Can you talk us through the overall structure of the build? What I mean is the unreal build tool, how builds are constructed, how we are conceptually meant to work (for instance, do we keep a static build of the “engine” and only work on isolated modules?).

  2. Can you talk to us about the component organisation? It seems coming from another engine (ahem), that you have kind of half-done the “composition” thing. You have components for a large part of the functionality, but then opt for a single monolithic “blueprint” script to control it, rather than have the scripts simply another part of the collection of components that composes the object. Why is that? Are there any plans to change that?

  1. Is the compile time going to get lower in the near future? Some of the compile times are already too high even for a very small module. I’m asking mainly because most of it seems to be UBT and UHT.

  2. Is there any plan to change how editor updates the compiled module? Right now almost all the time that you change something in your game module, you have to close the editor, do a compile (which doesn’t happen quickly either), and open the editor again, kind of a hassle especially at the beginning of the project where you need to compile 20+ times a day.

I’m thinking unless we want to recompile one of the editor modules, editor should just update the data for the modified module in a few seconds and be done with it, there shouldn’t really be a need for a whole editor restart.

Thanks in advance.

Does IOS 8’s new Metal benefit BP devs? Cheers.

https://answers.unrealengine.com/questions/46419/link-error-when-setting-parameter-values-on-a-mate.html

I know some people are working on this on their own, but something I would definately like to know is if there is going to be any ARPG or RPG frameworks coming up or in the works?

Starter Kits. Probably. Framework ? Doubt it. RPG is so wide case, that you will have to make compromises and make your sample specific for your game. The best that can be achieved here is writing clear and simple code that is easy to dissect apart and build upon, for whoever is going to use it.
When you try to start generic, you will quickly learn, that complexity is growing exponentially without really any added benefits for game.

You can vote for a RPG game template on their roadmap here: https://trello.com/c/MPQsADfd. It most likely wont be a whole framework, but it would be a good starting point for building RPG’s. As inside stated above, RPG’s tend to have a lot of very specific requirements.

I am programmer but i have also been learning blueprints. But i wonder if you could give an overview of Programming pros and cons versus blueprints. Another question is related to more architecture of the Engine in reference to programming. That is, there are a lot of nice tutorials and books about c++, but sometimes you have to know the approach in Unreal Engine 4 programming approach to apply those c++ skills though. Of course, there is documentation about the API, but more like short overview of the Engine architecture from programming point of view. Thanks.

  1. What’s the status of the Realistic Weapon Pack?
  2. Will it come as a C++ and blueprint version?
  1. set gui with blueprint (main menu for example)
  2. networking (when you click on compaign mode you play solo and when you click on multiplayer you go to multiplayer mode…)
    2 rpg server setting ( how to crate a network for mmorgp that can handle really big ammount of people)…

Great news, even though our friend and the api docs are helpful, it would be great to see some more love on the C++ side when it comes to tutorials and live discussions.

Camera Manager -> Target View -> Camera Component from a blank project how all that interacts and how / when you would extend each in context of having games where the camera is not attached to a player object examples smooth camera that can frame multiple objects as used in most local multiplayer games ?

How to create a custom blueprint node ?

How/where to add new custom asset types, example SQLite database loader ?

Please, say something about current state of plugins system - how stable is it, what is the best ways to debug plugins initialization if something go wrong
(for example looks loaded but class viewer doesn’t have classes like AActor etc. (even filters has been disabled))?

C++ Networking Tuts are sorely needed, everything for setting up a dedicated server to properly setting up replication. Also can you perhaps give a broad overview on the c++ side of setting up a Client only & Dedicated Server only situation. Where do I start ? Whats needed for GameState/GameMode, PlayerState, etc. I know it can get very project specific, but lets take the shootergame as an example. Let’s say I want to host a dedicated server somewhere on the "Interwebs :slight_smile: ". And then have the clients connect to it and then play a match. Just the basics would be awesome ! I’ve already taken a look, and learned a hell of a lot, from the ShooterGame (THANK YOU VERY MUCH FOR IT) but as I’m completely new to game design I don’t know where to begin with the dedicated server situation. Thanks. Hope it makes sense.

Explain the new folder structure and how to play with it.
Explain when to use include of header file check here for a example of what’s need explanation : Here
Explain how the online subsystem is working, the session management etc…

Hope to see those topic covered :smiley:

yes MELTDOWN tutorials are amazing this guy is just freaking awesome how he answer all questions and make buch of tutorials but it would be better if they are video tutorials to understand better …

Two networking question:

  1. Client side prediction. Is there are general pattern I should apply to in Unreal Engine or this is entirely game specific ?

  2. Lag compensation. Are there build in mechanism for lag compensation ?

Also in ShooterGame there is a GameKing, which is an experimental gamestate management system. Has there been any progress yet on an In-Engine gamestate management system or should we use GameKing for now ?

I completely agree, this is super annoying and really makes debugging and testing a lot harder than it should be.