General discussion on game engine creation in relation to game development

SystemSystem Posts: 31
edited November 2021 in General Chat
This discussion was created from comments split from: Rabbits vs Marblez- WIP Tower Defense Game Demo for feedback.

Comments

  • OpinionatedGamerOpinionatedGamer Posts: 200Member

    @cybereality said:
    Yeah, it's looking good. 3D is not actually that hard once you get over the math. But engines like Godot make this much better, and most of the more difficult math problems are handled for you. It's really complex when you code yourself, I wrote an engine in DirectX11 and I was stubborn and didn't use any libraries (I wrote all the math code, the model importers, etc.). This was madness and dumb, but I learned a lot. So I'm so happy to use Godot now, it makes things so much easier for everyone.

    Also, I think the game would look a lot better with a background. They have some good free assets on this site:
    https://polyhaven.com/

    Wow, did you make any games with this engine?

  • cyberealitycybereality Posts: 3,714Moderator

    @OpinionatedGamer said:
    Wow, did you make any games with this engine?

    It probably sounds more impressive than it is. I spent about 2 years working on it (nights and weekends) and only had a pretty basic 3D demo to show for that time. Something that could be done in Godot in 1 night. Anyhow, this was the last video I made, so I was happy I got that far but it was way too much work for 1 person and I wanted to actually make a game eventually.

    And this was my final blog post recommending people to not make their own engines (just keep in mind that this was from 2014, before Godot was released, so some of my suggestions may be dated).

    https://cybereality.com/creating-a-3d-game-engine-part-25/

  • jbskaggsjbskaggs Posts: 598Member

    We tend to make things very hard for ourselves. Sometimes it is need for our mental preparation for bigger things. The first game I wrote was a battlemech simulater in 1985 in Tandy COCO 2 Basic language. After a year I managed to have two mechs that could up date pictures and stats, combat was simulated and the biggest problem was heat management of the mechs. No animations, no moving sprites, 8 colors.

    Programs came printed out in magazines-(if you needed a specific routine you could order a magazine and it would take 6 weeks to arrive!) that one had to manually type in and save on a cassette tape drive. To publically admit to writing games amounted to ridicule by most people as a frivolous waste of time and energy. So I went into structural engineering and theology. But the programming skills I learned on that little tandy computer has helped me for 35 years.

    Now days programming is a much different bird I can get an answer to a question most of the time instantly. And there are public resources one can download instantly. Game making is seen as a serious financial and artistic venture.

    In the case of this game- I probably should have finished the first version in 2d then wrote another game in 3d. It seems I like to complicate things.

  • cyberealitycybereality Posts: 3,714Moderator
    edited November 2021

    Yeah, it's just amazing that we have Godot now (and other great engines) that are available for free (or nearly free). I first started coding in QBASIC in 1994. Interesting too, I wasn't a coder, but I loved computers. So one weekend I went through all the files (from top to bottom) on my family Windows 3.11 PC and double-clicked every file to see what would happen. Eventually I found a file QBASIC.exe and it opened a window that looked like my old Commodore64 as a kid. So I decided to just start making games. There were no tutorials back then, but people would share code on message boards, so I downloaded some stuff to play with. I ended up writing some simple text adventures that same weekend. That's how I got started at least.

    But game creation was really hard. There weren't really engines at the time (at least not that you could download or buy) so you had to code everything yourself. I did get some books and I messed around with C++ Mode 13h, which was kind of cool. Tried to make a DOOM clone by reading this book, but it was way over my head as a teenager. But I made some simple 2D demos, and learned C++, Java, and then Actionscript and Flash, where I started my career. Spent a lot of time with Flash and made some cool games, but they were all client work and I really wanted to do something original myself. So in my spare time I've messed with various engines. I really liked Blitz3D, that was easy to use and had a good community like Godot does (at least it did when it was popular). Also was into OGRE for a while, messed with Torque, and experimented with almost everything out there but never really produced anything other than test demos.

    Godot is different though. I feel very productive, and I am making good progress everyday. Game making is still hard and time consuming, but Godot makes it fun. I guess also because now I have a lot of experience, so it's not so much of a struggle, but even when I tried Unity and Unreal more recently, I sometimes had issues with stuff that seemed basic. They are great engines, but the ease of use on Godot is better than anything I've ever tried (and I've been doing this for a while). So this is a great time to be involved.

    I think making the game in 3D is fine. You can do more with the graphics and it will be a good learning experience. I also find that if you are not the greatest artist, it is easier to make good looking 3D than good looking 2D. And if the game logic is still basically 2D (like on a plane) then it is not all that much harder. So not a horrible choice.

  • jbskaggsjbskaggs Posts: 598Member

    Qbasic was awesome! I programmed the robotics in my dad's fabrication plant in qbasic as well as project management etc. There just was not that much available software and when you did find something is $14k to $25k for engineering software, sometimes magnitudes more. Yes this was in early to mid 90's.

    There was this one program called Eje Sorter that sold for $2500. All it literally did was allow you to type in a list of items and it sorted it. Nothing else. I made very good money in those days. :) Now you can buy entire shop management packages for $50 a month or even free.

    As far as Godot I love it. I understand the concepts its trying to memorize what is available for what node and why, and why something will work in in node but not another.

    GQquest or maybe Kidscancode made a video about this. They apologized. They said they should have made tutorials on specific small snippets (such how to move in 3d) etc, as such now such tutorials are buried inside of very large series of how to program a certain genre game. Like 20 videos on making an RPG. But you only need 30 sec video on one small snippet. They promised to start a new series focusing on making short to the point vids about specific snippets instead.

    Oh and I forgot most my algebra and math terms- so I get caught up in having to re-understand what I actually used to do for a living and struggling to relearn.

  • OpinionatedGamerOpinionatedGamer Posts: 200Member

    Wow, that's really interesting. I wasn't around at that time, I started with Construct 2. Messed around with the free version when I was really little. Made a cool little top down shooter where you played as kitchen pots shooting other appliances, lol. Eventually I tired of the limitations of that kind of game engine. I discovered Gamedev.tv, and started following their unreal engine series, but that was too complicated for me plus I had bugs with visual studio. I then moved on to the 2d unity series, going off and on from that. I think I finally quit, but came back to it later. I finished the 2d series, but never really made the projects my own. I never made my own game. Started trying out 3d with unity, but like always, never really created anything impressive or finished, mostly just messing around. I jumped around between video courses doing stuff, but never made anything my own. Then I learned godot somewhere around there, because I love free software. That's what I'm working with now. Still keep starting new projects, but now I'm creating an fps. I am not trying to make anything original, just something playable so that I'll have a finished project.

    Anyway, the takeaway here is: If you're new to game development, work on small projects and finish them. Once you've followed a course or something, don't move on to another one in another engine right away, just work on some games and have fun. Don't jump around engines too much early on, make some games in the one you know first. Also, don't try to be too original with game mechanics when you are starting out. If you get too original mechanics, it will be hard to figure out how to program them because there wont be many tutorials out there.

    Anyway, hopefully I'll have a game to proudly post here soon. =) This forumn makes the process a lot easier.

  • cyberealitycybereality Posts: 3,714Moderator

    Yeah, I think my biggest problem the whole time was switching around engines too much. I've learned a bunch, read probably hundreds of game dev books (you can see the reviews on my site) but I will use one engine for like 3 months or 6 months and then switch to something else. Even when I was writing my own engine, I started in DX11 (which was what I was talking about) and then later ported that to DX12, and then spent another year writing a whole new engine in Vulkan (which I never even posted about publicly because I was kind of embarrassed at that point). And I've used Unity and Unreal fairly seriously recently and gone on and off with Godot for a little over 2 years (but this time I think I'm sure I'm going to stick with it). So yes, no tool is perfect, but any option you pick is probably good enough, and you should just stick with it. At least to release 1 complete game in a store and then reevaluate your options.

    And start with something simple. I got caught up trying to make crazy games when I was inexperienced (even an MMORPG at one point, which failed) and it never works. Unless you are really skilled, and have a team, it's very hard to make AAA quality games. So pick something that is realistic for your current skill level (or maybe slightly above to push yourself, but not crazy) and do that. Everyone has a dream game, but unfortunately many people's dream would take 100's of people and millions of dollars (which I imagine most or all indie developers don't have). You can still make something in the spirit of what you want, but make it simpler. It doesn't have to be 60 hours long (you'll be lucky to make a 10 hour game). Maybe just have 1 main character and drop all the classes or customization. If you want an open world, just make one area of a city. Or make a couple areas but not a whole GTA game. Look at the latest Deus Ex game. They made a convincing world with great graphics, but you are limited to small hub cities, and you travel via a subway with no animation. So it still feels like a world, but you can't drive cars, there are limited NPCs, the hubs are small and they block off some areas with police, etc. But it still looks great and is convincing.

    Also, start as simple as possible. I know I was talking about a dream game, but if you haven't made games before, don't start with that. Make PONG. I've made PONG in like 10 or 15 different engines or platforms (PC, mobile, Xbox, etc.). When I try a new engine (after making the spinning cube, I love spinning cubes) I always make PONG. Because it's easy to code, the graphics are dirt simple, and you can write it in less than a week, even in a new language. But it teaches you so much about the engine, displaying text, moving sprites, sound, AI, collision detection, changing scenes, input handling, basics of logic and programming. Really all the fundamentals. So this is a great first project for anyone (novice or experienced).

  • Erich_LErich_L Posts: 590Member

    @jbskaggs said:
    I programmed the robotics in my dad's fabrication plant in qbasic as well as project management etc. There just was not that much available software and when you did find something is $14k to $25k for engineering software, sometimes magnitudes more. Yes this was in early to mid 90's.

    Good lord that just sounds so cool. Dad's fabrication plant? I hope that's not just fancy lingo for garage. I made my first game using the old free Game Maker on a library computer in junior high 2004-5. The librarian told me to remember her when I became a millionaire. I was such an introvert at the time I decided I should go in a different direction and focused on language in college. Oh the regret, hot searing regret.

  • jbskaggsjbskaggs Posts: 598Member

    @Erich_L said:

    @jbskaggs said:
    I programmed the robotics in my dad's fabrication plant in qbasic as well as project management etc. There just was not that much available software and when you did find something is $14k to $25k for engineering software, sometimes magnitudes more. Yes this was in early to mid 90's.

    Good lord that just sounds so cool. Dad's fabrication plant? I hope that's not just fancy lingo for garage. I made my first game using the old free Game Maker on a library computer in junior high 2004-5. The librarian told me to remember her when I became a millionaire. I was such an introvert at the time I decided I should go in a different direction and focused on language in college. Oh the regret, hot searing regret.

    No back then my family owned the largest steel fabrication plant in western Tennessee. Sadly it did not survive my father's death and my brother's chemical addictions. I left for the ministry in 1998 and moved from Memphis to Oregon, and have lived all over the nation ever since.

    2004 was when I bought my first copy of gamemaker as well :) I was 34 then.

  • Erich_LErich_L Posts: 590Member

    @jbskaggs said:
    No back then my family owned the largest steel fabrication plant in western Tennessee.

    I wonder if the 1983 movie All The Right Moves resonates with you =) . I just watched that yesterday.

  • jbskaggsjbskaggs Posts: 598Member

    Hmm I dont remember that movie. LOL I was 13 when that came out. I dont watch a lot of movies generally speaking- only if my wife wants to watch one. I like staying active as possible.'

  • Erich_LErich_L Posts: 590Member

    @cybereality said:
    Yeah, I think my biggest problem the whole time was switching around engines too much. I've learned a bunch, read probably hundreds of game dev books

    Just curious, do/did you ever follow the Cherno on youtube making his game engine called Hazel? I wonder if watching him makes your brain scream.

  • cyberealitycybereality Posts: 3,714Moderator

    No, not really. I know the channel, I think I might have watched one or two videos, but I usually don't read tutorials or videos since I have a lot of experience already. And, in general, I prefer reading text. With video tutorials they seem to waste a lot of time talking, which can be helpful to some people, but I would rather just read or see the code.

  • Erich_LErich_L Posts: 590Member

    @cybereality said:
    No, not really. I know the channel, I think I might have watched one or two videos, but I usually don't read tutorials or videos since I have a lot of experience already. And, in general, I prefer reading text. With video tutorials they seem to waste a lot of time talking, which can be helpful to some people, but I would rather just read or see the code.

    I guess I’m really just curious if you think it makes sense for someone so skilled already to make a game engine on their own while we have things like.. you know.. Godot =) . It’s not like he’s doing it to learn about game engines. Imagine how much he could help on Godot.

  • cyberealitycybereality Posts: 3,714Moderator

    Well I think it's important. Someone has to write and maintain the game engines. If everyone just used Godot (or Unity or whatever) you'd have a whole generation that knew nothing about writing game engines, meaning projects like Godot (or companies like Unity) would only be staffed by old-timers (who will eventually die). So it's not exactly useless, and it seems like he has a big following so that's cool for him.

  • OpinionatedGamerOpinionatedGamer Posts: 200Member

    @cybereality said:
    Well I think it's important. Someone has to write and maintain the game engines. If everyone just used Godot (or Unity or whatever) you'd have a whole generation that knew nothing about writing game engines, meaning projects like Godot (or companies like Unity) would only be staffed by old-timers (who will eventually die). So it's not exactly useless, and it seems like he has a big following so that's cool for him

    Plus, there is always a benefit to knowing the engine from the ground up.

  • cyberealitycybereality Posts: 3,714Moderator

    Yes, it also helps whatever you do. I am way more productive in Godot knowing how a game engine actually works, even if I'm not coding on that level right now.

  • jbskaggsjbskaggs Posts: 598Member

    I also love game engines. Next to Godot I also like the LOVE2d, Defold, and of course Gamemaker.

    Defold is a nice engine, I actually wrote my tower game simultaneously in defold and godot to see which was easier for me. I was just faster on Godot, But I will probably use Defold on small projects as I found it fun too.

    The new Unity is an overall bad experience for me. Not the language itself- but all the hurdles I have to go through to run it. Forcing me to run a complicated launcher before I can access my stuff burns me up. It is complicated by corporate design. I keep an old copy of Unity prior to all "Origin" inspired editor launcher. Just so I can run and edit some old projects I bought on there. It reminded me of something Dogbert would design.

  • OpinionatedGamerOpinionatedGamer Posts: 200Member

    @jbskaggs said:
    I also love game engines. Next to Godot I also like the LOVE2d, Defold, and of course Gamemaker.

    Defold is a nice engine, I actually wrote my tower game simultaneously in defold and godot to see which was easier for me. I was just faster on Godot, But I will probably use Defold on small projects as I found it fun too.

    The new Unity is an overall bad experience for me. Not the language itself- but all the hurdles I have to go through to run it. Forcing me to run a complicated launcher before I can access my stuff burns me up. It is complicated by corporate design. I keep an old copy of Unity prior to all "Origin" inspired editor launcher. Just so I can run and edit some old projects I bought on there. It reminded me of something Dogbert would design.

    Yeah the launcher is pretty dumb. I still enjoy Unity tho, but it's all a matter of preference. I personally really like Unity's AI system, it's pretty fun.

  • jbskaggsjbskaggs Posts: 598Member

    Yeah the launcher is pretty dumb. I still enjoy Unity tho, but it's all a matter of preference. I personally really like Unity's AI system, it's pretty fun.

    Well I cant deny the number of games produced on Unity that I play. Is the AI you mention for RTS stuff?

  • OpinionatedGamerOpinionatedGamer Posts: 200Member

    @jbskaggs said:

    Well I cant deny the number of games produced on Unity that I play. Is the AI you mention for RTS stuff?

    Really depends on what you're doing. I am mainly referring to their navmesh system, which is really easy and fun to use. If you're strategy game needs more complex movement, it could be really useful.

    I haven't gotten the chance to try Godot's navmesh yet, but I will soon. I think the main difference is it provides much less base functionality than Unity's, and requires more coding from you, which has it's pros and cons.
    But like I said, I haven't tried it yet. =)

  • cyberealitycybereality Posts: 3,714Moderator
    edited November 2021

    Unity in general I think went in a bad direction starting maybe like 6 years ago, around the time John Riccitiello took over. The way they force you to create an account, that some meta data of your project is synced (which seems unnecessary), that they gate basic features like a dark mode editor behind a monthly subscription (and would ban anyone from the forum if they complained), though they did add dark mode to the free version recently.

    Plus all the issues with half-baked new renderers and features, it is very confusing to start a new project and know what features you should use, whether the old ones or the new ones (and none of them seem complete). Plus they have basic stuff that doesn't work, like HTML5 support on mobile. This is a huge reason to develop for HTML5 and the fact that they never even tried to fix this after so many years is disappointing. Even on desktop it is glitchy.

    But I do understand why people use it. The engine is easy to use (not as easy as Godot, but still quite good), and it runs on regular PCs (unlike Unreal). The ECS system is a good design, and I like being able to attach multiple scripts to the same object. This makes sharing code between projects much easier. And the graphics are still pretty nice, but maybe not on the level of Unreal. But with good art you can definitely make a AAA looking game in Unity.

    Unity also has a great support system, with the huge asset store and plug-ins. You can get a lot of art for cheap and save time getting plug-ins for all kinds of stuff. This is one area that Godot is lacking, there are not a lot of good art assets available, and the existing plug-ins are usually free and open-source (which is nice) but also means they may not have great support or be currently updated. At least with Unity, there are developers that make their living writing plug-ins, so they will update when a new version comes out, add new features, etc. because it is a business for them. But this is harder with an open-source project.

  • OpinionatedGamerOpinionatedGamer Posts: 200Member
    edited November 2021

    That pretty much says it all. Great summary.

Sign In or Register to comment.