Releases: pfedick/DeckerGame
0.17.1 - Companion & Pyramid Update
This is the biggest Update ever! It contains a brand new level, which is the biggest, I've ever made so far. There are a lot of new elements, game mechanics and even a companion for George.
New in this release
Brand new level called "The Pyramid"
As the name suggests, George has to discover the depth of an ancient pyramid. And it's really depth! The deepest caves are filled with lava! This is the biggest level I've ever made. It consists of over half a million blocks, 20,000 sprites, 800 lights, 1,000 objects and tons of particle effects.
Fun fact:
If you actually built this level with clamping blocks, it would be around 8 meters wide and 4 meters high. When you want to show the complete level on a screen, you will need 17 by 14 Full HD monitors, which makes 238 monitors in total.
There are a lot of hidden rooms in this level, and riddles, which have to be solved, to pick up all items. George is very talkative in this level. I wrote a lot of text and recorded it with my voice (german only yet).
Companion called "Glimmer"
While exploring the depths of the pyramid, George finds hints, which will lead him to an ancient being, a creature of pure energy and light. George can free it from it's prison, and it will follow and help him. George gives him the name "Glimmer". Glimmer has several expressions and uses light and particles for them. He can follow the player, fly around, appear and disappear. He can also... no, you have to find out yourself ;-)
Gapless audio playback
Until now, i used mp3 compression for all audio files. Unfortunately this format cannot be used to playback gapless audio loops. There's always a little distortion (silence or plopp) at the end, when the playback starts from the beginning. As I don't want to distribute huge uncompressed audio files, I decided to store audio loops now in the free ogg vorbis format, which can be played without gaps. The audio engine of the game is now capable of loading audio files in this format.
Of course I did not recompress the existing mp3 files to ogg, which would decrease audio quality. I recreated all audio files from it's original source in it's highest quality within the DAW software Ableton, exported them and finally compressed them with ogg vorbis.
Everything on any plane
Sort of. Until now, all objects could only be placed on the same plane, as the player walks. This made totally sense, as in most cases, it's the player, who interacts with them. It wouldn't make any sense, to place a collectable coin on a background plane, which the player could never reach. But for some elements, it makes sense, for example particle or sound effects.
It is now possible to place any object on any plane., but I decided to limit this feature only to effect objects. You can now have sound on a background or foreground plane, and, of course, particle effects!
The plane of an object can be changed afterwards.
New HUD (Heads Up Display)
I replaced the old HUD, which showed health, lifes and points. The new HUD has some graphic elements and indicators, so you can better see your stats. Some elements are only displayed, when they are used. The amount of oxygen, for example, gets only shown, when the player is underwater.
New soundtrack!
I composed a brand new track exclusive for the pyramid level of this game!
new objects
- Crawling spider, which can spit a net over the player, which renders him immobile for some time. The spider can be smashed by jumping on it
- added PowerCell as new object. Using the flashlight can now drain the battery.
- Added a SpawnPoint object, which spawns new items, when it gets triggered. It can also play an effect sound. It shares the list of sound effects with the speaker
- added peach as collectable item
- MagicGround. This a dynamic ground object, which can appear or disapper over time or when toggled. It can also float up and down and can have different appearances
- GlimmerNode, a triggerable item, which controlls the behaviour of the new companion called "Glimmer".
- PlayerTrigger, a new triggerable item, which controlls some behavior of the player. It can drain or give health, remove items or disable/enable the player controlls
- Great elevator! Yes, it's exactly the same elevator as in my stopmotion movie! And it also has it's own soundtrack from the movie, when it is used.
- We have a new fruit: crispy peaches! The player will get some health and a few points, when he collects one.
Other changes
- Sprites now have a z-axis, and all parameters (color, z-axis, layer, plane and rotation) can be changed afterwards
- added new bricks and sprites
- added decal sprites
- Show scrollbar only when there are more elements than what is seen on screen
- slightly highlight selected sprite
- fixed or updated ui of many objects
- updated ui of laser barrier, the flickering can now be disabled
- TouchEmitter can emitt Scorpion, Scarabeus and other items
- Scorpion can fall to the ground
- small refactoring on particle system
- arrow can be initialy disabled and triggered during gameplay
- trigger can now enable or disable other objects
- added acceleration to slide and fixed collision detection, when sliding to the right
- introduced a global frame counter, which can be used by objects, to better detect, if a collision is new or ongoing
- Added a third sprite layer on the player plane, which gets drawn on the top over all objects
- Speaker can play one time audio effects, which can be triggered
- Speaker starts audio loops at random position
- Speaker can be used on other planes
- New ambient audio and audio effects
- Added speed parameters to AnimationCycle class
- finally added soundeffects for ladder climbing
- speed up animation when climbing a ladder and added soundeffects
- added soundeffects for dragging and falling crate
- added renderings of george with flashlight when sliding down a ramp
- better dragging of crates
- implemented one-time-option in switch
- Powercell and other items can now be added as initial items to a level
- After close of level dialog, some parameters get applied to running level immediately
- added sort method to ListWidget and ComboBox
- ui is now always rendered in 2k, so we don't need the resizeEvent anymore
- LevelEnd gate can now also be used as warp gate to another LevelEnd in the same level
- BreakingWall gets state disabled after it breaks
- collision detection of stamper can be disabled
- added debug submenu to the ui, where you can heal the player or add certain items
- reset player stats on level load
- Added soft gradient particles, which are perfect for smoke
- added isEnabled method to objects, which the LightSignal for example implements to signal, if it is on or off
- Objectwatcher uses isEnabled-Method instead of enabled Variable
- fireballs get distinguished by water
- amount of particles for fireball can be configured
- flight path of fireballs can be randomized
- reduced size of firecanon and other objects representation
- Added HealthDropReason "Etched"
- added engine load and frametime to statusbar
- optimization: don't draw object/dynamic lights, which are not in the viewport
- Moved avatar a bit upwards to the middle of the screen, so you can see more below the ground
- changed layout of message overlay a bit
- changed default for voicetrigger, so that it is not triggered by collision
- implemented pauseWorld feature for VoiceTrigger
- added Method to Player to disable/enable player control
- added some lightmaps
- initial direction of floater can be changed
- fixed/implemented test button for LevelModificator
- added lights to start scene
- player can now automatically walk in cut scenes
- implemented change of song with LevelModificator
- Visibility Menu automatically closes when it lost its focus
Bugfixes
- fixed changing the layer of an object
- fixed wrong spriteset name in Sprite editor and always scroll to top of list, when spriteset changed
- fixed an issue with the scrollbar, which affected ComboBoxes with many items
- fixed lightning of laser when always on
- fixed drawing issue of checkboxes and radio buttons
- fixed state and triggering of TouchPlateSwitch
- fixed notify of trigger
- fixed issue where an object could disappear forever, when a second object get's the same coordinates
- ppltk: fixed deletion of selected text in LineInput and TextEdit
- ppltk: fix TextChangedEvent when using copy and paste in TextEdit and LineInput
- fixed drawing of objects in editmode
- LightSignal emits light on the correct plane
- bugfix: when player dies unerwater with no air, and he respawns unerderwater, he starts with full air instead of dying again immediately
- fixed some audio files, which i accidently exported as mono
- fixed flashlight wenn george speaks
- fixed crash when a test button is used in a dialog, but no reset button.
- fixed possible crash when pressing F3
- fixed export of ColorGradient parameter
- some fixes on Wallenstein enemy
- fixed save of song in LevelModificator
- fixed loading of old speaker objects from old levels , especially test.lvl
You can find the download files below in the assets! There is always a release version for windows with an installer, and a file containing all the sources, if you want to compile the game on your own. See readme.md for further information, and instructions.
Follow me on Mastodon: https://mastodon.de/@patric...
0.17.0 - Companion & Pyramid Update
This is the biggest Update ever! It contains a brand new level, which is the biggest, I've ever made so far. There are a lot of new elements, game mechanics and even a companion for George.
New in this release
Brand new level called "The Pyramid"
As the name suggests, George has to discover the depth of an ancient pyramid. And it's really depth! The deepest caves are filled with lava! This is the biggest level I've ever made. It consists of over half a million blocks, 20,000 sprites, 800 lights, 1,000 objects and tons of particle effects.
Fun fact:
If you actually built this level with clamping blocks, it would be around 8 meters wide and 4 meters high. When you want to show the complete level on a screen, you will need 17 by 14 Full HD monitors, which makes 238 monitors in total.
There are a lot of hidden rooms in this level, and riddles, which have to be solved, to pick up all items. George is very talkative in this level. I wrote a lot of text and recorded it with my voice (german only yet).
Companion called "Glimmer"
While exploring the depths of the pyramid, George finds hints, which will lead him to an ancient being, a creature of pure energy and light. George can free it from it's prison, and it will follow and help him. George gives him the name "Glimmer". Glimmer has several expressions and uses light and particles for them. He can follow the player, fly around, appear and disappear. He can also... no, you have to find out yourself ;-)
Gapless audio playback
Until now, i used mp3 compression for all audio files. Unfortunately this format cannot be used to playback gapless audio loops. There's always a little distortion (silence or plopp) at the end, when the playback starts from the beginning. As I don't want to distribute huge uncompressed audio files, I decided to store audio loops now in the free ogg vorbis format, which can be played without gaps. The audio engine of the game is now capable of loading audio files in this format.
Of course I did not recompress the existing mp3 files to ogg, which would decrease audio quality. I recreated all audio files from it's original source in it's highest quality within the DAW software Ableton, exported them and finally compressed them with ogg vorbis.
Everything on any plane
Sort of. Until now, all objects could only be placed on the same plane, as the player walks. This made totally sense, as in most cases, it's the player, who interacts with them. It wouldn't make any sense, to place a collectable coin on a background plane, which the player could never reach. But for some elements, it makes sense, for example particle or sound effects.
It is now possible to place any object on any plane., but I decided to limit this feature only to effect objects. You can now have sound on a background or foreground plane, and, of course, particle effects!
The plane of an object can be changed afterwards.
New HUD (Heads Up Display)
I replaced the old HUD, which showed health, lifes and points. The new HUD has some graphic elements and indicators, so you can better see your stats. Some elements are only displayed, when they are used. The amount of oxygen, for example, gets only shown, when the player is underwater.
New soundtrack!
I composed a brand new track exclusive for the pyramid level of this game!
new objects
- Crawling spider, which can spit a net over the player, which renders him immobile for some time. The spider can be smashed by jumping on it
- added PowerCell as new object. Using the flashlight can now drain the battery.
- Added a SpawnPoint object, which spawns new items, when it gets triggered. It can also play an effect sound. It shares the list of sound effects with the speaker
- added peach as collectable item
- MagicGround. This a dynamic ground object, which can appear or disapper over time or when toggled. It can also float up and down and can have different appearances
- GlimmerNode, a triggerable item, which controlls the behaviour of the new companion called "Glimmer".
- PlayerTrigger, a new triggerable item, which controlls some behavior of the player. It can drain or give health, remove items or disable/enable the player controlls
- Great elevator! Yes, it's exactly the same elevator as in my stopmotion movie! And it also has it's own soundtrack from the movie, when it is used.
- We have a new fruit: crispy peaches! The player will get some health and a few points, when he collects one.
Other changes
- Sprites now have a z-axis, and all parameters (color, z-axis, layer, plane and rotation) can be changed afterwards
- added new bricks and sprites
- added decal sprites
- Show scrollbar only when there are more elements than what is seen on screen
- slightly highlight selected sprite
- fixed or updated ui of many objects
- updated ui of laser barrier, the flickering can now be disabled
- TouchEmitter can emitt Scorpion, Scarabeus and other items
- Scorpion can fall to the ground
- small refactoring on particle system
- arrow can be initialy disabled and triggered during gameplay
- trigger can now enable or disable other objects
- added acceleration to slide and fixed collision detection, when sliding to the right
- introduced a global frame counter, which can be used by objects, to better detect, if a collision is new or ongoing
- Added a third sprite layer on the player plane, which gets drawn on the top over all objects
- Speaker can play one time audio effects, which can be triggered
- Speaker starts audio loops at random position
- Speaker can be used on other planes
- New ambient audio and audio effects
- Added speed parameters to AnimationCycle class
- finally added soundeffects for ladder climbing
- speed up animation when climbing a ladder and added soundeffects
- added soundeffects for dragging and falling crate
- added renderings of george with flashlight when sliding down a ramp
- better dragging of crates
- implemented one-time-option in switch
- Powercell and other items can now be added as initial items to a level
- After close of level dialog, some parameters get applied to running level immediately
- added sort method to ListWidget and ComboBox
- ui is now always rendered in 2k, so we don't need the resizeEvent anymore
- LevelEnd gate can now also be used as warp gate to another LevelEnd in the same level
- BreakingWall gets state disabled after it breaks
- collision detection of stamper can be disabled
- added debug submenu to the ui, where you can heal the player or add certain items
- reset player stats on level load
- Added soft gradient particles, which are perfect for smoke
- added isEnabled method to objects, which the LightSignal for example implements to signal, if it is on or off
- Objectwatcher uses isEnabled-Method instead of enabled Variable
- fireballs get distinguished by water
- amount of particles for fireball can be configured
- flight path of fireballs can be randomized
- reduced size of firecanon and other objects representation
- Added HealthDropReason "Etched"
- added engine load and frametime to statusbar
- optimization: don't draw object/dynamic lights, which are not in the viewport
- Moved avatar a bit upwards to the middle of the screen, so you can see more below the ground
- changed layout of message overlay a bit
- changed default for voicetrigger, so that it is not triggered by collision
- implemented pauseWorld feature for VoiceTrigger
- added Method to Player to disable/enable player control
- added some lightmaps
- initial direction of floater can be changed
- fixed/implemented test button for LevelModificator
- added lights to start scene
- player can now automatically walk in cut scenes
- implemented change of song with LevelModificator
- Visibility Menu automatically closes when it lost its focus
Bugfixes
- fixed changing the layer of an object
- fixed wrong spriteset name in Sprite editor and always scroll to top of list, when spriteset changed
- fixed an issue with the scrollbar, which affected ComboBoxes with many items
- fixed lightning of laser when always on
- fixed drawing issue of checkboxes and radio buttons
- fixed state and triggering of TouchPlateSwitch
- fixed notify of trigger
- fixed issue where an object could disappear forever, when a second object get's the same coordinates
- ppltk: fixed deletion of selected text in LineInput and TextEdit
- ppltk: fix TextChangedEvent when using copy and paste in TextEdit and LineInput
- fixed drawing of objects in editmode
- LightSignal emits light on the correct plane
- bugfix: when player dies unerwater with no air, and he respawns unerderwater, he starts with full air instead of dying again immediately
- fixed some audio files, which i accidently exported as mono
- fixed flashlight wenn george speaks
- fixed crash when a test button is used in a dialog, but no reset button.
- fixed possible crash when pressing F3
- fixed export of ColorGradient parameter
- some fixes on Wallenstein enemy
- fixed save of song in LevelModificator
- fixed loading of old speaker objects from old levels , especially test.lvl
You can find the download files below in the assets! There is always a release version for windows with an installer, and a file containing all the sources, if you want to compile the game on your own. See readme.md for further information, and instructions.
Follow me on Mastodon: https://mastodon.de/@patric...
0.16.0 - Ui overhaul
In this release I concentrated on the Userinterface. I overhauled all the little buttons, comboboxes, scrollbars and other widgets, which you see when using the editor. I also introduced a new screen in the game, where you can directly select and start a specific level.
New in this release
- the Userinterface is rendered at a fixed resolution of 1920 x 1080 pixel and then scaled to the actual size of the game window or screen.
- Levels now can have a name, description, author and screenshot. You can now also define objects, which are automatically added to the inventory of the player, when a level is started (for example the flashlight or hammer).
- added a new screen, where all existing levels are listed, with name, descfription and screenshot. You can freely select and start a level from here. You can define in the level settings, if a level should appear here. You can navigate by mouse, keyboard and controller.
New game content:
- Added new grafix for switches, buttons and touchplate and overhauled the ui for these
- new touch plate. This is some kind of button on the flow, which is activated, when the player (or enemies) run over it
- added different kinds of crates to the game. Crates can be pushed by the player and can fall down and interact with other objects in the game. They could trigger the new touch plate
- Skeleton can be crushed with a crate
- added a light signal, which can be changed with all kind of buttons
- Updated some levels with new content
- started with an new level called "Pyramid", where Geeorge has to explore an ancient pyramid.
- changed end of desert level: level ends, when entering the pyramid
Other changes:
- changed the way how George crouches
- Objects in editmode show ID and are always lit and drawn in front of all player layers
- Window Border and Mouse are only visible in editor mode
- show mouse cursor, when settings menue is shown
- Bigger mouse cursor in game menus
- implemented method to detect collision between objects
- updated autoconf and added switch to enable address sanitizer. Disable nasm when address sanitizer is used
- added widget for text input, which can handle multiple lines
- make objects more transparent in edit mode
- added close button in window title in dialog widget
- created a new github project for the toolkit, which is used for the userinterface, which is called ppltk: https://github.com/pfedick/ppltk
- particle emitter uses TabWidget from ppltk
- refactor particelemitter ui
- refactored level dialog to use TabWidget
- refactored Screenshot class to be able to take a single screenshot in memory of the final game render
- When screen turns black, the userinterface stays visible
Bugfixes
- fixed scaling of intro video when screen is bigger than 1920 x 1080
- fixed scaling of game title on start screen and background color
- fixed scaling of "Start Tutorial" menu button
- fixed representation of skullmaster
- fixed crash on game exit
- fixed small memory leak in destructor of ObjectSystem
- fixed stack-use-after-return in start screen, when theme music was played
- fixed position independent code in ppl7 assembly
- updated configure to use nasm on mingw64 if available
- added check for libdav1d in configure, DAV1D_LIBS and DAV1D_CFLAGS in Makefile.in
- fixed controller settings screen
- use DAV1D_LIBS and DAV1D_CFLAGS in Makefile.in
- fixed memory leak in settings screen
- fix size for reset button
- fixed some race conditions and segfaults when closing windows by the new close button
- fixed positioning and drawing of scrollbar in objectselection
- fixed scrollbar issue with drag'n'drop
- fixed ComboBox
- fixed mouseWheel behaviour in several in sprite and tile selection
- fixed mousewheel behaviour in TileType selection and prevent that scrollbars can get negative values
- fixed closing of dialog
- fixed crash when creating a new level from the main menu
- removed some obsolete code
- Prevent change of global lightning, when opening the lights editor
- fix trigger of stamper
- fixed keyboard focus issue in level stats screen (I hope)
You can find the download files below in the assets! There is always a release version for windows with an installer, and a file containing all the sources, if you want to compile the game on your own. See readme.md for further information, and instructions.
Follow me on Mastodon: https://mastodon.de/@patrickf
YouTube: https://www.youtube.com/@PatrickFedick
0.15.1 - Skullmaster Update
This is a small Update with some bug fixes, but it has existing new content, too!
New in this release:
For the first time we have a boss enemy, which must be fighted to leave the level at the end. He is called the "Skullmaster", because he is a much bigger version of the already existing skull.
- The Skullmaster observes the area near the level exit, which is now inactive.
- When the player comes near, he starts to attack the player with fireballs
- The Skullmaster has a health bar above him, so that you can see how much life os left
- When his health level goes below thertain levels, he spawns a bunch of small skulls and disappears for a while
- Sometimes he bursts a bunch of fireballs instead of only one
Other changes
- Updated the animations and visual effects of the small skull
- Small skull keeps in his area better than before.
- When Skull gets killed by the flashlight, he now gives some health back to the player
- Skull can now be killed by jumping on him
- fixed flight path of ghost and ensured that he does not fly above or below blocked tiles
- Mushroom glows in the dark can can fall from above to the ground
- Mushrooms now have a dialog where they can be initially disabled and gravity and drift can be adjusted, when they are falling
- TouchEmitter can drop Mushrooms
- created a new underground part, which is called "the mushroom cave"
- new sprite sets with mushrooms
- all bricks can now also be used as sprites and therefore rotated and scaled
- gain staging of level "haunted", which means that I checked all sound effects in this levels and adjusted the volumes
- Dynamic Lights get updated when they are added to the LightSystem, so that flickering is possible
- Level End can now be triggered on and off
Other:
- reduced memory size required when saving a plane
- fixed Conditional jump or move depends on uninitialised value(s)
- Initialize all variables in ObjectsFrame
- fixed drawing of particles on backplane before lightmap is applied
- Clear render target before drawing anything
You can find the download files below in the assets! There is always a release version for windows with an installer, and a file containing all the sources, if you want to compile the game on your own. See readme.md for further information, and instructions.
Follow me on Mastodon: https://mastodon.de/@patrickf
YouTube: https://www.youtube.com/@PatrickFedick
0.15.0 - Light and Dark Update
New in this release
Lights
The major change in this release is the support for lights. It is now possible to create dark levels, which get only lit by different kind of lights.
- Lights can be placed on all layers of a level.
- Lights can be scaled, rotated and changed in their shape
- Color and intensity can be changed
- A light can have a lens flare effect
- A level now has a global lightning setting, where you can define the global light intensity and color of a level
- Lights can be turned on and off by triggers during game play
To fully show the capabilities of the new lightning engine, I created a new level called "haunted", with a lot of new objects! But I also modified some already existing ones:
- Added a new flashlight object, which the player can collect and use by pressing the "F"-key. With the flashlight, he can light up a small cone in front of his way.
- Added a new trap, which sends fireballs through the level in any direction. When the player gets hit by a fireball, he will take damage.
- Added a ghost, which flies back and forth through a level and glows in the dark. The player will also take damage on contact.
- Added a zombie, which will follow the player and throw knifes at him. The zombie can die, when he falls into a pit with spears
- Added new sprites: pumpkins, lanterns, graveyard objects
- Added a skull, which damages the player on contact, but can be killed with a flashlight
- Added a night sky
- Added a new invisible trigger object, which can turn lights on and off
- Lasers now glow in the dark
- the flame output of the floater shines in the dark
- crystals glow in the dark in different colors
- Added new environmental sounds to support a night mood, like crickets and frogs
- Bat and spider have now glowing eyes, so that they can be better seen in the dark
George can crawl
The player can now go down an his knees and crawl. This way he can pass low level sections.
Stamper
The Stamper is a trap that stomps on the player from above. In this release it has been completely overhauled. It can now also smash the player from the ground to the ceiling or from the sides. There are different forms and combinations available and the parts can be colored individually. When the trap is closed, it blocks the player and when it is placed horizontal, the play could also stand on it.
There is also a new death animation for the player, when he get's hit by the trap and sound effects, too.
Rotatable Sprites
All Sprites can now be rotated in any degree!
Level modificator
The "level modificator" is a new invisible triggerable object, which can change level parameters at playtime:
- Background color or background image
- color and intensity of global light
- change parameters instantly or define a period in which the values fade from the old settings to the new settings
- in the future it will also be possible to change the background music (not implemented yet)
Other
- To avoid problems on screen resolutions other than 1920 x 1080, the game engine now always renders the level at this resolution and then scale it to the real display size. Unfortunately this could lead to slightly blurred graphics.
- Refactored the generation of sprite outlines for the editor. There are no visible glitches or incomplete outlines anymore. Also reduced memory consumption on the graphic card, because we only render the required sprite and not the complete sprite set.
- Added a new tile type, which blocks only when player is on top of it. He can jump through it from below. He can also jump down from it, when first jump up and then press the down key while falling
- When the player passes a door, which transports him to another location, he will no longer be transported back and forth, when he keeps pressing the action key
- added a key combination, which saves all layers of the visible level as graphic files on disk (experimental and very slow!)
- player can collide with multiple objects at same place. This enables an editor to place several trigger or other objects at the same place
- added new options to the door
Bugfixes
- fixed a huge memory leak in the intro video player
- fixed lost background when pressing F3 in editor
- fixed sprites from getting the same id after a delete
You can find the download files below in the assets! There is always a release version for windows with an installer, and a file containing all the sources, if you want to compile the game on your own. See readme.md for further information, and instructions.
0.14.0 - Play it with controller
New in this release
Game Controller support
You can now use a game controller to play the game. The controller is detected and used automatically (plug it in or switch it on). The mapping of sticks and buttons can be changed in the games settings.
- left stick left or right: walk or run in the direction of the stick
- left stick up: jump or climb up a ladder
- left stick down: climb down a ladder
- Button "A": action key, it activates switches or open doors. In a Menu it selects the highlighted element
- Button "B": alternative for jump
- Button "X": go back in a menu
- Button "Menu": go to the settings
- Pad: navigate in a Menu, also alternative for player movement
If possible, the controller rumbles, when the player gets demage. You can disable this in the settings
Selection of difficulty level
The game now has three levels of difficulty, which can be changed everytime in the settings.
- easy:
- less enemies and traps
- enemies make less damage
- some enemies attack less often
- no damage when player falls to deep
- some traps are slower
- normal:
- the same as before: all the fun, play it how it's meant to be played
- hard:
- more enemies
- enemies make more damage
Other
- physics: fixed problems with water when running other than 60fps
This fixes a problem, where George run over water and did not sink in, and also the breaking speed when jumping or fallling into the water - replaced ffmpeg with dav1d in windows deployment
- some enemies make less damage
0.13.0 - Intro
The render intro is finally here!
I build the last 3d sets required for the intro a few days ago and rendered the whole video clip in three days. I also finished the soundtrack for it and rewrote the player inside the game engine to play the video.
I already started to implement the intro last year and I used the libraries from ffmpeg for playback. Unfortunately using ffmpeg added a huge amount of dependencies to all kind of audio and video codecs, which I didn't need. This of course also increased the size of the setup program. So the goal for this version not only was to finish the intro video, but also to find a better way to playback the video. In the end, I decided to use AV1 as video codec and used libdav1d as decoder. The windows setup is now 10 MB smaller than before.
Changes:
- removed ffmpeg and all it's components
- rewrote the video player to directly use the library libdav1d to play the video
- playback of video can be skipped by pressing space
- added an option in the settings to skip the video
- rendered the video, which consists of 1836 single pictures
- compressed the video with the av1 video codec
Other changes:
- I added a ghost as new enemy, but it is not used in any level, yet
- fixed a small memory leak in the main menue, where I forgot to delete a texture
Release-Video on YouTube: https://youtu.be/VIhXEQeZINE
0.12.0 - Tutorial and Speech
This update is all about Speech. George now has a voice and he sometimes give a comment, which is triggerd by things happening in the game. He also gives little hint's to the player, when something new happens, like finding a locked door, for which a key is needed.
I also added a complete interactive Tutorial, im which George himself teaches you the basics of the game. To get this running, I had to implement a few new objects, which are invisible to the player, but which can interact with him, for example when he run over them. It's also possible to watch certain objects and trigger actions under certain conditions.
New features:
- Tutorial level (you can select it in the main menue)
- When opening the settings in game, you now can go back to the menue or exit the game
- seperate volume control for speech
- german and english text
- George speaks (german, but english will follow)
- Spoken text is also shown on screen
- when starting from the console, you can start with a specific level by adding "-l LEVELNAME" as parameters
- some objects trigger George to say something
- door can be triggerd to open
- added new Objects:
- VoiceTrigger (George speaks)
- ObjectWatcher (observers a list of objects and trigger an event under certain conditions)
- Trigger (can trigger other objects, when itself was triggerd or had contact with the player)
- Touch-, Particle- and RainEmitter can be triggered
- It's now possible to go back to the menue, when reaching the end of a level, by writing "MENU" in the filename for the next level (in upper case)
- when opening the settings ingame, there are now options to go back to the main menue or exit the game
Bugfixes:
- fixed a bug where the player could get stuck in the "stamper"-object
- fixed some Bugs in pplib when loading json files
- fixed an issue in the level end or gameover screen, when the player collected more items of a kind, than the level contained
0.11.0 - Pathfinding and Blood Update
In this update I changed a few things under the hood, in particular I've greatly improved the pathfinding algorithm for some enemies and added a few blood effects. Hence the name :-)
After implementing the first bigger change for this release, I had to play through all existing levels and check, if I broke something. Fortunately I hadn't, but when I came to the place in the testlevel, where "Wallenstein" starts to attack the player, the game got stuck. I found out, that with a change in the last version, I totaly broke the pathfinding algorithm and didn't notice it. Sorry for that! To solve another issue with the pathfinding, I increased the search depth of the algorithm. But in the test level this led to loops and checks, which could take a couple of seconds for each frame.
So in this release I concentrated on the pathfinding algorithm and completely rewrote it by using a version of the Dijkstra algorithm. It now always finds the best way in a very short time, even when there are a lot of junctions in the waynet. I also updated the visualization of the waynet, when in edit mode. And finally: the waynet is now based on pixel coordinates instead of tile coordinates, which makes a lot of calculations more easy.
To get the new algorithm better tested, I also fully implemented the other two AI enemies: Helena and the Yeti. They also follow and attack the player now.
New Features:
-
New pathfinding algorithm
-
I enhanced the behaviour of the rats:
- they now run with a random speed, normaly much faster that before
- they can change the direction and speed while running
- there's a chance, that the rat changes it's direction and run away, when the player jumps onto it. In this case, the player will get a bit of damage
- random color and size
- implemented a much better collision detection
- added blood effects, when player jumps onto the rat
- added a squeeking sound
- when in edit mode, some parameters of the rat can be changed, size, color and speed for example
-
Added cheese! As rats could now get really dangerous, the player can collect cheese, which will tame the rats
-
modified the level "Heaven" a bit and added a lot of rates and a nice place where the player can find the cheese
-
Added blood and audio effects to Wallenstein
-
Added attack mode for Helena! She will now start to shoot at the player with her pistol. Also added sound and blood effects
-
Added attack mode, sounds and blood effects for Yeti
-
Added more sound effects for the player
-
Added a voice for George. He sometimes starts to speek, when he is idle and he will tell you, when he gets hurt
-
added particle effects to the mushroom
-
added Pause and Step-Button when in edit mode (this is for debugging only)
-
when the player is idle a long time, he will do some funny things :-)
Other Changes:
- optimized all sprite textures to occupie less space and therefore less memory in the graphics card
- added metrics to the audio engine to visualize how many cpu time it uses.
- rearranged the metrics display a bit, to make it better readable and understandable
- added new audioclass for ambient sound effects like wind, water and birds
- added new audioclass for voices
- added new sliders in the audio settings to adjust the volumes of the new audioclasses
- When loading a level in the level editor, only files ending on "*.lvl" are shown
- Oxygen tank respawns after 120 seconds
Bugfixes:
- fixed conflict between metrics and oxygen display when underwater
- fixed calculation of AudioPool Buffersize
- fixed drawing outlines for scaled objects
- fixed drawing of scaled objects in edit mode
- fixed some uninitilized variables
- fixed pathfinding of Wallenstein in Test level (see above)
- fixed a Segmentation fault, when in object mode and then loading a level
- fixed some issues in ai and wallenstein
- fixed selection of path in FileDialog
- fixed segmentation fault when deleting an object, especially when there is an active collsion with player
0.10.0 - Water Update
It's summer here in Europe, and it's raining. So let's make rain and a lot of water in the game, too ;-)
New Features:
- George can swim!
- George can dive! But beware: there are dangers in the water and he has only a limited amount of oxygen!
- George now has a backpack, where he can store all the things he collects
- Fishes for the water
- Piranha
- Oxygen tank. This fills up Georges Oxygen level, when he is diving
- The "Three Speers" trap has different variations and can now also be placed on the walls or at the ceiling. Use the ui to select between the different versions
- New water and underwater sections in the "Heaven"-Level
- a lot of new soundeffects! All collectable items now have a sound
- When player collects an extra live, he makes a jump into the air
- Player can collect a hammer
- Player can destroy specific walls when he has collected the hammer (press E on the keyboard, when you stand before a wall)
- New death animation for George: when he dies by fire, he will burn (using the particle engine) and turns black
- New death animation for George: when he dies by drowning, he will tumple around and produces air bubbles
Changes:
- changed the drawing and selection of objects, when in edit mode a bit. The initial placement is now static, the moving object is drawn transparent. I hope this makes it easier to select an existing object
- changed the spriteengine a bit to make it faster
- animated the rat
Bugfixes:
- fixed loading a door from a level prior to version 0.9.0
- fixed collision detection with door
- fixed a race condition in the particle engine, which could occur when system is under heavy load
- fixed issue with ai_figure and waynet at lower framerates