Stupid Question from the beginer

Questions about the LÖVE API, installing LÖVE and other support related questions go here.
Forum rules
Before you make a thread asking for help, read this.
User avatar
fridays18
Citizen
Posts: 90
Joined: Tue Nov 01, 2022 3:24 pm

Re: Stupid Question from the beginer

Post by fridays18 »

Anonimus220 wrote: Tue Nov 08, 2022 2:28 pm Wow, thanks. I wasn't suspecting that everything will be SO different. I just had a recomendation from one guy who said that he used Love2D for his projects.
Honestly the lack of a engine makes life 10x harder sometimes, that said you make things to your preference where you can directly control it, path finding, collisions, animation, etc which although can be frustrating at times lets you make your game precisely how you want without outside influence, plus tons of awesome libraries are easy to access that do everything an engine could do if not more since you can directly change the lib file lol
User avatar
GVovkiv
Party member
Posts: 668
Joined: Fri Jan 15, 2021 7:29 am

Re: Stupid Question from the beginer

Post by GVovkiv »

fridays18 wrote: Wed Nov 16, 2022 4:19 pm plus tons of awesome libraries are easy to access that do everything an engine could do if not more since you can directly change the lib file lol
well, to be fair, some engines even allow you to rewrite how some system will work (lets say, input, graphics processing, etc) without recompiling even
User avatar
fridays18
Citizen
Posts: 90
Joined: Tue Nov 01, 2022 3:24 pm

Re: Stupid Question from the beginer

Post by fridays18 »

GVovkiv wrote: Wed Nov 16, 2022 5:20 pm
fridays18 wrote: Wed Nov 16, 2022 4:19 pm plus tons of awesome libraries are easy to access that do everything an engine could do if not more since you can directly change the lib file lol
well, to be fair, some engines even allow you to rewrite how some system will work (lets say, input, graphics processing, etc) without recompiling even
valid valid but to me at least its also helped when I have creators block / motivation since theres never something not to do, remaking a collision system to be better, making an unique particle system etc all the things that get me programming even if its not directly on my project it gives me something to do rather then dwelling on not working on it :)
User avatar
GVovkiv
Party member
Posts: 668
Joined: Fri Jan 15, 2021 7:29 am

Re: Stupid Question from the beginer

Post by GVovkiv »

fridays18 wrote: Thu Nov 17, 2022 1:22 pm valid valid but to me at least its also helped when I have creators block / motivation since theres never something not to do, remaking a collision system to be better, making an unique particle system etc all the things that get me programming even if its not directly on my project it gives me something to do rather then dwelling on not working on it :)
it feels like you more interested in programming something rather to make games. Because rewriting everything from scratch to make game feels not really that useful (are you sure that you want to dump time to write some particles engine, which might be even worse then something that engines provide oob?). Aren't it kinda conterprodactive to write some system instead of creating node, adding to it other nodes to configure (in case of godot) and read documentation how this things works? For me it feels that with rewriting entire world to make game is more likely cause burn-out so this game (which even might not be coded better then engine solution, so you now forced to use your own solution, which only you know how works) might less likely come out?
User avatar
fridays18
Citizen
Posts: 90
Joined: Tue Nov 01, 2022 3:24 pm

Re: Stupid Question from the beginer

Post by fridays18 »

GVovkiv wrote: Thu Nov 17, 2022 1:54 pm
fridays18 wrote: Thu Nov 17, 2022 1:22 pm valid valid but to me at least its also helped when I have creators block / motivation since theres never something not to do, remaking a collision system to be better, making an unique particle system etc all the things that get me programming even if its not directly on my project it gives me something to do rather then dwelling on not working on it :)
it feels like you more interested in programming something rather to make games. Because rewriting everything from scratch to make game feels not really that useful (are you sure that you want to dump time to write some particles engine, which might be even worse then something that engines provide oob?). Aren't it kinda conterprodactive to write some system instead of creating node, adding to it other nodes to configure (in case of godot) and read documentation how this things works? For me it feels that with rewriting entire world to make game is more likely cause burn-out so this game (which even might not be coded better then engine solution, so you now forced to use your own solution, which only you know how works) might less likely come out?
I think the best way I can help you in by explaining the pros and cons
Pros:
-Everything is personalized since you made it
-Getting new ideas for the same or different game while creating base systems(gravity, collisions, etc bug testing becomes cool ideas)
-Quick to create and demo games since there never any loading which things like unity cant boast since it takes 5-10 mins for a project to even be created
-Easy to learn the language and framework
-Very helpful and active community, I find it rare I ask a question and dont get a response in the discord within 10 mins
-Very easy to comprehend and learn game features since you create them(for example when I used godot and unity I only knew of one type of entity collision, now after using love2D im aware of roughly 4 which have each helped me in certain cases)
-And a very big thing for me is the metric ton of documentation and although theres not much ive gained tons of info from tutorials like the Harvard game dev course and the sheep pollution tutorial

Cons:
-Despite the good tutorials its impossible to say its even close to the amount on bigger engines like godot and unity
-Having to use library's / make import game functions yourself which can take chunks of time
-Rellying on the community, since theres not much tutorials when I get stuck I find myself asking the community quite a bit which has slowed since ive gotten better with love but at the start the community forums and discord is going to be kinda vital(at least to me im sure its different with everyone)
-No engine or gui obviously raises its own challenges
-Learning to use love2D will only really help you with concepts not code, while using love2D id say ive became pretty good at Lua and understanding gaming concepts I hadnt prior, but the only thing that really carries over from love2D(Lets say you move from it to unreal) youre gonna be lost when it came to coding since Lua is pretty rarely used from my opinion so all youll really be able to bring over is your knowledge of all the things you learned and concepts youve mastered

Overall I would say every game dev should try love2d for a bit, its an amazing tool that lets me create games I think of in rapid time and succession, I dont think love2D is for everyone but I think for sure without a doubt its worth giving it a shot :)
User avatar
GVovkiv
Party member
Posts: 668
Joined: Fri Jan 15, 2021 7:29 am

Re: Stupid Question from the beginer

Post by GVovkiv »

There some points which i'm not fully agree with:
(And, yes, everyone should use what they think suit them the most, it's just tools, yada yada yada, i just want to talk about what everyone thinks about this)
-Getting new ideas for the same or different game while creating base systems(gravity, collisions, etc bug testing becomes cool ideas)
as it will be mention later, engines provide ways of writing own implementations of this base system, you not forced to do as engine devs see it
-Quick to create and demo games since there never any loading which things like unity cant boast since it takes 5-10 mins for a project to even be created
i don't think that's really issue because any engine have options for templates, which you can store and open when you need new demo. And loading time also takes minimum amount of time. Also some engines like to cash thing such as images and sounds, so once you loaded data into your project, it will be faster to restart it, making procces of debuging or testing faster
Easy to learn the language and framework
well, i mean, engines provide often several languages support (even with ability to combine them without any problems) while with frameworks you will be crafting own solutions, which might be worse, especially considering things such as cross-platforming and distribution, where engines take care of it. Same goes for learning, because if you don't need at moment learn hard concepts of game making, such as physics, you can skip it, engines learning curves allow that. Also sometimes it's easier to learn engine functionality, then learning how things works from scratch tho
Very helpful and active community, I find it rare I ask a question and dont get a response in the discord within 10 mins
well, same goes for any framework or engine, which have enough userbase. If there enough active base then someone will answer
Very easy to comprehend and learn game features since you create them(for example when I used godot and unity I only knew of one type of entity collision, now after using love2D im aware of roughly 4 which have each helped me in certain cases)
engines does not block you from learning more about this new features, if engine does not provide this (or framework) you anyway need to learn about this stuff. You also can there use libraries or addons for that
And as i say, you don't forced in most cases use only built-in features, you also can write you own implementation of this functions. For example, physics.
And a very big thing for me is the metric ton of documentation and although theres not much ive gained tons of info from tutorials like the Harvard game dev course and the sheep pollution tutorial
- as i mentioned, it's really depends on userbase, and often engine have more, then more local frameworks
User avatar
ddabrahim
Party member
Posts: 182
Joined: Mon May 17, 2021 8:05 pm
Contact:

Re: Stupid Question from the beginer

Post by ddabrahim »

GVovkiv wrote:rewriting everything from scratch to make game feels not really that useful
kinda conterprodactive to write some system instead of creating node, adding to it other nodes to configure
I think no point to argue about game engines vs frameworks, it is mostly depends on your preferences.
But I have experience with both and this is my thoughts on this.

If you want to make a game with unique gameplay mechanics, game engines can throw lot of walls and limitations in your way. In order to work around those limitations, you may need to write your own extension and libraries for the game engine which require you to get familiar with their API and maybe even the entire source of the engine which is not less complicated then using a framework. At this point it can be more practical to use a framework like Love2D so you can make things work the way you want them to work and have full control instead of learn how to use the code of someone else. But of course it is depends on your preferences, you may or may don't want to learn how to use the code and engine of other people.

Sometime starting from scratch just easier than learn how to use the code of someone else and there are number of examples out there when developers decided to start from scratch instead of using a game engine like No Man's Sky for example. You might think Unreal and Unity should have fit perfectly this project with so many large open-world games released, but no the lead developer told in an interview he tried Unity, Unreal and others but none of them fit perfectly the way he wanted to generate the worlds procedurally and he was also not happy with performance. He could have developed extensions, plugins but instead he decided to start from scratch and develop his own engine because starting from scratch sometimes easier than learn to navigate around the code of someone else. But again, it is depends on your preferences, you may or may don't enjoy to navigate around the code of someone else.

Of course if you want to make a game in which you just want to share a story and display nice graphics for the player to interact with but the gameplay is generic, not that special then of course game engines more likely be able to fit your project and is a better choice. But even then you often need to deal with bugs that can be just as frustrating if you have no control and you have to wait for someone else to fix it for you.

Last time I used Godot 3.x for example, I have encountered a bug in the 2D navigation node which caused the navigation not to take in to account the size of the sprite moving on the path and overlap the obstacles in certain cases and there is absolutely nothing you can do about it. I wanted to see if it was reported on GitHub and guess what, it was reported 4 years ago! Yes, not a typo, the Godot contributors and developers didn't care to fix this bug for 4 years because "it is not game breaking". Sure it doesn't cause the game to break or crash but if pathfinding is a central part of your game it doesn't look pretty.
So I looked in to writing my own pathfinding when I have realised what is the point of using Godot and deal with its limitations and bloat if I end up writing my own staff anyway.

I have similar stories with other game engines too. Long story short, after seeing devs didn't care to fix a bug for 4 years and similar experience with other game engines, I decided to look in to frameworks. If I need to make my own staff then I don't want to deal with the mess of other people.

And here I am now. I spent the last 6 months learning Love2D and Lua from 0 with no prior experience, I have never programmed in Lua before and never used a framework before. But I guess I can say that with confidence I have programmed my own game engine. It is not perfect, it has a lot missing and certainly I have plenty of things got wrong but it works the way I need it to work and has most of the things I want and only that. No bloat, no bugs, no limitations, I have full control and I can make iterations in no time. Maybe it took me 6 months to get here which some may consider a waste of time but the past 6 months was extremely educational for me, I have learned a lot, more than I have ever imagined. I have no regrets. Even if I end up going back to a game engine which I seriously doubt, but if I do I have learned very useful lessons by using a framework.

But again, if you don't really care about all this, you dislike programming and you just want to share a story and nice graphics and gameplay is not that interesting then a game engine most likely going to be a better fit. It is also possible you got lucky and Godot, Unity, Unreal going to perfectly fit your crazy unique gameplay idea. Similar thing happened with Subnautica for example. Developers originally wanted to make their own game engine, they used Unity only to make a prototype they did not expect Unity to fit their idea so well but it did and they ended up keeping Unity in production which was not the plan. They believed they are going to need to make their own engine but they were lucky. But it doesn't mean frameworks doesn't have their place and useless, you may not be lucky one day and if you have experience with frameworks it could help you one day.
User avatar
GVovkiv
Party member
Posts: 668
Joined: Fri Jan 15, 2021 7:29 am

Re: Stupid Question from the beginer

Post by GVovkiv »

I think no point to argue about game engines vs frameworks, it is mostly depends on your preferences.
But I have experience with both and this is my thoughts on this.
It's not really arguing tho
If you want to make a game with unique gameplay mechanics, game engines can throw lot of walls and limitations in your way.
What exactly limitation you talking about? I mean, there might be, i just can't really think about it right now.
At this point it can be more practical to use a framework like Love2D so you can make things work the way you want them to work and have full control instead of learn how to use the code of someone else.
Yes, but do you really want to trust yourself to make all of this? Sometimes something that done at engines should be more standarised, for example, how game engine process things such as graphcis, switching graphics api, configure and moding game. When everything is done differently in every different game, it might be harder to do so. For example, unity games have some flags to allow workaround some problems, for example, i have not that powerful laptop without supporting for vulkan, so i was unable to play game Hollow Knight with it (because game developers thinks that forcing vulkan is okay, without adding option for open-gl in game, even no error window, game just crashes and that's about it), so i googled how to force opengl in unity and switched to it and happily played in it. With games done in such frameworks there will be no guaranty that you as developer of that game might even think about such stuff, while in engines it might be part of well documented behaviour. Or what i will do if you implemented gamepad support, but neglected ability to rebind keys? Engines often provide ways to workaround this.
No Man's Sky for example
It's not really good example, considering when game come out it was really bad (even as today most of features that was promised in 2016 still was not added)
You might think Unreal and Unity should have fit perfectly this project with so many large open-world games released, but no the lead developer told in an interview he tried Unity, Unreal and others but none of them fit perfectly the way he wanted to generate the worlds procedurally and he was also not happy with performance.
Yet again, considering what game come out, i will take this with grain of salt. This "they was not happy with perfomance" might was simple not enough expirience with Unity or unreal. You can make games even more unoptimized in frameworks than any engine if you don't know what are you doing.
He could have developed extensions, plugins but instead he decided to start from scratch and develop his own engine because starting from scratch sometimes easier than learn to navigate around the code of someone else
And yet considering what heppened with game, are you sure that this decision was really smart? I doubt.
But even then you often need to deal with bugs that can be just as frustrating if you have no control and you have to wait for someone else to fix it for you.
Same goes for libraries and you own implementations in frameworks. If something doesn't work in their libraries you either forced to wait for fix or fix manually, which is not really different from engines.
Last time I used Godot 3.x for example, I have encountered a bug in the 2D navigation node which caused the navigation not to take in to account the size of the sprite moving on the path and overlap the obstacles in certain cases and there is absolutely nothing you can do about it. I wanted to see if it was reported on GitHub and guess what, it was reported 4 years ago! Yes, not a typo, the Godot contributors and developers didn't care to fix this bug for 4 years because "it is not game breaking". Sure it doesn't cause the game to break or crash but if pathfinding is a central part of your game it doesn't look pretty.
It' actually fixed now, even for 3d, lol.
So I looked in to writing my own pathfinding when I have realised what is the point of using Godot and deal with its limitations and bloat if I end up writing my own staff anyway.
So you can send them this implementation (if it better or fixes problems) and make life easier for everyone else and making this implementation as oob for future you?
I have similar stories with other game engines too. Long story short, after seeing devs didn't care to fix a bug for 4 years and similar experience with other game engines, I decided to look in to frameworks. If I need to make my own staff then I don't want to deal with the mess of other people.
So, you might end up user of your game and engine to deal with your mess. For example, what if you think that game window on linux or windows os shouldn't be reziable? Engines often provide way for end users to workaround this, while your game engine might not.
No bloat, no bugs, no limitations, I have full control and I can make iterations in no time.
As i mentioned couple time, this "bloat" might be something that might be useful for end users and modders. And "no bugs".. well, its sounds very confident tho. And limitations from which point? From you, as developer, there might be less limitations, but modders? end users?

yet again,
(And, yes, everyone should use what they think suit them the most, it's just tools, yada yada yada, i just want to talk about what everyone thinks about this)
it's just feel, like, year, you can make the most perfomant game with framework, make it less "bloat", and trying to add everything on top of that, but isn't it more "safer" and easier to stick with some ecosystem instead making you own?
It's make life easier for end user, they might know what expect from engine, how to deal with common problems. For modders, because you probably found more guides and tools to mod it, because it's might not be easy to mod game engine that might be used once at lifetime. And you have actually support from developers of engine.
And yes, there might some big issues in any software that you might fix yourself, but sometimes i value my sanity more then dealing with such problems so i might be able to find support from people who know their engine.

The bigger game, the more it need technologies, features and integration with such features, the more relevant engines become. Sure, you can write your own engine that provide and implement it, used, for example, 6 months to do, while some unity already might have solution ready for you.

Even if we take away factor what tool is better to work with, i would prefer use well know engine for game future preservation and prolonging it's support from fans. Especially if you make your game closed sourced.

Yeah, sorry for long answer, but that's what i think about "framework or engine?"
At the end of the day, it's up to you decide what you want to use, so...
yeah
User avatar
ddabrahim
Party member
Posts: 182
Joined: Mon May 17, 2021 8:05 pm
Contact:

Re: Stupid Question from the beginer

Post by ddabrahim »

What exactly limitation you talking about?
Things that you can not do anything about because of the internal design of the engine.

One example is when I was using GDevelop it was not possible to compare instances of the same object.
Just not possible because of the internal design of the engine.
An other example in the same engine is when you make a behavior, it is basically like a component in Unity, it is not possible to reference other objects within the behavior. Just not because of the way the system is designed internally.
With HTML5 powered engines, it is not possible to target game consoles, there is nothing you can do about it so you need to consider this before you use an HTML5 engine for your game.
In Godot I was unable to render more than 500 moving, rotating objects on the screen, was extremely slow and when I searched a way how to do better, basically the documentation admitted Godot is not the right choice if you want to do something like this because of its design.
In Unity even if you lock the rotation of a physics body, in certain cases it can still rotate in which case you need to apply some crazy math to reset its rotation.

Sure there are other engines that can fix this but those have other limitations.
Of course you could also open up the source or create extensions, plugins and add what you need, anything is possible that way but you need to be extremely familiar with the code and the toolchain and the API at which point it can be more simple to start from scratch in a framework.
Yes, but do you really want to trust yourself to make all of this?
Let's just say I don't trust developers of engines to do it for me because they won't. You are not appreciated if you demand anything, you can only politely ask but then you be ignored and it is frustrating if you keep hitting walls and developers doesn't care or doesn't have the time.
With games done in such frameworks there will be no guaranty that you as developer of that game might even think about such stuff, while in engines it might be part of well documented behaviour.
Yes it is certainly possible I forget to think of something but so developers of the other engines or they are just ignorant about it, like the examples I have described above. Sure I be frustrated if I need to refactor the entire engine because of something tiny I forgot to consider at the beginning but it is better if I am angry at myself than other developers because I can do something about myself and my engine but there is nothing I can do about the ignorance and lack of time of other developers.

Sure we can take a turn again toward plugin and extension API's and source codes here but as I mentioned, it is sometime easier to start from scratch than learn how the code of others work.
It's not really good example, considering when game come out it was really bad
Yes it has tons of problem but the engine was fast it is a good example for that reason. It did run at High settings on my 10+ old desktop with GTX 750 Ti perfectly fine while other similar open-world space exploration games powered by Unreal, Unity, CryEngine was unplayable.
might was simple not enough expirience with Unity or unreal.
I haven't personally seen any open-world space exploration game with huge terrains that runs fine with a GTX 750 Ti. But it is perfectly possible it was because of lack of experience but again here we can take a turn back to what I was saying regarding sometime it is easier to start from scratch than try to learn how the engine of someone else work internally. The lead developer of No Man's Sky had the experience to do his own engine and lack the patience to learn how Unity and Unreal works. It is a valid reason in my book.
If something doesn't work in their libraries you either forced to wait for fix or fix manually, which is not really different from engines.
Yes and this is why I am on a mission not to use any 3rd party libraries with Love2D. Of course we can argue, Love2D internally uses 3rd party libraries, same thing but so far I have not hit any bugs limitations in Love2D itself and I am making good progress. I have a very good time with Love2D and this is why my view about frameworks has changed and I learned to value them.
It' actually fixed now, even for 3d, lol.
I meant last time I used Godot, few years ago the bug report was back then already 4 years old.
Glad they managed to fix it now as we get a new navigation system with Godot 4 :D
So you can send them this implementation (if it better or fixes problems) and make life easier for everyone else
Yes but the reason I use engines like Godot, Unity is to make my life easier. If it's not the case, what is the point.
what if you think that game window on linux or windows os shouldn't be reziable? Engines often provide way for end users to workaround this, while your game engine might not.
With Love2D you can change that if the window is resizable or not. But in case you mean what if I forgot to consider resizable windows.
In fact, I have :D Just finished the implementation the other week. Now I can resize the window and my engine detect if the window was resized and update the scale and resolution to fit the new size. It was a battle because it was one of the things I did not considered and yes I was angry because I had to refactor lots of things to get it right but I think it works now :P
As i mentioned couple time, this "bloat" might be something that might be useful for end users and modders.
Sure, more is better. But when the engine takes a long time to launch and takes forever to compile and run a preview and you lose patience to navigate between 100 menus and sub-menus just to tick a box, this is when you begin to see frameworks from a different perspective.
And "no bugs".. well, its sounds very confident tho. And limitations from which point? From you, as developer
Well as far as I am concerned there is no bugs, everything works the way I need it to work. It might change of course if I find a scenario I did not considered but so far all good. Of course it has limitations and yes some of those are my limitations but I learned to accept my limitations. It is not so easy to accept the limitation of other people.
If what you mean is that Godot, Unity, Unreal has no limitations, I do. Guess it is true after all nobody stop me from using their API's and full source to do whatever I want, but as I have mentioned a few times already, not everybody want to learn how the code of other people works and I don't. I did, I was using engines for a very long time but I got tired of constantly working around my way the holes I discover. I just want to do what I want to do, the way I want to do it and that's it.
The bigger game, the more it need technologies, features and integration with such features, the more relevant engines become. Sure, you can write your own engine that provide and implement it, used, for example, 6 months to do, while some unity already might have solution ready for you.
Yes, it is true but you may get to a point when you just get tired of all the bloat and limitations and even if takes longer but you want to take full control instead of navigate around the code of someone else, in between menus and politely ask developers to care to fix the bugs you have. Certainly it won't be the case with everyone, but it is the case with me. It might change in the future and I decided to go back to a game engine but I learned to see the value in frameworks like Love2D and for now I am having lot of fun.
Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot], Google [Bot] and 46 guests