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.

Lucid Dream posted:

Unity is the standard that is losing favor, and Godot is the underdog that is gaining ground. Unity will be easier to learn (more tutorials etc) but there is some fear that it will get run into the ground on a long enough timeline. They're both fine options at the end of the day. There is also MonoGame/FNA if you want something that just lets you write code without the editors and stuff.

I'm unaware of unity losing favor in commercial shops.

Adbot
ADBOT LOVES YOU

wilderthanmild
Jun 21, 2010

Posting shit




Grimey Drawer

Lucid Dream posted:

Unity is the standard that is losing favor, and Godot is the underdog that is gaining ground. Unity will be easier to learn (more tutorials etc) but there is some fear that it will get run into the ground on a long enough timeline. They're both fine options at the end of the day. There is also MonoGame/FNA if you want something that just lets you write code without the editors and stuff.

For purely writing code without the editors there's also even more barebones but still very much workable routes like Raylib.(Or Raylib_CS, since the selection here implies C#)

Lucid Dream
Feb 4, 2003

That boy ain't right.

leper khan posted:

I'm unaware of unity losing favor in commercial shops.

Interesting, maybe it's just my bubble, but it sure seems like a lot of folks are getting fed up with Unity as an organization lately.

dupersaurus
Aug 1, 2012

Futurism was an art movement where dudes were all 'CARS ARE COOL AND THE PAST IS FOR CHUMPS. LET'S DRAW SOME CARS.'

Lucid Dream posted:

Interesting, maybe it's just my bubble, but it sure seems like a lot of folks are getting fed up with Unity as an organization lately.

There’s a pretty big jump between being fed up with unity and actually pulling the trigger

Catgirl Al Capone
Dec 15, 2007

I've seen people for whom unity has crashed and hosed with their project many times over keep with it regardless of how often it happens. the thing has absurd momentum and it will take events way more extreme than even the tremendous gaffes its been subject to for the thing to actually die.

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
People are ideologically upset with Unity, the corporation, and small-time indies are probably checking out the competition more now. But Unity, the game engine, still has a ton of inertia, and pretty much any gamedev shop with any significant investment in that engine (e.g. internally-built technology, shaders, etc) is going to be hard-pressed to justify jumping ship.

Lucid Dream
Feb 4, 2003

That boy ain't right.

dupersaurus posted:

There’s a pretty big jump between being fed up with unity and actually pulling the trigger

For sure, I mean at this point I'd still use Unity myself if I were doing a 3d game just because it has a more mature ecosystem, but Godot's recent rise in profile is pretty clearly driven by people being unhappy with Unity and looking for/supporting an alternative.

Catgirl Al Capone
Dec 15, 2007

idk id attribute that more to godot 4.0 being on the way and fixing a lot of small but significant pain points with the editor

Megazver
Jan 13, 2006
So far Godot is eating Gamemaker rather than Unity. But I do feel that it's on a cusp of becoming popular in the 2d hobbyist creator niche, at least.

Ranzear
Jul 25, 2013

Catgirl Al Capone posted:

idk id attribute that more to godot 4.0 being on the way and fixing a lot of small but significant pain points with the editor

This was the promise of 3.0 so I won't hold my breath.

I'm not trying to be too negative about it, I just really don't want to buy into such hype again.

Catgirl Al Capone
Dec 15, 2007

Ranzear posted:

This was the promise of 3.0 so I won't hold my breath.

I'm not trying to be too negative about it, I just really don't want to buy into such hype again.

my biggest pet peeve was always that tilesets you were painting a tilemap with were displayed as disparate individual tiles instead of like a spritesheet and the feature for that was demonstrated in the alpha :shrug:

Tunicate
May 15, 2012

it seems like 4.0 tiling now actually works

Catgirl Al Capone
Dec 15, 2007

oh and 3.5 is out like now and some of the major features that were finished from 4 like enhanced pathfinding and occlusion got backported

Harminoff
Oct 24, 2005

👽
They also ported it to Android so you can use it on the go (this is actually pretty cool as I'd think this would make it easier to get in classrooms as most.kids use Chromebooks?)

BabelFish
Jul 20, 2013

Fallen Rib
https://www.reuters.com/markets/deals/applovin-offers-buy-unity-software-2022-08-09/ More Unity M&A news. We'll see where it goes, but none of these monetization services leave me feeling reassured of Unity's future.

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

BabelFish posted:

https://www.reuters.com/markets/deals/applovin-offers-buy-unity-software-2022-08-09/ More Unity M&A news. We'll see where it goes, but none of these monetization services leave me feeling reassured of Unity's future.

As opposed to unity's current state of a loss leader game engine with a highly profitable ad network, along with a bunch of also-ran service offerings?

Mata
Dec 23, 2003
I can see Bevy already filling a niche for people like me who enjoyed XNA/FNA/Monogame but are maybe a bit bored with C# and want access to modern 3D tech.

HaB
Jan 5, 2001

What are the odds?
I need a library recommendation.

I had been using PaperJS for my game to draw on top of the board, which is just a background image. Map editor is using Paper as well, and it works - I can load a map, trace all the areas, assign build points, starting units, etc.

But paper is so loving persnickety, that literally the EXACT same code moved to another page (the actual Game, not the Map Editor) just doesn't work.

See, paper has it's own thing called paperscript, which it really wants you to use, and paperscript relies on the default paper object being global always. It has docs* for using it in reglas javascript, which is what I'm doing, but since I am trying to get ALL my drawing logic decoupled out from my game code, I am trying to use an object to manage the canvas, and paper just....hates it.

It initializes fine - I can see the canvas get created, set to the correct size, and inserted into the DOM, and if I draw on the canvas using Paper inside that same function - it's fine. But call me crazy - I don't want literally all my canvas code in a single function.

So when I create an instance of the paper object in my init function - I save it on the object - but there doesn't seem to be a way to tell paper to USE that instance, since it really wants a global paper.

So fine, whatever - they can design their lib however they want - but *I* don't want a global paper object, so I'm guessing that means paper isn't the guy.

So my needs are the following:

- build a set of 2D polygons, each from a list of coordinates.
- draw those polygons on the canvas
- allow me to manipulate the polygons: change color, etc.
- hit test those polygons to see if a click is occurring inside of it

I am looking at Two.js (subset/offshoot, or at least a similar interface to Three.js), and it doesn't have hit detection for starters, tho someone has written a lib. it also can't load and set a bg image for the entire canvas, as all the current img handling code is designed for sprite sheets.

So. Suggestions? I don't need sprites. I just need a mostly 2D vector drawing lib with hit detection.



*I say "docs" but the docs are quite barebones, and seem to assume that the only way anyone is ever going to use the library is via everything global and paperscript. :(

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
A "2d vector drawing lib" is a pretty good description of the Canvas API. Do you need to put a library on top of it?

HaB
Jan 5, 2001

What are the odds?

Jabor posted:

A "2d vector drawing lib" is a pretty good description of the Canvas API. Do you need to put a library on top of it?

I mean yeah - to get all that other stuff.

Hit detection, in particular. That's not trivial to implement for complex polygons.

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

HaB posted:

I need a library recommendation.

I had been using PaperJS for my game to draw on top of the board, which is just a background image. Map editor is using Paper as well, and it works - I can load a map, trace all the areas, assign build points, starting units, etc.

But paper is so loving persnickety, that literally the EXACT same code moved to another page (the actual Game, not the Map Editor) just doesn't work.

See, paper has it's own thing called paperscript, which it really wants you to use, and paperscript relies on the default paper object being global always. It has docs* for using it in reglas javascript, which is what I'm doing, but since I am trying to get ALL my drawing logic decoupled out from my game code, I am trying to use an object to manage the canvas, and paper just....hates it.

It initializes fine - I can see the canvas get created, set to the correct size, and inserted into the DOM, and if I draw on the canvas using Paper inside that same function - it's fine. But call me crazy - I don't want literally all my canvas code in a single function.

So when I create an instance of the paper object in my init function - I save it on the object - but there doesn't seem to be a way to tell paper to USE that instance, since it really wants a global paper.

So fine, whatever - they can design their lib however they want - but *I* don't want a global paper object, so I'm guessing that means paper isn't the guy.

So my needs are the following:

- build a set of 2D polygons, each from a list of coordinates.
- draw those polygons on the canvas
- allow me to manipulate the polygons: change color, etc.
- hit test those polygons to see if a click is occurring inside of it

I am looking at Two.js (subset/offshoot, or at least a similar interface to Three.js), and it doesn't have hit detection for starters, tho someone has written a lib. it also can't load and set a bg image for the entire canvas, as all the current img handling code is designed for sprite sheets.

So. Suggestions? I don't need sprites. I just need a mostly 2D vector drawing lib with hit detection.



*I say "docs" but the docs are quite barebones, and seem to assume that the only way anyone is ever going to use the library is via everything global and paperscript. :(

Flash

A LOVELY LAD
Feb 8, 2006

Hey man, wanna hear a secret?



College Slice

HaB posted:

I mean yeah - to get all that other stuff.

Hit detection, in particular. That's not trivial to implement for complex polygons.

Pixijs does this kind stuff and has polygon vs point hit detection as part of the library.

There are also some polygon hit detection libraries where you could feed it your polygon coords and mouse pointer location.

Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense
I guess it's just me but when I switched from unity to Godot my productivity went way way up. It's easier to use, much better designed. Probably because it had unity to take influence from.

Cory Parsnipson
Nov 15, 2015
Oh nice. Do you notice any differences in performance? (Both in the editor and in the game runtimes)

I'm using a laptop that's almost a decade old and unity can barely run on this thing.

Megazver
Jan 13, 2006

Cory Parsnipson posted:

Oh nice. Do you notice any differences in performance? (Both in the editor and in the game runtimes)

I'm using a laptop that's almost a decade old and unity can barely run on this thing.

Godot can actually be run as a web app. You can test for yourself with one click:

https://editor.godotengine.org/releases/latest/

Harminoff
Oct 24, 2005

👽
It's also on Android/chrome os, the engine is super small/lite (35mb)

https://godotengine.org/download/android

dennis
Aug 28, 2022

chiming in with my Godot experience mainly for 2D games. i've worked on a good dozen or so medium sized projects over the last 2-3 years and so i have some opinions.

it is mainly very good, for some reasons off the top of my head:
- the node & scene tree system is very simple to understand and you can be extremely creative with it
- it is very straightforward to extend the editor itself to make helpful tools specific to your purpose
- KinematicBody2D (and especially CharacterBody2D in 4.0) makes easy developing for platformers and other games where you control a character in physical space, but it doesn't sacrifice the depth and control you have over how things work. mainly it takes care of problematic things like slopes and other esoteric collision situations quite elegantly
- setting up a pixel-perfect game for pixel art is once again incredibly easy
- live editing that mostly works
- no compilation time (if you're not using C#) means very fast prototyping
- incredibly good, and i mean insanely good UI system, completely blows everything except maybe JS-based engines completely out of the water and spatters their guts around town

but there are problems they aren't fixing which sort of neuter the whole experience. such as:
- you cant export custom resource classes
- teh scripting language is incredibly slow, and cross-scripting with C# or other languages is a pain, encouraging you to choose one or the other. 4.0 makes this better a little bit
- messing with the scene tree and adding/removing nodes is similarly kinda slow
- the physics engine is kinda slow too. i dont know why they dont use box2d or something, licensing conflict?
- you cant export custom resource classes
- the profiler is basically useless if you are constrained by slow API calls and not your own bad code - you can't even see which builtins are slowing down performance, it's all lumped into "idle" or "physics" time. this has been the case at some point in every single one of my projects - my own code doesn't even register in the profiler, but i am getting 20-30 fps or lower in "physics time." so i've narrowed down the problem to any physics object or anything that has been called in _physics_process(). thanks bro
- you cant export custom resource classes
- visual effects stuff can be a little awkward, because everything has to be a node (or registered in the visual server, which is its own whole ordeal). i have a lot of one-off effects like dust and blood sprays which amount to, "spawn an animated sprite node at this position, then free the node when it's done." maybe doesn't sound so bad, but it can affect performance quickly if you are doing it a lot.
- you STILL cant export custom resource classes EVEN IN 4.0

in any case i don't see myself ever going to another engine until someone makes a better one at this point. there are so many things Godot does that basically trivialize things that are really difficult in other environments. it's really nice for, you know ... making a game. and having extensively used 4.0 straight from the master branch, i think i can say confidently that it is going to be an enormous upgrade to 3.0.

but anyway if you are making a complicated game with lots and lots of physics objects that need to be updated every frame it might be hard to work with if you're only using GDScript, which is a corner i have now entered myself

tl;dr it's easy, good for small & tight projects, and maybe even big games, but it is slow and if you don't like that, the sentiment is basically "gently caress you use C# which our engine is not really designed for at all". thats my thoughts

Tunicate
May 15, 2012

Did you include

-no console to test commands live

dennis
Aug 28, 2022

that too

Truspeaker
Jan 28, 2009

Just to clarify, when you are saying things are slow in Godot, are you referring to performance or development effort? Either way, I'm sold on giving Godot a try when 4.0 is out, it sounds fun.

dennis
Aug 28, 2022

Truspeaker posted:

Just to clarify, when you are saying things are slow in Godot, are you referring to performance or development effort? Either way, I'm sold on giving Godot a try when 4.0 is out, it sounds fun.

performance, development itself is pretty fast ime.
i also dont want my complaining about performance to put anyone off, because it really is good enough for 99% of applications. im just doing something stupid and im not the best programmer

dennis fucked around with this message at 02:37 on Sep 2, 2022

Cory Parsnipson
Nov 15, 2015
That's a very detailed post, great stuff! I just spent a month and a half getting intimately familiar with unity 2d. I'm having a blast programming in C# and actually getting to use some design pattern knowledge, though it is kind of funny how there's lots of things that seem like they would be easy but have a weirdly roundabout solution in Unity.

I'm actually looking forward to bouncing between the two.

E. To be more specific, some examples I've run into:

* Retaining focus on buttons for keyboard navigation requires a script that constantly monitors the selected object in the event system and then sets the focus to a predefined button in every update.

* Not possible to directly wait on a unity event inside a coroutine

* Calculating the mouse position and moving a UI element to it, in a camera space canvas, requires the RectTransformUtility.ScreenPointToLocalPointInRectangle function, which takes the canvas camera as an input, and setting anchoredPosition. The process is different if you are using a screen space canvas.

* Programmatic UI element positioning in general is extremely confusing

* You can't get tuples to show up in the inspector window. Or maybe you can but I tried coding up my own editor mods and I don't know c# well enough to do it.

Cory Parsnipson fucked around with this message at 13:43 on Sep 2, 2022

Megazver
Jan 13, 2006
but can u export custom resource classes

big scary monsters
Sep 2, 2011

-~Skullwave~-
For what it's worth there is an active issue with several PRs for custom resources and the goal is to have them merged before 4.0 goes to beta. I really hope they get there because it's definitely a big annoyance.

Cory Parsnipson
Nov 15, 2015

Megazver posted:

but can u export custom resource classes

Pfft of course. I did it like 8 times. Take that godot!

Yeah, here's the feature for it. It's been around for almost 2 years now. But hopefully it'll make it in soon?

Lork
Oct 15, 2007
Sticks to clorf
Does anybody do Blueprint in here? I want to make a list of references to instances of another blueprint - something like "List<MyBlueprint>" in most languages. I found Typed Element List but I can't figure out how to package anything as an "Element Handle" to satisfy the demands of the Add action.

blastron
Dec 11, 2007

Don't doodle on it!


Lork posted:

Does anybody do Blueprint in here? I want to make a list of references to instances of another blueprint - something like "List<MyBlueprint>" in most languages. I found Typed Element List but I can't figure out how to package anything as an "Element Handle" to satisfy the demands of the Add action.

When you say instances of a Blueprint, do you mean active objects (such as a list of dogs in the world), defined subclasses (a list of types of dogs), or something else? In either of those cases you can just make a regular array, pick the object class, and select either an object reference or a class reference.

Lork
Oct 15, 2007
Sticks to clorf

blastron posted:

When you say instances of a Blueprint, do you mean active objects (such as a list of dogs in the world), defined subclasses (a list of types of dogs), or something else? In either of those cases you can just make a regular array, pick the object class, and select either an object reference or a class reference.
Active objects. An array wouldn't cut it because I need to add to the list at runtime, but even so, how would I go about making it anyways? When I try to make an array in the variables menu the only options seem to be various predefined types, none of which include blueprint classes.

Edit: Never mind, I figured it out. Instead of explicitly making an array variable, I was actually supposed to make a variable of the type I wanted, then right click the little colored dot next to it to turn it into an array of that type. Also apparently you can add to Blueprint arrays at any time, so that's solved as well.

Lork fucked around with this message at 21:38 on Sep 4, 2022

blastron
Dec 11, 2007

Don't doodle on it!


Lork posted:

Active objects. An array wouldn't cut it because I need to add to the list at runtime, but even so, how would I go about making it anyways? When I try to make an array in the variables menu the only options seem to be various predefined types, none of which include blueprint classes.

Edit: Never mind, I figured it out. Instead of explicitly making an array variable, I was actually supposed to make a variable of the type I wanted, then right click the little colored dot next to it to turn it into an array of that type. Also apparently you can add to Blueprint arrays at any time, so that's solved as well.

Glad you figured that out! Learning all the little buttons you need to click is probably the hardest part about Blueprint.

Adbot
ADBOT LOVES YOU

Justa Dandelion
Nov 27, 2020

[sobbing] Look at the circles under my eyes. I haven't slept in weeks!

Been practicing making packages for unity. Goal is to demonstrate that I can write well encapsulated and fairly modular code for my portfolio. I am currently working on making a simple 3d walking engine, my current step is rigging and coding some ik animation. Any good resources or videos on ik or blender? And is rigidbody still the standard for "realistic" character controllers?

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