Skip to content

A simple API to make 2D game (engine) development easier and GUIs more customizable with pure Java

License

Notifications You must be signed in to change notification settings

ThirdRealityStudios/GUInness

Repository files navigation

Description

A Swing-based API to enable the development of basic GUI apps and games

Project status

Unfortunately I do not have enough time to continue the API due to my study.

Also, originally a porting to Open GL was planned (for performance reasons) but can't be done now.

First Impression

Application sample

Uses of GUInness

  • for development of simple 2D games
  • for fast creation of GUI environments (in terms of usability)
  • for highly modifiable GUIs
  • as a lightweight alternative to the native Java GUI libraries

General Features

  • capable of multi-threading
  • viewport movement & scaling¹
  • all components are organized in "layers"²
  • all components have actions defined
  • easy error-tracking (logs, advices and brief comments)

¹especially for creating maps, games or browser-related content

²comparable to CSS with "z-index" property.

Featured Components (ready-to-use)

  • descriptions
  • buttons (rectangle button / default)
  • polygon buttons (a special and dynamic shape button)
  • text-fields
  • check-boxes
  • selection-boxes (using radio buttons)
  • images
  • rectangles (border thickness, radius etc.)
  • simulated windows for implementing multiple Viewports within one display¹

¹useful for making menus, grouping components etc. (see picture above)

Planed Features

  • add paths
  • add hyper-links for referring to webpages
  • add simple background sound tracks
  • add video components
  • add ability for LOD levels depending on the current Viewport scale¹

¹especially for creating maps, games or browser-related content

How to run / binaries

If you want to test this API first, you can just download the binaries ("bin"-folder) and run the Main.class file in package "org.thirdreality.guinness.sample". It will give you a rough look through all the features which are available currently.

Documentation

Will follow at the final release. Anyway, you can find brief comments in the code yet but I know it's a dirty compilation still..

Motivation for development

GUInness was originally written first because I wanted to build a solid structure in order to build 2D games more easily. At all I want to build a simple strategy game which probably lacks of graphics but is rich in terms of features. I could have used available game engines from the web but my plan was it to build everything up from scratch, so that's the challenge for me.

Stats / Nice To Know (as of 11/15/2020)

  • total lines of code: 4848 (counted them with "cloc")
  • code size: 200.5 kB

Already having used GUInness?

Maybe you want to fill in a little survey just shortly for what you are using GUInness actually for:

Fill in survey

Donations (via LiteCoin)

I do this in my free-time so any donation would be highly appreciated; especially in the mind of open-source it is more about the attention someone gives me rather than the amount.

MEE93XavWVjebG5H3iGTfPyKajkfxx2ZPz

or

litecoin:MEE93XavWVjebG5H3iGTfPyKajkfxx2ZPz?label=Donation