Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

Rocko Bonaparte posted:

I'm hoping I don't hit a point in my solo endeavors where that kind of thing matters but who knows.

I guess the asset store is doing some super-extended-Cyber-Week sale and has some stuff up. I already have Odin Inspector and InControl. Is any of the other stuff worth it?

Editor Console Pro has been invaluable to me while working in a team setting.

Solo projects probably aren’t dumping enough garbage in the log where it would make a huge difference. It does let you get output to your editor console from device though.

Adbot
ADBOT LOVES YOU

Stick100
Mar 18, 2003

leper khan posted:

Editor Console Pro has been invaluable to me while working in a team setting.

Solo projects probably aren’t dumping enough garbage in the log where it would make a huge difference. It does let you get output to your editor console from device though.

Yeah I def. prefer Editor Console Pro, if for nothing else grouping up messages.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!
Does it provide some alternate logging mechanism to be able to give a group to certain logs? I switched over to Uberlogger because it at least had some notion of "channels" I could to assign names. It's not ideal but it's better than base and didn't cost me anything.

I'd just like to be able to easily filter the messages by certain data included by the loggers. I'm thinking like the hierarchies you can do with the Apache Logging Framework (log4net, log4j, log4cxx) or Python's logging module.

Stick100
Mar 18, 2003

Rocko Bonaparte posted:

Does it provide some alternate logging mechanism to be able to give a group to certain logs? I switched over to Uberlogger because it at least had some notion of "channels" I could to assign names. It's not ideal but it's better than base and didn't cost me anything.

I'd just like to be able to easily filter the messages by certain data included by the loggers. I'm thinking like the hierarchies you can do with the Apache Logging Framework (log4net, log4j, log4cxx) or Python's logging module.

I don't know the exact answer but to my understanding, the way it works is it reads the regular console (in fact it requires the regular console to be open) and then redisplays. It auto rolls up similar messages. If you're looking for things like logging levels I don't think you're going to get that.

Honestly if you want functionality like log4net, then why not just use actual log4net and send it to a file?

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!

Stick100 posted:

I don't know the exact answer but to my understanding, the way it works is it reads the regular console (in fact it requires the regular console to be open) and then redisplays. It auto rolls up similar messages. If you're looking for things like logging levels I don't think you're going to get that.

Honestly if you want functionality like log4net, then why not just use actual log4net and send it to a file?

The main reason is I do still want something like Unity's console, but with some controls to handle those log levels.

What I want might be possible with Editor Console Pro if I just prepend each message with the log level and can use regular expressions to filter or something.

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

Rocko Bonaparte posted:

The main reason is I do still want something like Unity's console, but with some controls to handle those log levels.

What I want might be possible with Editor Console Pro if I just prepend each message with the log level and can use regular expressions to filter or something.

You get regexes for custom filters and can color code them

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!

leper khan posted:

You get regexes for custom filters and can color code them

Good enough for me.

Anything else worth it? NGUI?

Stick100
Mar 18, 2003

Rocko Bonaparte posted:

Good enough for me.

Anything else worth it? NGUI?

Personally I'd say TMPro is good enough so just use Unity's built in UI with TMPro. Don't use Unity Text elements, they alias very poorly.

Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense
More like asset shore.

I bought Procore and then it became free because Unity bought it. I bought Apex Path and then it languished with deprecations until it was removed from the store completely. Those were expensive tools considering this is a hobby for me. I'm considering buying Apex Utility AI, but reading the forums they're already not updating it anymore.

Stick100
Mar 18, 2003

Nolgthorn posted:

More like asset shore.

I bought Procore and then it became free because Unity bought it. I bought Apex Path and then it languished with deprecations until it was removed from the store completely. Those were expensive tools considering this is a hobby for me. I'm considering buying Apex Utility AI, but reading the forums they're already not updating it anymore.

Yeah, it's rough that some of the assets we buy die or go free but generally some offer a good value even for a hobbyist. It's really hard to tell often before you buy them how good they'll be. I've gotten some assets where the second I put them in the editor I saw they were completely worthless (simple looking particles that dropped my frame rate from 1000 to 25).

Procore and TMP going free were a good thing even if we paid for them before they went free.

All said though, I've become extremely picky myself and hardly buy any assets unless I have an immediate need for a project I'm working on anymore because I've been buying assets since the Unity 3/4 days and most of them are no longer viable.

Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense
I've felt somewhat that it's also very difficult to make money with quality assets on the store. The Apex team for example have clearly been struggling a little bit despite trying to make high quality assets. It's why Apex Path was discontinued. They tried building a subscription model which was rejected quite hard by the community. Someone else did a gdc talk where he went over selling 3d model assets on the store, his experience, and how overall he's lost thousands of dollars.

It seems like this might not be a sustainable system.

Sedgr
Sep 16, 2007

Neat!

It's not really surprising, I'd venture to say that there is a pretty large group of indie devs/ hobbyists that just don't have any money or willingness to put money towards buying assets. The most popular stuff is almost always free or very cheap, with a small handful of assets that are more expensive that people are actually willing to lay out some cash for. I tend to buy art assets for prototyping because it can save a bunch of time for something that's going to change later anyway, and art assets usually don't get deprecated the same way that a lot of the other assets do from what I've seen.

Buying code assets is always a bit of a crapshoot because even if it does what you want, it's difficult to tell until you get it whether it will actually integrate with your own code well. More often its better as just a guide as you roll your own custom use. And if you're buying one of those "full game code solution in a box" type packages you can really only make so many changes before you pretty much break everything anyway.

I suffer from the lack of funding myself and have bought most of the assets I have as either bundles or sales with deep discounts. The market of indie's with funding/significant money to spend and a willingness to use premade assets has got to be pretty small. If you have that kind of funding to begin with, you probably hire someone to make custom stuff.

I can't imagine the majority of creators on the asset store are raking it in when I'm buying like 200 assets from a humble bundle for $15 or whatever.

Corbeau
Sep 13, 2010

Jack of All Trades
NGUI and ShaderForge are/were godsends for years, it's just that Unity has been making a big push for bringing must-have functionality entirely in-house. I still get a ton of use out of Vectrosity, too, though it's got at least some funky behavior with VR.

Corbeau fucked around with this message at 21:57 on Dec 11, 2018

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!
In retrospect, I should have got Script Inspector 3 too because I have had to doodle a bit on a much slower machine, and the transitions between Visual Studio and Unity have been really painful. I've been doing rapid little changes to figure out how my generic Playstation->USB dongle would interface with InControl.

I am generally surprised with how much stuff is in the asset store myself. It shouldn't be a surprise then to find many of those things just are profitable at all. I think the ones that are at least have some scaled down preview version that I can try before I jump in. Odin Inspector scared me because it didn't, but that one panned out.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!
For people using InControl in Unity: Have you had to define separate actions for analog directional controls from directional pad equivalents? It looks like if I have them smashed together that any hint of movement in some analog direction will trigger that direction. The effect is that the player is always moving on diagonals since some component of X and Y always end up being active, and the whole thing gets flagged as "WasPressed." I'm assuming I have to define the analog controls completely separately and listen to them as a separate 2-axis action.

Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense

Corbeau posted:

it's just that Unity has been making a big push for bringing must-have functionality entirely in-house.

I looked at the roadmap and animating a skinned mesh still isn't in there

Angryhead
Apr 4, 2009

Don't call my name
Don't call my name
Alejandro




Rocko Bonaparte posted:

For people using InControl in Unity: Have you had to define separate actions for analog directional controls from directional pad equivalents? It looks like if I have them smashed together that any hint of movement in some analog direction will trigger that direction. The effect is that the player is always moving on diagonals since some component of X and Y always end up being active, and the whole thing gets flagged as "WasPressed." I'm assuming I have to define the analog controls completely separately and listen to them as a separate 2-axis action.

I recently converted my project to use InControl and this is what seemed to work for me:

code:
MoveNorth.AddDefaultBinding(InputControlType.LeftStickUp);
MoveSouth.AddDefaultBinding(InputControlType.LeftStickDown);
MoveWest.AddDefaultBinding(InputControlType.LeftStickLeft);
MoveEast.AddDefaultBinding(InputControlType.LeftStickRight);

TwoAxisMovement = CreateTwoAxisPlayerAction(MoveWest, MoveEast, MoveSouth, MoveNorth);

TwoAxisMovement.Up.StateThreshold = 0.4f;
TwoAxisMovement.Down.StateThreshold = 0.4f;
TwoAxisMovement.Left.StateThreshold = 0.4f;
TwoAxisMovement.Right.StateThreshold = 0.4f;
It's not perfect but the thresholds seemed to be the missing piece on my side.
(I'm not 100% sure I understood your problem correctly but hey)

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!

Angryhead posted:

It's not perfect but the thresholds seemed to be the missing piece on my side.
(I'm not 100% sure I understood your problem correctly but hey)
The thresholds might be the missing bit. I'll try this all again tonight. Currently, I think my player control mapping is technically only using the cardinal directions and not my two-axis version, so I do have to switch to that. For all I know, it'll all be fine after that.

ZombieApostate
Mar 13, 2011
Sorry, I didn't read your post.

I'm too busy replying to what I wish you said

:allears:
In UE4, you can set up, for example, analog stick up/down, W/S and direction pad up/down as a shared axis. The analog sticks do their analog thing and the direction pad/W/S simulate an analog stick by jumping to full value when you press them. Or ramp up to full value over x seconds if you want. Dunno if you can do something similar with InControl. It sounds better than making the analog stick pretend to be a direction pad, but probably depends on the game.

BabelFish
Jul 20, 2013

Fallen Rib
https://www.unrealengine.com/en-US/blog/epic-2019-cross-platform-online-services-roadmap

Epic's going to start offering their backend (the one that powers Fortnite) to others, including a plugin for both UE4 and Unity. No word on pricing yet, but a good move on their part regardless.

Doc Block
Apr 15, 2003
Fun Shoe
LOL some dude on Gamasutra wrote a blog post whining about how Epic’s “game launcher” doesn’t have all the features Steam does, and since on a bullet point comparison it comes up short it’s gonna fail.

Never mind that 90% of the “features” in Steam are garbage, added in a haphazard, fling-poo poo-at-the-wall-and-see-what-sticks directionless style, and probably only get used by a tiny fraction of users.

Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense
For some reason scrollbar performance in the Epic Games Launcher is horrendous on macos. Other than that I'm thrilled there's a competitor, I didn't realise Steam was taking 30% of revenue. Reminds me of the Apple store.

Mata
Dec 23, 2003
This is maybe more of a graphics programming question, but I kind of want to optimize my renderer by merging multiple models and textures so I can draw more stuff with fewer state changes.
Instead of 3 models with 100 vertices each I imagine one model with 300 vertices where I would draw a subset of those vertices for each instance. The textures could be merged up to whatever the max texture size on the graphics card is and modifying the texture coordinates on the models accordingly.

Ultimately though, the draw call I use is
code:
GL.DrawElementsInstanced(target, 
	indexElementCount, 
	indexElementType, 
	indexOffsetInBytes, 
	instanceCount)
I would need some way to supply the vertex start offset and counts per-instance, otherwise I'm still stuck with one draw call per original model, even if I have fewer state changes.

This seems like a pretty obvious optimization to me if you're rendering a lot of instances, and could probably combine a hundreds of draw calls into one if I understand it right. If i'm right about that then I bet there's also an easier, standardized way to achieve this. Can anyone point me in that direction, or tell me why it's a stupid idea?

Good Sphere
Jun 16, 2018

What's the synopsis with multithreading games today? I heard more than a few years ago that games run best "in a single thread". Now that I'm coding multiple threads, I don't really know why that is, or if it still holds true.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Nolgthorn posted:

For some reason scrollbar performance in the Epic Games Launcher is horrendous on macos. Other than that I'm thrilled there's a competitor, I didn't realise Steam was taking 30% of revenue. Reminds me of the Apple store.

I honestly don't think this is likely to improve all that much -- I doubt Epic is going to drive down the distributor's share by more than a few percentage points at most. Services like Steam or the Apple Store or whatever are doing an awful lot of work that nobody really thinks about any more but still needs to be done -- poo poo like processing payments, managing accounts, doing customer service (which includes an awful lot of people getting very angry at you over ridiculous things), maintaining a storefront, and on and on. Noted luminary and indie gamedev Official Old Fart Jeff Vogel was perfectly happy to switch to Steam when the opportunity arose, despite having run his own online store for something like 15 years. He said "I know the value of what they're providing for [the revenue cut]...and more to the point, they do too." (relevant video, which any indie game developer should watch)

Of course it's possible that Epic can do all that more efficiently than Valve can, and can therefore afford to take less of a cut. But probably not by much. And they're not going to take a loss on it since this is where the money to run the business comes from.

Mata
Dec 23, 2003

Good Sphere posted:

What's the synopsis with multithreading games today? I heard more than a few years ago that games run best "in a single thread". Now that I'm coding multiple threads, I don't really know why that is, or if it still holds true.
Development is certainly easier in a single thread, but most game engines will probably need multithreading to deliver a steady framerate, unless they do very light AI/pathfinding/etc calculations.

Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense

TooMuchAbstraction posted:

I honestly don't think this is likely to improve all that much -- I doubt Epic is going to drive down the distributor's share by more than a few percentage points at most. Services like Steam or the Apple Store or whatever are doing an awful lot of work that nobody really thinks about any more but still needs to be done -- poo poo like processing payments, managing accounts, doing customer service (which includes an awful lot of people getting very angry at you over ridiculous things), maintaining a storefront, and on and on. Noted luminary and indie gamedev Official Old Fart Jeff Vogel was perfectly happy to switch to Steam when the opportunity arose, despite having run his own online store for something like 15 years. He said "I know the value of what they're providing for [the revenue cut]...and more to the point, they do too." (relevant video, which any indie game developer should watch)

Of course it's possible that Epic can do all that more efficiently than Valve can, and can therefore afford to take less of a cut. But probably not by much. And they're not going to take a loss on it since this is where the money to run the business comes from.

Epic is doing 12%. Developers get 88% of the revenue. And if you used Unreal Engine to make your game they waive the game engine royalties too.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
...huh. That's kind of shocking. Well then!

xzzy
Mar 5, 2009

Epic is gonna trigger some kind of reckoning. Either Steam has been taking way too much money and they've got a Scrooge McDuck sized money bin somewhere, or Epic is taking way too little money and they're going to put themselves out of business trying to undercut.

The truth is probably somewhere in the middle but it's going to be an interesting 2019.

baby puzzle
Jun 3, 2011

I'll Sequence your Storm.
I'm more willing to believe the money bin theory.

Corbeau
Sep 13, 2010

Jack of All Trades
Considering how much experimental stuff Valve can afford to throw money at, yeah, I'm assuming the bin theory is more accurate.

Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense
It's an amazing business strategy for getting Steam users on board, which really needs to be their primary goal for now. They might raise the price later. In the meantime, developers are highly incentivised to sell their game exclusively on Epic for at least a week or two in order to maximise their profits. If they publish to Steam at all.

65% of the money vs 88% of the money is a compelling proposition.

KillHour
Oct 28, 2007


I would probably sell it on both, but make it cheaper on Epic. Like if I was gonna price it $20 on Steam anyways, I'd do $15 on Epic. Then you get the same royalties from both, but people that don't care about Steam's ecosystem have a cheaper option. People that want to pay the premium can.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

Mata posted:

This is maybe more of a graphics programming question, but I kind of want to optimize my renderer by merging multiple models and textures so I can draw more stuff with fewer state changes.
Instead of 3 models with 100 vertices each I imagine one model with 300 vertices where I would draw a subset of those vertices for each instance. The textures could be merged up to whatever the max texture size on the graphics card is and modifying the texture coordinates on the models accordingly.

Ultimately though, the draw call I use is
code:
GL.DrawElementsInstanced(target, 
	indexElementCount, 
	indexElementType, 
	indexOffsetInBytes, 
	instanceCount)
I would need some way to supply the vertex start offset and counts per-instance, otherwise I'm still stuck with one draw call per original model, even if I have fewer state changes.

This seems like a pretty obvious optimization to me if you're rendering a lot of instances, and could probably combine a hundreds of draw calls into one if I understand it right. If i'm right about that then I bet there's also an easier, standardized way to achieve this. Can anyone point me in that direction, or tell me why it's a stupid idea?

The hardest part of this will be the uniforms that were previously changing per-draw, now being put into either vertex attributes or an array in a UBO indexed by gl_VertexID (I'm not sure if UBOs support unbounded arrays, there's a trick in HLSL but I think you're supposed to use SSBOs in GL instead). Building your models to use one material and one set of texture bindings is going to be the biggest win. Instancing will be trickier on the engine side.

Mata
Dec 23, 2003

Suspicious Dish posted:

The hardest part of this will be the uniforms that were previously changing per-draw, now being put into either vertex attributes or an array in a UBO indexed by gl_VertexID (I'm not sure if UBOs support unbounded arrays, there's a trick in HLSL but I think you're supposed to use SSBOs in GL instead). Building your models to use one material and one set of texture bindings is going to be the biggest win. Instancing will be trickier on the engine side.

True, but I'm okay with one draw-call per shader pass + uniform collection + blend state &c. My game is maybe an ideal case for this because I'm drawing tens of thousands of instances but the only things that really changes for 99% of my draws is the geometry (vertices & indices) and textures (albedo, normals, material). I suspect if I start batching too much I'm instead going to run into bottlenecks on the CPU side when I end up needing to rebuild and transfer 100000 instances between frames.
Do you know if there is a relevant OpenGL call that can draw instances with separate starting vertex offsets?

j.peeba
Oct 25, 2010

Almost Human
Nap Ghost

KillHour posted:

I would probably sell it on both, but make it cheaper on Epic. Like if I was gonna price it $20 on Steam anyways, I'd do $15 on Epic. Then you get the same royalties from both, but people that don't care about Steam's ecosystem have a cheaper option. People that want to pay the premium can.

If they happen to spot it, distributors can get pretty catty about price parity.

KillHour
Oct 28, 2007


j.peeba posted:

If they happen to spot it, distributors can get pretty catty about price parity.

Is there a specific rule on Steam that says you can't sell your game for less elsewhere?

BabelFish
Jul 20, 2013

Fallen Rib

xzzy posted:

Epic is gonna trigger some kind of reckoning. Either Steam has been taking way too much money and they've got a Scrooge McDuck sized money bin somewhere, or Epic is taking way too little money and they're going to put themselves out of business trying to undercut.

The truth is probably somewhere in the middle but it's going to be an interesting 2019.

https://www.gameinformer.com/2018/12/04/tim-sweeney-answers-questions-about-the-new-epic-games-store

Tim's answer is that the economies of scale kicked in, but the additional savings have not been shared with developers. He's surprisingly forward with their calculated cost percentages, but there are several features they don't have. Hopefully competition breeds a better market for everyone.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

Mata posted:

True, but I'm okay with one draw-call per shader pass + uniform collection + blend state &c. My game is maybe an ideal case for this because I'm drawing tens of thousands of instances but the only things that really changes for 99% of my draws is the geometry (vertices & indices) and textures (albedo, normals, material). I suspect if I start batching too much I'm instead going to run into bottlenecks on the CPU side when I end up needing to rebuild and transfer 100000 instances between frames.
Do you know if there is a relevant OpenGL call that can draw instances with separate starting vertex offsets?

Assuming you're drawing the same number of primitives you can use glVertexAttribDivisor to advance vertex attribs per-divisor but it sounds like that's not what you want. Consider glMultiDrawElementsIndirect if you're afraid of CPU draw call overhead but that won't let you rebind textures between.

How do you handle separate model/bone matrices between the draws? Do you just not have any animation in your game?

Adbot
ADBOT LOVES YOU

j.peeba
Oct 25, 2010

Almost Human
Nap Ghost

KillHour posted:

Is there a specific rule on Steam that says you can't sell your game for less elsewhere?

I don’t recall that Steam has that rule specifically in their terms. I do know that Valve strives actively towards what they call fair treatment of their customers though but then again that’s not unique to Valve either.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply