#virtual-reality
1 messages ยท Page 99 of 1
if they dont release all source code they shouldnt write all source code
where they started sending the source code in the launcher version
and back on the Rocket beta, we used the editor without editor code
nvm just checked, robo recall does come with source code
engine
odd, this engine branch isnt on github
you can only access it from robo recall modkit
the pseudo 4.16 branch
so just like they wrote, all source code
yup
@dusk vigil yes thanks ๐ got the name wrong
anyway being able to do assymetrical gameplay with one client using splitscreen, would be awsome
Cool man. FleX is a great thing!
It's a bit of a bummer that PS4 uses AMD processors though. I was just thinking of making a game based on Flex stuff but it would cut out the PSVR angle as far as I can understand
@dusk vigil psvr is problematic, you need to ve incredibly mindful of performance
there is a reason i run at 60 fps on the base ps4
the CPU cant handle it at 90 even if i decrease resolution
and Sony is even more brutal than oculus at their reviews
in VR, one single drop below 55 fps will trigger an alert and make you instantly fail
It's fair enough
you are only except from that if you put a LOADING screen
its fine to drop fps on loading screens
@full junco the robo recall window information is done with a new function Epic added specifically to the oculus plugin. It gets the render target of the oculus preview, this feature isn't available for SteamVR even with full source access, they don't provide full access to it.
Also yes, we do have "all" source code for robo recall
@tired tree not quite sure what you mean, all the mirror things in the preview window are coming from UE4, not from steamvr
its in their compositor
lemme find it again
Also yes it is fairly simple to do two views, one comp one HMD with source access
I looked at most of that steamvr related code recently when adding the adaptive pixel density stuff, and I think theres nothing that special about the preview window
I was having trouble because I was attempting it via plugin
by overriding the scene view
in FSteamVRHMD::RenderTexture_RenderThread() you can in theory let it write anything into the preview window buffer
FOculusRiftRenderDelegate* UOculusFunctionLibrary::GetMirrorDelegate_RenderThread()
yeah thats why I said its easy with full source
that was added for their mirror window
well just a few minutes ago you said writing custom stuff into the preview "isn't available for SteamVR even with full source access"
getting the compositor target
doing it through steamvrhmd isn't how epic did it
I was saying the same method isn't available
doesnt really matter how they did it in their game
and @eternal inlet asked about showing stuff in the preview window and said that you said its not possible for some reason
oh sorry then i may have been misunderstanding that
its def possible on source build
or I guess, recreating part of the steamVR plugin
which is really overkill
ok, so my goal was to figure out if it was possible to do without modifying the engine and building it... don't think i mentioned that hehe
oh I see, I mispoke above John
when I said "full source access"
my bad
I understand the confusion
I meant that the required variables are Private: to the module, not that with full engine source that it couldn't be done
ooooooooo
they unprivated everything in Master
took Allar's request
Anyone has some insight on how to reduce these spikes ? ๐ค
that looks like garbage collection
@wicked oak lol, you always think about garbage collection whenever theres any performance issue
garbage collection is super fast and almost never any issue
@wicked oak but our maid only works on tuesdays :/
I have never even seen the garbage collection in the profiler
@jaunty shell use the ue4 profiler
@full junco on my shooter, a fuckton of stuff gets created and destroyed
like all bullets
or all fx
or enemies
and enemies have a bunch of stuff each
i improved it a LOT by just pooling all projectiles
but when i didnt pool them, there were clear random hitches caused by GC
well setting a good portion of physical objects to be sleeping at start reduced it a bit
@wicked oak destroying the physics state and deregistering components and all that stuff is what takes time on destroy, way more time than garbage collection
but thats "constant"
like "20 times a second"
for the bullets getting destroyed
but then the GC ticked and fully destroyed the stuff
and i had rng spikes every few seconds
of actual GC time of 20 ms or so
another huge issue is overlaps
damn they are expensive
yeah, they are
they even said that on the stream for robo recall XD
that they had an object with overlap and too complex collision
they said they had a blimp that was fully collision primitive surrounded, like the artist took the time to make hundreds of collision primitives around ever nook and cranny so it matched up.
for something that isn;t really interactible with in game....
you need to save details first
command "stat startfile"
command "stat stopfile" to stop it
so do the start command, do some stuff, then do the stop command
it will be on "Project/Saved/Profiling"
then you open it with the huge ass profiler
and go to "Game Tread"
Also maybe start with "stat unit" to see if it's CPU or GPU ?
and see what it does
stat unit does odd stuff in vr
for example the Render thread in Vive is allways going to be to the vsync
the "stall" stuff is the thread doing nothing
forget about all of those
look at "Tick Time"
World Tick Time
also the Render thread
those 2 are the main CPU stuff. (yes, singlethreaded). For the GPU, there is GPU timing stuff on the right panel
just search for "GPU"
@jaunty shell do the profiling in a packaged version of the game
you can profile in the editor, but I like to prevent any false positives, so its always better to just do it in packaged where you definitely only see the stuff that you will really see in the game
without having the editor eat ressources and having all the code inside of #if WITH_EDITOR run
We aren't really using UE4 to ship out apps for now
then what are you using ue4 for?
Internal use for BIM modeling
You're not going to have good performance in editor
The UI processing alone is quite heavy, you're probably looking at 3ms in editor
yeah, editor is not meant for giving you good performance, its just good enough for allowing you to develop your game ๐
ouch yeah that's a lot
You might get it to decent values by closing everything and going full screen
But honestly, might as well work with standalone builds
even if you close everything, an editor build will always run a lot of code thats only run in editor builds
Also, if you ever need to share a build, distributing the editor is a big no, legally speaking
yeah
VR is really hard performance-wise, so it's a no brainer anyway
is there a way to select the maps (and thus the assets to add to the build) you want ?
aside from migrating the map to a new project
\o/ my Rift is out for delivery.. Too bad I'll be out of town until next weekend :/
can't do a dirty build too, editor throws an error about a dictionnary element already existing
much code basically looks like this: http://puu.sh/vckBT/a546501373.png
look at how much stuff is only run #if WITH_EDITOR
that's mostly a C++ project right ? We are only using BPs :/
thats engine code ๐
oh
it runs no matter if you do your game in BP or C++
the engine runs a lot of code only of its an editor build
everything thats in a #if WITH_EDITOR is completely ignored by the compiler in a non-editor build
so without the editor less stuff runs = better performance
@raven halo did you find any discrepancies between your settings and mine ?
@full junco @cobalt relic can't get a build out somehow
mmm, think they fixed the motion controllers late updates bugging out at high velocity in master
@wicked oak on the topic of profiling these lag spikes, world tick is at 20ms~
16ms of garbage collection
as foretold
has anyone tried shaking camera in VR (when explosions happen or something like that)? Does it cause discomfort ?
world tick is the typical
that one is your normal game thread cpu time
mine is sub 3 ms on PC
but on console its at 6-9
depending on the amount of enemies
sounds like garbage collector in UE4 is ... garbage ?!
heh, 13ms of the GC is CPU stall
hmm wtf. CPU stall is normally just the cpu doing nothing
maybe waiting for another thread to complete its thing?
yeah its a wait for event stall
it sounds an awfull lot like vsync or something
the damn is that FFileTransferRunnable on the top too ?
@glossy agate thanks, but even if I activate it when it's not visible, it will probably hitch too, since the act of activation is what creates the hitch as I understand it (although it doesn't hurt to try activating it when hidden, then unhiding it; or toggle visibility)
@full junco monoscopic doesn't work for my project. It crashes when my main level is done streaming, right before it's shown. I tried repro crash in a blank project and I couldn't. So, no fancy mobile VR rendering for me until either Oculus figures out what's up, or until I start a new project.
@mighty carbon yes! You had smooth frame rate off. But it's not making any difference on mobile. At least I haven't noticed. And regarding the vertical tearing it's still there. I just send the project to oculus so that they can help me find the bug.
aye, cool
@jaunty shell check the "worker threads"
im pretty sure that whats happening there, is that the main thread stops to wait for the parallel GC to do its thing
and then resume
@tired tree would you happen to know why I get performance drop when particle system gets activated? (and then performance bounces back to normal)
@wicked oak FBuildAsyncWorker ?
there are different ones
those worker threads do extra stuff.
it does look like your issue is GC indeed
searching for worker only returns 3 of them
it stops the world, the threads start deleting stuff, and then it continues
PoolThread N
those are also worker threads
and the TaskGraph threads too
yeah checks out for the PoolThreads
yep
wich is just the threads doing nothing
what are you doing in your game?
to make the GC be faster, you need to avoid creation/destruction of objects often
only instanciating stuff on start
entity managers and such
I do have a lot of physical entities, but I set them to be sleeping on spawn
other than that almost every light is static
the only thing I could see affect performance would be a TV asset playing a video
by using the mediaplayer
nah that's not the TV it doesn't really affect cpu or gpu frametime
@mighty carbon why do you tell me about that monoscopic rendering stuff makes your project crash?
because I scrolled up and saw your posts from last night
@jaunty shell doesnt sound like you have anything that would cause the garbage collector do to stuff
about mono making it into 4.16 as non-experimental
ยฏ_(ใ)_/ยฏ
my point was that they improved it a lot so that its no longer experimental and that will likely have fixed the issues you had with it @mighty carbon
well, I guess I'll wait and see what happens when 4.16 is out ๐
Epic seems like it is back in full swing post GDC and robo recall
a lot of changes being made to core systems
@tired tree what for example do you mean now?
oh well, I'll tackle out these problems next week, have a good WE everyone !
well, GDC/roborecall uses lots of "experimental" tech
Niagara for that car things, improvements for robo recall, the VR editor, all that kind of stuff
wich they showed at GDC
now, for 4.16 and 4.17, that stuff is getting stabilized and added to normal ue4
@full junco the character movement component for one, getting a lot of changes
changes coming from the Odin branch (robo recall)
i guess to improve the robot movement and the like
its great for my case
dont be so sure if its great ๐
every major change in some stuff will add many new bugs
my use case its very similar to robo recall
after all im also a wave shooters with a bunch of enemies around
and if these bugs affect you then you might have to wait a long time before its usable again
major changes to movement are also hell for me to refactor
but yeah, they are touching the networking with the movement component, its been left alone mostly for a few versions now
epic is doing a lot of fortnite stuff currently
thats why they improved the distance field stuff so much
each character movement can set its own update rate now via a function, before it was universally set inside one, now its overridable
you could change it before, but required overriding a major logic function
now it is its own sub function
anything new for AI ?
I think some nav link stuff was recently changed
they seem to be really happy with AI stuff in UE4, they love that EQS stuff
they changed a ton of AI code in ...i think 4.14
since then its been cleanup for the most part
don't really pay attention to it unless it touches pathfollowing though
@IslandPlaya#0356
that's the logic i used to set the cable position
the "Grapple Target Actor" i get from a linetrace
as shown here:
hope that can get you going with it
@eternal inlet Thank you very much for taking the time to share this. I'm going to have fun with cables this weekend... Your vid looked so much fun I just got to try something similar out. ๐
๐ great to hear, and it is tons of fun
jonas you still using constraints to a physics object that you grip?
or doing the logic manually now?
im in the process of bugfixing now... there are a ton of bugs still
constraints
i figured that since my climbing logic use an actor to hold on to
thats prob easier to achieve than what I was playing with
i might as well just spawn one and grab on to that
you want the code for boosting in the swing direction on the simulating component?
hmm, could be interresting to look at for sure
ie: down/up swing additional force
yeah, i havent found a solution for that yet
i'll pm it to you
cool man
not sure i'm going to bother finishing my fully manual version, but that part could be useful for you
i'll pm you too if you wanna play around with mine
could be you could fix my horrible bugs ๐
@mighty carbon Here's a bit of news: They're DK2's covered in "proprietary" covers
Yup, still doing the Ghostbusters experience. DK2s for sure.
I see
I think we are at the point where software hasn't caught up with hardware
I was testing my app last night, and then went into Home to see what's out there for Gear VR.. Didn't really see anything worth buying ๐ฆ
(price isn't an issue at this point)
That just means there's an opp to make the market still. Do it
well, the article makes a good point - VR isn't at the point where anyone can pick it up and use it
just like gaming back in the days was only for a relatively small group of people
when you can just put HMD and gloves on and get into VR (no wires, no setup), then desktop VR will start making its ways into people's houses
IMO
Yeah, but even right now there is about 1.5m vr market. Too small for huge publishers but big enough for a good small Indy team. A great app should get 5% market share, so $10 a sale will get you a great return for a couple people working 1-1.5 years on it
now that ill be able to release in PSVR, the ratio of games to customers is insane
there arent that many games
and really not many shooters
not a single one with locomotion like mine
most are completely static
Exactly, another 700k people for the one man team
With a unique sales prop for the playform
Platform*
and thats all about cost
you wouldnt care if the rift was 50 dollars
its just that is 600 dollars, and vive 700
and then, even at that price, you still gotta buy the games and deal with all the hassle of a gen 1 product
why do you think psvr has outsold both rift and vive 2 times
Waiting for all the super mainstream add on stuff will just make you super late to the market while early developers already grabbed the whale base of super enthusiasts.
becouse its cheaper, and its so EASY
put it on the ps4
works
no drivers, no updates, no software, nothing
put it on the ps4 and you already have a "cinema screen" with the ps4 screen
then you just launch the game as usual
there are 4 variables in this stuff (how i see it)
money, ease of use, tech, and marketing
vive and rift are high money, low ease of use, very good tech, fine marketing (but still kind of unknown mainstream)
PSVR is mid money, really easy to use, meh tech, good marketing (better than the rift, but not super huge)
look, I know people who don't game and they are not going to f#ck with PC and all the wires and all that
Cardboard is 0 money, incredibly easy to use, bad tech, no marketing(not even needed)
gearVR is low money (but needs the phone), incredibly easy to use, alright tech, and good marketing
Yeah when I tell people about the vr shit I'm working on and show them a pic they still ask where you put the cell phone into the vive haha.
Gear VR is where VR needs to be..
yup, funny enough, cardboard and gearVR are much more known than the real stuff
as far as ease of use
then you have PSVR (as you can find it in every game store)
and then, oculus and vive
the average joe is plain retarded
messing with wires and having to install a software is too hard
again, you are talking about gamers
and lets not talk about finding a vr ready pc
there are more non-gamers in the world who would shell out money for VR
those are minority
thats why i think the headsets that can be a huge hit are the standalone units
standalone rift with positional tracking, something like the leap motion, and all in 1 unit
oh, that thing would go HUUUUUGE
unless you buy a box, an HMD, bring it home, turn it on, put it on, and you are in VR
not that much for games
no, wires, no wall/ceiling drilling, no setup
but for casuals
yeah
that would be a huge hit in companies
and the whole virtual presence/metaverse/social stuff
who said anything about games? My parents / grandparents / in-laws wouldn't want to play anything
and this inside out headsets could do AR
shitty AR, but AR
i would total go on the screen with one of those on LMAO
and look like the ultimate tech-weirdo
they would, however, want to visit destinations or different time periods, or communicate with other relatives around the country / world
Casuals are kind of a market I would avoid though. You need the hardcore crowd especially on mobile where ftp makes 30% income off of 1% of users.
at least something like hololens is a bit more like glasses
just imagine the inside out rift, that is huge
and you walking around with that XD
another thing i see happening is contracts like with phones
Vive is going that way
the way I see it, I would rather delve into a good fictional world with more passive experience than play a game in VR
they are offering that subscription and vive payment systems
btw, fuck viveport
40% to vive???
wtf are they smoking
(imagine Netflix of VR where you get to be in the scene and occasionally do things)
But have you tried onward? That shit is so fun
meh, I don't even play CoD games
I don't like mil-sim stuff, unless it has some sci-fi or fantasy or horror stuff mixed in
This is more like rainbow6 siege. Takes teamwork and tactical strategy.
Insurgency
yeah, it doesn't tickle my fancy
Oh yeah if your not a fan of the genra than you probably wouldn't like it
It's all hardcore mode with no respawn
It has the most rabid vr fan base though
I watch them to see what vr players want
oh god the smooth locomotion crowd
yeah, that too
I can't stand FPS locomotion in VR
I might be able to deal with move forward only type of movement, where I move forward smoothly where I look
like, press a button on controller and player begins moving where user looks
That how mine works, but you move fast
no side step, no diagonal movement
Boat throttle version though where speed is set by controller pitch
side step would be you literally moving in the room
I'll finally get to try various things the week after next week and I'll see how I feel about locomotions and motion controls ๐
Yeah! You get yours really soon right?
already got it, but I am not coming home until next weekend.
and I still need to order 3rd sensor
and probably extension cords
or I might just do front facing VR for now
(and I don't have room for room scale anyway)
btw, how much content do you feel a game need to have to go for Early Access ?
For a game game probably an hour for $7 For a sandbox or arcade type game probably 3 or 4 good mechanics, and see if people latch on
Got a few people with 8+ hours on just my demo with 3 similar levels just different layout
Standard $7.99 to $19.99 seems to be the rate for the smaller games. Serious Sam is $29 but 39 after the sale is over so you will be competing with that
well, Serious Sam is an ancient game
Pavlov vr went with $10 and launch sale at $5 for the first week. Currently sitting at 12-13k users
Onward is $24 sitting at over 40k users but they were first to market
They have trimmed Dishonored 2 for free (3 missions; ~20Gb install before unpacking) on Steam. So might as well don't make games because it's impossible to compete with free AAA lite edition of Dishonored 2 that offers 4+ hours of gameplay, right? ๐
Yeah, vr had a hungry crowd, but still shy about spending lots on an unknown game. Gotta have a good marketing strategy to get the needed impressions
there was some indie game that went for $80 for Early Access.
Planetary Annihilation or something like that.. Was quite a buzz around it. Haven't heard about it for several years after it launched.
it's kinda hard to foresee what happens and how to price your game.. Seems like a gamble to me.
That's a risky move. For MP you have to have a ton of buzz and/or low price to get enough people in so you will have matches.
Most vr mp games fail because the servers die fast like hover junkers
Need at least 10k and a decent discord community to keep it going. Even the Arizona sunshine multiplayer is nearly dead. I have to invite people to play most of the time
But when they hit, they really hit hard.
Yeah, that's what az did
Yeah I avoided it on my first game due to the risk for all that work
most recent example is Doom - SP was a blast, MP was only good for some (and most of MP crowd weren't even hardcore Doom fans)
Yeah, I played like 2 matches and quit on doom
I am not a big fan of MP in general
I wouldn't mind meeting people in MP when I play MP as SP.. So I just run into them and either we do something or we part ways. I'd still prefer going solo and maybe get help with certain quest or something.
Yeah thats how I am planning my next game. Single player with drop in coop for non private games. If it gets popular I can have king of the hill pvp for like 8-10 people
@glossy agate got anything to show already ?
Yeah, demo is on Steam. Final is released mid to late may. Called Trance VR
have nearly 1000 downloads so far. No real sickness reports, but just a few wet mouth reports
I actually I think I showed it to you a while back
so, let's ban VR before it's too late? ๐
these f#ucking ethics people... no cloning, no genetic engineering and now they got to VR
Just make mass shooting simulator and have them write articles to promote it for you. Like GTA, hatred, and carmageddon did haha. This is America! Where controversy pays waaaay better than ethics
well, not sure about that nowadays
If you remeber this one https://www.youtube.com/watch?v=qV3PhvCf_Jg
Made in ue4. They pulled it off steam for a bit but let it back on because freedom of speech
Yeah, all the marketing hype was just controversy. Probably would have sold a tiny bit without the hate.
And I am in no way suggesting anyone make a VR mass murder simulator to be clear haha
๐
soundstage picked up by google.. http://www.theverge.com/2017/4/7/15216720/soundstage-vr-developer-logan-olson-joins-google
can you imagine the tilt brush/soundstage crossover? Lot of creative freedom there..
anyone have experience with the stereoscopic 360 video plugin? is there a guide handy on setting that up?
@fleet veldt I followed this... https://www.unrealengine.com/blog/capturing-stereoscopic-360-screenshots-videos-movies-unreal-engine-4
Still couldn't get it to work. I suspect because of the newer version UE I was using (4.15.0 I think)
If you have better luck then please share. Sorry but can't remember what the problem was clearly. I think it just failed to output anything.
@blissful bear cool i will. I'm also on 4.15 hope i can get it to work XD
I hope you can too! It seems perfect for sharing your hardwork with as many people as possible. I'd forgotten about it until your post.
@fleet veldt if you search it on the forums there are some tips too. I set up everything in the level bp and used a string of console commands to fire off the settings via key press. Took about 4 days to render 1 minute though so I let it run while I was on vacation.
@blissful bear @glossy agate thanks both. I was just now able to do a simple 360 screencapture based on the docs. HOLY cow 4 days for 1 minute of scene. ouch
@full junco where does the steam audio plugin live in master? I see the synthesis stuff but not it
@fleet veldt yeah and this was the result. Kind of mediocre but it works on google cardboard. Not sure how you would make a real gameplay demo yet. Made it the summer of last year https://youtu.be/QwcqwBRCEmY
@glossy agate what was the resolution of the render output by the plugin?
its 2 renders per frame, one for each eye. I set it to 2048 width, and the end result when put together is 2048*2048. It was on my old machine, so my may new machine can probably render a bit faster.
If stuff is moving in your level though you have to lock the frames, or it will look like its moving in highspeed because rendering takes like a minute per frame or more haha. Hopefully its a little more optimized now
@sturdy coral I haven't looked at where that plugin is, I only saw that commits that added or modified steam audio stuff
ah, 360 degree panoramas - I'll need that eventually
so how does this work considering your speraated pair of eyes/cameras have to rotate as you spin 360. my guess is that it renders left and right vertical column of pixels as if your "eyes" are facing it for the next pixel column rotate the eyes/camera a fraction of a degree and do it again until the entire image is done. anyone know for sure? (talking about stereo pano renders)
@full junco Destructibles are fundamentally broken. Changing vars has different effects every time and the workflow is terrible. They perform well but I'm not sure if I want to deal with all of these issues going forward.
hm, yeah
Is there a somewhat documented workflow of generating voxels out of 3dmodels?
for what?
Well, eventually I'd like to use it in engine, but I'm pretty sure that'd be step 2
the engine is voxelizing meshes when its generating collision
@glossy agate wow, yeah after my testing it's taking 40 seconds to generate 4k left and right eye images for each frame of the cinematic. 97 second cinematic * 60fps = 5820 frames * 40 seconds = 232800 total seconds = 64 hours 40 minutes to render ๐ฆ
and then you still have to have something composite and render all those still frames into a video
Haha yeah it's pretty brutal for time. Luckily putting them together is fast. When you import frame 0 into after effects it pulls in the whole stack automatically so you just set left eye on top, right eye on the bottom half of a square canvas and render. Google has a free injector to turn it into a panoramic for yt.
Check out the other panoramic on the marketplace though. I never tried it but I heard it's waaaay faster. Not sure if it's stereo thiugh
4k is too much
Also render at 24 or 30 fps. 60 might be overkill for stills.
interestingly enough, there are no docs about video specs for PC platform
Anyone knows if the Microsoft VR Headset has controllers and/or Is compatible with Oculus/Vive controllers ?
they haven't announced if it will have controllers, but HMD itself won't be compatible with Touch
Thx @mighty carbon
wtf, how about 3D TVs and 3D monitors?
Patents are going to be the end of everything
no kidding
oh man, I begin not liking UE4 with passion :/
I gutted my project where there is nothing in it, bare bones - still crashes in the same spot with monoscopic renderer
you deleted saved/intermediate/builds folders?
also redirectors, and last resort is to rebuild the project
why is there no "subtractive" material blend mode...
just the opposite of "additive"
I would have hoped that using a negative value in additive would do the same, but nope
ok, its easy to do that with the modulate blend mode I think ๐
but modulate has 2 instructions more...
and who wants to waste 2 instructions in a material
http://doc.dl.playstation.net/doc/psvr-oss/morpheus_bridge.html This is great news, the more open companies are while developing VR the faster...
๐ฎ
@fresh laurel what source is released?
Anyone know how I can get my motion controllers to not be subject to rotation of HMD? I am just moving a mesh inside of my character for both HMD and controllers...each getting data from where they should, each working, but the cotnrollers seem to rotate with my hmd movement as if they were childed to them
nvm lol, had use controller rotation on the character defaults =X
morpheus bridge? but that thing is outdated
i couldnt get it to work
and i think that thing needs a ps4 devkit to do the tracker calculation
i know of a "HMD server"
but that thing was for ooooold sdks
we are at sdk 4.5 now
with that one, you are connected to the devkit, the headset is connected to the devkit, and the devkit gives you the image
@wicked oak So it's probably not usable for the current commercial PSVR ?
i have no idea
problem with C is that is just a step above assembly
it has no abstractions, its direct
good C is very elegant, but C itself is hella dangerous
at least with "C with classes" C++ you can still use RAII and things like that
in C you need to call all the "createX(myX)" and "destroyX(myX)" alongside the malloc and stuff
Yes it's for advanced users which i'm not
Also, perhaps it's because that precise component was an embedded system for a very precise use
So they used C only because of that
most likely
C is still the reference langage in embedded systems
You see more and more C++ but it was common in even recent years to not even have C++ support on some microcontrollers
And you have a large pool of skilled engineers who only write C
yup
now with LLVM is getting better
plenty of microntrollers with w llvm backend or a way to modify a existing llvm backend to run that microcontroller
i know a guy who is writing for a gameboy advance on c++17 with clang XD
and it isnt half bad
Even rather modern software like Git is 100% C, because the main author (Torvalds) hates C++. You'd think it would be a hip trendy Rust thing.
Git was made before rust exists. And rust is honestly not really finished yet for really serious production stuff
and yeah, Torval hates C++
the only thing I personally don't like with UE4 cpp are the "large" compile times compared to Unity
and the very random compiler errors
for instance right now, I stopped working on my project since two days because of that
I can't work on it because I'm fixing "errors"
sure, it's because I lack experience, but it's hard to learn about that
What you really dislike is that C++ is a hard language
Personally not because I only use it very superficially
That doesn't really matter
C++ is a low-level language, it doesn't try to clever stuff
It's a dumb tool
That's UE4 - C++ doesn't have a concept of dependency system
@cobalt relic For instance at the moment, I'm using the RuntimeMeshComponent
It's 100% outside the language really, comletely up to the developer
It was working perfectly, and now the compiler refuses to see some of it's classes
While this plug-in compiles and works perfectly by default
Let me fix that : And now your code has issues that you are having trouble to fix
I've had this error a dozen times, The only thing I could do was moving the classes to different random files
Yes it does
It doesn't
it's not the compiler, it's ue4s build system that has the bugs
often stuff is magically fixed again after deleting all intermediate and other folders
It's very hard to detect those issues
it's so undocumented that i'm hardly at fault
there's not even warnings for __ sake
No i don't
The compiler is unable to compile - it didn't decide not to
Because the code is wrong
I'm saying the compiler ( or UHT/UBT ) obey to rules that are opaque and not documented
therefore I can't do what it needs to work properly
therefore It's the same as a bug
Include the correct headers and it will work, most of the time
@cobalt relic " most of the time " is not an answer , it doesn't work for me ๐ฉ
If it doesn't work for you, it's because you fucked up - so we can help with that if you start asking actual questions instead of blaming the tool
what do you think, that i'm going to accept one year of my work failing for no known reason " because the compiler is always right " ?
@cobalt relic It doesn't tells me where and what I fucked up
It doesn't because itn can't by design of the language
It has no way of telling you that
It compiles fine, and then the minute after, it doesn't
it always tells you roughly what the issue is
You're asking for a fully different language
Share the code and errors and people will help
It's not black magic
@cobalt relic no I'm not, please stop implying i'm saying things while i'm not saying them
sometimes it is black magic, because there are bugs in UBT
thanks by advance, and I appreciate your skills and expertise @cobalt relic
and yes @full junco by compiler I should mean UBT or UHT
@cobalt relic and I W.O.U.L.D share the code , but I cannot
I wish i could, I really do
To me, It's just not supposed to work like that... working on something with no errors, a sudden crash with no given cause, and you have to handle all your code to a third party that tells you " don't do this and that it's bad "
Welcome to C++
@cobalt relic Okay I'll try to do that
C++ is a low-level language it's one stop above machine code
@cobalt relic UHT is not though, it's full of reflection and in C#
Yes, but UHT is not the one who fails here
it likely is UHT or UBT
I think it is :S ( sorry @cobalt relic )
It likely is the code
no @cobalt relic
@cobalt relic My code DID provoke the error, sure; but The reason ""why"" it did, is opaque and hidden
That's my grief ^
You will always have opaque and hidden answers from a C++ compiler
but the issue is likely not the compiler but UHT or UBT
@cobalt relic So i will always need to depend to someone else to tell me what the opaque c++ gods want ?
You think i'm going to accept that ? ๐
No, you need to learn the intricate finer points of the language
if UHT fails to include the correct header then dont blame low level C++ for that
You're going to spend years doing it
Welcome to C++
@full junco I would gladly accept that it's an UHT bug once I see the code and fail to provide an answer
@cobalt relic Thanks for the welcome and I appreciate that, but those answers are a bit too "hidden"
Not a second before that
Sure ^
@cobalt relic its just 500% more likely that its a UHT/UBT related thing
If it's failing, it can be proven somehow
@cobalt relic and for the record, I have backups of all the projects with the failing errors, so that will be possible eventually
I am also using the RMC and I know the RMC also seems to have some issues with UHT/UBT, for example it breaks hot reload
It's not the compiler yes, UHT or UBT
So what's that code like ?
Let's stop talking about how it's UHT's fault
Or UBT or Epic or the Moon
Mars
@full junco It's very precisely UHT/UBT as far as I'm concerned, and ok let's stop talking about that
The code is RuntimeMeshComponent embedded into an actor that never moves from the scene
What's the error ?
the actor updated RMC to draw polygons
the error is an RMC class not being recognized
@cobalt relic just saying because you asked " So what's that code like ? "
I don't see code
I don't see compiler messages
Code that doesn't compile is grammar
@cobalt relic I'm in the process of moving things around atm, but I will give you compiler messages yes
Not architecture
@cobalt relic I understand you require the very precise errors/messages
Yeah a copypaste with names edited out so that your employer doesn't sue you out to oblivion ๐
Yeah yeah that's fine
@full junco " if UHT fails to include the correct header then dont blame low level C++ for that " Yes that's not what I want to do
Including headers is not exactly what UHT does though
It's what your .cpp does
UHT deals with generated headers
@cobalt relic I should take some time to understand the whole UE4 precompiler stuff Indeed
the only thing i comprehend is " The code is valid c++ side, maybe not elegant/done right, but valid, and The compiler refuses to recognize some classes/structs "
so It probably comes from UHT / UBT because it's responsible for giving the final .cpp/.h files to the compiler
UHT generates code
Then the compiler compiles it
If it fails, it means the code is wrong - maybe because the parts that UHT generated are wrong, maybe because yours is wrong
@cobalt relic I vaguely remember someone mentioning UHT works in a non-determinist way, and that's what causes the crash
If it works, it doesn't mean the code is correct
Because of the way dependencies work
It's finishing to bind classes to a unit before another one, and that's why it crashes or something
@cobalt relic But in this case, shouldn't there be written rules in the doc about what to do ? or even UHT warning ?
Oh, lucky us then
And it would be a murch larger task that what it does do
Okay
@cobalt relic I think it the whole process could be monitored, we could see where are the errors
just even some log windows with "adding this class, needing this class, haven't found this class "
Output window in VS, read the first error, understand it, fix it
just more transparency
No but that's just not nhow it works
There is no "adding this class"
It's way more low-level than that
@cobalt relic adding more transparency to a process doesnt costs anything tho
What you're describing has no link to reality
@cobalt relic I was talking of UHT/UBT by the way
You want to know how it reallyworks ?
So I can fix my code yes
OR, I don't want it to crash, but I understand that's more difficult
The process goes that way : for each .cpp file, the compiler tries to build it (.h are ignored)
Your .cpp usually does include headers, they are copypasted into your cpp
Like plainly copypasted without question or process
Then the compiler parses the ~5 million line result (still for each cpp)
@cobalt relic question pls
At that point if one include was missing it fails to recognize some class
for every.cpp file, It will paste the whole engine ?
if you include Engine.h, yes
ok
If you include what you actually use, no, but that's only since 4.15
they did a nice thing there
Now one reason your code might work at some point, then not, is that sometimes, your header includes other project headers
@cobalt relic " Now one reason your code might work at some point, then not"
it's Exactly as you said
happens with RuntimeMeshComponent
( a component that has..... a lot of complexity )
yes
It doesn't care one shred about what it does
Now the issues with headers including other headers is that the headers are merged at build time, kind of
You can't have duplicate headers, and the order of inclusion is important (dependencies)
Now C++ doesn't do any dependency so if you have class A, class B depending on A, you need to include A first
If you include B first, it breaks
And that's very much by design : it's meant to be a dumb tool, not a clever one
@cobalt relic cannot there be something that monitors this process or copypasting and merging .h files ? and seeing the completed.cpp file ?
so that would permit to re-order the dependencies in a better way, we would SEE why it's bad and how to fix it
It probably exists in some compilers but it's probably not easy to get that with UE4
But here's my point
It shouldn't be necessary
assumptions
No, really
with RuntimeMeshComponent, it's necessary tho
Let me give you a piece of fun fact
and I've no idea if RMC actually needs to be that complex
sure, I'm listening
If you have a class A and a class B, and class A has a pointer to B, and B a pointer to A
How do you do the includes ?
with forward declaration ? and including the .h file in the B .cpp file ?
Yeah, forward declaration of A in B.h, fwd of B in A.h , and both includes in both cpps
So you see that you don't really need to have depth in includes
Because your header shouyld be super simple
Indeed, but that doesn't works in this precise case
WHy not ?
and In this case, it stops working randomly
not because of the dumb copy pasting tool you're talking about
Well, what happens exactly ?
probably because of UHT , and i'll try to dig into Engine/Source/Programs/UnrealBuildTool
@cobalt relic What happens is, all the includes/forward declarations are done, and then
In RuntimeMeshComponent, that has compiled well manytimes before
suddenly, when compiling
the output windows says EUpdateFrequency isn't valid, for instance
So that's in RuntimeMeshComponent.h or something ?
yes EUPdateFrquency is from RuntimeMeshComponent
So as to fix this, I have to move EUPdateFrquency to it's separate .h file
But then , that happens agains for various classes
No you don't
Okay what do I do then
Well, where is EUPdateFrquency actually declared ?
@cobalt relic moving it to another .h file DID fix the error though
@cobalt relic In RuntimeMeshCore.h where there's many declarations
of various structures/classes from the component
So did you try including RuntimeMeshCore.h just before including RuntimeMeshComponent.h in your .cpp ?
It's not an engine header it's a plug-in header tho
Same
Ok, but It's user-made, not engine-made; I noted I shouldn't do that
Well you can, sometimes you should, but the reasonable assumption when you are not super-experienced is that maybe you did a mistake
Indeed, but the reason why I don't assume I've made a mistake
Is because RMC was compiling well before, and then I changed a variable not related to RMC somewhere
and then RMC crashed, for no reason
that's why I assume that
@fleet veldt I'm modifying the oculus low latency update on the controllers to use most recent data like steam VR instead of predicted future position.. no idea why they were doing it that way on the controllers
crashed isn't the right word , sorry
and then RMC spawned those compile errors, for no reason
that's why I assume that
@fleet veldt so when low-latency is on it will be newer data than tick at tick time (what you get without low-latency), but it won't try to predict into the future which causes all the jitter
But like I said to you 2 days ago @simple cypress - I regularly have the exact same issue you have, though with other classes, and I'm very much aware of what happens. It's annoying, it's kind of painfuln but it's definitely not an engine bug or compiler bug - it's messed up headers on your side
It was like
And I'm not sying headers are simple
@cobalt relic Okay but the issue I have is that it's difficult to grasp "how" to do headers right , and there's no tools to locate problematic includes
And the way the error happens is just plain unacceptable
i was fixing my Widget interface
when the mesh component spawned compile errors ffs
I recommend you don't use C++ then because that's the way the language is
UE4 is entirely unrelated to that
bullshit ๐
Well I do write C++ for a living
I understand and I'm happy for you, I understand you have skills
but ,
Bullshit ๐
and now I must resume fixing my things
What's bullshit ? That C++ gives you hard to parse errors ?
@cobalt relic first, It's not C++ It's UHT/UBT , UnrealBuildtool or something
It's not
clang/gcc "Definition not found for function void stuff()"
visual C++; LNK43215: Symbol ASDFAWER@stuff@Void___ not found
@cobalt relic Okay so I'm gonna blame MSVC in this case ( I understand it's a "dumb copy pasting tool" so I shouldn't blame it because of that )
The bullshit is :
I'm working on my widget code, for hours
Things are compiling ok for weeks
and suddenly, RuntimeMeshComponent.cpp says " EEUpdateFrequency" isn't valid
then i have to move things around desperately, withtout ANY CLUE of what the fuck happens
And I just gave you the fix
that has happened to me. Its just that the includes arent properly added
^
due to how the system "merges" cpp files, this stuff is not the same every time
It's 100% your code and it's 100% something that happens every day in C++
That's not bullshit
im with @cobalt relic , its has happened to me
you need to find where "EEUpdateFrequency" is defined, and #include it
@cobalt relic @wicked oak But how do I know what .h file to move FFS ? there's dozens of them in my files
You look for the missing stuff
go to definition
ipart of visual studio
Go to next error
alternatively, search for the thing in the whole solution
@cobalt relic @wicked oak I'm in the process of moving things around, so it's difficult to be precise
That's how you write C++ - it's not a bug, it's the way the language is, and if you want to argue that it sucks, I will fully agree that C++ sucks for dependencies
becouse it does
I did fix this error several times, but it keeps reappearing
I mean I'm 100% convinced that C++ sucks for lots of things
thats couse you werent correct at the start
and unreal unity build just happened to let your stuff work
What kills me is the " random" aspect of it
@simple cypress The reason it worked before is that the header was included by soimeone else
And that is random
@wicked oak It's not bugging now because I moved it to RMC_UpdateFrquency.h and I included it
so it's fixed, but there's other errors now
It's not an engine file , it's a plug-in file
uhmm
It's in my game folder
you need to add the plugin to include modules
@wicked oak It's not bugging now because I moved it to RMC_UpdateFrquency.h and I included it
^ this is NOT the fix
And you should undo that
Source/ProjectName/RuntimeMeshComponent/RMC_Core/RMC_Updatefrequency.h
Public Depencency is the one i think
btw this lets me access morpheus files (and its a plugin)
That's not his issue @wicked oak - He was able to build it
The issue is plainly the RuntimeMeshCore.h thing
Currently I have another issue
put the plugin in the engine itself
instead of the project
ive been able to include engine plugins easily
BTW @simple cypress did you update RuntimeMeshComponent ?
might be related, but im not sure
@wicked oak no because I need to modify It
because It doesn't do what i want ( and it's fine, I'll modify it )
@cobalt relic all the time ! everytime there's a new version
It's been fixed there and then
Your issue
So that you don't need to include the other .h first
You can just update and I'm confident it will be resolvd
OR do what I suggested
Unless you work on 4.14 or less ?
@cobalt relic I have the latest rmc , and 4.15 atm
@cobalt relic It's difficult for me to give up-to-date errors
It's stupid isn't it ?
Because the header you're having can't happen in the latest
RuntimeMeshCore.h is included inside RuntimeMeshComponent.h
No amount of UHT can break that
@cobalt relic I did use this https://github.com/Koderz/UE4RuntimeMeshComponent clicked on the green downlad button and used this in my code
"the error you're having" sorry
@cobalt relic Excuse me to ask you that, but " No amount of UHT can break that " are you familiiar with UHT code ?
Because I'd love to ask you a bunch of questions about it some other time
I'm familiar with the way the language works, I have never once in three years needed to learn anything about UHT or UBT
It just works
Anyway, can't help without more info but
- Get the latest again and make sure you overwrite your changes in that plugin
- Try a full rebuild again
- Check here for help
@cobalt relic I did burn a cd with the latest version yesterday
and full rebuilds, deleting intermediate etc, never ever changed anything
I'm continuing to move my code, Thank you a whole lot for the help
Next time I'l try to stop what i'm doing to collect meaningful error pastes
For what it's worth I feel for you, I really know what this feels like to have something break for no reason, and that happens to me sometimes, including in UE
Not trying to be a dick, just explaining what can or can't happen
It's complicated enough without starting with an idea of what is broken
@cobalt relic
Yeah indeed, won't talk about that too much, these are different conversation topics
@mighty carbon
have you seen this?
looks pretty nice for gearvr! ๐
and those lights have bloom! XD
Well, if it was made in Unity, it could have bloom
Haven't seen it though
Also kinda disappointed with UE4 in regards to Gear VR
have you seen Epic's last twitch stream? they were showing performance improvements to bloom. Where they could turn off as many kernels as they want. So setting each individual kernel intensity to 0 now turns off that pass
totally agree on that statement
I mean, I had a bare scene yesterday and still get crash with monoscopic
:/
There is absolutely nothing there to cause crash
But according to Epic engine is not at fault
It's like you need to not use those features and let them mature. on the other hand, if nobody tests them...
And since mono is out of experimental and is in master, then this issue will never be fixed
Right, that puzzles me too
Oh well, I wasn't planning on using multiview or mono to begin with, so I guess I should just wrap my project as planned
in my experience Epic will announce features too soon. Like the ASTC thing. They announce ASTC texture compression support. Then you find out they are only compressing 8bit textures, and are not implementing any of the other features. But you don't find this out by reading documentation, but by noticing fishy things in the cooked content.
I have a feeling it's just 2 of us working with UE4 for Gear VR and reporting bugs. Doesn't look encouraging to Epic ๐
@motosep did you get a backtrace for the crash?
@mighty carbon I'm always thinking there might be more people, but they might be posting in the private UDN forum. I think that still exists.
@mighty carbon gear doesn't have a way to save off a backtrace?
Not that I know of
you could also try remotely attaching a debugger
you can do the good old "startfile" command or whatever it's called. but in terms of gpu.. they broke gpu profiling some versions ago
How?
4.15 supposedly fixes it, but it's still broken in my experience
Stat startfile won't work, unless I add some delay to keep the game from streaming main level before I enter cmd
@mighty carbon startfile is just for profiling, not debugging, right?
or are you guys talking about something else
oh right, for debugging there is nothing afaik
there has to be a way
they wouldn't have been able to develop all the android support without debugging
I haven't looked too much into it I gotta say, so don't take my word for it
@mighty carbon does it put a dump file into the Saved/Logs folder like on windows?
The whole point of using UE4 or Unity is that the dev of the engines takes care of this crap
@mighty carbon every app has crashes, you have to be able to debug them especially to take user crash reports and figure out what is goin on
Unity does at least. That's why Oculus uses it for Gear VR
Well, maybe UE4 just doesn't have a way yet
can you check if there is a Saved/Logs folder on android?
Now that Epic makes Android game, maybe they'll have something to make life of mobile devs easier
I would be shocked if there is no way to do it
otherwise it would have been a huge feat of engineering for epic to develop all their android stuff
there has to be a way
I see log file in UE4Game folder
but if you can get a dump file with a backtrace you may be able to figure out an easy bug or point us to somewhere to look, a lot of times it will just be a null pointer or something that is easy to see right away
But I have no idea if and where Android logs are saved
on windows when you get a crash it leaves a .dmp file in the logs folder
\MyProjectName\MyProjectName\Saved\Logs
see if there is something like that
Yeah, that's what I found
Afk right now, so I can't download and look into those
I'll do some Google-foo after breakfast and see what I can dig up
when you are back ask around on #mobile too, if you can get the backtrace where it crashed I can look into it a bit just for obvious things
I've had to debug a ton of engine stuff with modifications I've done
but I have no experience with android/gear
Aye, thanks
alright, nothing useful in the logs
which I did and it shows nothing useful either
@mighty carbon yeah logs aren't likely to help, you need the dump to get the backtrace, or a way to attach a debugger
looks like you can wirelessly connect ADB: https://docs.unrealengine.com/latest/INT/Platforms/GearVR/Debugging/
Information on how to debug applications for the Gear VR headset.
then you should be able to run a bash shell and attach gdb to the process: https://developer.android.com/ndk/guides/ndk-gdb.html
but you should still look again for a crash dump, it goes into a subdirectory of the log folder. on windows the path looks like: Saved\Logs\UE4CC-Windows-A978C95C46C937EFBA547985B9029B18
right, there is nothing like that
btw, all that page refers to is logcat stuff
not actual debugging as you do on PC with backtrace and whatnot
Anyone have links to the latest resources on UI for VR? A google search returns all kinds of outdated stuff... I know they're must be some best practices that work well because roborecall has a great UI haha
@mighty carbon yeah but if you use that connection to run a shell the second link tells you how to attach a debugger
WARNING: Failed to find jdb on your path, defaulting to --nowait
ERROR: Could not find AndroidManifest.xml in current directory or a parent directory.
Launch this script from inside a project, or use --project=<path>.
when I run it, that's what I get
I have no idea where that manifest is on the phone
and there is no manifest file until cooking stage
@mighty carbon check it out! This is one of the things I'm using OpenGL 3 for:
Our game #DaedalusGame is a mobile VR platformer developed for @Samsung #GearVR & made with @UnrealEngine #screenshotsaturday #gameart https://t.co/pp6Uoz5uHZ
@raven halo niiiceee! Is that Gear VR controller ?
Yes!
You move in the direction of the controller
And you use the trigger to fly and the touchpad to brake
was it easy to set up in UE4 ? (the controller)
@sturdy coral it's not possible to debug Gear VR apps with gdb using Epic's UE4. Apparently only Oculus branches have that capacity :/
yes, it was simple! ๐
Also, No google daydream outside the US ...
So it's impossible to make launch titles for daydream if you're not friends with some google marketer
Not everyone is as classy and efficient as Epic apparently
just got a mergevr thingy
So just for the record, I do not give a damn about daydream, I'd rather wait for the popular knock-off that will have the actual userbase
As far as i'm concerned, they can keep their prototype
It won't matter in a couple of years anyway, there will be many HMDs and controllers for desktop/mobile
@simple cypress I think it's available in the UK and Germany
I had to ask my sister who was on vacation in Germany to bring me 2 daydreams over to Spain
It's been impossible for us to get in touch with Google though
@Norman3D#4990 Perhaps I shouldn't complain about this, but It makes me mad
temporarily of course : )
you spanish @raven halo ?
I don't quite understand the strategy of daydream at the moment
didnt know that
@raven halo if Google doesn't want to give you stuff, just develop for other platforms ๐
but I like to believe I'm more Spanish ๐
and no one has nationality on the internet, unless you say what country you are from
@raven halo what city? if you are in madrid i might have seen you around
@full junco I don't now if they don't want to give me stuff, I can't even get in touch with them
Madrid, yeah
and becouse every country can deploy a international game
<-(afk)
unless you are in north korea or something
I don't want to pay 500$ of import for a damn sea mask and a wiimote
spain has plenty of small mobile studios
that are paid nothing, and are kind of desesperate
want cheap gamedev? come here
the reason i do indie games on my own is becouse they pay me nothing around my city
@mighty carbon I'm not in Spain but I'm in Europe
@mighty carbon It's available if I go to the Amazon page of my country
actually it's 89$ + 50$ for the shipping but that's fine
Sheeps are adorable
so, where does $500 figure come from ?