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
Tunicate
May 15, 2012

I appreciate watching the dumb mario 64 optimizations that Kaze does on youtube but I personally have no interest in finding the shortest number of opcodes for a good sine or removing branch instructions because modifying the code in memory is faster.

Just let the compiler handle it, I am doing a 2d game I probably can get away with things which are ludicrously inefficient, let alone "not perfecrly optimized"

Adbot
ADBOT LOVES YOU

Alterian
Jan 28, 2003

TooMuchAbstraction posted:

- having trees on the terrain

As an environment artist I think we should all come together as a profession and all agree that we don't need trees in any game.

Catgirl Al Capone
Dec 15, 2007

friendship ended with POINTER
now
FIRST CLASS FUNCTION
is my
best friend

Your Computer
Oct 3, 2008




Grimey Drawer

Chillmatic posted:

This touches on why a lot of younger/less experienced devs either hate or are super reluctant to use C++. It requires you to understand and think about the hardware you’re working with.

nah it's because c++ is a bloated nightmare language

Raenir Salazar
Nov 5, 2010

College Slice
Name a more iconic duo than Template functions and esotericly vague compiler errors.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!

roomforthetuna posted:

I wonder if this is a recurring pattern, "well everyone knows [thing the previous generation all knows] so we don't need to teach that", and boom, a generation who can't cook / can't wrangle money / can't repair clothes / can't make a safe fire / etc.
It's a problem when the need for skills doesn't really decline but the point where it they become necessary gets pushed back. Portable touchscreen devices have displaced PCs for a lot of use cases, especially use cases that young people would be interested in, but there is still a ton of stuff that they flat-out can't do, especially things that involve doing work. Touchscreen UI by nature trades efficiency for size.

KillHour posted:

"Stop writing bad code" is not a realistic answer. People will continue to write bad code and that code will go into more important poo poo than video games. There is a reason so many big companies are going hard into Rust and similar languages. The compiler should handle memory safety.
I'll never get over how ridiculous it is that we simultaneously have Rust being hugely successful on the premise of "programmers are really bad with handling object lifetimes and concurrency" while the direction of 3D APIs is "actually they're really good at it so we can rip all of the guardrails off" and of course the result is that the new 3D APIs are unusable dogshit.

Grum posted:

I think everyone can get the concept of a pointer as an index into memory pretty quickly but how that interacts with the syntax of a given language, especially if you are still trying to figure out what you want the computer to do/what it can do and the tools you have to do that, is the real hurdle. Especially C, where you've got your declaration-follows-use syntax that is used literally no where else and is not explained in the K&R book. Earliest reference to that I could find was in a retrospective from the 80s which approximately nobody has read and if the last several decades of C have taught us anything it's that nobody can figure it out themselves
C pointer syntax is especially unfriendly because the pointer type qualifier character is the same as the dereference operator character, which is even better when C++ has L-value references (a mostly-redundant feature to begin with) that don't have the same relationship to the reference operator. C declaration syntax is also so bad that most very long-time C++ programmers still have no idea how to write type declarations with stuff like more than one const qualifier, or references to fixed-size arrays, and it has some awful features like the implicit conversion of arrays to pointer on parameter pass.

All this because they wanted to make the variable declaration syntax look like the use of the variable in the expression even though there are loads of situations where that doesn't work. Is there any other language that does this nonsense of putting type declaration material on both sides of a variable name?

And now we have R-value references, which involve some of the most wildly counterintuitive behavior ever too.

OneEightHundred fucked around with this message at 00:15 on Apr 29, 2024

Raenir Salazar
Nov 5, 2010

College Slice
Buffulo buffulo buffulo buffulo but for const.

more falafel please
Feb 26, 2005

forums poster

TooMuchAbstraction posted:

As someone who actually shipped a pretty large game in C# on Unity, "thinking about performance" and micro-managing memory are absolutely not the same thing. You want to know what was murdering my performance in the game? It was poo poo like:

- logging too much
- making a copy of every ship for each instance of that ship in the mission
- calculating firing angles for each gun on each ship during mission loading, even though I then throw out that data because I have it precalculated and stored in the ship data
- rendering dynamic HUD textures (for the radar) every frame instead of on alternating frames (nobody notices if the radar is 15 or 30 FPS instead of 60)
- performing physics checks for every projectile every frame (instead of doing it on alternating frames and only for projectiles that are close to their targets)
- regenerating displayed strings even when the text doesn't change
- having trees on the terrain

Yes, there are a few cases where I added pooling. Almost universally, these cases were "I want there to be a technically infinite number of this thing in the game, but instantiating new ones causes lag, so I'll pre-instantiate the number I need and then enable/disable them as required".

Somewhat more common was me cutting down on allocations by creating a static data container (list or dictionary or whatever) that is only used by one function, so that that function can avoid calling `new`.

In absolutely 0% of cases did I even briefly consider stepping outside of C#'s memory management.

All of my performance improvements were identified by using a profiler. I did not worry about performance for the first ~year of development, because my priority was shipping the game and features count more for that than performance does.

(also, Zelda: Ocarina of Time runs at 20FPS at best and people love that game, the occasional FPS hitch is not the end of the world)

Have you tried putting your game on console? I've worked on two ports of Unity games to console, and literally 75% of the engineering effort has been spent on memory management, because GC is murder for a realtime application, and the original devs just don't think about it at all, because "it's managed, you don't have to worry about it"

roomforthetuna
Mar 22, 2005

I don't need to know anything about virii! My CUSTOM PROGRAM keeps me protected! It's not like they'll try to come in through the Internet or something!

OneEightHundred posted:

C pointer syntax is especially unfriendly because the pointer type qualifier character is the same as the dereference operator character
Luckily golang did that too, but made it even worse by also having the get-contents-of-a-pointer operator be the same as the get-contents-of-a-value operator so its super easy to also lose track of what type you're dealing with. I guess they thought "it's annoying having to make the right choice between -> or . in C++ so let's just have the compiler pick for you" which makes sense from the point of view of *writing* the code, but makes it much worse for *reading* the code.

KillHour
Oct 28, 2007


more falafel please posted:

Have you tried putting your game on console? I've worked on two ports of Unity games to console, and literally 75% of the engineering effort has been spent on memory management, because GC is murder for a realtime application, and the original devs just don't think about it at all, because "it's managed, you don't have to worry about it"

There's a fundamental difference between using "memory management" to refer to "Creating and destroying a new array every frame is inefficient" and "You need to keep track of where this pointer goes or you could end up dereferencing to somewhere you're not supposed to be and crash the application in the best case."

more falafel please
Feb 26, 2005

forums poster

KillHour posted:

There's a fundamental difference between using "memory management" to refer to "Creating and destroying a new array every frame is inefficient" and "You need to keep track of where this pointer goes or you could end up dereferencing to somewhere you're not supposed to be and crash the application in the best case."

It takes more work to fight against a managed environment, especially for stuff like string allocations, than it does to just do it correctly.

I don't know how to say this any clearer: nearly every memory management pitfall in C/C++ is also a problem in managed environments, and it's more difficult to solve them in a managed environment.

But please, make your AAA game in Unity and then try to put it on console, us contractors need work.

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

more falafel please posted:

Have you tried putting your game on console? I've worked on two ports of Unity games to console, and literally 75% of the engineering effort has been spent on memory management, because GC is murder for a realtime application, and the original devs just don't think about it at all, because "it's managed, you don't have to worry about it"

The game didn't do well enough to justify a console push, unfortunately. That said, part of my optimization pass was getting allocations down to the 1-3kB/frame range (once mission loading is done). Those remaining allocations would be super hard to fix. IIRC they're mostly GetComponent calls that can't realistically be cached, string constructions, and one or two container (list/dict) creations that would require a serious overhaul to avoid. In any event, the porting houses I spoke to didn't think that it would be a problem. They were more worried about the number of cameras I had in my scenes, but most of them are virtual and the ones that do render are rendering at low resolution and not every frame (see earlier comments about radars).

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

TooMuchAbstraction posted:

The game didn't do well enough to justify a console push, unfortunately. That said, part of my optimization pass was getting allocations down to the 1-3kB/frame range (once mission loading is done). Those remaining allocations would be super hard to fix. IIRC they're mostly GetComponent calls that can't realistically be cached, string constructions, and one or two container (list/dict) creations that would require a serious overhaul to avoid. In any event, the porting houses I spoke to didn't think that it would be a problem. They were more worried about the number of cameras I had in my scenes, but most of them are virtual and the ones that do render are rendering at low resolution and not every frame (see earlier comments about radars).

i have some friends whose games did around an order of magnitude better on switch than on steam. it really depends on the game; its not the same market.

Raenir Salazar
Nov 5, 2010

College Slice
I imagine the Switch/mobile does really well because a lot more people these days who can't justify a gaming pc or aren't interested probably have a Switch or phone. I'm surprised how well Honkai Star Rail does on my phone (albeit I have a Samsung S24 Ultra) so it might be one of those things worth considering for indies, esp. in the JRPG or adjacent space.

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
Yeah, the challenge with the Switch port is that I could not convince Nintendo to let me get a Switch devkit. This is my first commercial game, I have no past credits, and their application process doesn't really let me say "hey these other big indies are willing to vouch for me" or "your representatives at GDC thought this game would do well". So I'd have to go through a porting house, which costs a lot of money. And that's hard to justify when the PC release is still $10k in the hole 1 year after release. And to be clear, that's $10k of direct costs, it doesn't count my cost of living for the 3.5 years it took me to make the thing, during which time I did not have a regular job.

I do believe that the game could do well on Switch, I just don't see a realistic path to getting it there.

As for mobile, that's out largely because the game's control scheme is too complicated. I use every button on an Xbox controller. I could simplify it a lot by making all of your weapons use autofire only, but that'd be a substantially different play experience. Also, we'd be looking at a "premium" game here (ad-supported free-to-play isn't realistic IMO, let alone doing in-app purchases), which I understand tend to underperform on mobile.

Raenir Salazar
Nov 5, 2010

College Slice
What about virtual buttons/taking advantage of tap/touch screen controls? Kinda like turning some of the mechanics into something more QTE adjacent? Maybe something like movement gets handed to the AI according to some Battle Plan like your playing Star Trek Bridge Commander or Artemis? Progression could then take advantage of this by unlocking more complex and skillfull AI control/plans/maneuvers? Or firing patterns/timing?

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
You're talking about substantially overhauling how the game plays. Sure, it might be possible, but we're talking months of work to get it dialed in and re-test the missions, it's no longer the game I wanted to make, and it doesn't address the whole "premium mobile game" problem.

Raenir Salazar
Nov 5, 2010

College Slice

TooMuchAbstraction posted:

You're talking about substantially overhauling how the game plays. Sure, it might be possible, but we're talking months of work to get it dialed in and re-test the missions, it's no longer the game I wanted to make, and it doesn't address the whole "premium mobile game" problem.

Yeah that's fair, my suggestions are more like thought experiments then "Have you tried this?" to be clear. :)

roomforthetuna
Mar 22, 2005

I don't need to know anything about virii! My CUSTOM PROGRAM keeps me protected! It's not like they'll try to come in through the Internet or something!

TooMuchAbstraction posted:

You're talking about substantially overhauling how the game plays. Sure, it might be possible, but we're talking months of work to get it dialed in and re-test the missions, it's no longer the game I wanted to make, and it doesn't address the whole "premium mobile game" problem.
I tend to think that a premium mobile game isn't as doomed as people think - it's more that when someone makes a regular lovely mobile game and tries to premium it, *that's* a flop. But Slay the Spire, for example, I believe did well on mobile, without trying to change the whole thing into a freemium piece of crap.

If there was a lot of competition I think premium mobile games would definitely struggle, but the market for that kind of thing is so underserved (because of the "common knowledge" that you have to go freemium bullshit to succeed on mobile) that IMO a decent game will probably do okay. Like it won't do "milking whales for life" money like a successful freemium game does, but there've been several games I've played recently on Steam where the game already felt like a mobile game, like the interface design was intended for it, and I would have preferred it on mobile because it was an incredibly long game with bite-sized play-segments (deckbuilder/turn-based-strategy both seem like a good genre for it in general, and many puzzle games too), but they didn't publish that way.

This is not disagreeing with you that your particular game wouldn't be worth it, my point is more that those games where the port would be easy because they were made with unity and the interface already feels mobile would probably be worth making the *small* effort to port to mobile, and I think the "you can't do premium-on-mobile" myth is overblown, probably having evolved like "the real big money is in exploitative freemium" -> "it is not worth it to us, some dickheads, as a business to make things that aren't exploitative freemium" -> "everyone knows premium can't make money".

But yeah, making a big effort and ruining an ill-suited game obviously is probably not worth it.

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

roomforthetuna posted:

I tend to think that a premium mobile game isn't as doomed as people think - it's more that when someone makes a regular lovely mobile game and tries to premium it, *that's* a flop. But Slay the Spire, for example, I believe did well on mobile, without trying to change the whole thing into a freemium piece of crap.

If there was a lot of competition I think premium mobile games would definitely struggle, but the market for that kind of thing is so underserved (because of the "common knowledge" that you have to go freemium bullshit to succeed on mobile) that IMO a decent game will probably do okay. Like it won't do "milking whales for life" money like a successful freemium game does, but there've been several games I've played recently on Steam where the game already felt like a mobile game, like the interface design was intended for it, and I would have preferred it on mobile because it was an incredibly long game with bite-sized play-segments (deckbuilder/turn-based-strategy both seem like a good genre for it in general, and many puzzle games too), but they didn't publish that way.

This is not disagreeing with you that your particular game wouldn't be worth it, my point is more that those games where the port would be easy because they were made with unity and the interface already feels mobile would probably be worth making the *small* effort to port to mobile, and I think the "you can't do premium-on-mobile" myth is overblown, probably having evolved like "the real big money is in exploitative freemium" -> "it is not worth it to us, some dickheads, as a business to make things that aren't exploitative freemium" -> "everyone knows premium can't make money".

But yeah, making a big effort and ruining an ill-suited game obviously is probably not worth it.

premium mobile games vastly underperform f2p in revenue. which is not to say thay they cant do well or be profitable.

it more says how completely mental the f2p max spend is.

xzzy
Mar 5, 2009

I genuinely can't imagine how anyone actually plays mobile games. My wife has some random match three style game she likes and it's 2 minutes of play time with 1 minute of ads for other mobile games. Just endless pin pulling and knot untangling bullshit.

If the developers are getting paid hey no fault to them, get that paycheck. But it blows my mind that people tolerate that poo poo.

Polio Vax Scene
Apr 5, 2009



There are a lot of freemium mobile games that aren't like that. Take a look at Fire Emblem: Heroes, which is a very content rich yet free game, with no ads, but can still rake in truckloads from whales that are willing to spend to get their perfect anime waifus.

Bongo Bill
Jan 17, 2012

gacha delenda est

floofyscorp
Feb 12, 2007

I bought Zookeeper DX for 70p in 2011 and it remains the only game on my phone.

Monument Valley was good too in fairness.

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
I am designing my next game to be mobile-capable, mind you. It's a roguelike puzzle game, or will be when it's done. I'm not pinning my existence on it doing well on mobile, but I do think it's worth attempting.

roomforthetuna
Mar 22, 2005

I don't need to know anything about virii! My CUSTOM PROGRAM keeps me protected! It's not like they'll try to come in through the Internet or something!

TooMuchAbstraction posted:

I am designing my next game to be mobile-capable, mind you. It's a roguelike puzzle game, or will be when it's done. I'm not pinning my existence on it doing well on mobile, but I do think it's worth attempting.
That's definitely a genre I would buy one of on mobile. Though roguelike puzzle game is a bit of a weird thing to say these days now that Roguelike more often means "semipermadeath and procedural generation" than "moving turn-based on a grid". Are you aiming more for Deadly Rooms of Death or Desktop Dungeons?

Raenir Salazar
Nov 5, 2010

College Slice

TooMuchAbstraction posted:

I am designing my next game to be mobile-capable, mind you. It's a roguelike puzzle game, or will be when it's done. I'm not pinning my existence on it doing well on mobile, but I do think it's worth attempting.

Noice, can't wait to come across your updates/WIP!

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

roomforthetuna posted:

That's definitely a genre I would buy one of on mobile. Though roguelike puzzle game is a bit of a weird thing to say these days now that Roguelike more often means "semipermadeath and procedural generation" than "moving turn-based on a grid". Are you aiming more for Deadly Rooms of Death or Desktop Dungeons?

It started out as "Puzzle Quest but you can play it in under an hour" and has gradually morphed into "small tactical combat where you spend turns on match-3 to charge your spells". So the "puzzle" is that it uses puzzle game match-3 mechanics, but there's also a tactical grid for combat purposes. It's not a puzzle game in the sense of sudoku or even Hoplite, where there's a "correct" way to solve each fight.

roomforthetuna
Mar 22, 2005

I don't need to know anything about virii! My CUSTOM PROGRAM keeps me protected! It's not like they'll try to come in through the Internet or something!

TooMuchAbstraction posted:

It started out as "Puzzle Quest but you can play it in under an hour" and has gradually morphed into "small tactical combat where you spend turns on match-3 to charge your spells". So the "puzzle" is that it uses puzzle game match-3 mechanics, but there's also a tactical grid for combat purposes. It's not a puzzle game in the sense of sudoku or even Hoplite, where there's a "correct" way to solve each fight.
Puzzle Quest genre is always a decent core. Is "can play in under an hour" like you play a whole run and that's it you start another, or is it like "you can do a round in under an hour and it unlocks more stuff and more difficulty levels so you keep advancing the overall 'story'", Slay the Spire style?

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

roomforthetuna posted:

Puzzle Quest genre is always a decent core. Is "can play in under an hour" like you play a whole run and that's it you start another, or is it like "you can do a round in under an hour and it unlocks more stuff and more difficulty levels so you keep advancing the overall 'story'", Slay the Spire style?

It'd be "you start from the beginning and play through to the 'final boss' or until you die, then get some story beats and maybe some metaprogression, and can start a new run if you want." Standard "modern roguelike" structure, in other words.

The funny thing about Puzzle Quest in particular is that I replayed it before starting work, and while it's fun, holy poo poo is it also flawed. Basically the only things you do that have really positive brainfeels are when you cast your big spells or luck into a big chain. But:
- Casting big spells requires lots of mana (generally 3-5 matches' worth at minimum), which means lots of time spent making small and/or pointless moves
- Because the enemy also uses the board to make their moves, you sometimes set them up for a big chain, which feels terrible
- Oftentimes your selection of moves is greatly limited because almost all of the options on the board have been used up
- If the board runs out of moves entirely, the board reset also drains everyones' mana reserves back to zero, which feels terrible
- Enemy spell resistance is just a bad mechanic ("Oh, you cast a spell? No, you didn't, and also you lost your mana, and your turn")

So I got rid of the "shared puzzle board" system, changed how the player interacts with it (Instead of Bejeweled-style "swap two tokens", you can make any number of swaps starting with a particular token, and when you put that token down, the matches happen), and added the tactical board so that you have to consider positioning and spell AoEs.

Here's a video of the prototype in action:

https://i.imgur.com/hLY1Rx8.mp4

If you don't like your board state, you can simply move, because the board is "overlaid" on the tactical space. Moving can also sometimes make matches happen, which earns you "free" mana. You have a short-ranged teleport that doesn't cost anything but has a cooldown. In exchange, you have to deal with far, far more enemies. And while they're predictable, that doesn't mean it's necessarily easy to avoid their attacks. Not that I'm playing optimally here.

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

TooMuchAbstraction posted:

It'd be "you start from the beginning and play through to the 'final boss' or until you die, then get some story beats and maybe some metaprogression, and can start a new run if you want." Standard "modern roguelike" structure, in other words.

The funny thing about Puzzle Quest in particular is that I replayed it before starting work, and while it's fun, holy poo poo is it also flawed. Basically the only things you do that have really positive brainfeels are when you cast your big spells or luck into a big chain. But:
- Casting big spells requires lots of mana (generally 3-5 matches' worth at minimum), which means lots of time spent making small and/or pointless moves
- Because the enemy also uses the board to make their moves, you sometimes set them up for a big chain, which feels terrible
- Oftentimes your selection of moves is greatly limited because almost all of the options on the board have been used up
- If the board runs out of moves entirely, the board reset also drains everyones' mana reserves back to zero, which feels terrible
- Enemy spell resistance is just a bad mechanic ("Oh, you cast a spell? No, you didn't, and also you lost your mana, and your turn")

So I got rid of the "shared puzzle board" system, changed how the player interacts with it (Instead of Bejeweled-style "swap two tokens", you can make any number of swaps starting with a particular token, and when you put that token down, the matches happen), and added the tactical board so that you have to consider positioning and spell AoEs.

Here's a video of the prototype in action:

https://i.imgur.com/hLY1Rx8.mp4

If you don't like your board state, you can simply move, because the board is "overlaid" on the tactical space. Moving can also sometimes make matches happen, which earns you "free" mana. You have a short-ranged teleport that doesn't cost anything but has a cooldown. In exchange, you have to deal with far, far more enemies. And while they're predictable, that doesn't mean it's necessarily easy to avoid their attacks. Not that I'm playing optimally here.

puzzle + dragons mechanic is good

BornAPoorBlkChild
Sep 24, 2012
posting this here in case anyone's interested

https://twitter.com/WistfulHopes/status/1786373045470613673?t=zkDI7KSUKqj9AcXI4i9BWQ&s=19

Raenir Salazar
Nov 5, 2010

College Slice
Holy molly this was frustrating, apparently your Pawn blueprint object/actor when spawned in the world will get "bumped" from the PlayerStart actor position you set, IF it overlaps some sort of other actor with some sort of collision enabled, EVEN WHEN IT IS EXPLICITLY TOLD TO IGNORE COLLISION ON SPAWN.

So my Start despite being set to 0,0,100; would end up spawning at 0,0,0! Until I just went into the collision presets and turned it all off.

God I hate Unreal sometimes, and specifically hate the way its mainly meant for certain kinds of game genres and workflows and as a result has all of this extra fluff that just gets in my way.

jizzy sillage
Aug 13, 2006

Raenir Salazar posted:

God I hate Unreal sometimes, and specifically hate the way its mainly meant for certain kinds of game genres and workflows and as a result has all of this extra fluff that just gets in my way.

I mean maybe Unreal just isn't for you? You're Sideshow Bob stepping on a million rakes, you can either learn where all Unreal's rakes are or you can go to another engine (which still has rakes, but they're in different places).

Raenir Salazar posted:

EVEN WHEN IT IS EXPLICITLY TOLD TO IGNORE COLLISION ON SPAWN.

Intended behaviour - this doesn't mean "spawn my Pawn and let it coexist peacefully inside this cube", it means "if there would be a collision once spawned, spawn anyway". Then physics takes over and solves the collision.

Raenir Salazar
Nov 5, 2010

College Slice

jizzy sillage posted:

I mean maybe Unreal just isn't for you? You're Sideshow Bob stepping on a million rakes, you can either learn where all Unreal's rakes are or you can go to another engine (which still has rakes, but they're in different places).

I have said that this is my day job? I don't think I can go to my manager and suggest switching engines. And my personal projects already use Unity3D, and both have their issues. But even if it weren't the case I don't believe this would still be productive or helpful thing to say; frustrations are a normal part of using a proprietary tool, and people don't always have the choice of just switching an entire game project to another engine which will certainly have its own quirks and rakes to step on; just having complaints doesn't make it "not for you", sometimes people just want to vent at wasted time over a problem that ended up being trivial and wish it would've been clearer ahead of time.

And the fact is there are legitimate criticisms people have of Epic/Unreal and its approaches to its architecture and documentation, and certain there will be criticisms of other engines and their own issues.

KillHour
Oct 28, 2007


I ended up having to write a new node system completely from scratch. Partly because the old one was hacked together to work during runtime and too tightly coupled to the old way I was processing the graph, but mostly because the Unity node editor is under the reference-only license, so I can't actually ship anything with it.



Right now, I only have loading graphs from the serialized file and moving nodes around working - you can't actually edit the graph or save it out in any meaningful way. But I'm still happy I got this far because it really sucks to pour a bunch of time into framework code you aren't even interested in but can't progress without.

Edit: The rendering code supports connecting ports with different types together. I haven't implemented any situations where it would make sense to do so, but I can force it to happen to show what it would look like.

KillHour fucked around with this message at 03:45 on May 4, 2024

Raenir Salazar
Nov 5, 2010

College Slice

KillHour posted:

I ended up having to write a new node system completely from scratch. Partly because the old one was hacked together to work during runtime and too tightly coupled to the old way I was processing the graph, but mostly because the Unity node editor is under the reference-only license, so I can't actually ship anything with it.



Right now, I only have loading graphs from the serialized file and moving nodes around working - you can't actually edit the graph or save it out in any meaningful way. But I'm still happy I got this far because it really sucks to pour a bunch of time into framework code you aren't even interested in but can't progress without.

Edit: The rendering code supports connecting ports with different types together. I haven't implemented any situations where it would make sense to do so, but I can force it to happen to show what it would look like.



Looks rad, congrats!

roomforthetuna
Mar 22, 2005

I don't need to know anything about virii! My CUSTOM PROGRAM keeps me protected! It's not like they'll try to come in through the Internet or something!

Raenir Salazar posted:

I have said that this is my day job? I don't think I can go to my manager and suggest switching engines.
Since you were jumped on so much last time you said a thing, when it did seem like you were being a bit weird about getting constructive responses to a request for help, I feel like I should say this time that I appreciated your grumbling for what it was and this time the response seemed like the one being weird.

Though I do also kind of appreciate "maybe the engine is not for you", not in that particular context but just in general because I have come to the conclusion that no engine is for me. I really hate all the rakes, and I find that doing stuff on the bare metal is always so easy by comparison to figure out what's wrong and fix it. My personal project at the moment is a web based game project, which I have redone several times because I keep being fooled into thinking some framework or tooling will be better, and I'm now on the third time migrating back to "actually just bare typescript is better". Flutter's webrtc library was buggy as gently caress and its supposed cross-platform widgets also weren't actually consistent. React is the absolute worst thing ever and I have no idea why anyone would use it (I didn't do that for my personal project I did it for a work thing, and what the gently caress the APIs apparently change completely with every major version so searching for "how to" documentation has a 70% chance of referencing functions that no longer exist, or don't exist yet, depending what version you picked). I thought Svelte was good, it's much closer to my philosophy of things, but it turned out when I tried to use viewTransitions the way Svelte works actively gets in the way of that working properly. There's probably a workaround, but it pisses me off so much to have to do workarounds for things that shouldn't need it, so I migrated back to naked typescript, which took me a few days.

So now I'm on just typescript and custom elements and it's *so easy*. It was actually useful to have tried Svelte because I learned a bunch of more modern html capabilities that I wasn't previously aware of (custom elements and templates, and structuring things through custom elements makes overall organization much easier than my previous iteration), but now that I know about those things, using them is much easier without the framework. To be fair, there is a little bit more repetitive boilerplate doing it manually versus Svelte. But calling back to the previous rant, React is somehow more boilerplate than writing everything yourself, and then injects a loving giant library dependency to download too. I guess React Native might be a thing that could potentially make it worth using for some people?

I suppose I don't totally hate Godot, especially now that it has a low-power mode such that it's properly viable for making a mobile game that doesn't eat the battery. Apparently it even has webrtc libraries. But at this point I'm not migrating to another frameworky tool only to get burned again.

Adbot
ADBOT LOVES YOU

jizzy sillage
Aug 13, 2006

Raenir Salazar posted:

But even if it weren't the case I don't believe this would still be productive or helpful thing to say.

Okay yeah, my bad, I forgot that this is for your job. I did mean this as "no matter where you look, rakes everywhere", but I can understand wanting to vent about something without being criticised for it; I'm sorry.

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