Multiplatform
Open Eggbert is multiplatform (desktop, Android, web).
This means some limitations like:
- Method String.lines(String string) is not present in GWT.
- How to fix: Use method OpenEggbertUtils.lines(String string)
Inspiration
https://github.com/libgdx/libgdx-demo-cuboc
Requirements for Development
Java 17 must be installed. Newer versions may work only for the desktop.
Sound + Midi support
https://github.com/mgsx-dev/gdx-pd
Graphics
How to scale graphics - ?
https://github.com/leonbloy/pngj
https://www.nayuki.io/page/png-library
https://github.com/nayuki/BMP-IO?tab=readme-ov-file
https://www.nayuki.io/page/bmp-io-library-java
https://github.com/PyroSamurai/JBL
https://github.com/nayuki/PNG-library
https://image4j.sourceforge.net/
https://libgdxinfo.wordpress.com/basic_image/
Animation
https://github.com/WinterAlexander/gdx-animation
https://libgdx.com/wiki/graphics/2d/2d-animation
https://gamefromscratch.com/libgdx-tutorial-3b-simple-animation/
https://gamefromscratch.com/libgdx-video-tutorial-sprite-animation/
https://www.pixnbgames.com/blog/libgdx/frame-by-frame-animations-in-libgdx/
https://www.codeandweb.com/texturepacker/tutorials/libgdx-sprite-sheet-tutorial
https://www.reddit.com/r/libgdx/comments/18bghen/how_can_i_get_an_animation_to_be_timed_correctly/
https://gamedev.stackexchange.com/questions/138324/libgdx-animation-sequence
boxes = new Texture(Gdx.files.internal("boxes.png")); //** loading boxes **//
box1 = new TextureRegion(boxes,0,0,180,320);
box2 = new TextureRegion(boxes,200,0,480-200,320);
box3 = new TextureRegion(boxes,0,330,127,511-330);
box4 = new TextureRegion(boxes,180,325,511-180,511-320);
Generating GIFs in Open Eggbert
https://github.com/Anuken/GDXGifRecorder
Videos
https://github.com/libgdx/gdx-video
Sprite Tools
Generating sprite animations to gifs
https://genuinecoder.com/how-to-create-gif-from-multiple-images-in-java/
Detection of sprite positions.
https://github.com/mapeditor/tiled/tree/master/util/java/libtiled-java
Support for web and mobile platforms (Android, iPhone)
It is a good idea to ensure, that Open Eggbert is runnable on web and mobile platforms.
https://stackoverflow.com/questions/2590850/threading-in-gwt-client
https://stackoverflow.com/questions/28267316/libgdx-not-work-on-android-api-21
Networking
https://www.reddit.com/r/libgdx/comments/4rtdph/what_are_some_networking_options_for_libgdx/
Screens
https://www.gamedevelopment.blog/full-libgdx-game-tutorial-loading-screen/
https://www.slideshare.net/slideshow/libgdx-screens-fonts-and-preferences/44430118
Controls
Mouse
Keyboard
Touch screen
Gamepad
https://github.com/libgdx/Jamepad
2D physics engines
https://github.com/erincatto/box2d-lite
https://github.com/jbox2d/jbox2d
https://box2d.org/documentation/
https://github.com/dyn4j/dyn4j
https://github.com/jwvhewitt/Slick2d-Game-Engine
https://github.com/implicit-invocation/jbump
How to create a Java Platformer game
https://longbaonguyen.github.io/courses/platformer/platformer.html
Design patterns
https://gameprogrammingpatterns.com/command.html
Books
https://gameprogrammingpatterns.com/contents.html
Wikipedia
Video game development - Wikipedia
Platforms
Desktop
Android
Web
https://libgdx.com/wiki/html5-backend-and-gwt-specifics
External links
https://gamedev.stackexchange.com/questions/109047/how-to-close-an-app-correctly-on-desktop
https://gamefromscratch.com/speeding-up-gwt-compilation-speeds-in-a-libgdx-project/