Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

Options
Go to last post Go to first unread
Offline Old Sparky  
#1 Posted : Friday, December 6, 2013 6:12:24 PM(UTC)
Old Sparky

Joined: 10/7/2012(UTC)
Posts: 15

Thanks: 2 times
Was thanked: 2 time(s) in 2 post(s)
Hey,

I'm currently develop Sparkydash, a Boulderdash clone, for the Delta Engine.

Gameplay
The gameplay of Sparkydash is as simple as the original Boulderdash's one. Collect the required amount of diamonds that are placed
within a level to open a door (goal) under time-pressure (varies from level to level) to proceed to the next level (11 at the moment). If you have completed all levels you win.

  • Boulders:
    One of the main element of boulderdash-like games are boulders. Boulders are elements that fall down
    if no "mud", "wall" or other "boulder" field are below them. They only fall, if the direct field below
    them is an empty field. But a boulder also falls, either to the left or right bottom, if the left or right
    fields are empty AND if the next field under the left or right field is also an empty field.
    If a boulder falls onto the player he dies and must restart the level.
    But you can use boulders as a weapon against enemies. If a boulder falls onto an enemy he is destroyed
    and an explosion occurs. The explosion destroys everything in a 3x3 radius around him
    (including the player). If this explosion destroys a boulder, the boulder is replaced by diamonds.
  • Diamonds:
    The player must collect a specified amount of diamonds to open the goal on a level.
    Diamonds have the same physics as the boulders with the only difference that the player actual gets points
    for collecting diamonds. If a diamond falls onto the player, he don't die as in the original boulder dash.
    In this case the diamond is just collected and the player gets the score.
  • Enemies:
    There are three types of enemies in Sparkydash: Left walker, right walker and the persecuting walker.
    If a walker catches you, you lose and must restart the level.

    • Left walker: The left walker tries to always move to the left field. If this is not possible he
      tries to walk to the field below him. If that's also not possible he tries to move
      to the right field next to him. He basically moves counter-clockwise.
    • Right walker: Almost the same as the left walker with the only difference that the right walker tries
      to move clockwise.
    • Persecuting walker: As the name suggests the persecuting walker hunts the player on the shortest
      path possible. He is implemented with help of the A* algorithm. That makes
      him pretty intelligent.

  • Multiple levels
    Sparkydash is initially delivered with 11 levels. But new maps can easily be added or the existing ones
    can be modified.
  • Time
    You have only a limited amount of time to complete a level.
  • Different walls
    Aside from the normal walls, there are two other types of walls with special functionality. The first
    transforms a boulder to a diamond and the second transforms a diamond to a boulder.
  • Online high score
    Perhaps, I implement an online high score later!


Maps
Sample map:
Code:

0
2500
0
90
       ########################         
       #...@...$...#...$....".#         
       #...........#......#####         
       #####$......#......#             
           #...$...#...$..#             
           #..............#             
           ################             


Every map file contains the following data:

  • current score (first line)
  • required score (second line)
  • elapsed time (third line)
  • max time (fourth line)
  • map characters (40 lines)

The current score and elapsed time is only saved, because I plan to implement a "load game" feature.
Required score and max time should be self-explanatory...

Let's check out the allowed map characters:
Code:

 @ = player
 # = wall
 . = mud
 $ = diamond
 * = boulder
   = empty field
 " = closed goal
 ' = open goal
 < = left walker
 > = right walker
 ! = persecuting walker
 ~ = diamond to boulder wall
 % = boulder to diamond wall

If you try to create your own maps the only thing you must follow is the 40x40 map boundary.

I also plan to implement some syntax and semantic checking for the map, so only one player / goal
are permitted in a map etc.

Screenshots
The graphics are only placeholders!

UserPostedImage UserPostedImage

Download
Binaries: [COMING SOON]
Source Code: [COMING SOON]

Keyboard Setting
Up / left / down / right: W / A / S / D
Esc: Exit game

So long,
Marc

Edited by user Thursday, September 3, 2015 11:11:53 AM(UTC)  | Reason: Not specified

thanks 1 user thanked Old Sparky for this useful post.
Rallfried on 12/6/2013(UTC)

Wanna join the discussion?! Login to your forum accountregister a new account. Or Connect via Facebook Twitter Google

Offline Rallfried  
#2 Posted : Friday, December 6, 2013 6:35:45 PM(UTC)
Rallfried

Medals: Admin

Joined: 8/21/2011(UTC)
Posts: 36
Location: Hannover

Thanks: 2 times
ThumpUp Thank you for revealing this preview of your project. Looking forward to the final version!
Offline Benjamin  
#3 Posted : Saturday, December 7, 2013 4:56:48 AM(UTC)
Benjamin

Medals: Admin

Joined: 8/20/2011(UTC)
Posts: 1,421
Location: Hannover

Thanks: 18 times
Was thanked: 97 time(s) in 92 post(s)
Wow, great explanation of your game design and how you plan to build it.

For the level you spend quite a lot of time thinking about a format and converting the level file ASCII yourself. If you are interested check out the Level Editor in the Editor (just available in the nightly releases, not in v1.0.0), which provides a graphical interface to edit such levels. We use it for the levels in Creepy Towers, our tower defense example game (also in nightly releases).
http://www.deltaengine.net/nightly (please note that this link will probably change, we have not activated the release scripts for our nightly builds, this is just pointing to our internal build server we use for new versions every day)

Edited by user Saturday, December 7, 2013 5:05:06 AM(UTC)  | Reason: Not specified

Offline Old Sparky  
#4 Posted : Saturday, December 7, 2013 9:59:35 AM(UTC)
Old Sparky

Joined: 10/7/2012(UTC)
Posts: 15

Thanks: 2 times
Was thanked: 2 time(s) in 2 post(s)
Originally Posted by: Benjamin Nitschke Go to Quoted Post
Wow, great explanation of your game design and how you plan to build it.

For the level you spend quite a lot of time thinking about a format and converting the level file ASCII yourself. If you are interested check out the Level Editor in the Editor (just available in the nightly releases, not in v1.0.0), which provides a graphical interface to edit such levels. We use it for the levels in Creepy Towers, our tower defense example game (also in nightly releases).
http://www.deltaengine.net/nightly (please note that this link will probably change, we have not activated the release scripts for our nightly builds, this is just pointing to our internal build server we use for new versions every day)


Thanks for the link. I will definitely check out the Delta Engine Level Editor :)

PS: I have updated the start post:
Quote:

[...] But you can use boulders as a weapon against enemies. If a boulder falls onto an enemy he is destroyed
and an explosion occurs. The explosion destroys everything in a 3x3 radius around him
(including the player). If this explosion destroys a boulder, the boulder is replaced by diamonds. [...]
Rss Feed  Atom Feed
Users browsing this topic
OceanSpiders 2.0
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Powered by YAF.NET | YAF.NET © 2003-2023, Yet Another Forum.NET
This page was generated in 0.087 seconds.