Boulder Dash for University Project, written in Java by Monster Group.
- Java 8 (Java Swing, AWT)
- EmbASP Framework
- AI completed
- Fixed Multiplayer exceptions
- Music fixes
- Fixed turn_back on Multiplayer
- Added error messages on Multiplayer
- Added "You Win" and "You Lose" events
- Retry button now work on "You Lose" page
- Added win and lose Music effects
- Added ingame sfx
- New levels
- First implementation of AI
- Added You_Win Class
- Added PacketStand class
- Added missing diamonds and score voice in class "Score".
- Minor graphics improvements
- Network improvements
- Minor fixes
- Level has its own Thread again, to ensure frame rate coherence
- Minor improvements to the thread management
- Minor cleanup
- Now the player respawns instead of dying
- Fix to Host input from file
- Made a method for respawing
- Now each player (or host) has at most 3 respawns
- Network improvements
- Added multiplayer boolean in Options
- Added Host spritesheet
- Added some send methods (not yet tested)
- Minor fixes on socket classes
- Now Host Extends Player
- Added isMoved() method
- Added Packet Classes
- Added new methods on MessageHandler
- Now sockets class just handle connessions
- Multiplayer class fixes (but still throws NullPointerException)
- MessageHandler works
- SocketClient threads are now interrupted by SocketClient methods
- SocketServer thread are now interrupted by SocketServer methods
- An anonymous "music" thread in Main class is now interrupted by an anonymous WindowListener methods
- Game threads are now interrupted by Menu methods
- Menu threads are now interrupted by Main methods
- Multiplayer threads are now interrupted ny Menu methods
- Added some locks on music methods to avoid concurrent calls; needs further testing
- Modified a bit the Main structure to make better use of the EDT; needs further testing, too
- now the World class has its own thread again, which gets interrupted by Level.closeThread()
- minor cleanup
- Now, using the Start button in the Menu repeatedly gives the expected results
- Added You_Lose Class
- Camera fixed in fullscreen mode
- New AudioPlayer(solves OpenJDK problems)
- Added some exception handling for the menu-level interaction problem, just for debug purposes
- Now any collision between an Enemy object and a Player object result in a call to the destroy() method of the Player object.
- Now both old Level and World tasks run in a single Game task
- Minor bugfixes
- Jlabel position fixed in full screen
- Minor audio improvements
- Minor bugfixes
- Fixed full screen mode
- Fixed main class
- Controller improved
- Fixed the enemy not dying after a Rock falls on him
- Fixed some synchronization issues between graphic and logic (tied to the above error)
- Fixed some typos in the Renderer class
- Now the Player moves 2x faster, it should feel more natural
- Added Hearts in the Score Panel
- Now music loops correctly
- Tentative implementation of a "delay" on some player actions (like moving, pushing rocks etc.)
- Multiplayer fixes
- Added network package
- Added Multiplayer panel.
- Added a new menu song and Credits song
- Added sfx on menu labels.
- Improved Music handler class
- Solved a bug concerning the sprite update
- Now Enemy and Player have the correct background sprites
- Swapped HashMap with ConcurrentHashMap in GameMap for consistency
- Started implementing the AI package (still work in progess)
- Added separate maps for different kinds of blocks (will be useful when implementing AI algorithms)
- Now Enemy object have their own basic AI (direction chosen randomly)
- Now music can be deactivated by options flag
- Now, if the player digs under two or more rocks, it dies
- Fixed a synchronization problem with GameObject.swap() and GameObject.destroy() methods
- Now the update process should be nearly serial
- Added Audio folder and Music handler classes
- Now, any Living implementors will die if a rock falls over them vertically while in motion (moving under a rock will not result in the Living object dying)
- Added Options panel and "turn_back" button in the Score panel
- Now rocks fall only if there's enough space
- Code improvements
- Added Menu and Score class
- Camera bugfix
- Block and Living merged into new class, GameObject
- block sprites management moved to graphics.Level
- New loading symbols: 'D' for Door, 'P' for Player, 'E' for Enemy
- Rocks and diamonds now slide on each other when falling
- Now player can push rocks (still testing)
- New assets dimensions (32px, 48px, 64px)
- New levelmap
- Added Door class
- Fixed levelmap reading verse
- Fixed a minor issue with Map.initialize()
- Used some instanceof operator instead of the getType mechanism
- Fixed a bug of various gravity() implementations
- Improved level map loading from text file
- Added Algoritme van Dijkstra (Dijkstra's Algorithm) on enemies movement (not yet running)
- Changed the LivingSprite <-> Living relationship to separate more fully the logic package from the graphic one
- Changed some long switches in Level to a simple, static map
- Added a private constructor to Renderer class
- minor typo correction in a Living comment
- Camera and assets bugfix
- Improved Block spritesheet
- Added Ground, Wall and Door sprites
- Added digging skill on Player
- Fixed Enemy walking animation
- Added ls.movePose() and ls.standPose()
- Minor fixes on Level class
- Added a diamond counter to Map
- Added Diamond destruction upon collision with Player
- Part of the Enemy movement now works
- Added Gravity.gravity() implementation (doesn't work yet)
- Camera class improvement
- Lock of the camera on border improved and camera centered on the coordinates of the player
- Fixed Player animation and movement
- Added levelmap file
- Added a new border condition for Player and Enemy
- Living obj coordinates, x and y, now refers to their position in the logic matrix (Map)
- Added Renderer Class
- Fixed Map.initialize() to read map settings from file
- Fixed a NullPointerException due to an inexistent spritesheet
- Started implementing the neighboorhood handling for the enemies
- Implemented Enemy.move() - needs testing
- Fixed player issues
- Re-organized the logic package
- Added World class
- Level fixes
- Added Implemented Map.initialize() method
- Moved Main.java into start package
- Added error handling to destroy() methods
- Added LivingSprite class
- Added EmptyBlock class
- Added Block.update() abstract method
- Added Block.getType() abstract method
- Added Block.Blocks() enumerator
- Aleaned up interfaces
- Small enum cleanups
- Initialized Map.map
- Updated Destructible interface and its implementors
- Fixed Player Sprite direction
- Added Sprite, Frame and Animation Classes
- Added Living, Player and Enemy Classes
- Added Player, Enemy and Block Spritesheets
- Added sprites on Block-like Classes
- Added Gravity interface
- Added Destructible interface
- Added Map class
- First release.
- demisquare - (https://github.com/demisquare)
- Dygwah98 - (https://github.com/Dygwah98)
- DavidG33k - (https://github.com/DavidG33k)
- TizianaOliviero - (https://github.com/TizianaOliviero)
This is just a fan made game ispired by Boulder Dash®, made for a university exam.
Boulder Dash® is a trademark of BBG Entertainment GmbH. Copyright © 1984-2019 BBG Entertainment GmbH. All rights reserved. The original Boulder Dash® was created by Peter Liepa with Chris Gray.



