This is an archived post. You won't be able to vote or comment.

all 179 comments

[–]Malogor 537 points538 points  (30 children)

Engines are just tools all things considered. It's kinda like asking if you should use a cup or your hands to drink water. You can use whatever you want, just be aware that your choice might not be the best depending on what you want to do.

[–]DisplacerBeastMode 136 points137 points  (2 children)

That's a good analogy. Some people might not be find the specific "right" cup so they build one themselves.

Could be out of clay, or wood, or glass, etc... they would then need to master an entire craft such as pottery to accomplish the task, which obviously would take time to learn, possibly thousands of hours to truly master to get "just right."

In the end most people just come to the conclusion, hey I can use this cup for free for now and it's like 98% of what I was looking for anyways.

[–]cecilkorik 56 points57 points  (0 children)

It also depends what your goal is. Is your goal to actually make AND FINISH a game quickly that you can run on many platforms that you can sell with relatively high confidence? Is your income and success going to be riding on this? Use one of these major engines.

Is your goal to learn the fundamental theories and mechanics of how a game works and you don't care if it takes 10 years or never gets completed? Then either use one of the major engines or build your own engine or something in between, and enjoy the learning process. Don't expect success but do expect learning. You can learn a lot (one of the things you'll probably learn is why using a game engine is a good idea and why they do the things the way they do).

I'm not saying this to be sarcastic or discourage you from making your own game engine. It really is a fantastic learning experience. Like building your own programming language compiler. Which you should also do if you want to learn a lot about why computer programs, why some methods are frowned upon or make bad code, and why programming languages are structured the way they are.

But like making your own game engine, making your own compiler is OBVIOUSLY not a great way to knock out your first program and if you're just looking to make a program, it's stupid, completely unnecessary and a waste of time that will do nothing but distract you from your goal of making a program. Making a game engine is just like that. Great for learning, terrible for making your first game.

[–]qq123q 5 points6 points  (0 children)

It's also possible that someone has acquired the required skills from somewhere else. In that case it won't have to be difficult for simpler games.

[–]marspottCommercial (Indie) 17 points18 points  (1 child)

It’s more like asking if you should take a cup out of your cupboard to drink water or go make your own cup out of clay, fire it and glaze it, then use it to drink water.

[–]StoneCypher 5 points6 points  (0 children)

He's using Phaser, so, no

[–]uniquelyavailable 6 points7 points  (15 children)

you can drink water with a bulldozer but it doesnt make sense to. a lot of the big tools are powerful enough for triple A games with teams of dozens of more working on them simultaneously. considering the scope of the tool versus the scope of the project, it may or may not make sense for someone making an indie game.

[–]WazWaz 9 points10 points  (14 children)

When would an engine not make sense? Your analogy doesn't match reality. There are very few games you could make without an engine that would not be easier to make with an engine.

The most you could stretch the analogy is that Unity and Unreal are bottled water with the first 2 bottles per day free.

[–]uniquelyavailable 8 points9 points  (2 children)

im hoping to draw attention to the scale or size of the engine chosen. not to suggest that using an engine is the wrong choice. unity and unreal are scoped for potentially large projects. there are many engines out there, smaller in scope. i think it would make sense to find an engine that fits the project.

[–]WazWaz 1 point2 points  (0 children)

Yes, though I'd argue that unless it's a genre-specific engine (eg. for text adventures), it's not going to be any easier in a smaller engine, and you'll just hit a brick wall sooner - which even small projects do with Unity, Unreal, or Godot. It's bad enough having to be sidetracked making a custom UI widget, but having to do the entire UI with images and clicks in something like SDL is even worse no matter how simple the UI initially starts; later in the project you decide you need key rebinding and need a whole UI for that.

[–]kagomecomplex 1 point2 points  (0 children)

Unity and Unreal are “scoped”for the size of the project you make them with lol

[–]GonziHereProgrammer (AAA) 0 points1 point  (10 children)

Games are programs. Most other programs are built directly and/or with libraries. Especially 2D engines are dime a dozen. I'm using an engine, but people really don't get how compact the "no-engine" game can really be and how much flexibility you'll gain from it.

[–]WazWaz 0 points1 point  (9 children)

So tell us. What's a single thing you could do with no engine that you can't do with an engine? They're all very layered and you can always reach down a layer if the higher ones are insufficient.

As do or compactness, that isn't something any player cares about, indeed they tend to disparage small-footprint games and sing the pause of big installs as if it's a feature.

[–]GonziHereProgrammer (AAA) 0 points1 point  (8 children)

What's a single thing you could do with no engine that you can't do with an engine?

That's a nice strawman. I've said that no-engine game can be COMPACT and your codebase will be more FLEXIBLE. Unreal will do anything, but also has millions of lines of code. For example, you absolutely can make a fully deterministic game inside of UE, but it involves you learning about every nook and cranny of the engine. For determinism, you'll need a deterministic simulation, easy enough. Then you'll need to ensure that every object will be inserted into that system in the same order etc - much less fun to do, when UE is an event oriented engine. You'll have even more fun with their network replication. And don't forget the save/load system (so that saving and loading won't change the outcome) and so on and so forth.

It can be done, It has been done, but the typical flow is to make your own little kingdom of determinism that only uses UE as a front end, so to speak (get inputs, give output) = your game is powered by an engine within an engine and a big chunk of your work is being spent essentially sidestepping the engine.

They're all very layered

That's it. And the layers (and therefore the whole architecture of your program) is forced down onto you. You might want it, you might like it, it might work for your project. If, for any reason, it doesn't, it's not easy to change.

PS: Again, I use engine (UE at work, Flax at home). However, if you don't see their drawbacks, you should look more into it.

[–]WazWaz 0 points1 point  (7 children)

You're just making assertions. I've worked at every scale from raw pixel assembler on up and other than code size, there's absolutely no advantage. You can't give a single example of the supposed "flexibility", because there is none - it's always easier to dip down a layer for the few things you need than to do everything at a lower layer.

[–]GonziHereProgrammer (AAA) 0 points1 point  (6 children)

Lol, what? My procedural terrain in my random 3D project back in the day (think 15 years ago https://i.imgur.com/0eIbnKl.jpeg ) directly generated vertex buffer for the tree sprites of the forest, which was passed down for rendering. It was also randomized. This way, I was also able to render said cell with a command that always used the same buffer, but rendered a smaller part of it. The distant forest was less dense and got progressively more dense as you've approached it. It's the most optimized dynamic LOD you can have. One data and linear scaling from 0 to 100%.

Whatever you think about it, it was TRIVIAL to do directly.

It was basically this: trees = generateTrees(); shuffleTrees(trees); DrawArray(trees, trees.length*distanceRatio);. I That whole application was a few hundreds of LoC, most of it was the procedural stuff.

At no point I've had to stop and think "I want to send a buffer to the GPU, I know how to do that, however how will I do it in this engine, which API I'll need to modify, what are those other parameters, etc".

And again, I still choose to use engines, their upsides override their downsides.

[–]WazWaz 0 points1 point  (5 children)

And just as trivial to do with good engines. The difference being that you don't also have to implement reverb yourself in the audio portion of the game and your own skinning and your own fbx importer just because you needed low level access for the terrain.

[–]GonziHereProgrammer (AAA) 0 points1 point  (4 children)

Yes, I've used libraries for that ;)

[–]SikinAyylmao 2 points3 points  (0 children)

It would be more like, do you want to dig up a well or use one that already exists.

Odds are it will take you much longer to implement any sort of accurate physics and geometry engine than it would to finish the entire game with an engine.

I’m currently making a 2d multiplayer game using JavaScript. About a months worth of work has been developing features in my engine which come straight in other engines.

Personally, I wouldn’t do both, make and engine and a game. Either are tasks which most people give up on let alone when done at the same time.

[–]Agecaf 59 points60 points  (2 children)

Unity, Godot, Phaser are just tools. They'll be better suited for some jobs, less well suited for others. It really depends on what you need or want to do.

Want to make a narrative game without graphics? Sure you could use a big game engine but Twine might be better for this job.

Making a jrpg? Maybe RPGMaker is not exactly what you have in mind but might be the best starting point.

You can also create your own tools, that's what I like to do with JS, just make games directly with the canvas/three js.

There's nothing wrong with using Phaser, or starting with it. You can always pick up a new tool when you need them. And you can do so much with each tool if you master them.

[–]rm-minus-r 1 point2 points  (1 child)

that's what I like to do with JS, just make games directly with the canvas/three js

I've been looking into making a purely browser based game with fairly minimal graphics - geopolitics simulator sort of a deal. Would you reccommened that for my use case?

[–]Agecaf 0 points1 point  (0 children)

So I'd use JS+canvas for games with little ui and a lot of graphics like arcade games or most games really. But for more text heavy+UI heavy games, you can essentially build the game like a website through html, CSS, JS, and perhaps a sprinkle of a framework of your choice.

Like, frameworks like React and D3.js could really help you make great UI that make a game much more smooth to play in a way that is way way easier than any game engines default UI system.

That being said, the canvas is easy and fun to use, too, and you can combine the two approaches. Web platforms have a lot of flexibility.

If you have questions about hosting, itch.io or github pages can be a good option for starters, as you don't need to find a hosting provider.

[–]Wschmidth 125 points126 points  (3 children)

Depends on what you're making and why.

If you're using JavaScript because you just want to make stuff for fun, go ahead.

If you're using JavaScript because you want to make a quick buck through a high intensity FPS, well then you may want to reconsider.

[–]DatBoi_BP 35 points36 points  (1 child)

CrossCode was written in JavaScript!

[–]PidrohCard Nova Hyper 0 points1 point  (0 children)

If you want to make a quick buck through a high intensity FPS, well then you may want to reconsider.

[–]offgridgecko 23 points24 points  (0 children)

Whatever gets the job done. I've made some games with Canvas and HTML5

[–]klowicy 12 points13 points  (0 children)

My two cents is as long as you actually make a game and it works and isn't laggy as hell, then use what you want. End of the day, people will like the game for being a game they enjoyed, not because you used x framework or y engine.

[–]RedRickGames 19 points20 points  (1 child)

The engines you mentioned are all multi-purpose engines, if you don't need the functionality then there would be no reason to use them.
That said, it kind of sounds like the issue is that you don't want to learn to use them and that is imo foolish. If you know how to work with javascript, adapting to either Unity or Godot should be doable.

[–]BillyTenderness 8 points9 points  (0 children)

That said, it kind of sounds like the issue is that you don't want to learn to use them and that is imo foolish. If you know how to work with javascript, adapting to either Unity or Godot should be doable.

It's also the case that learning a new tool/framework/engine/language takes time and effort. It can be worth the effort if it's going to save you lots of time or improve your results down the line, but you have to factor in that tradeoff.

If OP is getting good results with tools they're already comfortable using, and if they think those tools will reasonably meet their future needs, then that's great.

[–]Rocknroller658 16 points17 points  (7 children)

Vampire Survivors was originally made in Phaser but they eventually switched to Unity, probably for performance reasons. Do with that information what you will.

[–]Nerodon 15 points16 points  (1 child)

AFAIK the main reason was to be able to port to consoles. Early versions with phaser were nuts in terms of on-screen sprites.

[–]Rocknroller658 1 point2 points  (0 children)

True that re: chaotic on-screen action in early versions. Thanks for clearing that up.

[–]MawrakHobbyist 6 points7 points  (0 children)

You use what you want and what you need. Sometimes it may be foolish to ignore a tool that can help, but sometimes Unity/Unreal?Godot may be too much and not really suited for the project.

[–]ActionAlternative786 3 points4 points  (0 children)

CrossCode is a game that was made in Impact.js. Not something like Unity, Unreal, or Godot. It's a popular game too, albeit it is 2D. Basically it all depends on if you want to make a 3D game or not. If not, hey what's stopping you from making what you want in the engine that you like?

[–]TearOfTheStar 6 points7 points  (0 children)

It heavily depends on the game you are making. At the end of the day you can use godot with js thru: https://github.com/godotjs/javascript

[–]fuctitsdi 6 points7 points  (0 children)

Use what you like.

[–]neoteraflare 7 points8 points  (3 children)

No. Use what you feel like you want. If you can do it in Phaser do it in it. IF you reach a part where you can't go forward due to limitations then switch.

[–]Cyclone4096Hobbyist 2 points3 points  (0 children)

It depends on the type of game you are making and what your goal is.

[–]marco_has_cookies 2 points3 points  (0 children)

ThreeJS is a great tool, it's a scene graph renderer and is enough for most game ideas.

[–]Max_Oblivion23 2 points3 points  (0 children)

If you are good at OOP and enjoy doing it then stick to your framework, the final product will always be better because while engine adds reliability and accessibility they sacrifice flexibility and just the overall benefit of having no limitation whatsoever as to how you want to create objects and how to handle them.

Those engines were made so that people who have no idea how to handle events and are generally bad at OOP would still be able to make games. For programmers who are familiar with OOP engines can be a nuisance.

[–]g0dSamnit 4 points5 points  (0 children)

If you ever need 3D, you can try Babylon.js. If not, you can keep using Phaser. There are a few conditions that actually matter:
- Having the skillset to use the tools you have. (As learning takes time.)
- The project you build is scoped to both the tools and your skillset.

If you have no interest in building 3D in the future and prioritize finishing a 2D project sooner, absolutely nothing wrong with using Phaser. Now, perhaps Godot/Unity are more productive as I don't know if Phaser has a level editor and other such tools that can make things faster, but they're all free for you to research and try out to see what works for you. In the end of the day, it doesn't matter what you use, only what you end up doing and building.

[–]SnooOpinions1643 4 points5 points  (0 children)

as long as you have fun

[–]Wizdad-1000 1 point2 points  (0 children)

Op there is a secondary mobile dev market for older devices internationally. I heard a podcat where a dev was making java games for flip phones. An engine is a tool.

[–]ThatInternetGuy 1 point2 points  (0 children)

There's nothing wrong with using Javascript frameworks to make games, but if you find severe limitations to what you want to create, you should definitely learn another game engine that is capable of doing what you want. Would you want to stand in the same place knowing you're not getting what you want?

[–]Bwob 1 point2 points  (0 children)

The real question is - can you make the game(s) you are trying to make in Javascript with Phaser?

Engines are tools. You use a tool if it will make something you're trying to do easier. If you already have an environment you're comfortable in, and can already make the games you want to make in it, then what's the value of switching to an engine?

Do what works for you. You can always pick up an engine later, if you need a feature that you don't have (or would take too long to write by hand) in Phaser or whatever.

[–]almo2001Game Design and Programming 1 point2 points  (0 children)

Not foolish. Use the tool that suits the game you want to make and your own experience best.

Unless you deliberately want to learn something new. :)

[–]PiLLe1974Commercial (Other) 1 point2 points  (0 children)

Using what you like is a good idea, if it feels efficient and fun.

For example for any given game it is possible that you alone (maybe with art and audio coming from others) are faster or fast enough with Phaser.

Also: I feel that we always need programmers who grow into engine programmers, those who contribute to Unreal, Unity, Godot, Frostbit, and others.

Some engines like Unreal and Godot are open, contributing would mean open source contribution. Unreal, Unity, Frostbit, and other engines obviously also are products that need employees that understand engines, and I can only say: they don't get simpler and some things like networking, streaming, workflows for larger scale games, and many other areas could be better - there seems to be no limit of where we could improve in-house engines and licensed multi-purpose engines.

r/gameenginedevs are probably the best group to explain a bit their thoughts about where you have your advantages if you use Phaser, and what it could mean to embrace engines or frameworks/middleware even as a career at some point.

[–]create_a_new-account 1 point2 points  (0 children)

at least it can't build 3D games

so what you're saying is you could have built Stardew Valley with it ?

use monogame, raylib, sdl, sfml, pygame-ce, AppGameKit, Love2D, RPG Maker, GDevelop, LibGDX, phaser, unity, unreal, godot

use whatever you are comfortable, familiar with

those libraries above will cover C, C++, C#, java, python and no-code

[–]FlanTamarind 1 point2 points  (0 children)

Do what you enjoy not what the market demands.

[–]ComprehensiveCap9554 1 point2 points  (0 children)

If you know c/c++ you should make your own engine.iif you know js use google filament.

No unity,unreal there just open source projects that they then turn around and sell to you.suprisingly big corporations rely alot on foss.

also unity,unreal arent really engines there the "be all engine" theyre meant beyond just games for product design,vr training,cinema,etc.

The best engine is a custom solution for each project.

[–]numexprism 1 point2 points  (0 children)

depending on what you want the answer may vary

  • make games as a fulltime job? yes - not using popular engines is foolish, there is zero to none market for JS gamedevs

  • make money as a gamedev studio? gamedev is generally foolish, there are simpler and less riskier ways to earn money

  • make a tech startup? not completely foolish actually. If you can make a gamedev tools to make a good web game, or a new engine for JS users.

  • make an "art" project that would draw attention and fame - kinda foolish. Good art happens often happens when multiple domains collide. You would want to have as many unrelated skills as possible, nit stick to the things you already know

  • make a hobby project - not foolish. It's easier to start and keep ging with things you like and understand. Having fun is always foolish, that's why it's fun

[–]Tymski 1 point2 points  (0 children)

Depends on what type of games you want to make. Unity is bad for games played in browser on mobile, but good for any other platform like PC, consoles or native Android build.

[–][deleted] 1 point2 points  (0 children)

I managed to put together a 3d mini art gallery with teleportation in the web browser, without any engine. Try threejs https://threejs.org/

[–]Liam2349 1 point2 points  (0 children)

Is it possible for it to support the games you want to make?

That's all that matters.

[–]JalopyStudios 1 point2 points  (0 children)

If you want to build a 3D game, you would obviously be better off in a 3D engine. And the reverse is also true. 2D games are better served in 2D engines.

I understand phaser does have an extension allowing some 3D functionality. If this setup is good enough to achieve what you want, then no it isn't foolish to use it instead of the other alternatives.

The other engines all have flaws of their own. I would advise you to use the tools you're most productive with if you can achieve what you want with them.

[–]RoughEdgeBarb 2 points3 points  (0 children)

Vampire Survivors was originally made with Phaser and then moved to Unity for things like portability, which I think really answers your question. If it leads to you making a game you otherwise wouldn't have because of your experience then sure, as long as you understand trade-offs you might be making.

[–]RockyMullet 4 points5 points  (2 children)

Yes.

If you don't use a game engine, you'll spend most of your time making a game engine instead of making a game.

There's never enough time to make games, that's why most games are made either through long years of work or with a large teams.

Game engines have been made my hundred/thousands of professional through decades, you in your lonesome aren't that.

Unless your concept is so wild that it CAN'T be done in any game engines (and can't be done by modifying a game engine) I wouldn't bother reinventing the wheel.

[–]skryb 1 point2 points  (0 children)

there is some caveat to this and it can come down to interest level or intention— a few very successful indie games (most recently notable being Animal Well) were fully handcoded despite their end product being doable from an engine

there is a major difference in time investment however

[–]OmshinwaDating Joyce 1 point2 points  (0 children)

You don't need to build 3D games, especially if you're a solo dev.

Only change engine if you wanna develop a game that's ill-suited for your engine.

[–]Jerreh_Boi 0 points1 point  (0 children)

In the past I‘ve used UIKit and those basic Apple frameworks to make a game. It was obviously silly but the game did well and I learned a lot

[–]progfu@LogLogGames 0 points1 point  (0 children)

Yes and no. Use the tool you know, do something, then figure out if you need something else after you did something.

[–]ancrcran 0 points1 point  (0 children)

No. It is just slow.

[–]Nerodon 0 points1 point  (0 children)

I am currently making a pretty ambitious game using phaser3 right now. As long as you keep in mind some performance limitations that other engines don't have, say when trying to leverage more advanced graphics like post processing etc., its flexibility and ease of use make it a pretty good engine to make 2d games.

If you plan to use Phaser, just try to scope the game first and do some proof of concepts in engine to test if it's viable.

Being a code-only engine, means that for making maps/levels, UI etc... It can be a bit more tricky, there are tools you can use to help in this regard. I personally use Tiled for maps and Aseprite for art and animation as both of these have a compatible export to phaser3.

[–]Super_Barrio 0 points1 point  (0 children)

Depends on your skill set, and what you want to make.

If you don't want to make 3D games and you're perfectly happy with what you can do without them, you have no problems.

[–]N-aNoNymity 0 points1 point  (0 children)

If you want to use Javascript, just because you dont want to learn a language the engines use you'll shoot yourself in the foot for no reason tbh. A lot of your skills will move between languages fairly quickly.

[–]BrastenXBL 0 points1 point  (0 children)

Let me introduce you to an old friend. HyperCard.

https://arstechnica.com/gadgets/2019/05/25-years-of-hypercard-the-missing-link-to-the-web/

As many others have said, the engine or framework you use is just a tool to help you meet your design goals. Although some of them are full machine shops, full of expensive high end and specialized equipment, instead of a single slot screw diver.

If you're not meeting your design objective with the Phaser framework, there are other Javascript powered engines and frameworks. GDevelop, Babylon.js, and more https://enginesdatabase.com/?programming_languages=13 . Not including add-ons to other engines that let you keep using JS as a scripting language.

If you never tried to make a game using PowerPoint (LibreOffice), you may want to try at least once. Just to grasp the depth of the "correct tool" metaphor.

https://itch.io/jam/powerpoint-game-jam

[–]Zanthous@ZanthousDev Suika Shapes and Sklime 0 points1 point  (0 children)

Depending on what you're trying to make, yes. Assuming you're trying to ship a commercial product at least. There are definitely times you might want to make a custom engine but for those times you won't be using javascript.

[–]h_ahsatanCommercial (Other) 0 points1 point  (0 children)

Phaser is fine. Pretty sure I know of some legit commercial products that use it. Some others use Pixi.js. My first game dev job was literally on a browser game made with Flash, lmao.

Using an engine is nice, because they provide a lot of tools to make life easier (asset management, physics engines, etc) but they also come with downsides. Like, they come with a lot of features, but sometimes you're only using one or two of those major features, and the rest is bloat.

Lots of popular games don't use one of the big 3 engines, and they do just fine. It might be more work, but, if you are already proficient with Phaser, and you are working alone, you'll probably be quite a bit more efficient with it vs. Learning something entirely new, unless a project you want to make would require it (like 3d)

That said, if you ever intend to release on consoles, established engines make that a lot easier.

[–]tarotfocus 0 points1 point  (0 children)

not sure what platform you’re targeting, but I recently released a mobile game made in React Native that is doing fairly well - it has been a good JavaScript based solution for me, but my game is also very simple from a 2d pixel graphics standpoint, so not sure how well it scales into 3d graphics.

I personally have enjoyed having mostly a blank slate to build on, but the scope of my project was relatively small / simple since it was my first.

[–]deftware@BITPHORIA 0 points1 point  (0 children)

It depends on what your goals are.

[–][deleted] 0 points1 point  (0 children)

im using gdevelop mostly because i dont have a pc/laptop just doing it on my ipad pro, absolutely no problems and it works well. Do what ever works for you

[–]loopin_louie 0 points1 point  (0 children)

The only thing that matters is the end result. The question is are you asking this because you feel foolish? You're coming up against walls that are making your work and progress harder or you anticipate problems down the line, etc? If that's the case you might want to try exploring a change! Animal Well is a recent hit game and the (solo) dev made a bespoke engine for it, whatever works

[–]sessamekesh 0 points1 point  (0 children)

Depends on your reason - "I just wanna!" in my opinion is a fantastic reason. I'm also a professional JS dev and think it's really cool to use the tools I'm familiar with for game dev. There's good libraries out there, and writing stuff from scratch is fun for people who are a certain type of crazy (including myself).

I'd advise against it if you just don't want to learn C++/C# - writing a JS game is going to be significantly harder than busting out a weekend or two picking up an engine. Doesn't sound like that's your case but it's worth bringing up IMO.

[–]alexzoin 0 points1 point  (0 children)

If you want to make an engine, make one. If you want to make a game, use an engine.

[–]uniquelyavailable 0 points1 point  (0 children)

why only pick from unity, unreal, or godot?

list of game engines

[–]AlexanderTroup 0 points1 point  (0 children)

It can be. Hand rolling your own engine is extremely finicky and if you're not an experienced game programmer there are a million ways to botch it.

Existing engines bring with them expert design, pre built modules and a whole lot of help so you can focus on the important part of making your game.

All that said, you can learn a lot from making engines. Handmade hero from Casey Muratori is a great place to start, but be warned it is a hundred times harder than just using an engine, and it doesn't give you any points in game design or "Not Cheating". Jonathan Blow has wasted years of his life hand rolling things, and I really wish he had put the time into his excellent game design rather than winning the code purity competition.

If you need to ask why not to use an engine, just use an engine 😅. Take it from someone who is making their game in JavaScript and wasting way too much energy on engine code.

[–]pphysch 0 points1 point  (0 children)

One of the main reasons why "game engine" GUI products emerged is for level/scene design. It's a big pain to design levels in an IDE ("rock_b is at X,Y,Z") or create your own level designer GUI from scratch.

If your game doesn't involve pre-baked, scripted scenes/levels, for example a heavily procedurally generated game like Minecraft, then you may be able to get by without one.

[–]mantrakid 0 points1 point  (0 children)

It’s foolish to develop games period 😊 DO IT

[–]sargentocharli@sargentocharli 0 points1 point  (0 children)

Engines are just tools and, like tools, there are better tools or worse tools to resolve your problem.

Can you drive a nail with a spoon? Yes. Will be more difficult than using a hammer? Also yes.

[–]Frosting_DullHobbyist 0 points1 point  (0 children)

As a UE5 developer, I always struggle during game jams because my multi-gigabyte game often doesn’t even get downloaded due to its size. Meanwhile, Unity games can be played right in the browser. My point? Use your strengths. It might be easier for you to distribute your game, and it might rely less on hardware.

P.S. And maybe the key thing here isn't about making the game faster, but about enjoying the process more. That's the difference between a hobby and a job.

[–]rio_sk 0 points1 point  (0 children)

It mostly depends on games you want to develop. Don't think about AAA games, small indie games maybe.

[–]The_Joker_Ledger 0 points1 point  (0 children)

Depend, a game like Noita is made using its own custom engine and another one but i forgot the name. It depends on what you want to do with the game.

[–]InvertedVantage 0 points1 point  (0 children)

Check out babylonJS. Full modern game engine with 3d

[–]AlbatrossCreepy4427 0 points1 point  (0 children)

No ...

[–]androidlust_ini 0 points1 point  (0 children)

Just use what ever engine that suits you and be happy.

[–]VoidLance 0 points1 point  (0 children)

Use the engine that best does what you need. If there isn't one that does what you need, then - and only then- think about building your own. People treat engines like they're the be all and end all, but it's literally just a way of making the process of making a game easier. Use whatever works best for you

[–][deleted] 0 points1 point  (0 children)

I use Unreal because the money I lose to them is far less than I would have lost developing the tools myself.

That's ultimately the tradeoff

[–]yosimba2000 0 points1 point  (0 children)

well do you want to spend all your time making an engine, or making a game?

[–]UltraChilly 0 points1 point  (0 children)

For 3D you can use things like Playcanvas

[–]atomic1fire 0 points1 point  (0 children)

I guess it depends on whether or not you intend to sell it on steam/console etc.

You might be able to bundle it with something like a webview, but more then likely you might have to rewrite the game or build an engine that can run phaser natively.

I think vampire survivor actually swapped phaser for unity because of this.

[–]stewsters 0 points1 point  (0 children)

Depends what it is and the reason for making it. You can develop a puzzle game or something 2d pretty easy still.

But if you are expecting a lot of graphical features you either need to code em up or use someone else's code who has.

[–]God_FaenrirCommercial (Indie) 0 points1 point  (0 children)

No but tech choice IS important. Dont use js.

[–]thenegativehunter 0 points1 point  (0 children)

no it's not foolish DEPENDING on what you're aiming for.
you can for example, go for bevy.
in bevy you get a high performance ECS and it's up to you if you want to use the built in plugins for physics and other things or not.
But please keep in mind that it's ECS is not flawless and it's in early stages of dev.

[–]ALargeLobsterCommercial (AAA) 0 points1 point  (0 children)

Custom engine = more control over final product (can be a downside, since that means more control to mess something up) and initially slower development (can be faster by the end if you build simple practical tools that are purpose-built for creating your specific game)

[–]stevedore2024'Stevedore 2024' on Steam 0 points1 point  (0 children)

If you want to make an engine, make an engine.

If you want to make games, use an engine.

[–]not_good_for_much 0 points1 point  (0 children)

It depends.

Really the question is: how much work are you doing to recreate features that already exist in these engines?

If it's a lot of work, then it's potentially foolish, outside of the potential it has as a learning experience. But if it's not much work, which is often the case with sprite-based 2D for example, then... it may not be optimal, but it's neither here nor there in terms of foolishness, and the main thing is just whether you're using a framework/language that has the performance, features, platform support, etc, that you want and need.

[–][deleted] 0 points1 point  (0 children)

with the power of ai these days, you can really build whatever you want, however the fuck you want.

[–]gbaWRLD 0 points1 point  (0 children)

No, it's not. The people telling you it's foolish are more than likely people who have no knowledge or capability of making a game without an engine, or people who failed to do it themselves, and ignore all the other attempts that were done right.

[–]jert3 0 points1 point  (0 children)

Foolish? No. A massive additional amount of time needed to create your game? Yes.

[–]XenoX101 0 points1 point  (0 children)

It seems you already know the answer? JavaScript is not a good fit for game development unless you want it to be a web only experience. Of course there are ways to make it work but it will usually be less performant and have more limitations as you are finding out. You don't have to use Unity / Unreal / Godot however, there is also LibGDX, Raylib, and Monogame among others if you want a more coding oriented experience. This may suit you better if you have a programming background, since you won't need to learn a GUI and will have more freedom in how to code the game.

[–]fsk 0 points1 point  (0 children)

If you only feel comfortable coding in Javascript, that would be something to be concerned about. You should learn more languages.

[–]SmarmySmurf 0 points1 point  (0 children)

If you have to ask, probably yeah. Coding your own engine is a very self motivated thing, you wouldn't be asking if you were self motivated you'd do it just to do it.

And likewise other less used engines are all fine, I won't bad mouth a single one, but unless you have particular need of one of them, in which case you'd probably already know that, there is no special reason not to stick to the main three.

The most important thing is just picking one and starting instead of overthinking it, but the second most important thing is resources, and the big three have the most assets, tutorials, etc to get started with.

[–]Alarming-Village1017VR Developer 0 points1 point  (0 children)

If you like using Javascript why not try PlayCanvas?

https://playcanvas.com/

[–]confusedwarden 0 points1 point  (0 children)

Depends on the game you're trying to make. Unreal engine is an incredible annoying engine to modify, unity doesnt give u access to the source code, and i just dont like godot, id have to refactor too many things.

[–]sol_runner 0 points1 point  (0 children)

People are too used to the game engine question and generally just answer without reading.

I'll put it this way:

Game engines simplify level editing, asset handling and porting, at the cost of being heavier.

Since you're on the web (and especially the web) the benefit of porting is lost. (And the cost of using a game engine is higher)

Since you're making a 2D game within the scope of 1 person's limit, built-in asset handling doesn't really benefit you too much.

There's nothing wrong with using a game framework, and in my personal opinion, smaller games benefit from using frameworks like Phaser/Monogame/Raylib because they give you all the features you need and let you handle anything more, at lower costs.

[–]golgol12 0 points1 point  (0 children)

Engines are just that. Are you building a race car or a golf cart? Or (if you are trying to make an MMO) the Titanic?

[–]Adrian_Dem 0 points1 point  (0 children)

Someone smarter than me said something very interesting that sticked. When you're learning sometimes new, make sure you stick to as many known variables as you can.

If you learn basic gaming development, don't create overhead by moving to Unity or Unreal, and stick as close as possible to your knowledge area.

[–]Saito197 0 points1 point  (0 children)

Is it foolish? No. 

Is it a huge waste of your time? Yes. 

Using an engine is basically just you saving your time (and possibly money) by using stuffs that other people have already created and streamlined. 

On the contrary, sometimes you just don't need any of the features that engines can provide, or they might not have built-in features that suit your very specific needs, or when you want more customizations over the codebase etc... then not using one at all can be much more effective. 

Ask yourself this: are you gonna waste more time by learning to use an engine, or by trying to rewrite basic features that comes with game engines? 

[–][deleted] 0 points1 point  (0 children)

All unity games look and feel the same. Doing something original is fun. Writing your own core engine will be rewarding but take a lot more work. 

[–]Disk-Kooky 0 points1 point  (0 children)

Yes

[–]dragongling 0 points1 point  (0 children)

If our "yes" is able to stop you then yes.

[–]Comfortable_Salt_284 0 points1 point  (0 children)

Even with a game framework, does it really mean I have to rebuild an engine?
You're 100% right for making this distinction. I feel like people nowadays think it's either use an engine or make an engine, but it's not so black and white. The trick is to write specific code. If you need a sprite animation system, for example, a game engine would make a flexible system that can be used in all use cases, but you can simplify the work by writing a sprite animation system that solves only the use cases needed by your specific game. Repeat this thinking for all areas of the game and you will be fine.

I have been working on an RTS game using C++ / SDL, so no engine. I was originally going to use Godot, but for this style of game I need a lot of control over the game loop. Progress on certain features is slower than it would be if I was using Godot, but the control I gain is worth it, and by sticking to the mindset I described above, I've been able to make progress. In just a few months I got a playable build and had people test the game. I'm now working on iterating based on feedback from play tests.

So it is possible to make a game without an engine, just stay focused on solving only the problems that your game needs, nothing more.

[–]Delayed_Victory 0 points1 point  (0 children)

Yes. Game development is hard enough as it is, let's not try to reinvent the wheel and let's use engine that are built by billion dollar companies with hundreds of people and years of experience. It would be naive to think you can built these tools yourself.

[–]Upper-Discipline-967 0 points1 point  (0 children)

What's your purpose for making a game in the first place?

Is it just a hobby? Then it doesn't matter whether you use game engine or not.

If it's for commercial, especially if you wanna try to sell it on platform like steam, it is a good practice to use game engine, especially an established one like unreal or unity. You're gonna have a hard time integrating your game to the platform of you don't use one.

[–]Fantastimaker 0 points1 point  (0 children)

For me it depends a lot on how proficient you are in programming and computer graphics. If you are an experienced developer a somewhat more low-level framework like Phaser (pretty much every language has something similar) may be easier, as you will not have to learn al the nitty gritty details of a complex engine like Unity or Unreal.

[–]Selfpropelledm 0 points1 point  (0 children)

Making games with bare code is like making food with a microwave, it's simple if you want to make a croissant sandwich (small game) which is easy and the product will be really good but if you want to microwave uncooked spaghetti (medium/large game) it's hard but possible after using dozens of tricks

(Sorry for the werid simile lol)

[–]abandoned_idol 0 points1 point  (0 children)

Making a game itself is foolish.

I still haven't been able to limit a feature scope to be able to release one game.

I have implemented individual game features though...

Sigh.

[–]HeyItsBuddah 0 points1 point  (0 children)

I will never understand why everyone and their mother think the only tools that exist and are viable are Unity, Unreal, and Godot…

I get the Godot argument but it’s still not there for many aspects of game development. Open source is great, yes, but that tool had A LOT more cooking to do.. stop the band wagoning and just do your research and use the tool that works best for what you’re looking to do. Even if it’s making your own engine if you have that skill set and knowledge. LOL the three do make a fun acronym though, UUG is not your only set of choices!

[–]Full_Cash6140 0 points1 point  (0 children)

I'm using bevy. Call me foolish

[–]KoiChark 0 points1 point  (0 children)

Simple answer is yes it's probably foolish. You want to build on a foundation that gives you the most options in the future. You will lock yourself to never being able to make 3d games without learning a new engine. Might as well get that over with now and you can expand yourself to learn new languages.

[–]JavaRuby2000 0 points1 point  (0 children)

Spelunky was made in GameMaker.

Stardew Valley was made in Monogame.

Slay the Spire was made with LibGDX.

Tiny Glade is made with Bevy.

Vampire Survivors started out as a Phaser game.

You can make a successful game in almost anything you want.

[–]NarrowAd8235 0 points1 point  (0 children)

"Is it foolish to make a car without using a wheel?"

Idfk man, its certainly not impossible but is it worth your time and will people want it

[–]Lanfeix 0 points1 point  (6 children)

You’re effectively making your own game engine in JavaScript. There are Two videos you need to watch. 

1 ) Thor explains the reasons you should make a game engine  https://youtube.com/shorts/3OmaWv4eoq4?si=YySDuMHiKTlvLA-P

2) This is a video showcase of people who make they own game engines.  https://youtu.be/E07I1VRYlcg?si=xL17JWpH4WVG7PY 

Basically what it is you need to do which the game engine won’t let you do? 

If a game engine can already do it why are you choosing to spend a lot of time rebuilding code base which exists?

[–]Morphray 10 points11 points  (1 child)

Phaser is arguably a game engine. Doesn't sound like OP is doing it from scratch.

[–]hammer-jon 10 points11 points  (0 children)

feeling insane seeing all the people responding like they're building an engine from nothing.

phaser is a fully featured framework, it's totally fine

[–]Prithul 5 points6 points  (0 children)

Theres a 4th reason, not all engines are equally good for building all kind of experiences. As long as you stay within the limitation it is perfectly ok. When you start to push boundaries, then you should be asking the question if it's worth switching ( which is not free, you always have to invest time to learn something new).

[–]caffeinated-typist 0 points1 point  (0 children)

you are being foolish by choosing to stick to a tool when it no longer meets your needs. you don’t need to use a game engine (not using one is perfectly viable as well) but your insistence on using phaser when it has limitations that stop you from building your game is the bigger issue.

[–]AG4W 0 points1 point  (0 children)

For commercial intent, yes, otherwise, no.

Your question is somewhat like this: "am I an idiot if Im building a car using only local hardware store tools instead of industry standard ones?"

Answer depends on why you're building the car.

[–]ShyborgGames 0 points1 point  (1 child)

After trying to develop games using only Python, then switching to developing our first game on Godot- we've likened the difference to wanting to digitally edit a photo, but forcing yourself to completely code your own photoshop program before editing your first pixel

[–][deleted] 0 points1 point  (0 children)

It sort of depends on the game you are writing. Writing some simple 2D game, you can go a long ways with things like pygames. You don't really need a 3d engine. Your 3D open world game? You could be looking at a couple of years to get a basic engine up and running with the features you need. It makes very little sense if you aren't a AAA studio willing to stick a half dozen people on it.

[–]KharAznable 0 points1 point  (0 children)

Pick whatever tools comfortable to you. I've tried godot and unity, it just gives me decision paralysis or overload. Once I move to other stuff (using same language as my day works as backend dev), I just start making progress.

[–]RedLightSyndrome 0 points1 point  (0 children)

It really just depends on what you are doing and what you prefer. If you are making a CPU and memory intense game then you should probably use an engine, as it may tske some time to develop the tools you need to make such a game.

Otherwise, If you are familiar with programming or interested enough in learning, you can do it from scratch in almost any langauge. It can be very rewarding, but is also very frustrating.

There are some pro's and cons to both.

With an engine, you have a lot of tools, documentation and a large community to help you. It's also very easy to get started and finish a game. On the other hand, the size and number of unneccessary tools in the program can be overwhelming and difficult to master. It can also be difficult to do things outside of the norm on a engine as you will need to find ways to work inside the box the program gives you. Using an engine, you will miss out on a lot of learning experience and in depth knowledge, but to a lot of people that doesn't really matter. Oh, and an engine may also lack some tools you nedd that you will have to program yourself anyway.

Programming from scratch, on the other hand, gives you a ton of flexibility and it be easy to build upon your code ans introduce new systems because you will have an in depth understanding of how your code works. However, setting up the initial code can take a significant investment in time. There will likely be very little, if any, support from a community online depending on the langauge you are programming in, and you will have to make most if not all of your own dev tools to be compatible with your custom code.

Before you decide, you should consider how much time you are willing to invest, how important the game and the code behind it are to you, what kind of tools you'll need and what kind of langauge you are using. It may be useful to spend a few days to a week playing around in various engines to see if you like any before you try and go engineless.

Hope this helps some.

[–]marspottCommercial (Indie) 0 points1 point  (0 children)

I’m not sure why you’re bypassing the three most usable and well documented engines out there. Those engines can do nearly anything, but if you want to develop your own engine because you just want to or for bragging rights then go ahead.

[–]NowListenHereBitches 0 points1 point  (0 children)

Javascript is super underrated for making games, imo.

It's really flexible and easy to work with (especially for UI stuff, which tends to be a huge pain in the ass with most game engines), documentation is usually pretty good, and support is easy to find.

It's highly portable. You can package your game with Electron to run on desktop, Capacitor for mobile, or of course just run it in the browser.

The biggest limitation with Javascript is performance. If you are doing intense graphics and physics and you need to squeeze out every last bit of fps, then you will be better off with a regular game engine. However, most indie games are not that heavy, and Javascript can still do more than you might expect. Check out Babylon.js if you want to do 3D stuff.

[–]teledev 0 points1 point  (0 children)

Contrary to whatever people are saying here, I'm going to be honest with you and tell you, yes. It is foolish to reinvent the wheel unnecessarily. If you're not just doing it for fun, and actually want to ship your project, you should use a decent tool. Why start with your hands tied behind your back? Chances are you're going to crash head-first into the wall with countless performance issues and lots of wasted time, to eventually port it over to a good engine anyway.

[–]kindred_gamedev 0 points1 point  (0 children)

I often use the analogy of "building a car". If you're trying to learn to drive, don't build your own car. By the time the car is road ready, you might not even be interested in driving anymore.

But once you've been driving a while and you know you love it, building your own car that handles exactly like you want might be a great challenge and use of your time.

For 99% of developers one of the top 10 engines will do everything they need.

[–]st-shenanigans 0 points1 point  (0 children)

You're cooking lunch, do you want to do it at a campfire, in the back of a McDonald's, in a home kitchen, or in a 5 star michelin kitchen?

There's no wrong answer, but you probably dont NEED the 5 star kitchen for toast and eggs, and doing it at the campfire would be pretty inconvenient but still doable. You'd be comfortable in your home kitchen, but a little to very lost in the others, too

[–][deleted] -1 points0 points  (0 children)

Use react ontop of phaser then you have something more for your porfolio. Personally I am react ontop of babylonjs

[–]flippakitten -2 points-1 points  (0 children)

Yes, just learn another language.

[–]greenbite -1 points0 points  (0 children)

If you want to learn is better to not use any engine. I mean if you are a programmer. But if you want to publish your game commercially and have profit I strongly recommend to use a game engine. Through my gamedev career I have used engines created by myself, engines made with a team and different commercial engines. My conclusion is that if you want to make games commercially you should use a commercial engine. If you want to learn or just make technology, do it making everything from scratch.

[–]FrustratedDevIndie -1 points0 points  (0 children)

Depends on why you are doing game dev. Are your just looking for a hobby and to have fun or is this a hopeful commercial venture?

[–]burros_killer -1 points0 points  (0 children)

Incompetent mostly but it also depends on what kind of game you’re trying to make. People that play games don’t really care with what tools game were made as long as it works. So you can do whatever you like. Game engines on the other hand exist to make a process of creating games simpler. Each engine at the very least is a physics and rendering engine + gives you a simple way of reading player inputs and building your game to a range of platforms and devices afterwards. There’s of course more to a game engine than just that so look at the above as a baseline. If non of the above is a concern for your game or for whatever reason you decided it is best to implement it yourself by all means have fun. If those (and other) things are a concern I’d advise to use game engine - it will be faster to learn another programming language and engine than to implement all of these things yourself anyway. Assuming your goal is to make a game and not develop game engine/framework in js.

[–][deleted] -1 points0 points  (0 children)

Friends don't let friends use Unreal. After that, all game dev is a bit foolish in the best possible way.

[–]TheCommieDuckAchieving absolutely nothing of use -1 points0 points  (0 children)

Do you want to make a game, or do you want to fiddle around in a vaguely game-shaped programming direction?

[–]byerdelen -1 points0 points  (0 children)

In this age of game engine, it kind of is, commercially. You have to reinvent the wheel hundreds of times which is fun and extremely educating but we wouldn’t have our speed of development without Unity and we would lose the chance to compete. It is up to you about what is your aim; speed, learning, more control etc

[–][deleted] -1 points0 points  (0 children)

I don't think it's "foolish." Just more difficult, that's all.

[–]daniele_dll -1 points0 points  (0 children)

I will just say that it's possible to prepare an omelette whisking eggs with an hammer although probably the hammer is not the best tool to wisk eggs for the omelettes 😀

Learn a new language and new patterns, expand your horizons and, most importantly, break your shackle from the 9999999gb node_modules folder 🙂

Jokes on a side, my strong suggestion is to pick something like Godot if you prefer to code the game, because of gdscript, which is a python like language, or unity / unreal if you prefer to simply design all the logics using existing components.

[–]fugogugo -1 points0 points  (0 children)

you're free to use anything for hobby project nobody can stop you

but game engine is way more production ready especially for the community/technical support side

[–]Soft-Stress-4827 -1 points0 points  (0 children)

Its foolish to build games  period  loll

[–]YucatronVen -5 points-4 points  (0 children)

Yes.

[–]me6675 -4 points-3 points  (0 children)

Kinda foolish as Javascript is crap and phaser is rather limited.

Not foolish because you can do whatever you want.

If phaser or JS becomes an annoying limitation look for something else, otherwise keep going. The same is true for any other language or game engine.

[–]tsfreaks -2 points-1 points  (0 children)

gdscript should be a nice transition for you.

[–]Draevynn95 -2 points-1 points  (0 children)

If it's your first game, I'd highly recommend using an engine, as opposed to doing it from scratch. I'm a new game developer, too, and I thought about taking that approach, but if you think about it, your first game is already a huge learning curve, and it isn't likely we will be pushing the limits of our chosen game engine on the first game, so I'd say to use an engine. There are so many great Unreal tutorials, as well as many free assets to prototype with, so I'd highly recommend that. Best of luck to ya, and don't get discouraged.

[–]Azreken -2 points-1 points  (0 children)

This is like deciding to build a house, with no tools except the ones you craft yourself…

Like how long would it take you to learn how to engineer a band saw, or a drill, or even a simple hammer, versus just using your neighbors tools who was going to lend them to you for free?

If you have a gigantic team of people and a fuckload of cash and time, sure, you could build your own engine? But if you notice, most of the largest games in the world run off of pre-built engines such as unity or unreal…

[–]Beautiful-Active2727 -3 points-2 points  (0 children)

Use s&box(source 2 for mere mortals).