Releases: jakubg1/OpenSMCE
Beta 2.2.0
This release adds a ton of small features and fixes some bugs.
Changelog
Additions
Code
- Added Discord Rich Presence integration!
- For now, it can't be turned off, but I'll add that functionality soon. If you don't have Discord, you can still use the engine.
- Added custom powerups and spheres!
- 9 or more sphere colors are now possible!
- You can see example definitions in games/Luxor_appendix/config.json.
- Added a debug button to show sphere train boundaries. Press H key.
- Added Beazier Interpolation function. Not used anywhere at the moment, but worth noting.
Game
- Added a placeholder for a level map.
- Added an instructions screen.
Changes
Code
- Significantly improved game loading speed.
- Extra life sound is no longer hardcoded. Instead, it is bound to a widget.
- Widgets now initialize their position based on starting animation position/alpha if such animation exists.
- Hiding a Widget now despawns all particles associated with it.
Game
- Improved a sphere appending animation when it hits the train.
Removals
Code
- Farewell to Legacy Sprites! They were a pretty bad idea and were being planned to be phased out for a long time before. They were used in sphere, shooter and powerup rendering.
Bugfixes
- [#18] Fixed various bugs and glitches associated with shooting at the front of a sphere group.
- [#19] Level lose flag was not saved when exiting the game.
- Fixed W key causing a crash.
- Fixed slower sphere magnetization when a Slow or Stop powerup was active.
Notes
- Emergency save still does not work. Again!
As always, if you're new around here, remember to read the README file if you want to convert the original Luxor game for this engine.
Happy matching!
Beta 2.1.0
!!WARNING!!
On January 13, 2021, tag names for versions up to Beta 2.1.0 were changed.
This release's tag name was changed from an incorrect v2.1.0-beta to a more correct v0.21.0.
The given release date is irrelevant. The real release's date is January 4, 2021.
This release is mainly dedicated to major changes in particle system, however there was also some space for other minor changes and improvements.
Changelog
Additions
- Added a
Debug
class.- Profilers, Console and a few other things now sit here instead of sitting loosely in
main.lua
.
- Profilers, Console and a few other things now sit here instead of sitting loosely in
- Added Color Palettes.
- The class name is
Essentials/ColorPalette
- Color palettes are single image files from which you can get a color.
- They are housed in
ResourceBank
.- They can be loaded via Loading Lists in
config.json
:colorPalettes
list (optional). - Example:
- They can be loaded via Loading Lists in
- The class name is
"colorPalettes":[
"img/powerups/palette1.png",
"img/particles/palette2.png"
]
- Added a new console command:
crash
- Dedicated to people who want to kill the engine and force a crash screen, if something critical and possibly harmful happens
and to cheat by using this command in order to revert some bad progress in your game.
- Dedicated to people who want to kill the engine and force a crash screen, if something critical and possibly harmful happens
- Added node bookmarking.
- This was introduced in order to improve performance on levels with lots of nodes.
- How it works is explained in this commit.
Changes
- Major tweaks to Particle System.
- Introduced
Particle/Packet
properly. Game:spawnParticle()
will now return a Particle Packet.- Other classes can therefore control the Packet: change its position, destroy it, etc.
- Numerous and breaking changes to the Particle data.
- The Spawner definitions are no longer keyworded. This makes the root tag a list instead of a dictionary. The spawner name is now a parameter, which is unused.
Example:changed to{ "spawner1":{...}, "spawner2":{...} }
[ {"name":"spawner1", ...}, {"name":"spawner2", ...} }
- Spawner: Changed
spawnMax
: now describes how many Particles the Spawner can have at once, not how many of them it can spawn. - Piece: Added
posRelative
[bool]: iftrue
, the Particle will be attached to the Spawner and move along with it. - Spawner: Added
pos
[Vector2] - Piece: Removed
pos
[Vector2] - Piece: Added
spawnRadius
[Vector2]: this defines an ellipse where a particle can spawn. - Piece: Added
speedMode
[string]: Can be"loose"
,"radius"
or"circle"
."loose"
is the default mode. The speed affects global particle position."radius"
is a mode where the initial speed is rotated depending where the particle spawns and is scaled byspawnRadius
."circle"
is a mode where the particle is attached to an ellipse of size beingspawnRadius
.speed
andacceleration
are not Vector2, but just numbers in this mode and they are describing an angle around the center of the ellipse, instead of position.
- Piece: Added
directionDeviationTime
[number/nil] anddirectionDeviationSpeed
[number]: AfterdirectionDeviationTime
seconds, each frame a particle speed vector will rotate with a speed evaluated fromdirectionDeviationSpeed
. - Piece: Added
colorPalette
[string] andcolorPaletteSpeed
[number]: If set, the particle will be colored accordingly to the ColorPalette with a speedcolorPaletteSpeed
pixels per second.
- The Spawner definitions are no longer keyworded. This makes the root tag a list instead of a dictionary. The spawner name is now a parameter, which is unused.
- Particles in their new form are used by Collectible, Shooter (idle ball effect for special sphere 8000 s) and ShotSphere (fireball explosion effect).
- Introduced
- Tweaked some
Shooter
class code. - Added
loadImageData()
. - Particles are now rendered below UI. Particles which are spawned by Widgets themselves are not affected.
Bugfixes
- [#21] Speed shot beam is now aligned properly.
Notes
- Emergency save still does not work.
As always, if you're new around here, remember to read the README file if you want to convert the original Luxor game for this engine.
Happy matching!
Beta 2.0.1
!!WARNING!!
On January 13, 2021, tag names for versions up to Beta 2.1.0 were changed.
This release's tag name was changed from an incorrect v2.0.1-beta to a more correct v0.20.1.
The given release date is irrelevant. The real release's date is December 23, 2020.
Finally here!
Changelog
For game creators
- Added a new table to
config.json
:gameplay.sphereBehaviour
.- Controls how sphere physics work.
- Example table, which yields the exact same behaviour as in previous versions:
"sphereBehaviour":{
"acceleration":500,
"decceleration":500,
"slowDecceleration":200,
"attractionSpeed":-200,
"collisionSpeed":-200,
"slowSpeedMultiplier":0.3,
"reverseSpeed":-100,
"foulSpeed":2000
}
Additions
-
Added a new crash screen in place of a default one
-
Level progress can now be seen in the debug screen.
- You can activate the debug screen by pressing
D
key.
- You can activate the debug screen by pressing
Bugfixes
- If you lose your last life and lose the game, the engine will no longer crash.
Notes
- Moved most of the source
*.lua
files tosrc
folder.json.lua
andclass.lua
were moved tocom
, as they are third-party dependencies. This has no effect for the end user, but reduces mess with lots of files sitting in the root directory.
Remember to read the README file if you want to convert the original Luxor game for this engine.
There are plans to make some games available for everyone without a hassle, but I can't tell anything more right now...
Beta 2.0.0
!!WARNING!!
On January 13, 2021, tag names for versions up to Beta 2.1.0 were changed.
This release's tag name was changed from an incorrect v2.0.0-beta to a more correct v0.20.0.
The given release date is irrelevant. The real release's date is November 23, 2020.
After some thinking about, I think that releasing new betas with such a long delay may not be good for future of the engine. Releasing a new version out of sudden with a lot of changes can really hurt, especially if that breaks the compatibility with the previous version. And that's unfortunately what's gonna happen right now, but I'll be sure that it will happen in the future as few times as possible.
That's why I've decided to release the current development progress as a beta 2.0.0 version. From now onwards, new betas will begin to release a few days after each other, with small or not-so-big list of changes so that existing games could be updated without taking too much effort. This is to ensure that no compatibility breaks will occur, and this is a temporary solution until a proper editor (and therefore no need to beautify the syntax, which is one of the main downsides to convert and upgrade game files automatically) is made in the engine. Development versions will continue to release as long as it'll be needed.
No changelog this time, if you really want to know what's added, look at commit history. But a lot of stuff was added :)
Before launching the engine, read README file carefully.
Beta 1.0.1: Hotfix release
!!WARNING!!
On January 13, 2021, tag names for versions up to Beta 2.1.0 were changed.
This release's tag name was changed from an incorrect v1.0.1-beta to a more correct v0.10.1.
The given release date is irrelevant. The real release's date is July 23, 2020.
Now asset installing process for the engine should be less confusing.
Changelog:
- Added fonts and other bitmaps to the converter script
- A file name will show up when a sound or an image was not loaded correctly, resulting to a crash
- Updated the readme instructions a bit
Beta 1.0.0: The first release
!!WARNING!!
On January 13, 2021, tag names for versions up to Beta 2.1.0 were changed.
This release's tag name was changed from an incorrect v1.0.0-beta to a more correct v0.10.0.
The given release date is irrelevant. The real release's date is July 22, 2020.
This is the first release, lacking a lot of features. However, it's finally available for the public! From now onward, new features will be added and bugs will be fixed.
No changelog there.