"The dwarves have slain the monsters inhabiting the tallest mountain and have embedded deep within it their fortified home. There, after endless refinement, they have recreated a legendary artifact of unfathomed power. The relic drives the dwarves mad with avarice, and news of their wondrous creation attracts trouble. Other races feel the draw of the artifact and lay siege to the fortress. Meanwhile, the gods frown upon such a presumptuous race, and ponder their divine genocide..."
Thursday, September 22, 2011
Wednesday, September 21, 2011
Added "fire" as a craftable item that repels wolves, but due to how pathfinding is specific to an exact coordinate, if that coordinate isn't movable to (e.g. a wall) the wolf just gets stuck.
Added "degrades" tag to items, so they expire over time.
"fire" has this tag, so you can craft it, repel wolves for a few seconds, then get eaten alive as the 10 wolves that are stuck around you get unstuck.
Also ran two stress tests:
200 deer all pathfinding at the same time: very choppy, but still runs.
Running for as long as it can: 30 minutes before the closedList of a pathfinding wolf threw an outofmemory exception, so I fiddled with that. Running it again as I post this (at 10 minutes right now).
Things I'm working on before it becomes a proper game: getting flee to work correctly for wolves, field-of-view to work correctly, tags for buildings/remaking the whole buildings thing, and then altars and gods.
Monday, September 19, 2011
Changed options for spritebatch draw to make zooming not blurry and added oryx's lofi font (thanks to poemdexter for showing me how to do the first and for the reordered bitmap font!)
Added messages (you killed a goblin, chopped a tree, etc.) box at the bottom.
NPCs/Players drop corpses on death, and are added to a "dead list" (again, thanks to poem for this idea. For his roguelike he was thinking about necromancy/zombies etc.)
Added fog-of-war to the game.
From a design standpoint, I wasn't really sure what I wanted from a roguelike or DFlike in general. After playing a little minecraft and DCSS today I came to the conclusion that exploration is interesting, and having the whole map revealed though convenient, is pretty boring. This is probably intuitive to anyone reading this, but it's not really something I thought about until now. Anyways, have a screenshot:
Also, added saving of turns (will be used for weather, tides, day/night cycles, and seasons.)
Still need to add saving of HP, inventories, and now the fow map.
Also need to add a more functional fow (walls should block vision).
Saturday, September 17, 2011
Friday, September 16, 2011
Added:
- Everyone now has a damage rating.
- Default enemies (goblins for now) now attack the player.
- Significantly cleaned up player movement and digging. Integrated everything for transition to many dwarves. (commands all off of player and totalBehavior rather than separate and on game end)
- Turn count is now shown, and apparently I'm running at about 60 FPS, so I think things are in good shape.
Thursday, September 15, 2011
Tuesday, September 13, 2011
Monday, September 12, 2011
Ok, I am the worst. Looking through pathfinding again and trying to see where I had spots I could optimize, I noticed that the closedList looked mighty big. Digging through it deeper, I saw that it had repeats, even though it's not supposed to. Turns out I forgot to exclude the closedList coordinates from my pathfinding. The pathfinding is now ridiculously faster than it was before, and doesn't even hiccup when moving across the whole 200x200 map. The good news is that after a month, I've finally gotten through the hard stuff and now can move to combat without worry; bad news is obviously that it took a month for me to figure it out (well, a few days if we count actual days thinking about it).
Sunday, September 11, 2011
Crawled through my pathfinding again to see if there anywhere I can optimize, but it seems like this is about it. If anyone has any ideas (I'm using a* with a binaryheap for the openlist) please let me know. It takes about 2 seconds to pathfind a decently complicated 50x100 space.
Reminder: I need to implement flood-fill passable check for different areas.
Anyways, I've gotten as far as I can for now with pathfinding and am dangerously close to getting bored. Even though I thought/think that speedy pathfinding will be the limitation for the game I'd rather move on to more interesting stuff.
Added:
NPCs dying when hitting 0 hp
NPCs dying when hitting 0 hp
Sunday, July 31, 2011
Thursday, July 28, 2011
Saturday, July 23, 2011
Perfected mapgen a little.
I think I'm going to make a 200 by 200 map as an overworld, and take chunks of it (probably 5x5) and derive 200x200 maps from those as actual working maps to play on. The current mapgen is pretty good for an overworld, and it's easy enough to adjust for the smaller pieces. This is mostly due to too much stuff that needs to be checked and drawn for maps larger than 200x200.
Bad pathing is definite starting to become a problem. Deer can't maneuver through the map very well now.
Still need to learn perlin well.
timber's been added, and similarly trees.
I think pathing needs to be fully resolved before I'll move on to combat, so this may take a while because I need to slog through a*.
About the month-long pause, got bored/busy with real life:
So, got lazy and implemented perlin noise from:
resulting in this decent looking map generation:
Some issues I need to think about:
- my fillermoving (not true A* apparently) pathfinding still isn't robust enough, probably I need to really implement A*
- how large the map needs to be: current 200x200 map with about 10,000 rock walls is a little laggy, but not too bad. I shudder to think what a 1000x1000 map with multiple AI and dwarves would play like though.
- what the map actually represents. Is it 1 dwarf per dwarf tile? If so, this map gen varies a little too hard and needs to be stretched
- actually learning the perlinNoise stuff implemented all the way through: I know enough of the basics but I'd like know it well enough to be able to tune it completely to my preferences/code it from scratch
- adding combat
- adding more items (just rocks and grass right now)
- adding more craftables/buildings (just doors right now)
I feel somewhat satisfied with the mapgen and the fact that I still come back to this and not be lost looking through my code. I'll probably be working on this a lot harder after this weekend.
Tuesday, June 21, 2011
Added movement penalties for appropriate floors
Looking into Perlin noise for map generation here:
Looking into Perlin noise for map generation here:
- http://digitalerr0r.wordpress.com/2011/05/15/xna-shader-programming-tutorial-25-perlin-noise-using-the-gpu/
- http://freespace.virgin.net/hugo.elias/models/m_perlin.htm
- http://stackoverflow.com/questions/4753055/perlin-noise-generation-for-terrain
Monday, June 20, 2011
Thursday, June 16, 2011
Tuesday, June 14, 2011
Monday, June 13, 2011
Building Works
Implemented better pathfinding (apparently not a* and just some bastardization of it?)
Building items work
- Doors
Probably need to clean up spaghetti code at the end of every week, but I'm pretty happy right now making doors.
Building items work
- Doors
Probably need to clean up spaghetti code at the end of every week, but I'm pretty happy right now making doors.
Sunday, June 12, 2011
And Back to C#
Back again, libtcod rubs me the wrong way because I don't feel like I'm actually doing anything but following the tutorial/using their nice code.
Back to C#, and using XNA 4.0 (faith in C# restored due to Terraria using it? Thoughts from a novice).
Using Oryx's very nice pixelart pack.
Things done that were in the last version of the first try with c#:
Basically everything expect for monsters, dropping corpses, scrollable map (it's fixed right now).
Things that are added due to XNA being nice:
graphics. (Oryx)
Things that are added:
mouse control
usable pathfinding (that doesn't involve just charging through walls in a straight line)
Back to C#, and using XNA 4.0 (faith in C# restored due to Terraria using it? Thoughts from a novice).
Using Oryx's very nice pixelart pack.
Things done that were in the last version of the first try with c#:
Basically everything expect for monsters, dropping corpses, scrollable map (it's fixed right now).
Things that are added due to XNA being nice:
graphics. (Oryx)
Things that are added:
mouse control
usable pathfinding (that doesn't involve just charging through walls in a straight line)
Tuesday, April 12, 2011
Let's Do This Again!
Back, and using libtcod on python instead because of total data loss.
Starting from the libtcod/python tutorial on roguebasin.
modified:
monster_death:
monsters now drop their corpses as items instead of turning into corpse objects
monster_ai:
monsters move randomly while out of fov
implemented:
Digging, walls have default 5 digtries (HP) before death
Starting from the libtcod/python tutorial on roguebasin.
modified:
monster_death:
monsters now drop their corpses as items instead of turning into corpse objects
monster_ai:
monsters move randomly while out of fov
implemented:
Digging, walls have default 5 digtries (HP) before death
Subscribe to:
Posts (Atom)