www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Damage Control: An homage to Rampart (Alpha)

reply rcorre <ryan rcorre.net> writes:
"Damage Control" is a game inspired by one of my old favorite 
SNES games, Rampart (ok, technically an arcade game, but I had it 
on SNES).

The project is on Github: https://github.com/rcorre/damage_control

Its very incomplete, but if you don't mind spending a few minutes 
trying it out I'd really appreciate it.
You can grab a binary from the Github releases page  or try to 
build it yourself. The content building is a bit involved, but if 
you just want to build the source you can copy the content folder 
from a release package.

It is made with Allegro using the DAllegro bindings. The linux 
build is statically linked to Allegro so you shouldn't to install 
it, but the rest of the dependencies are shared. Let me know if 
any are problematic.

The Windows build just comes packaged with a few dlls, including 
allegro-monolith.

Any feedback is appreciated -- either drop a comment here or file 
an issue on Github.

It will write save data and settings to 
"~/.config/damage_control" or "%APPDATA%\local\damage_control". 
You can change this using the --savedir flag.

There's no included tutorial as I'm hoping the gameplay will be 
pretty self-evident (let me know if it isn't!).
Dec 31 2015
next sibling parent reply Ivan Kazmenko <gassa mail.ru> writes:
On Thursday, 31 December 2015 at 16:43:53 UTC, rcorre wrote:
 "Damage Control" is a game inspired by one of my old favorite 
 SNES games, Rampart (ok, technically an arcade game, but I had 
 it on SNES).

 The project is on Github: 
 https://github.com/rcorre/damage_control

 Its very incomplete, but if you don't mind spending a few 
 minutes trying it out I'd really appreciate it.
 You can grab a binary from the Github releases page  or try to 
 build it yourself. The content building is a bit involved, but 
 if you just want to build the source you can copy the content 
 folder from a release package.

 It is made with Allegro using the DAllegro bindings. The linux 
 build is statically linked to Allegro so you shouldn't to 
 install it, but the rest of the dependencies are shared. Let me 
 know if any are problematic.

 The Windows build just comes packaged with a few dlls, 
 including allegro-monolith.

 Any feedback is appreciated -- either drop a comment here or 
 file an issue on Github.

 It will write save data and settings to 
 "~/.config/damage_control" or "%APPDATA%\local\damage_control". 
 You can change this using the --savedir flag.

 There's no included tutorial as I'm hoping the gameplay will be 
 pretty self-evident (let me know if it isn't!).
Nice to see someone use D + Allegro for a game. Did that too but have made only few Speedhack-level pieces from scratch so far. The windows binary works for me, at least for the few minutes I had to try it. The game flow is not obvious in multiple respects: 1. Shoot: why only six bullets? 2. Rebuild: huh, what's the plan? 3. If the base is not completely enclosed by walls after rebuild, the game ends, giving a ?!?!? impression. Took me a few attempts to guess the requirement to proceed. Crashed it :) with S-S-J-J-J-Esc pressed at start (controls -> keyboard -> make an action with an unassigned key and press Esc). Thanks for sharing!
Dec 31 2015
parent rcorre <ryan rcorre.net> writes:
On Thursday, 31 December 2015 at 17:16:32 UTC, Ivan Kazmenko 
wrote:
 The game flow is not obvious in multiple respects:
 1. Shoot: why only six bullets?
 2. Rebuild: huh, what's the plan?
 3. If the base is not completely enclosed by walls after 
 rebuild, the game ends, giving a ?!?!? impression.  Took me a 
 few attempts to guess the requirement to proceed.
1. I was hoping the animation of sending ammo from the bases to turrets would make it obvious that bases grant 6 ammo each. In Rampart, enclosing bases just let you place more turrets, and there was no concept of ammo, which is probably easier to understand. 2. Yeah, this is probably what needs the most explaining, because... 3. It's probably not obvious why you lose the first few times. I guess a 'you have no enclosed territory' message on the failure screen might help a lot. I'll probably try to include some sort of quick tutorial. Thanks for the feedback!
 Crashed it :) with S-S-J-J-J-Esc pressed at start (controls -> 
 keyboard -> make an action with an unassigned key and press 
 Esc).
Yup, that sure does crash it :) Whenever you map a key that's already assigned, its supposed to jump to the previously assigned action so you can reassign it. Esc was actually mapped to 'menu' (opens the pause menu in-game), but I forgot to include that in the controls menu (so maybe it wasn't even obvious there _was_ a pause menu). Thanks!
Dec 31 2015
prev sibling next sibling parent reply MrSmith <mrsmith33 yandex.ru> writes:
On Thursday, 31 December 2015 at 16:43:53 UTC, rcorre wrote:
 "Damage Control" is a game inspired by one of my old favorite 
 SNES games, Rampart (ok, technically an arcade game, but I had 
 it on SNES).

 [...]
For me window is not shown. Windows 7 64bit. I see console and graphics windows in taskbar, but no actual window on the screen. Used release v0.2.
Jan 01 2016
next sibling parent rcorre <ryan rcorre.net> writes:
On Friday, 1 January 2016 at 13:15:02 UTC, MrSmith wrote:
 For me window is not shown. Windows 7 64bit. I see console and 
 graphics windows in taskbar, but no actual window on the 
 screen. Used release v0.2.
Hmm, don't have a windows 7 machine, but maybe I can spin up a VM. Thanks for letting me know.
Jan 01 2016
prev sibling parent Ivan Kazmenko <gassa mail.ru> writes:
On Friday, 1 January 2016 at 13:15:02 UTC, MrSmith wrote:
 On Thursday, 31 December 2015 at 16:43:53 UTC, rcorre wrote:
 "Damage Control" is a game inspired by one of my old favorite 
 SNES games, Rampart (ok, technically an arcade game, but I had 
 it on SNES).

 [...]
For me window is not shown. Windows 7 64bit. I see console and graphics windows in taskbar, but no actual window on the screen. Used release v0.2.
Hmm, mine is Win2008 R2 64-bit (version 6.1.7601) which is essentially the same major.minor version 6.1 as Windows 7 according to the table: https://msdn.microsoft.com/en-us/library/windows/desktop/ms724832%28v=vs.85%29.aspx
Jan 01 2016
prev sibling parent reply thedeemon <dlang thedeemon.com> writes:
On Thursday, 31 December 2015 at 16:43:53 UTC, rcorre wrote:
 Its very incomplete, but if you don't mind spending a few 
 minutes trying it out I'd really appreciate it.
 Any feedback is appreciated -- either drop a comment here or 
 file an issue on Github.
 There's no included tutorial as I'm hoping the gameplay will be 
 pretty self-evident (let me know if it isn't!).
It works fine for me on Win 8.1. But I have no idea what's going on in the game, gameplay is totally unknown to me. ;)
Jan 02 2016
parent reply rcorre <ryan rcorre.net> writes:
On Saturday, 2 January 2016 at 23:43:48 UTC, thedeemon wrote:
 On Thursday, 31 December 2015 at 16:43:53 UTC, rcorre wrote:

 It works fine for me on Win 8.1. But I have no idea what's 
 going on in the game, gameplay is totally unknown to me. ;)
I added some instructions on the readme: https://github.com/rcorre/damage_control#how-to-play However, I'm getting the impression that I need to include some better explanations in-game. I guess the gameplay only seemed obvious to me because I made it :) Thanks for trying it out!
Jan 03 2016
parent reply Ivan Kazmenko <gassa mail.ru> writes:
On Sunday, 3 January 2016 at 17:09:08 UTC, rcorre wrote:
 I added some instructions on the readme: 
 https://github.com/rcorre/damage_control#how-to-play
"If, at the end of a round, you have no territory, you are defeated." I'm almost sure this is currently not true for the last round: the "completed" message showed up for me instead of "defeated".
Jan 03 2016
parent reply rcorre <ryan rcorre.net> writes:
On Sunday, 3 January 2016 at 19:53:25 UTC, Ivan Kazmenko wrote:
 "If, at the end of a round, you have no territory, you are 
 defeated."

 I'm almost sure this is currently not true for the last round: 
 the "completed" message showed up for me instead of "defeated".
Huh, I couldn't repro that. Maybe you had some territory you didn't notice? Right now even having a single tile enclosed counts -- which actually may be too lenient. Its also possible there's a bug in the detection of enclosed areas.
Jan 03 2016
next sibling parent Ivan Kazmenko <gassa mail.ru> writes:
On Monday, 4 January 2016 at 02:34:37 UTC, rcorre wrote:
 On Sunday, 3 January 2016 at 19:53:25 UTC, Ivan Kazmenko wrote:
 "If, at the end of a round, you have no territory, you are 
 defeated."

 I'm almost sure this is currently not true for the last round: 
 the "completed" message showed up for me instead of "defeated".
Huh, I couldn't repro that. Maybe you had some territory you didn't notice? Right now even having a single tile enclosed counts -- which actually may be too lenient. Its also possible there's a bug in the detection of enclosed areas.
Hmm, I get it now. I have a piece of territory but no reactor. http://acm.math.spbu.ru/~gassa/temp/damage-control-01.png http://acm.math.spbu.ru/~gassa/temp/damage-control-02.png Strange requirement anyway :) .
Jan 05 2016
prev sibling parent reply burjui <bytefu gmail.com> writes:
Nice game!

On Monday, 4 January 2016 at 02:34:37 UTC, rcorre wrote:
 Right now even having a single tile enclosed counts -- which 
 actually may be too lenient.
Not at all, sometimes it's the only way to win, it often depends on generosity of the embedded Tetris. 6 missiles is not that much, and if your tetris-fu is not enough to join an another base, you're pretty much screwed on the next round, unless you quickly enclose a small area during rebuild. Cursor speed is pretty low, so you can't react quickly and in the 3rd round your base always looks like Swiss cheese. Also, it would be really nice to use Enter for confirmation and Escape for going back by default, since these are standard. I cannot reassign the "cancel" action, because app crashes if I press Escape. Found some minor issues: - On Windows, it shows a console window on launch. It may be useful for debugging, but since game doesn't output anything, it's useless and should be shown only in debug builds anyway - On the title screen, it says "v0.0 (alpha)", but I'm actually using v0.2 - A typo: Options -> Shake: "Taseteful" Anyway, I played the game for an hour and enjoyed it. It needs some tuning and some kind of an introductory tutorial mode, but it's playable and fun. Also, kudos for composing music in LMMS :)
Jan 05 2016
parent reply rcorre <ryan rcorre.net> writes:
On Tuesday, 5 January 2016 at 17:41:41 UTC, burjui wrote:
 Cursor speed is pretty low, so you can't react quickly and in 
 the 3rd round your base always looks like Swiss cheese.
You can hold the turbo key (shift by default) to move it faster. Again, something I should probably explain in-game :)
 Also, it would be really nice to use Enter for confirmation and 
 Escape for going back by default, since these are standard. I 
 cannot reassign the "cancel" action, because app crashes if I 
 press Escape.
Maybe its just being a vim user, but j/k seemed more comfortable to me :) The escape crash should be fixed (though I haven't cut another release yet).
 Found some minor issues:
 - On Windows, it shows a console window on launch. It may be 
 useful for debugging, but since game doesn't output anything, 
 it's useless and should be shown only in debug builds anyway
I'll have to look into that. If you're saying D does that by default for debug builds -- the alpha release _is_ a debug build
 - On the title screen, it says "v0.0 (alpha)", but I'm actually 
 using v0.2
 - A typo: Options -> Shake: "Taseteful"
Fixed and fixed. Thanks!
 Anyway, I played the game for an hour and enjoyed it. It needs 
 some tuning and some kind of an introductory tutorial mode, but 
 it's playable and fun. Also, kudos for composing music in LMMS 
 :)
Thanks! LMMS is a great tool. I actually contributed a little to it, but I've gotten too spoiled by D to write much C++.
Jan 05 2016
parent burjui <bytefu gmail.com> writes:
On Wednesday, 6 January 2016 at 02:39:08 UTC, rcorre wrote:
 I'll have to look into that. If you're saying D does that by 
 default for debug builds -- the alpha release _is_ a debug build
Sorry, it was a bit unclear. I meant that: - A console window is only meaningful in debug builds, so it should be disabled in release builds. - Debug binaries should not be published, as they are meant for development only. They execute contracts, unittests and code in "debug" statements, which slow down the app and are useless for an end-user. DMD makes a console application by default, no matter what build profile is used. Here's a relevant thread: http://www.digitalmars.com/d/archives/digitalmars/D/learn/Hide_console_of_gui_program_coded_by_gtkD_41799.html It's suggested there to use "-L/SUBSYSTEM:WINDOWS" switch in DMD command line when linking under Windows.
Jan 11 2016