[=;18214]
And other people disputing those who saying that C++ is terrible of a choose for game play use… which it isn’t UE4 API in C++ are not much diffrent from UE3 UnrealScript, other the fact it is C++ it’s feel the same and it’s faster.
[/]
I must have missed those posts, Ive seen alot of highlighting of issues with C++ that people tend to overlook. The API still relys heavily on the base C++ syntax which is why Im saying that there are complexities that wernt there before and ofcoarse its faster in terms of computation, not production capacity which entirely depends on the programmers. I will always be of the opinion that just because a person knows C++ or an API for that matter doesnt make them a good game designer, thankfully we have blueprint otherwise we would be leaning heavily on a community that has a very ingrained ideology that anyone who doesnt know their language must obviously know less then they do, nothing against the guys at Epic and Im not going to single anyone out but even they do it (granted they might actually know more ;)).
The point is that C++ is just a tool, we use it, it doesnt elevate anyone to some higher level on its own, the concepts behind the language were around long before the actual syntax took shape and there are reasons why the syntax can seem obscure at times because things have been shoehorned in. Newer languages can see the mistakes that older languages have made and improve upon them, Im not going to say anyone is right or wrong but we need to compare them to know what works and what doesnt. Every single time I mention the innate complexities of C++ I get shrugged off, without fail, It would just be nice for people who like C++ to tell us about their issues with the language too from a more experienced perspective but as eblade said its rare to hear people who work with C++ criticize it and Im going to bet that it isnt because the language is perfect because I can say without a doubt it certainly is not.
[= Zeigler;18243]
Yeah, that archetype method is what we generally use in fortnite, but basically without the 4th step. We avoid having asset references from C++ to Asset, so that step #4 is usually “open a different asset in the editor and point it to the new blueprint”.
Refactoring blueprint events and functions can be a bit complicated. Luckilly, there are some pretty handy redirectors built into the engine. Here’s a few examples of how you do this kind of refactoring, from our defaultEngine.ini file.
+ActiveClassRedirects=(OldClassName="FortGameInfoBase",NewClassName="/Script/FortniteGame.FortGameModeBase")
+K2FieldRedirects=(OldFieldName="BuildingActor.ReceiveDestroyed",NewFieldName="BuildingActor.OnDeathServer")
+TaggedPropertyRedirects=(ClassName="FSM_AIProjectileThrow",OldPropertyName="InitialAccuracy",NewPropertyName="InitialAccuracyMax")
+K2ParamRedirects=(NodeName="/Script/BlueprintGraph.K2Node_CallFunction", OldParamName="FortMissionLibrary.SpawnMissionItemPickup.MissionItemData", NewParamName="MissionItemDefinition")
Using redirectors you can set up a situation where the old blueprints will fix themselves automatically on load, and then eventually you want to resave the blueprints to make the changes “stick”. It’s basically the same way that data redirectors work.
[/]
That is just amazing, I have been looking over the document you linked and the asyncronous stuff does seem promising, its certainly concepts I havent worked with before but Im hoping they dont turn out to add too much complexity. These redirectors sound like they could really help with the possible issues of linking C++ and Blueprints so I appreciate you taking the time to talk about these, I honestly had no idea these were even there so I’ll pass this information on to the other programmers on the team also, they might be able to make more use of the C++ end of things than I can currently.
Im guessing by the removal of the 4th step we are talking as in the GameModes how we can link to classes within the editor from a blueprint but we can link to either C++ or Blueprint Classes for Pawn, Controller, etc.