Releases: Torbuntu/Leikr
The cure to casting
This release contains a major overhaul to the API, and is one of the final releases to change names to API methods. (Before 0.1.0 there may be a handful more of these changes, but 0.1.0 marks the end of API modifications)
Added:
- Added a new
parse()
method! This returns a Groovy Script object which can be used for a really major variety of different things (modding engines anyone ;) DSL's? yeah, lots of really cool things). - Terminal Screen (replaces the graphical Menu Screen)
Updated:
- API names were changed to better match Mini2Dx names. This will help users to upgrade to Mini2Dx if/when they want to do something not so restricted to the limitations of Leikr.
- Most of the API methods now take BigDecimal by default. This drastically reduces the amount of manual casting users needed to do in order to simply do anything. This is something that should have been done from the beginning.
- The overall build size has been reduced by almost 10MB simply by not pulling in
groovy-all
. heh, whoops... - Some of the loaders were attempting to parse directories as files. Fixed this (will have to go back and recheck that)
Removed:
- I decided that I didn't like the GUI Menu Screen. So I nuked that completely and replaced it with a Terminal Menu. This makes the system feel more like a bare system with a coherent vision.
- Removed quite a few API calls that just didn't make sense or that I didn't feel fit with the aesthetics I want Leikr to have (such as a handful of drawing methods and system methods)
Getting much closer to a solid finalized API. I will be focusing on cleaning that up for 0.0.12. Some methods will be removed (if not deemed useful or within the vision of Leikr). A few names may change to sync better with Mini2Dx. Things such as this.
As per the usual:
Note: Leikr uses Groovy 3.0.0-Beta-3
Releases | |
---|---|
Leikr-0.0.11.zip | Contains the Leikr Game System and scripts to run both on Linux and Windows. Requires JDK 12 to run |
Leikr-0.0.11-jre.zip | Same as above, but without Windows script, and is bundled with JRE 12 |
Leikr-0.0.11-jrew.zip | Same as the other jre download except specifically for Windows |
Framework Update
0.0.10!
Mini2Dx now has alpha versions out for 2.0.0, and this release tries to maximize the framework's awesome capabilities. I highly recommend checking it out: Mini2Dx
This release is completely implemented in Mini2Dx 2.0.0-alpha-3, which means decoupled from LibGDx! So when Mini2Dx adds more platforms, Leikr will be ready to travel.
The EngineLoader has been upgraded a little. Some programs will experience quicker Loading times now! Which is awesome. I'm working on maximizing this further.
Note: Leikr uses Groovy 3.0.0-Beta-3
Releases | |
---|---|
Leikr-0.0.10.zip | Contains the Leikr Game System and scripts to run both on Linux and Windows. Requires JDK 12 to run |
Leikr-0.0.10-jre.zip | Same as above, but without Windows script, and is bundled with JRE 12 |
Leikr-0.0.10-jrew.zip | Same as the other jre download except specifically for Windows |
EngineLoader, UI/UX, The looks better, goes faster update!
This is a pretty substantial update compared to the previous few.
-- Main Menu --
The interface has been pretty well overhauled in a good way! The Main Menu now contains Categories for sorting games and programs better. It also contains some visual navigation buttons which can be used by mouse. To navigate the categories with the keyboard press Q to go left and W to go right.
When exiting running games and programs the Main Menu "remembers" where you were, so you don't have to navigate back to the game or program you were trying to test.
-- Global Pause --
Now, when Escape is pressed during a game/program Leikr will display a pause menu with the option to return to the Main Menu, or cancel to stay in the game/program. This pause action will actually pause the running program, and not run it in the background. New API methods for onPause and onResume can help users create interesting actions for what happens in that time.
-- New Utility Programs --
A Color Tester utility and Sprite Viewer utility were added for testing some of the new API methods. The Color Tester utility simply displays a box given the RGB values which can be adjusted with arrows on the screen.
The Sprite Viewer tool allows users to view spritesheets given the name of a program. This uses a new method called loadSpriteSheet()
which is experimental. Users can also select a start and fin sprite ID and press Space to play an animation from the start to fin. Q speeds up the animation and W slows it down. To select a start ID press S and type the ID number and press enter. For fin press F and do the same. To select a new program press E and type in the name as it appears in the Programs directory.
-- EngineLoader --
The EngineLoader has been beefed up with some new methods creating an API for dynamically loading and reloading code at runtime. The new compile, eval, loadLib, and newInstance methods can be used in some pretty cool ways to create access for plugins or mods. Now users can create whole libraries that can be loaded into other programs without rewriting them over and over again. Just drop in the library to the game or program's directory and loadLib! These libraries can even be compiled to classes, making the load time super fast compared to loading form source. eval can be used to evaluate code passed in as a String. This has so many cool ways to be used, so I am very excited to see what I can do, and what others come up with!
-- Game/Program Reloading --
Running games and programs can now be reloaded/restarted by either pressing CTRL+R or simply F5. This will close the current game and reload it from the settings in the properties file. This makes debugging and development much quicker and easier since users no longer have to exit to the main menu and reload from there. If the game or program errors a system screen with the error is displayed. This screen cannot be reloaded, as at this point the game or program has already been unloaded and cleaned up, and the user must return to the Main Menu to try rerunning the game or program after fixing the error.
-- Controller Input --
The controller input support has been overhauled on many pages to be much easier to use, and to use in general. Documentation to follow. SNES controller recommended.
-- Font --
As part of the new user interface and design, a new font has been selected. The previous custom font I designed did not look too great (Thank you community for bringing this to my attention). I have selected a new font, zx evolution. It looks great and "chonky" and really gives Leikr the aesthetic I try to target.
-- Cursor --
Some new design choices have been made regarding the Cursor. Now, the system cursor is not displayed in Leikr, and instead users are responsible for creating their own cursors in their programs. To do this, I either draw a shape or a sprite at the mouseX() and mouseY() coordinates.
-- Collision Detection --
A simple AABB collision detection method has been added to the core API. Along with a point method that is most useful for checking a single point inside a rectangle shape given x,y,w,h (so determining if a mouse click is within a box)
-- Misc. --
Various internal improvements have been made to help improve the speed and stability of the program as a whole. Feedback is definitely appreciated and helps to improve Leikr at a greater speed. Thanks to the community for all the support and comments!
Input update!
This is a smaller release again, but necessary. It contains a fix for the New Program generator.
Introducing new Input objects! Mouse input is now fully supported using the mouse
object.
new objects used in the Leikr core:
mouse
keyboard
controllerA
controllerB
These objects are usable in non main classes.
File Management, Single Launch fix, minor bug fixes, major refactoring
Leikr 0.0.7 brings an all new file management system (removed all the manual new File()
calls and replaced them with the proper Gdx.files.local()
calls. Much cleaner)
Single Launch was fixed, allowing single launch titles to work! As you can see Here:
This release also comes with an experimental JRE bundled (thanks to AdoptOpenJDK 12 with hotspot)
The Linux executable will default to this if it exists, The windows .bat file will need to be edited to look for it.
Much of the internal structure was redesigned to use less resources (in prep for Arm builds for the raspberry pi). This is a good thing, as the system now takes far less resources, but runs exactly the same on Desktop/Laptop and much better on Raspberry Pi.
Asset and Engine
This update has major updates done to the Engine Loader.
Multiple files are now imported correctly.
Assets have been updated to reflect the newest reworks of the API, as well as just being 20% better.
The new program generator now ask for a name to use for the project. This is still a work in progress, and next release is when it will also be able to (hopefully) set the name of the core class.
"main.groovy" is no longer supported as the entry class file name. Now you simply need a groovy class with the same name as the project directory.
General cleanup done as well to the internal systems.
Security, System and Asset updates
Security policy is now active by default. This means that running without the security policy is an opt-out feature, promoting the secure sandbox of Leikr.
There is now a system
object for interacting with the core system. This currently only is used for switching games during runtime. As in, when you're running a program, you can launch a different program from the systems object. Documentation to be updated.
Much of the core was updated relating to Audio and Graphics. Leikr is now 34 base colors, but still allows defining rgb values in some cases (see documentation). Pixel drawing has seen a major updated again.
Assets are heavily updated in this release, coming with Java support and a few new demos. Also removed some other demos.
Release 0.0.4
Alpha 0.0.4 release! The Clip and Scale release
This release is a pretty major update to the graphics library. It now contains extra methods for drawing sprites and an experimental clip()
method for rendering small portions of the screen. This will be updated in the wiki sometime after this release.
The new sprite command is spriteSc()
and has options for scaling once, in both x and y, or scaling independent x and y, as well as scaling along with flipping and rotations. Like clip, this will be documented shortly after the release.
This release also adds the ability to write your programs in Java! Currently this is very experimental and only supports a single Java file program. Working on fixing this for future releases. Groovy is still the primary supported implementation language.
Raspberry Pi Release
Raspberry Pi Release!
This is the first public release version for Raspberry Pi
It has been tested on the Raspberry Pi Zero W, 3B and 3B+ and found to be best used on R-Pi 3B or 3B+
It will start up on the Zero W, but currently runs entirely too slow to be usable and requires some modifications to the mysecurity.policy
. I will not be officially supporting the Pi Zero or Zero W.
It has all the features of the currently experimental 0.0.3 version (plus some extras).
Notes:
-
Due to the nature of the raspberry pi's low powered system, compiling programs may take longer than when running on a typical computer system. For best results, when finishing a title, compile it on your dev computer and then move the compiled project to the pi for playing.
-
Before running this on your system, make sure to follow some directions here about setting up opengl and performance enhancements with your pi. The currently generated libs on that repo are also the ones used for this current release.
-
This release also currently assumes a 32bit os install of raspbian.
Experimental JAR release
Trying out a new experimental release using a single JAR instead of a lib of JAR's.
This will come with 2 simplified launch scripts, using which will activate the security policy.
This release also contains an updated security policy, hopefully tuned to manage multi-OS architectures. No guarantees.