Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

WTF was that?

redactir

Artist Formerly Known as Prosper
Joined
Jul 16, 2018
Messages
696
UE4 is this big bad engine. But there is not one fucking way to draw a textured cube. You can draw a debug cube that's about as good as it gets.

Infact if you look for examples of how to do it yourself there's very few. Most are like 80 LOC and there's no reason to believe the code can even draw a cube by just reading it. It's a bunch of obfuscated unreal syntax.

To top off this disappointment half the examples that seem related are done in blueprints.
No plz, not like this.. not like this.

You can't import your .h/.cppfiles as assets, odd. Nor browse and attach source file to any object in the editor. Instead you create a custom classes for that object. But it's not clear how is it attached. It doesn't show what you created as attached. What If I wanted to reuse a custom "class"?

Unreal also would not build a visual studio project. Ok maybe I needed this Windows 10 SDK. Nope still not able to generate anything. I had to scrap the whole project because the engine refused to load it. Told me I had to manually build it then wouldn't even open the editor.

How can your 4.18 engine be so bad? No indie dev would use this unless they intended to dedicate weeks to understand it.
Well good chance of that, almost no examples exist that aren't blueprint derp. Now I deleted the project and am updating to newer version of engine.

I will draw a motherfucking cube before I give up. Hey but the editor is otherwise p retty nice looking and both engine and editor are fast.
 
Joined
Jan 14, 2019
Messages
105
Location
the little TV in your left ear
Good luck and may your cubes turn out healthy and prosperous

oshGVhe.jpg
 

redactir

Artist Formerly Known as Prosper
Joined
Jul 16, 2018
Messages
696
Nor browse and attach source file to any object in the editor.
https://api.unrealengine.com/INT/API/Runtime/Engine/Components/UActorComponent/index.html

All your complaints come from poor understanding of the engine or from mental corruption that comes from using Unity for too long.

It is not my specialty or job to understand rigoruously a professional clusterfuck however well intentioned and organized it may be. I must have the motivation first.



I did however find a DrawBox function. But there's one parameter that I can't fulfill.

DrawBox(nullptr, Transform.ToMatrixNoScale(), FVector(50.0f, 50.0f, 50.0f), proxy, 0);

See that nullptr? That should be replaced by some FPrimitiveDrawInterface*. I don't know what inherits it or returns it, I don't care, because I'm done wasting time.
 

Turnbased

Barely Literate
Joined
Jun 19, 2019
Messages
1
No indie dev would use this unless they intended to dedicate weeks to understand it.

You need to invest 3 (general pipeline understanding) to 6 (with VFX) months to become effective. Hard to start but easy to finish high quality product. Same with Houdini. Its powerful tool for indie but mind blowing to start comparing to manual work with objects. But with it you can alone create all the environment.

Now nobody draws textures by hand. Only procedural way of work in Substance. When only some games were using it some years ago (including Witcher 3) it was the same - "thats complexity is killing me". Now or you are using it or doing hand painted textures for mobile games with no dynamic lighting.

Unreal is not code driven like Unity. It's a framework for creating pipeline. Its very hard to create turn based RPG & very easy to create Action "RPG". In any case true RPG is the most complex products in development. Thats the reason industry in late 90s switched to easy to produce FPS with linear complexity.

To create good network code you need not some "I'm indie in evenings" experience. Look at Eve online Python server. Or F76 problems. Or WOW network code evolution. To be indie mean to compete in functionality (where RPG is shining in its potential complexity). Not in content where any team with more budget can destroy you on market. And its needs effort. Making RPG needs more then weeks to understand all things needed. Drawings textured cubes - less then 70 lines in pure OpenGL & you have control over everything. You not taking UE for drawing cubes in first hours. Even if it is some Minecraft like RPG.
 

redactir

Artist Formerly Known as Prosper
Joined
Jul 16, 2018
Messages
696
In UnrealEditor you drag and drop these classes you create into the scene/hierarchy. Whatever they inherit from, Actor, StaticMesh, whatever becomes the base object you get but you get it as its own type named after your class. For this all to work be sure the Windows Gaming SDK is already installed before you even create your project. May even have to successfully generate a visual studio project too.


You need to invest 3 (general pipeline understanding) to 6 (with VFX) months to become effective. Hard to start but easy to finish high quality product. Same with Houdini. Its powerful tool for indie but mind blowing to start comparing to manual work with objects. But with it you can alone create all the environment.

Now nobody draws textures by hand. Only procedural way of work in Substance. When only some games were using it some years ago (including Witcher 3) it was the same - "thats complexity is killing me". Now or you are using it or doing hand painted textures for mobile games with no dynamic lighting.

Unreal is not code driven like Unity. It's a framework for creating pipeline. Its very hard to create turn based RPG & very easy to create Action "RPG". In any case true RPG is the most complex products in development. Thats the reason industry in late 90s switched to easy to produce FPS with linear complexity.

To create good network code you need not some "I'm indie in evenings" experience. Look at Eve online Python server. Or F76 problems. Or WOW network code evolution. To be indie mean to compete in functionality (where RPG is shining in its potential complexity). Not in content where any team with more budget can destroy you on market. And its needs effort. Making RPG needs more then weeks to understand all things needed. Drawings textured cubes - less then 70 lines in pure OpenGL & you have control over everything. You not taking UE for drawing cubes in first hours. Even if it is some Minecraft like RPG.

UE4 accessiblity works kind of how I'd imagine i'd write my engine. Everything works very well, but you better know everything or you'll get nowhere.

Now there are trolls who insist this is a good idea for everyone or else you're no one. However, often an API makes sense to be usable without knowing the underlying technology. In the case of drawing a textured cube, how could your API not include this in a simple way?


In the same way Unity3D offloaded many simple tasks to its store, UE4 has offloaded many simple tasks to pipelining puzzles. Writing shaders is easier than this stuff.

I wanted to see UE4 would do any better at rendering lots simple shapes at runtime. For example are there any active measures to queue draws and/or merge redundant 3d meshes into one mesh and one simplified call? It seems there's instead a passive measure of D.I.Y, but if you do, do it this unreal way. kthnxbye !
 
Last edited:

redactir

Artist Formerly Known as Prosper
Joined
Jul 16, 2018
Messages
696
Are you trying to interface existing code? Maybe you can wrap that code in a DLL with a C interface that you then call from C# through DllImport functions?


That's a windows only option. Also developing DLLs really suck. From the C&P overwriting to the debugging. Also Unity would add too much cruft for this project.
 

Bester

⚰️☠️⚱️
Patron
Vatnik
Joined
Sep 28, 2014
Messages
11,003
Location
USSR
Unreal is not code driven like Unity. It's a framework for creating pipeline. Its very hard to create turn based RPG & very easy to create Action "RPG".

Absolute nonsense.

For example are there any active measures to queue draws and/or merge redundant 3d meshes into one mesh and one simplified call?
Instanced static meshes.
 

redactir

Artist Formerly Known as Prosper
Joined
Jul 16, 2018
Messages
696

Bester

⚰️☠️⚱️
Patron
Vatnik
Joined
Sep 28, 2014
Messages
11,003
Location
USSR
instanced how? by spawning?
https://youtu.be/oMIbV2rQO4k?t=600

I know my words are going to fall on deaf ears, but don't worry about optimizations until later in development and just make a game. You won't be able to. But in case you are, you can then optimize it later, there's a lot of techniques. From Proxy LOD meshes to even using a mobile renderer on PC. Lot of them were used on Fortnite mobile. There's GDC presentations from Epic, there's twitch streams, official youtube videos, CPU/GPU profilers, there's even guides from Intel on how to optimize UE4 games. Google this shit if you want, do you know how to google? You won't make a game though, so this is all for nothing.
 

Bad Sector

Arcane
Patron
Joined
Mar 25, 2012
Messages
2,223
Insert Title Here RPG Wokedex Codex Year of the Donut Codex+ Now Streaming! Steve gets a Kidney but I don't even get a tag.
That's a windows only option. Also developing DLLs really suck. From the C&P overwriting to the debugging. Also Unity would add too much cruft for this project.

AFAIK despite the name, unless Unity has messed up things (i do not use Unity myself) this should also work on Linux and macOS, just instead of DLLs you'd have .so and .dylib files.

Yes, you'd need to write the same API at least twice (once for exporting it via the DLL and once for importing it through C#) and it can be clunky, but it still allows you to reuse your existing C/C++ code. It is mainly a matter of how much effort you can put into that.

Anyway, i mainly mentioned it just in case you haven't thought about it and that was the only reason you didn't want to use Unity.
 

redactir

Artist Formerly Known as Prosper
Joined
Jul 16, 2018
Messages
696
instanced how? by spawning?
https://youtu.be/oMIbV2rQO4k?t=600

I know my words are going to fall on deaf ears, but don't worry about optimizations until later in development and just make a game. You won't be able to. But in case you are, you can then optimize it later, there's a lot of techniques. From Proxy LOD meshes to even using a mobile renderer on PC. Lot of them were used on Fortnite mobile. There's GDC presentations from Epic, there's twitch streams, official youtube videos, CPU/GPU profilers, there's even guides from Intel on how to optimize UE4 games. Google this shit if you want, do you know how to google? You won't make a game though, so this is all for nothing.

I'm sorry your post lacks sufficient pipelining. Could you try to explain it in blueprints?


Bad Sector Definitely going to keep it pure C/C++. Hard pass on Double DLL Hell. Unity may have been a good idea if that's how it all started. But then I can't imagine i'd get the same CPU-performance if I had started there.
 
Self-Ejected

Davaris

Self-Ejected
Developer
Joined
Mar 7, 2005
Messages
6,547
Location
Idiocracy
Bad Sector Definitely going to keep it pure C/C++. Hard pass on Double DLL Hell. Unity may have been a good idea if that's how it all started. But then I can't imagine i'd get the same CPU-performance if I had started there.

Wasn't Unity made competitve with the data oriented changes they made to it?
 

redactir

Artist Formerly Known as Prosper
Joined
Jul 16, 2018
Messages
696
Bad Sector Definitely going to keep it pure C/C++. Hard pass on Double DLL Hell. Unity may have been a good idea if that's how it all started. But then I can't imagine i'd get the same CPU-performance if I had started there.

Wasn't Unity made competitve with the data oriented changes they made to it?

AFAIK they didn't do anything. They simply told people try to not write functions all in same file where a bunch of data members exist.
Else you'll tend to pollute the logic of your functions unnecessarily with checks anticpating what other functions might have done.

TL;DR OOP is hard to do effectively without confusion, so maybe a functions-only C approach is a better habit.

Wouldn't suprrise me if there is something the compiler can do with POD situations and people rarely ever create a struct/class containing only PODs.

Most likely during prototyping people stuff the MonoBehavior classes with everything rather than work in a more decoupled way. Then you're fucked.
 
Self-Ejected

Davaris

Self-Ejected
Developer
Joined
Mar 7, 2005
Messages
6,547
Location
Idiocracy
Bad Sector Definitely going to keep it pure C/C++. Hard pass on Double DLL Hell. Unity may have been a good idea if that's how it all started. But then I can't imagine i'd get the same CPU-performance if I had started there.

Wasn't Unity made competitve with the data oriented changes they made to it?

AFAIK they didn't do anything. They simply told people try to not write functions all in same file where a bunch of data members exist.
Else you'll tend to pollute the logic of your functions unnecessarily with checks anticpating what other functions might have done.

TL;DR OOP is hard to do effectively without confusion, so maybe a functions-only C approach is a better habit.

Wouldn't suprrise me if there is something the compiler can do with POD situations and people rarely ever create a struct/class containing only PODs.

Most likely during prototyping people stuff the MonoBehavior classes with everything rather than work in a more decoupled way. Then you're fucked.

I don't use Unity or any other engine, but as far as I have read on DOD Unity hired an optimising wunderkind called Mike Acton. This is the talk that started all the excitement:



From what he says, the compiler can only help with 10%. The other 90% is you understanding the data flows and the limitations of your target machine. I thought Mike might have put some data analysis tools into Unity to help people with that. I also saw something about Mike wanting to mod Unity's C#, so it doesn't kill performance so much.

This is a good write up that explains how to make sense of the data.
http://danglingpointers.com/post/mike-actons-dod-workshop-2015/

Glad I don't have to worry about this BS any more after I got into software minimalism. C and ASCII baby!
 
Last edited:
Joined
Jan 14, 2018
Messages
50,754
Codex Year of the Donut
ue4 is shit
it's like a frankenstein monster and everyone is too afraid to say anything bad about it because of its legacy
 

Bad Sector

Arcane
Patron
Joined
Mar 25, 2012
Messages
2,223
Insert Title Here RPG Wokedex Codex Year of the Donut Codex+ Now Streaming! Steve gets a Kidney but I don't even get a tag.
IMO you'd learn a lot more from Casey Muratori.

I (mostly) know what i'm doing and the engine is (mostly) intentional as it is, i just do not have the same values as Mike has :). For example, in the linked video above (and in other videos at the past) he asks something like "if your system is expected to work with >1 items why is your API made to only accept 1 at a time?" to which i (internally) replied "because it is simpler". Mike (and to some extent Casey, as far as i've seen) is mainly concerned about performance, whereas i am mainly concerned about simplicity and obviousness to me (this "to me" is important as i'm the only one working on that code and i do not expect nor really care much about the code being obvious to others).
 
Self-Ejected

Davaris

Self-Ejected
Developer
Joined
Mar 7, 2005
Messages
6,547
Location
Idiocracy
IMO you'd learn a lot more from Casey Muratori.

I (mostly) know what i'm doing and the engine is (mostly) intentional as it is, i just do not have the same values as Mike has :). For example, in the linked video above (and in other videos at the past) he asks something like "if your system is expected to work with >1 items why is your API made to only accept 1 at a time?" to which i (internally) replied "because it is simpler". Mike (and to some extent Casey, as far as i've seen) is mainly concerned about performance, whereas i am mainly concerned about simplicity and obviousness to me (this "to me" is important as i'm the only one working on that code and i do not expect nor really care much about the code being obvious to others).

The reason I mentioned Casey is his compression method, which is as natural and simple as it gets.



""if your system is expected to work with >1 items why is your API made to only accept 1 at a time?" to which i (internally) replied "because it is simpler"."


I found a github where a fellow tested DOD with some FPS code and it looks very simple.

https://github.com/giulian2003/ShooterDemo

I am still thinking about DOD and will experiment with it.
 
Last edited:

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom