Author Topic: DeadCold  (Read 1954 times)

Offline Tung Nguyen

  • Jr. Member
  • **
  • Posts: 96
    • View Profile
    • http://tunginobi.spheredev.org/
DeadCold
« on: February 12, 2007, 12:20:09 AM »
A post over at the RPGDX forums reminded me about DeadCold, so yesterday I downloaded the source and decided to get tinkering. Here are the changes:

* Made it compile under Linux.
* Made a wrapper script for launching in Linux without major display glitches.
* Wrote a Linux-optimised makefile to do things like compile, cleanup and create a zip of the source quickly.
* Made the field of view circular instead of square.
* Changed the Sentry Bot to LightRed instead of the same colour as the placid Maintenence Bots.
* Allowed the ESC key to cancel repeat (.) commands.
* Modified the not-easy mode to disallow cheats, and automatically save when leaving the game. This makes it a smidge more difficult, and more like GearHead.
* Repeat movement now ackowledges doors and hatches, so they won't be skipped when closed.
* Fixed scrolling so now the distance between opposite sides of the screen to recentre the display are no longer off by one.
* No more crashes, since deallocated memory pointers are set to Nil immediately. RemoveCritter was being called with Nil, so the error output message it spits out was temporarily commented out. Without the Nil'ing of the pointers, this would have caused crashes. Game is now remarkably stable; plays for hours at a time without a hitch.
* Directory checking always fails under Linux, causing MkDir to crash the game. The savegame/ directory now comes with the ZIP.
* On that note, fixed the savegame/ directory references to use the same case (lower case), changed the backslash to a forward slash (Windows/DOS should support forward slashes too.)
* Removed the memory counts before and after running. It won't compile under Linux, and it's not a reliable metric in any semi-modern OS that supports multitasking anyway.
* Changed critical failure to disarm traps to tell the player that they stumbled into the trap, rather than doing it silently.

Definitely compiles and works under Linux, untested in Windows. Anybody interested in the source? Joseph I'm looking in your direction.

Offline Michael

  • Full Member
  • ***
  • Posts: 178
    • View Profile
DeadCold
« Reply #1 on: February 12, 2007, 01:44:37 AM »
Quoting: Tung Nguyen
* No more crashes, since deallocated memory pointers are set to Nil immediately.


That actually would have been an FreePascal 2 incompatibility, rather than a bug.

In 1.x FPC versions, the Dispose() function took its parameter by reference, and helpfully nulled the pointer variable automatically.  In FPC 2.x, it was decided that it was much more important to allow Dispose() to be called with a non-"lvalue" argument, so that behavior was abandoned.

This caused some disruption for Gearhead, but it's now all fixed.  But this was long after DeadCold's last official release.  So it's not too surprising that DeadCold counts on the old FPC semantics.

Offline Joseph Hewitt

  • Administrator
  • Hero Member
  • *****
  • Posts: 2552
    • View Profile
    • http://www.gearheadrpg.com
DeadCold
« Reply #2 on: February 12, 2007, 08:11:20 PM »
Cool. I'll have to take a look at that later. I keep promising to go back and redo DeadCold someday...

Offline Tung Nguyen

  • Jr. Member
  • **
  • Posts: 96
    • View Profile
    • http://tunginobi.spheredev.org/
DeadCold
« Reply #3 on: February 12, 2007, 09:45:46 PM »
So that there's something to look at:

DeadCold source (2007-02-13) (153 KB ZIP archive)

Make a directory for it on extraction. That's not a permanent link; I'm doing some major restructuring of my website (PHP, MySQL and all that jazz).

Anybody with FreePascal installed should be able to compile this. On Linux it's even easier: just type 'make'.

Offline Igor Savin

  • Newbie
  • *
  • Posts: 9
    • View Profile
DeadCold
« Reply #4 on: February 18, 2007, 04:35:50 AM »
PcStatLine procedure produces lots of flicker for me; looking if I can fix that by using Kornel's output routine.

Update: It really helps, but looks like PcStatLine is not the only part of code that needs tweaking. Map looks laggy just as well.

Shall I upload updated sources after I finish? (I wonder how well they will work in Linux)

Update2: Okay, it works and it works much faster than it originally did... yet it seems to skip drawing some of the tiles, which is odd. *Sigh*. OK, I'll look at it some more.

Offline Kornel Kisielewicz

  • Administrator
  • Jr. Member
  • *****
  • Posts: 58
    • View Profile
    • http://chaosforge.org/
DeadCold
« Reply #5 on: February 18, 2007, 07:20:46 AM »
Looking at the code I think I could quickly port the whole thing to Valkyrie ;].
At your service,
Kornel Kisielewicz
ChaosForge

Offline Igor Savin

  • Newbie
  • *
  • Posts: 9
    • View Profile
DeadCold
« Reply #6 on: February 18, 2007, 07:35:54 AM »
Quoting: Kornel Kisielewicz
Looking at the code I think I could quickly port the whole thing to Valkyrie ;].


DeadColdRL :-P.

Offline Anticheese

  • Hero Member
  • *****
  • Posts: 651
    • View Profile
DeadCold
« Reply #7 on: February 18, 2007, 11:55:14 AM »
Then do it..

Quoting: Hugo's House of Horror
Hit the button, Igor.


P.S - This quote relates to a game where the protagonist gets captured by an evil madman and stuck in a high-tech cupboard where he gets the hell zapped out of him and the only way to get out is to tell the frankenstein-esque creature the evil villan uses as a house servent to cycle through the thingamadoodat.

P.S.S - I suppose that having it in Valkyrie would make it easier to mod huh?

Offline Tung Nguyen

  • Jr. Member
  • **
  • Posts: 96
    • View Profile
    • http://tunginobi.spheredev.org/
DeadCold
« Reply #8 on: February 18, 2007, 10:47:50 PM »
What is this 'Valkyrie'? I'm fascinated...

Offline Anticheese

  • Hero Member
  • *****
  • Posts: 651
    • View Profile
DeadCold
« Reply #9 on: February 18, 2007, 11:47:58 PM »
Valkyrie is a roguelike engine developed by Kornel with the intent that people who want to make roguelikes but don't have all the necessary skills can easily modify it.

Did I..Did I miss anything?

(You forgot "Mooby Magazine")

Offline Unbeliever

  • Newbie
  • *
  • Posts: 10
    • View Profile
    • http://www.freewebs.com/mysilin
DeadCold
« Reply #10 on: February 20, 2007, 12:00:17 PM »
Hi. I guess that would be me who told you about DeadCold, huh? Is that you Echo?

Offline Tung Nguyen

  • Jr. Member
  • **
  • Posts: 96
    • View Profile
    • http://tunginobi.spheredev.org/
DeadCold
« Reply #11 on: February 20, 2007, 02:20:20 PM »
Actually, I found DeadCold on my own, years ago. I think it was still in active development back then, and I was playing on Windows (the DOS version).

Offline Unbeliever

  • Newbie
  • *
  • Posts: 10
    • View Profile
    • http://www.freewebs.com/mysilin
DeadCold
« Reply #12 on: February 22, 2007, 06:03:43 AM »
So... you are Echo? Meh... I wish everyone would just come up with one username and stick with that on every forum. It would help us new peoples out a lot.

Oh, yeah. And since this thread is named DeadCold, I figured I should ask. WHY DOES HOLY WATER NOT KILL THE ZOMBIES?

Offline Anticheese

  • Hero Member
  • *****
  • Posts: 651
    • View Profile
DeadCold
« Reply #13 on: February 22, 2007, 07:56:29 PM »
Because in 9.9/10 cases Zombies are brought to (un)life by non spiritual means.

Even "Voodoo Zombies" have some science behind them!

Offline Joseph Hewitt

  • Administrator
  • Hero Member
  • *****
  • Posts: 2552
    • View Profile
    • http://www.gearheadrpg.com
DeadCold
« Reply #14 on: February 22, 2007, 08:56:22 PM »
Here are my basic ideas for redoing DeadCold, someday:

- Smaller levels
- Add choices for leveling up characters; possibly a Crawl-type levelless system.
- The combat system needs to be rebalanced. Maybe start characters at around 50% of their final power level.
- Maybe remove monster respawning altogether. More theme rooms.
- Completely redo the computer handling. It's icky and terrible.
- Move all text to an external file for easy localization.
- Fewer but more powerful psychic powers, to make it more like Warhammer and less like Moria.
- The nature of the "end boss" would be randomly determined; clues would be left in the journal fragments, so the PC can prepare for the last level.
- Use video instead of crt; I believe Valkyrie does this, as does the GH2 ASCII unit.
- What the hell. Rip out the homebrew scripting language and add Lua.
- Rip off some ideas from DoomRL.

In some ways I like DeadCold more than I like GearHead. DC is very sharp and focused, while GH is an archetypical "kitchen sink" roguelike.