GithubHelp home page GithubHelp logo

cataclysm's Introduction

Hi ManualDetonation!

Cataclysm is a post-apocalyptic roguelike, set in the countryside of New England
after a devastating plague of monsters and zombies.

At present time, Cataclysm is still in early alpha, and is being developed very
rapidly.  As such, there are no formal version numbers, as a new version is
released every day, often several a day.

Source is available at the github repository, http://github.com/Whales/Cataclysm
There is also a tarball available at http://squidnet.ath.cx/cataclysm.tar.gz
Squidnet maintains a public SSH server.  If you cannot play Cataclysm locally,
or if you prefer to play it in a world shared with others, connect to
[email protected] (there is no password).

Compiling Cataclysm under linux is straightforward, and only requires the
ncurses development libraries.  Under Ubuntu, these libraries can be found in
the libncurses5-dev package ("sudo apt-get install libncurses5-dev" will install
this package).

Cataclysm is very different from most roguelikes in many ways.  Rather than
being set in a vertical, linear dungeon, it is set in an unbounded, 3D world.
This means that exploration plays a much bigger role than in most roguelikes,
and the game is much less linear.
Because the map is so huge, it is actually completely persistant between games.
If you die, and start a new character, your new game will be set in the same
game world as your last.  Like in many roguelikes, you will be able to loot the
dead bodies of previous characters; unlike most roguelikes, you will also be
able to retrace their steps completely, and any dramatic changes made to the
world will persist into your next game.
While this makes for interesting depth of play, and the ability to "save" game
progress even after death, some prefer to start each game with a freshly
generated world.  This can be achieved by erasing the contents of the save
directory, found in the same folder as the executable.  "rm save/*" will erase
these files for you.

Cataclysm's gameplay also includes many unique quirks, and the learning curve is
somewhat steep, even for those experienced with roguelikes.  Included with the
game is a tutorial which runs the player through most of the key features.  The
game also has extensive documentation via the ? command.  Pressing ?1 will list
all the key commands, which is a good place to start.

To submit a bug, complaint, feature request, or praise, please send them via
email to [email protected].  You can also submit problem reports and
patches at the github repository at http://github.com/Whales/Cataclysm .

I strive to include as many feature requests as possible, and if you submit one
there is a good chance that it will appear in the game within a few days.  Of
course, it is inevitable that I will reject some feature requests, either
because they do not fit my conception of the game, or because they require more
code than I think they're worth.  Feature requests supplied in the form of a
patch stand a better chance of inclusion, of course ;)  For instructions on
making changes to item types, monster types, etc., please see the EDITING file.
Most changes of this variety require no training in C++, or programming in
general.

If you want to take Cataclysm in a new direction, please feel free to create a
branch project--just let me know about it!

cataclysm's People

Contributors

alien-av avatar jaydg avatar madrawn avatar whales avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cataclysm's Issues

Segfault when picking up liquid with bubblewrap

I wasn't able to get a stack trace, but it seems to happen every time I try it. Just go into the tutorial, grab the bubblewrap, head downstairs and try to pick up the water with the bubblewrap. Or pump gas and try to hold it with the bubblewrap. Bam, segfault!

Segfault when holding direction key

With new version It started to crash when running somewhere for a while.
Here is a backtace:
#0 0x080c485e in std::vector<itype_id, std::allocator<itype_id> >::size (this=0x3c)

at /usr/include/c++/4.6/bits/stl_vector.h:571

#1 0x080c46d4 in std::vector<itype_id, std::allocator<itype_id> >::vector (this=0xbfda0174,

__x=...) at /usr/include/c++/4.6/bits/stl_vector.h:279

#2 0x082dcbfc in map::place_items (this=0xbfdf0318, loc=mi_road, chance=5, x1=0, y1=0, x2=23,

y2=23, ongrass=false, turn=4977) at mapgen.cpp:6034

#3 0x082b29a4 in map::draw_map (this=0xbfdf0318, terrain_type=ot_road_ns, t_north=ot_road_ns,

t_east=ot_house_west, t_south=ot_road_new, t_west=ot_house_east, t_above=ot_null, 
turn=4977, g=0xb7f08008) at mapgen.cpp:624

#4 0x082afceb in map::generate (this=0xbfdf0318, g=0xb7f08008, om=0xb7f0acbc, x=148, y=256,

turn=4977) at mapgen.cpp:142

#5 0x082984e9 in map::loadn (this=0xbfe8b4fc, g=0xb7f08008, worldx=144, worldy=257, gridx=4,

gridy=0) at map.cpp:1731

#6 0x08296403 in map::load (this=0xbfe8b4fc, g=0xb7f08008, wx=144, wy=257) at map.cpp:1454
#7 0x0816270a in game::update_map (this=0xb7f08008, x=@0xbff5ef24, y=@0xbff5ef28)

at game.cpp:5540

#8 0x081600cb in game::plmove (this=0xb7f08008, x=62, y=71) at game.cpp:5186
#9 0x08145a45 in game::get_input (this=0xb7f08008) at game.cpp:1112
#10 0x081437eb in game::do_turn (this=0xb7f08008) at game.cpp:630
#11 0x08278fc1 in main (argc=1, argv=0xbffff254) at main.cpp:35

Sorry if this is not a right place for bug reports

Compile flag for ncurses

After installing ncurses in order to build under Cygwin, I found that the library lives in its own subdirectory (i.e. <ncurses/curses.h>). I just symlinked everything into the base include directory as a quick fix, but it would be nice if there was an additional build flag, or maybe even some Makefile logic to select ncurses.

Crash on throwing

When to chose what item to throw and you chose a nonexisting item or the Escape key it crashes. Since I wanted to play this fun game and I managed to crash it every time, I fixed it by adding
if (index == -2) return -1;
in player::throw_range. Since I can't edit the code or are sure that I follow this projects coding standards I thought I would just mention it here.

current git HEAD can't be compiled (gcc4.2): missing 'player_activity::player_activity(player_activity)'

HEAD= cf18cea
Happens with:
sbox-arm-none-linux-gnueabi-g++ (GCC) 4.2.1

git clone https://github.com/Whales/Cataclysm.git
make
game.cpp: In member function 'void game::exam_vehicle(vehicle&, int, int, int, int)':
game.cpp:4174: error: no matching function for call to 'player_activity::player_activity(player_activity)'
pldata.h:113: note: candidates are: player_activity::player_activity(player_activity&)

Traps in NPC Cities

Traps appeared in a forest in a NPC City. Needless to say, this doesn't make much sense.

Segfault when falling from multiple ledges

When falling over a ledge and going past several z-levels (like in missile silo), the game crashes with a segfault. For some reason, the last call to map::generate seems to end up with invalid stack values/pointers inside the function map::generate itself. Looks pretty complicated.

Segfault:

Program received signal SIGSEGV, Segmentation fault.
0x0000000000695ec8 in map::generate (this=Cannot access memory at address 0x7fffff7b4168
) at mapgen.cpp:60

Backtrace:
#0 map::loadn (this=0x7fffff9a9070, g=0x7ffff7ed0010, worldx=294, worldy=349,

gridx=10, gridy=0) at map.cpp:1723

#1 0x000000000067b04d in map::load (this=0x7fffff9a9070, g=0x7ffff7ed0010,

wx=294, wy=349) at map.cpp:1454

#2 0x0000000000532988 in game::vertical_move (this=0x7ffff7ed0010, movez=-1,

force=true) at game.cpp:5384

#3 0x0000000000a090d8 in trapfunc::ledge (this=0x7fffffaef410,

g=0x7ffff7ed0010, x=62, y=67) at trapfunc.cpp:493

#4 0x0000000000533b07 in game::vertical_move (this=0x7ffff7ed0010, movez=-1,

force=true) at game.cpp:5526

#5 0x0000000000a090d8 in trapfunc::ledge (this=0x7fffffd0b9d0,

g=0x7ffff7ed0010, x=62, y=67) at trapfunc.cpp:493

#6 0x0000000000533b07 in game::vertical_move (this=0x7ffff7ed0010, movez=-1,

force=true) at game.cpp:5526

#7 0x0000000000a090d8 in trapfunc::ledge (this=0x7ffffff28120,

g=0x7ffff7ed0010, x=62, y=67) at trapfunc.cpp:493

#8 0x00000000005317b7 in game::plmove (this=0x7ffff7ed0010, x=62, y=67)

at game.cpp:5242

#9 0x00000000005150fb in game::get_input (this=0x7ffff7ed0010)

at game.cpp:1125

#10 0x0000000000512a1e in game::do_turn (this=0x7ffff7ed0010) at game.cpp:643
#11 0x000000000065c21e in main (argc=1, argv=0x7fffffffe738) at main.cpp:37

Groups of NPC's randomly kill each other.

I was raiding a house when i was being robbed by a gang of NPC's apart from the spam of debug messages the leader randomly shot one of the other NPC's and killed it.

turrets can walk

Just had one follow me up a flight of stairs, much to my (very brief) surprise.

This is new, but is it intentional?

download

The download is no longer bopping up so i cant get it

Max Item Limit

Figured I might as well put this where it belongs there's a max item limit for inventory? Is this intentional? If so, it seems awfully low.

Wacky Scent message in tutorial after death

Steps:

  1. Start a tutorial
  2. Commit suicide in tutorial
  3. Start tutorial again
  4. Clear messages and interact with world
    Hundreds of wacky scent messages will appear, and then the game closes.

Tutorial worlds should probably be deleted after playing them and not interfere with the main game world at all.

Missile silo

After missile launch happens something strange, seems that z-levels between finale and first underground z-level teleport themselves under finale z-level (my characters were saved on them due segfault/crash, so I was able to go upstairs right into finale level wall). There is no rocket tiles on these levels, but first underground z-level still have rocket in it. This happens always.

And two times there was level without down stairs, so finale was kind of inaccessible. At first time I tried to mininuke that level (at place where I though should be stairs) and got segfault. At second time I jumped down from the ledge to finale and when tried to go upstairs (without launching rocket) character become encased in walls.

When I tried to target missile right on it's silo, it caused segfault in linux virtualbox. I was able to leave silo, though stairs on the surface were destroyed. Windows version was ok after such bombing, but stably crashes when I try to go to the surface.

No stacking of crafting goes_bad consumables

After coocking some meat, i got used several inventory letters for each coocked meat
Game has stacks limit, so owning "Hoarder" makes each letter real value.

Made changes for myself.

git rev-parse HEAD
16331bb

diff --git a/item.cpp b/item.cpp
index 140d474..b2c4350 100644
--- a/item.cpp
+++ b/item.cpp
@@ -167,10 +167,12 @@ bool item::invlet_is_okay()

 bool item::stacks_with(item rhs)
 {
+ bool iscrafting = (goes_bad() && abs(bday - rhs.bday) < 200); // 20 min for crafting
+
  bool stacks = (type   == rhs.type   && damage  == rhs.damage  &&
                 active == rhs.active && charges == rhs.charges &&
                 contents.size() == rhs.contents.size() &&
-                (!goes_bad() || bday == rhs.bday));
+                (!goes_bad() || bday == rhs.bday || iscrafting));

  if ((corpse == NULL && rhs.corpse != NULL) ||
      (corpse != NULL && rhs.corpse == NULL)   )

Lastest source code pull won't make

make clean and make results in
item.cpp: In member function 'std::string item::info(bool)':
item.cpp:282: error: 'struct it_comest' has no member named 'health'

which was apparently added in the following commit:
0062bb2

Can't make

g++ -O3 -c item.cpp -o obj/item.o
item.cpp: In member function ‘std::string item::info(bool)’:
item.cpp:282:43: error: ‘struct it_comest’ has no member named ‘health’
"\n Healthiness: " << int(food->health);
^

make: *** [obj/item.o] Error 1

this is what i get.How to solve it?

Can't wear helmet in latest experimental

I upgraded from experimental 2900 to 2992, copied over saved game folder, config, graveyard, memorial, templates folders. In-game when I tried to wear an elec balaclava it said "You cannot wear a helmet!"

I then installed a less new experimental version, 2980 and it lets me wear a helmet.

morale.h missing from repo?

Trying to compile repo version as of commit 76839bf under Ubuntu 10.10 x64 and am getting the following compile error:

g++ -g -c bionics.cpp -o obj/bionics.o
In file included from bionics.cpp:1:
player.h:10: fatal error: morale.h: No such file or directory
compilation terminated.
make: *** [obj/bionics.o] Error 1

Pits "disarmable"?

Trying to disarm a dug pit has resulted in a failure every time I've tried, even with some trap skill and carrying a shovel. In my mind, filling up a pit should be as trivial as digging it was?

Wood axe typo

I think you forgot the "e" in Wood Axe (it displays as Wood Ax)

Stack overflow on windows due to large, stack-allocated object

In map.cpp in the loadn function, the following line causes issues:

map tmp_map(itypes, mapitems, traps);

This segfaults on my computer due to a stack overflow. Replacing it with the following line resolves the issue:

map* tmp_map = new map(itypes, mapitems, traps);

Of course, a call to free(tmp_map) is now necessary at function end.

Crash on Windows

I managed to obtain two stack traces, the first when starting the tutorial:

Program received signal SIGSEGV, Segmentation fault.
0x00605f70 in npc::make_shopkeep (this=0x19f180, g=0x1faf70, type=ot_set_food)
    at npc.cpp:572
572        tmp = item(g->itypes[item_type], g->turn);

0  0x00605f70 in npc::make_shopkeep (this=0x19f180, g=0x1faf70, type=ot_set_food) at npc.cpp:572
1  0x00647618 in overmap::place_NPCs (this=0x19fdd0, g=0x1faf70) at overmap.cpp:759
2  0x00644cc3 in overmap::generate (this=0x19fdd0, g=0x1faf70, north=0x0, east=0x0, south=0x0, west=0x0) at overmap.cpp:400
3  0x0064e66c in overmap::open (this=0x19fdd0, g=0x1faf70, x=0, y=0, z=9) at overmap.cpp:1828
4  0x00642d92 in overmap::overmap (this=0x19fdd0, g=0x1faf70, x=0, y=0, z=9) at overmap.cpp:120
5  0x0046f54b in game::start_tutorial (this=0x1faf70, type=TUT_BASIC) at game.cpp:468
6  0x0046e739 in game::opening_screen (this=0x1faf70) at game.cpp:273
7  0x0046dbfd in game::game (this=0x1faf70) at game.cpp:183
8  0x00521d80 in main (argc=1, argv=0x2d10f8) at main.cpp:24

This one when starting a regular game:

Program received signal SIGSEGV, Segmentation fault.
0x00605f70 in npc::make_shopkeep (this=0x1c6aa0, g=0x1faf70, type=ot_set_bionics)
    at npc.cpp:572
572        tmp = item(g->itypes[item_type], g->turn);

0  0x00605f70 in npc::make_shopkeep (this=0x1c6aa0, g=0x1faf70, type=ot_set_bionics) at npc.cpp:572
1  0x00647618 in overmap::place_NPCs (this=0x1c7748, g=0x1faf70) at overmap.cpp:759
2  0x00644cc3 in overmap::generate (this=0x1c7748, g=0x1faf70, north=0x0, east=0x0, south=0x0, west=0x0) at overmap.cpp:400
3  0x0064e66c in overmap::open (this=0x1c7748, g=0x1faf70, x=0, y=0, z=0) at overmap.cpp:1828
4  0x00642d92 in overmap::overmap (this=0x1c7748, g=0x1faf70, x=0, y=0, z=0) at overmap.cpp:120
5  0x0046f1cd in game::start_game (this=0x1faf70) at game.cpp:416
6  0x0046f05c in game::opening_screen (this=0x1faf70) at game.cpp:394
7  0x0046dbfd in game::game (this=0x1faf70) at game.cpp:183
8  0x00521d80 in main (argc=1, argv=0x3d1178) at main.cpp:24

The problem seems to be the same.

Segfault using bows

I'm afraid I don't have much information about what happened, but attempting to fire a longbow with wooden arrows at a zombie caused a segfault and a crash. Another minor issue is that attempting to reload bows will display the new message saying that they do not need to be reloaded, however, the item's name is garbled and contains console control characters and some invalid-character symbols.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.