Unreal Engine 4.19 Released
unrealengine.com
unrealengine.com
Does anyone here use UE4 to develop small games? If so, what's your development workflow like for game logic?
https://www.udemy.com/unrealcourse/learn/v4/overview - a bit slow, but there is tons of content
https://www.udemy.com/unrealmultiplayer/learn/v4/overview - building an online game with Unreal turned out to be stupid hard for me, and this has paved the way
https://www.youtube.com/channel/UCRnPBe1tJpXA0lccx_U1mww - UnrealGaimedev is amazing. I have so much thanks for his videos
With those, I have built some simple games. One of the things that I have found interesting is that the visual programming of UE4 can accomplish way more than I thought it was capable of. If you're getting started, I'd recommend not even touching C++ because the visual programming stuff is powerful enough for pretty much everything you would need in a hobby game.
I found the visual programming language frustrating to use and reason about. While I loved the discoverability of working with blueprints (it is easy to find new nodes), I found that actually working on game logic quickly devolved into an unmaintainable mess of literally, spaghetti code. It was great for prototyping, but horrible at actually building something maintainable and understandable. Reading other people's blueprint setup is even worse.
I found the workflow even more frustrating. Blueprints are stored as uasset binaries, and as such make traditional version control impossible. Changing a single default parameter in a blueprint rewrites the entire file, and can not be diffed, merged, or reviewed, making git/p4 log nearly useless.
I know there is a builtin diff/merge in the editor, but it's pretty limited and I would say it's quite a far cry from what "normal" developers are used to in other parts of the software world.
I have since switched to using mostly C++, and only using blueprints for derived Actors to set up art (meshes, materials, etc). It's definitely slower to set up than using the blueprints. I'm not happy about being back in a place where segfaults can happen; the compile-play-crash-restart cycle is much longer than it should be. I'm not a huge fan of C++, warts and all. In return, however, I can actually read the code, grep it, review it, etc. Do "all the things" you're supposed to do as a good software engineer. I really don't know how the AAA game studios are managing real games with blueprints, I kind of doubt they are.
At least as an experienced software developer but amateur game programmer, I found it much more comfortable to sit down with C++ and learn their API, than it was to perform game logic by dragging around 'foreach' boxes and doing arithmetic by crossing lines.
At least this would allow diff, merge, and code review with standard tools.
I also tried Git LFS and it is a hot mess.
Even ignoring the distributed aspect of git, the things I loved as a solo developer was immediate branching, a sane way of merging, and things being fast because there was no server to talk to (coming from SVN and CVS).
Now that I think more about it, I think some of the game studios I'm familiar with were using Git for the engine and artists were using Perforce for their assets.
Besides that, read the docs and learn UE's concepts of actors, components, blueprints (prefabs), actor inheritance, pawns, and controllers. Then when you want to add some C++, make C++ base classes for your blueprint classes so you put some functionality in each.
Epic has great docs, this one might be a good place to start if you have Unity experience: https://docs.unrealengine.com/en-us/GettingStarted/FromUnity
though you can't use unreal-JS for iOS apps (uses v8)
I made a lot of getting started resources and cheatsheets to help newcomers such as a C++ Cheat Sheet[2] and a Blueprint Cheat Sheet[3].
[2] https://uecasts.com/resources/unreal-engine-c-plus-plus-chea...
[3] https://uecasts.com/resources/unreal-engine-blueprint-cheat-...
"The new system is used by HLOD and is a replacement for Simplygon....After the prompted editor restart, the Plugin will replace the third party Simplygon tool for static mesh merging LODs. This new Plugin is accessed in two ways: The HLOD Outliner, and the Merge Actors dialog."
Gamedev is a somewhat unique space in that about 6 months from ship you fork from upstream and almost never merge again. Heck most licensees I know hacked UE3 to hell-and-back(which we did too) to add the features that we need to actually ship.
I wouldn't be shocked at all if they got made into a TV show at some point.
AAA fighters are a long way from it's FPS roots.
Cheating in Fortnite is practically unheard of at this point. But it won't be long until the player base is just as jaded as PUBG's: https://github.com/Griizz/Fortnite-Hack
(FWIW, a little searching reveals that Fortnite seems to use the exact same anti-cheat company as PUBG: https://www.battleye.com)
1. Why should Epic go and reimplement anti-cheat that you can grab off the shelf?
2. A big part of limiting cheating comes down to the specific game design and implementation. You need a server implementation that is as distrusting of clients as possible, you need secure (networking) code, etc. Anti-cheat is not a cure-all.
3. Even without anti-cheat, Unreal Engine is still well-used by tons of single-player video games. I don't see it "unraveling" regardless.
Unfortunately that's just not realistic for a large category of games. If you can trust the clients to some degree then you can really really offload a lot of server work. It's not feasible to process user's mouse input on the server in an FPS for example. Not just from a server load standpoint but from a latency standpoint.
You don't necessarily need to ban a player immediately. If you can accurately ban people within a day of using a cheat, then that's a pretty serious deterrent from using them.
There have been successful FPS games with that formula (Tribes comes to mind). There are cheats/hacked clients, but they're on a much less problematic level (mostly around visibility).
[1] https://www.reddit.com/r/FortNiteBR/comments/82xyhb/launch_e...