×
Create a new article
Write your page title here:
We currently have 180 articles on Open Eggbert. Type your article name above or click on one of the titles below and start writing!



Open Eggbert
180Articles

Development of Open Eggbert

Revision as of 13:02, 31 August 2024 by Robertvokac (talk | contribs)

Multiplatform

Open Eggbert is multiplatform (desktop, Android, web).

  • We should assure continuously, that the latest version (snapshot) runs correctly on all the 3 supported platforms.

This means some limitations: Only feature of Java 11 source code level are supported, but even some Java 11 features are not supported in GWT.

  1. Method String.lines(String string) is not present in GWT.
    • How to fix: Use method OpenEggbertUtils.lines(String string)
  2. Method Stream.toList() is not present in GWT
    • How to fix: Use Stream.collect(Collectors.toList())

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

https://www.mapeditor.org/

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/57735039/how-framwork-such-as-libgdx-handle-threading-for-web-target

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

http://www.jbox2d.org/

https://box2d.org/documentation/

https://github.com/dyn4j/dyn4j

https://slick.ninjacave.com/

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

Game design - Wikipedia

Video game development - Wikipedia

Gameplay - Wikipedia

Platforms

Desktop

Android

Web

https://libgdx.com/wiki/html5-backend-and-gwt-specifics

Java annotations

Open Eggbert uses subset of Java 11 to reach the ability to be multiplatform (Desktop, GWT, Android)

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/