The LAST Episode and Distributing your Game | Coding a 2D Game Engine in Java #58

Поделиться
HTML-код
  • Опубликовано: 4 июл 2024
  • Follow the Minecraft Series at Twitch Live:
    / gameswthgabe
    Saturdays at 8AM (CST)
    Join the Discord: / discord
    JAR to Exe: www.genuinecoder.com/convert-...
    Ghost Vertices (Box2D Collision Issues): www.iforce2d.net/b2dtut/ghost...
    Code: github.com/codingminecraft/Ma...
    0:00 Intro
    1:37 Distributing Your Game
    5:18 Building a Fat JAR
    6:40 Fixing Mario Collisions
    9:52 Making Mario Pass Through Enemies When Damaged
    11:53 Adding Coins to the Game
    13:43 More Improvements
    16:05 Separating the Engine from the Game
    18:05 Final Remarks and Timelapse
    21:42 Sneak Peek for Minecraft Series
    ---------------------------------------------------------------------
    Website: ambrosiogabe.github.io/
    Github: github.com/ambrosiogabe
    Here are some books I recommend if you want to learn about game engine development more thoroughly. I do not profit off any of these sales, these are just some books that have helped me out :)
    My Recommended Game Engine Books:
    Game Engine Architecture: www.gameenginebook.com/
    Game Physics Cookbook (Read this before the next physics book): www.amazon.com/Game-Physics-C...
    Game Physics (Ian Millington): www.amazon.com/Game-Physics-E...
    Game Programming Patterns (Free): gameprogrammingpatterns.com/
    My Recommended Beginning Game Programming Books:
    JavaScript Game Design: www.apress.com/gp/book/978143...
    My Recommended Java Books:
    Data Structures/Algorithms: www.amazon.com/Data-Structure...
    LWJGL (Free, but I haven't read this thoroughly): lwjglgamedev.gitbooks.io/3d-g...

Комментарии • 74

  • @Ellie48
    @Ellie48 10 месяцев назад +1

    How would you separate the game as in distribute the game you made separate from the editor and engine, just the playable game.

    • @GamesWithGabe
      @GamesWithGabe  10 месяцев назад

      I've gotten this comment a few times in the past and never explained it very well. If you just skip the ImGui stuff and blit the framebuffer to the window that's basically all you need to do. That explanation probably isn't very useful though, so I made a commit in the main repository with all the changes to ship just the game without the editor :) You can check it out here github.com/codingminecraft/MarioRUclips/commit/481392aa5bc0890519b7926ff7897423c3ef5422

    • @Ellie48
      @Ellie48 10 месяцев назад

      @@GamesWithGabe hey thanks for the reply - I figured it would be something like this - i made it a challenge to myself to implement a "Export" button once im at that stage.

  • @freecodecamp
    @freecodecamp 2 года назад +30

    This is an amazing series! Thanks for putting in the time to provide this free course.

    • @GamesWithGabe
      @GamesWithGabe  2 года назад +5

      No problem! I appreciate the comment, and all the content you provide as well freeCodeCamp :)

    • @freecodecamp
      @freecodecamp 2 года назад +4

      @@GamesWithGabe I contacted you about a collaboration. Did you see the e mail from beau [at] channelname?

    • @GamesWithGabe
      @GamesWithGabe  2 года назад +6

      It looks like the email ended up in my spam, but I found it and sent a response. Thanks for letting me know!

  • @Iraxvii
    @Iraxvii 2 года назад +17

    Shouts out to everyone who's been watching since day 1. Eventually I'm gonna create a game engine that allows for practically everything. But for now just sticking to side projects.

  • @TheElliotWeb
    @TheElliotWeb 4 месяца назад +1

    Thank you, Gabe! I was stuck with OpenGL during my game engine development on Java. Your videos helped me to make this done. Also these videos helped me a lot in understanding of different game development concepts. Good luck to you!

  • @gebriish
    @gebriish 2 года назад +2

    Congrats on completing the series, and thanks for introducing me the the wonderful work of game engine development

  • @johnny123tw
    @johnny123tw Год назад

    Just want to say thank you for making this incredible series. I really learned a lot from here! I spend about 2 months watching this series, but you spend 2 years on this series, respect.

  • @nicronex
    @nicronex 2 года назад +1

    thank you so much, this series taught me alot of notions about how graphics works in general,keep up with the good work!

  • @joysaha3927
    @joysaha3927 2 года назад

    I'm very excited to follow this series man!! Will build my own game engine soon for the first time in my life! :) Thanks!

  • @FactBrews
    @FactBrews 2 года назад

    Hey Gabe , just Finished The tutorial And I Have To Say That I'm So Excited For The Minecraft Series !!!

  • @Snowmanver2
    @Snowmanver2 2 года назад +4

    I'm so excited to follow this series. I'm going to start watching the full playlist soon, and will write back as soon as I'm finished. Thanks for the upload!

    • @samochreno
      @samochreno 2 года назад

      Are you still working on this..?

    • @Snowmanver2
      @Snowmanver2 2 года назад

      @@samochreno had to take a break until my classes are finished

  • @retroryuu7254
    @retroryuu7254 2 года назад +1

    Wow, great series, i am hyped for the Minecraft one! :D

  • @hilbert_curve3680
    @hilbert_curve3680 2 года назад +1

    I know that you probably get this a lot, but you should have more views! The lessons learned from this series are priceless. Bravo!

  • @micaiahstevens8840
    @micaiahstevens8840 2 года назад

    First of all great job, loved the editor and game play. And finishing such a long great series (first video for me)
    [Right into my heart, made a Mario clone in college, using VS basic, and DirectX I think.]
    I wanted to share a bug I saw, feature? Change. Anyways at 0:45 Mario jumps on a turtle and kicks it shell into a Goomba. This causes the shell to come back, in the full game, the should would have continued on, until it hits a block.
    Thanks for making this, found you through your minecraft, C++. While am a Unity developer sorta, I studied C++ in college and have been thinking about doing a refresh on the skill.

  • @DevNugget
    @DevNugget 2 года назад +3

    Its been a great run! Thanks a bunch for the series Gabe!

    • @GamesWithGabe
      @GamesWithGabe  2 года назад +1

      Hey DevNugget! It's great to see you were able to hang around for the whole series, and thanks for sticking with me :)

    • @DevNugget
      @DevNugget 2 года назад

      @@GamesWithGabe :D

  • @Destroyer19941995
    @Destroyer19941995 2 года назад +2

    Cant believe it. First finished game engine playlist on youtube. At least for Mario but it can easily be extended. Gratz.

    • @GamesWithGabe
      @GamesWithGabe  2 года назад +2

      Lol yea, it's definitely still missing some features, but I wanted to wrap up the series since it was beginning to feel more like a "watch me code" than a "here's how to do this conceptual thing" kind of series :)

    • @Destroyer19941995
      @Destroyer19941995 2 года назад

      @@GamesWithGabe Yeaa but still its finished. I cant find one channel with finished stuff.

    • @Destroyer19941995
      @Destroyer19941995 2 года назад

      @@GamesWithGabe Also gratz on 3k+ subs. Last time I was here it was at 1.95k??

  • @uso2484
    @uso2484 2 года назад

    Thank you for all dude!!

  • @gamingcool6190
    @gamingcool6190 2 года назад

    Can't wait for the next series

  • @nix3l_
    @nix3l_ 2 года назад +5

    Quite hyped fir the mc series, i dont like tutorials which are basically “heres a specific way to do this thing”

    • @GamesWithGabe
      @GamesWithGabe  2 года назад +3

      Yea, I've had the same problem with tutorials. I've also had the problem where I feel like I don't absorb anything and really learn the stuff. So I guess I'll see if this next series works and it teaches the material better :)

    • @nix3l_
      @nix3l_ 2 года назад

      @@GamesWithGabe gl then

  • @VoylinsLife
    @VoylinsLife 2 года назад

    I just recently discovered this series, at episode 1 now but wanted to see if this is a completed series or not, thank you so much for finishing this series and not abandoning it like some other youtubers ^^"

    • @GamesWithGabe
      @GamesWithGabe  2 года назад +1

      Hey Voylin, thanks for the comment! I'm glad that you found this, and there's still a lot of value in some of the half completed series from other RUclipsrs. So they're definitely worth checking out when you get some time as well :D

  • @patihgenixscoding6914
    @patihgenixscoding6914 2 года назад +1

    YOU ARE THE MAN, GABE!

  • @polyhally
    @polyhally 2 года назад

    I really love the Imgui implementation :O)

  • @evertonalmeida1165
    @evertonalmeida1165 2 года назад

    You are a legend my bro ❤❤❤❤

  • @Yier_M
    @Yier_M 2 месяца назад

    Thanks a lot, Gabe! 非常感谢! :)

  • @mathijswy
    @mathijswy 2 года назад +1

    What a ride!

  • @angelsanabria4457
    @angelsanabria4457 2 года назад +2

    Gracias Gabe, muy bonita serie de vídeos. Gracias a ellos estoy considerando más usar Java para programar videojuegos.

    • @GamesWithGabe
      @GamesWithGabe  2 года назад

      Thanks for watching Angel! And Java is a pretty nice language to use for game programming, but if you're already using a language like C++ or Rust, I would say it's worth it to stick with those languages :)

  • @FiveNineO
    @FiveNineO 2 года назад

    Thanks Gabe

  • @airhomely1082
    @airhomely1082 2 года назад +1

    Congrats on completing the series, and thank you so much for your hard work. So, are there any plans to add user-defined scripting support to the engine in the future? For example, importing luajava so that the engine supports Lua. Hence users can use Lua scripts to write enemy AI instead of writing java source code directly.
    Also, all resources are now imported directly via java code using AssetPool. So maybe it would be a better option to put a button on the window's menu so that users can use the ImGui interface to import the resources they want?

    • @GamesWithGabe
      @GamesWithGabe  2 года назад

      Hey Air! I don't have any more plans for this code, the tutorial series was just meant to teach how you could approach coding an engine like this, and the code is there to aid the tutorial series. I think your ideas are great and if you want to implement them I think it would be worth your time :).
      It would also be interesting to add a scripting language to the engine, however I feel like that is better suited for C++ engines. It looks like luajava is coded in C, then accessed through the JNI. This means you're going through two layers of indirection which could be costly for performance. It would probably work a lot better in C++ since you have no indirection when accessing a language like lua :)

  • @abdelmajidkansoussi6904
    @abdelmajidkansoussi6904 Год назад +1

    Please can you recommand a course or a book of how to build a 2d game engine in javascript . Thank you very mush this serie was fantastic

  • @gevzoran4698
    @gevzoran4698 10 месяцев назад

    hey, is the discord active? where can i get a link? im looking into making an engine for a big 2d rpg with an isometric pov, is this series suitable? how much would the principles differ

  • @Quaffyson
    @Quaffyson 2 года назад

    is there a way to modify some things and send it to some people as a engine?

  • @yomikester238
    @yomikester238 2 года назад

    Man dude I have no idea what's going on. But I love it!! It could easily sleep me to a coma 🤤

  • @aligh4820
    @aligh4820 2 года назад

    thanks

  • @dylanolson1934
    @dylanolson1934 2 года назад

    Could you show us java 3d game engine Dev at some point too? Maybe after Minecraft is done?

  • @anckermannausf.b
    @anckermannausf.b 2 года назад

    It could've been really helpful to see a full font rendering integration inside the engine, since there is no common method or library built in in lwjgl3 to do that.

    • @GamesWithGabe
      @GamesWithGabe  2 года назад

      Yes, that is one thing that I should have considered adding. I may update the code in the future, so you can star it in Github if you want to follow the updates. If I get some time I will definitely try to add the font rendering integration so it is there for reference :)

  • @user-gg8gl2iy6d
    @user-gg8gl2iy6d 11 месяцев назад

    I am running this on gradle 8.2.1 and the command gradle fatjar is not working giving me an test compile() ERROR

  • @LloydHowarth-eg4sf
    @LloydHowarth-eg4sf Год назад

    I think what people mean by separating the engine from the game, is creating a standalone game without the Engine Editor.. So the game is a standalone application with no editor interface. How would you go about doing that?

  • @buggybaka
    @buggybaka 2 года назад

    Series going on for a year now, Is really looking forward to the Minecraft series in c++, Btw umm can you please make a video on how to setup the clone and run it, cause i am having a lot of issues ith it

    • @GamesWithGabe
      @GamesWithGabe  2 года назад

      Thanks Buggy! And you're having trouble with running the Minecraft clone? I haven't done much testing to ensure that it works on different systems yet. You should be able to follow the instructions in the latest Readme in the master branch though, and I have a lot of logging set up so it should give you useful error messages if it messes up. You will have to have Github and some sort of C++17 compiler installed, and it only works on 64-bit Windows right now :)

    • @buggybaka
      @buggybaka 2 года назад

      @@GamesWithGabe Memory leak detected. Allocated from: 'C:\dev\StreamMinecraftClone\Minecraft\src\world\Chunk.cpp' line: 78
      There is a memory leak, and i got from like 5mb to 1.2gb in a second

    • @GamesWithGabe
      @GamesWithGabe  2 года назад

      @@buggybaka It will say memory leak detected if it crashes because it doesn't have a chance to free all the memory that was allocated properly. You don't have to worry about that because it will free all that memory once the application closes. But it should take up around 700 mb in it's current state, because it's just loading all the chunks around the player into RAM. Minecraft takes around 2-3 GB depending on the chunk radius as well.
      Like I said before though, the master branch is currently being changed quite often right now, and will be until I get the game to a playable state. Once I begin creating official releases in the repository you can expect the master branch to be more stable :)

  • @luandkg
    @luandkg 2 года назад

    Gabe what will be your next project ?

    • @GamesWithGabe
      @GamesWithGabe  2 года назад +1

      Hey Luan! I'll be working on a Minecraft clone tutorial next :)

  • @alex-link403
    @alex-link403 Год назад

    Idk how to download the files

  • @adham5149
    @adham5149 2 года назад

    You are the Boss

    • @adham5149
      @adham5149 2 года назад

      One note:
      Want the Minecraft series to be as comprehensive as this one.
      This style of teaching will be better so the watcher will get something that works not just theory

    • @GamesWithGabe
      @GamesWithGabe  2 года назад +1

      @@adham5149 thanks! I'm considering making a code-along series besides the concept series, but I don't want to show all the code step-by-step. I feel like people will learn a lot more by actually experimenting with the concepts themselves and trying to implement it their own way :)

  • @VoylinsLife
    @VoylinsLife 2 года назад

    When is the 3D series coming? :o

    • @GamesWithGabe
      @GamesWithGabe  2 года назад +1

      I'll be doing a Minecraft tutorial series starting mid-November or early December :)

    • @VoylinsLife
      @VoylinsLife 2 года назад +1

      @@GamesWithGabe Looking forward! My maternity leave starts from December so great timing 😁✨

  • @Destroyer19941995
    @Destroyer19941995 2 года назад

    Wondering tho if you know how to port this to android? That is how to make this engine create .apk and .aab files?

    • @GamesWithGabe
      @GamesWithGabe  2 года назад

      Unfortunately Android isn't my area of expertise. I've only ever used Android Studio for creating those kinds of apps, I do know that you would have to switch to OpenGL ES, which may require using some different features of OpenGL than the ones I used

    • @Destroyer19941995
      @Destroyer19941995 2 года назад

      @@GamesWithGabe I am developing for android. For OpenGL no difference in your opengl rendered code and android 3.0 ES code at all. Was just wondering how people make port possible because its so complicated .

    • @GamesWithGabe
      @GamesWithGabe  2 года назад

      @@Destroyer19941995, in regards to your other comments​ thanks! Some of the other series probably should have had a more well-defined scope of what to cover haha.
      But that's what I was thinking for OpenGL ES. I purposely chose OpenGL 3.3 for this series because I know ES doesn't support OpenGL 4+ yet, so I was hoping it would port pretty well. But in terms of how other people port it to different Android devices, I have no idea what they do to make that happen :/

  • @PhdinNoob101
    @PhdinNoob101 Год назад

    Did you ever code in networking ? Shouldn't be that hard even if you didn't

  • @ZimmoYT
    @ZimmoYT 2 года назад

    Come back ;(