Code [][] - Page 2

Tue, 03 Jan 2012 18:45:20 GMT
World building catch-up day 1 - The World
Tags:dcsb worldbuilding
Saw a mention of a 30 day worldbuilding challenge on the twitterfeed and followed it to: [] . Since it sounded interesting and possibly beneficial, I thought I'd participate, although probably in a more cursory format than some. Jeremy Jurksztowicz of Mysterious Castle is a good example of what I probably will *not* be doing. :P Read about that here: []

So, the world of Dungeon Contractor Strikes Back. As the title hints, this is not a world that takes itself in a hugely serious fashion - but on the other hand, I want the player to expect consistency and a bit of familiarity with the subject matter.

In short, the world of DCSB is a medieval fantasy world of little travel and low technological development. However, there are potent magical and mystical forces around that make the career choice of Professional Quester a desirable and lucrative one. It's a world where Times Are Always Tough, but the gods cheat abundantly and tweak the dice in the favor of their champions to prolong their entertainment. Those that do choose it invariably end up finding dungeons, castles, keeps or strongholds to explore and loot, and the odds are better than expected that they'll return victorious. On the other side, wizards, dreadlords and madmen find it surprisingly easy to enlist eager (good pay, flexible hours, occasional chance to kill a wannabe hero) help for their tasks, so there's never a shortage of places to raid.

Into this comes the player ... but on the side of the keepers of the dungeon. Sometimes it'll be a warlord, other times a powerhungry archmage, but in each case the funds seem to dry up while the workload increases, and you've had enough. With your experience and can-do attitude, surely you could do a better job of running this place! You just need to get there, give the head honcho a piece of your mind (and maybe some sharpened steel); there's only the slight matter of you being on the front lines of the lair, and all these defenses in the way ...

So that's it in a nutshell. Every world is randomly generated, but you will always start out as the rank and file on the outer edges of your boss' demesne. Between you and them there is not only defensive perimeters but plain old geography to overcome - just think how far the Black Gate was from Sauron's Tower, and you start to get the idea. In between there can be EEEEVIL villages, smaller keeps or outposts, dungeons, caves and again, just plain old geography. Not every one of these power seekers likes living in blasted lands, so any natural feature is fair game. But more on that later.

In other news, I've added a game over and game start screen, and added the start->end->restart cycle as a functioning element. Yes, the game actually ends now when you die. :)
Sun, 04 Dec 2011 18:37:24 GMT
And now mongo found my old DB. Hm.
Not sure why, but this time mongo found my default DB CodeSquares, so everything is back to the way it was. Puzzlement!

DCSB work is paused for Skyrim. That game, I swear. There are several indies out there that are just go-go-go for their own stuff, and dismiss releases like this entirely - or mention them and THEN dismiss them, I guess that's hip :P - but I am not quite that hardcore. This goes especially double when hit in my weak spot of freeform exploration with tons of content, which Bethesda does oh-so-well.

Anyway. I'm getting the itch to code something again, so it might be sooner than I think.

Oh yes, all moved. Not moved-in by any means, but moved. I'm typing this from the floor of the "office".
Tue, 08 Nov 2011 17:39:41 GMT
Break for house!
The lack of updates here is 100% attributable to a now completed house purchase and preparations for move and occupancy. Exciting (and nerve-wracking) stuff!

Expect work to resume soon now that we've closed and are waiting to move; not sure if I'll hit MVP before December, but I'll try. I made serious inroads on LoS rangefinding, with only the one errant bug (path sometimes goes somewhere wild) remaining, I added a big bad foozle at the end of the game (level 10 currently), added special ability Summon (and with the range code fixed I'll add Ranged Elemental Attack, aka Fireball or Iceblast or Boulder Hurl :), fixed creature level distribution and stat variation ... I might be closer than I think.

Onward to MVP!
Tags:dweller screenshots
Behold, the amazing debugging line of sight imagery :P

I've also started working on a special ability - summoning help. I *think* most of the code is done, but it is yet to be tested. On top of that, I think I introduced an infinite loop somewhere in the line of sight code - I started getting annoyed at the mess of X/Y vs tileX/tileY and began some work on it, but I suspect it's missing a conversion somewhere. Well, it *was* very high on the post-MVP priority list, so maybe I'll move it up to happen sooner. Might be easier at this point than reverting tonight's work, hah.
Wed, 26 Oct 2011 17:08:35 GMT
A little work on creature distribution
Tags:dweller structure
Hmm, maybe I should start tagging with things like "tech", "graphics", "AI" ... but I'd probably just get lost in the tag cloud. Welp, I'll try it. This one is "structure", short for dungeon structure I suppose. I'd use architecture, but in software development that can mean quite a few things.

Way back when I had the idea of leveled critters, their level span would be quite large as they would grow with the player. Fortunately I threw that idea out, and so creatures will have a smaller level span - I'll just have more features. I think this will differentiate the levels a bit; more creature variety will show the player that their environment is changing. Goblins to goblin squads, wild dogs to wolves, kobolds to trolls and so on. At some point minibosses and such will start showing up, possibly leading squads - this *is* a defensive dungeon after all.

In any case, the code for this is now done and minimally tested (like most game features, ha!). It will take actual playtesting, further creature development, and probably a substantial amount of numbers tweaking to make it perfect, but "functioning" is good. I might add a few more creature variants today for starters.

Next up, that ranged combat. I'll have an *exciting* path-tracing screenshot later today.
Mon, 17 Oct 2011 17:35:06 GMT
A few thoughts about combat, not much else
Attempt at buying a house + crazy baby = not much time to code. It's almost to the point where I'm a little worried that i'll forget what I was doing last. :/

In the meantime I'm designing a combat system on pen and paper. Well, in notepad in my email anyway, for portability. It's going to be some sort of blend of dice rolls that are affected by your stats and skills and item stats, I think. I'm going to handle evasion with a toHit roll that will be modified by your stats, skills, items and effects (like say enchantments or potions) and damage with a weapon range that you will roll on. If your roll falls in a certain range, you'll do x% of the total possible damage, with small modifiers added via your skills and stats.

At first you'll gain a couple of stat points faster, so they'll have a larger effect, but in the later game the stat gain requirements will increase exponentially and you'll be focusing your effort on improving your skills (through usage and possibly reading tomes, or finding a trainer), finding better items, and obtaining enchantments and such. I think it'll work, but it's all very initial. I haven't even run any paper scenarios yet, so it's all very tentative for now. Still, brainstorming (as long as you put something down) is better than no progress at all.
Mon, 10 Oct 2011 04:38:54 GMT
Older screenshot!
Tags:dweller screenshots
I found this in the archive, thought I'd throw it up here see how it compares ... witness the early blood splotches and NPCs/PCs. :) You can also see "iron chain helmet", which is an item scheme that no longer exists, and the awesome creeper background. Those dungeon tiles will come back though; the forest is just the start of the game.

Mon, 10 Oct 2011 04:22:59 GMT
Stairs and pathfinding
Tags:dweller screenshots
Moar screenshot!

The stairs (i.e. squiggly lines) actually work now - that is, I put in the code that detects whether you're standing on a real stair tile or not. Sure adds a bit of gameness (gamity? gamection?) when you can't just fly through the levels ...

Also not seen in this shot is the path tracing that's still a little buggy. Hopefully will wrap that up this week, which will enable ranged combat to happen.
Sat, 08 Oct 2011 04:01:08 GMT
Screenshot day!
Tags:dweller screenshots
Following the doing away with leveled creatures, I'm working on some very initial design docs for combat and player development. While this stuff is very far off yet, I might as well be thinking of the ramifications now while the codebase is still relatively simple. For example, since the NPCs won't have levels nor a ton of skills - and PCs won't have anything as simple as Special Attack 1 or Special Attack 2, not to mention PCs won't award XP for getting killed, ha! - I'm going to break out their XML objects away from PCs. Things like that. Better now than later.

And here's an image; there should be more of these since I just came up with a way to easily paste URLs and have them tagged as images. Yay!

Fri, 07 Oct 2011 18:26:01 GMT
Doing away with leveled creatures
Tags:dweller dcsb
After some consultation with the snarkmaster (a serious CodeSquares contributor), I have decided to do away with leveled creatures. Originally I was thinking about some sort of auto-leveling a la Oblivion (except one that worked better) where creatures would gain more skills, have higher chance of casting some spells or using abilities, and have better gear. There are a few problems with that though.

First, nobody likes autoleveling. It negates a lot of the sense of accomplishment when you gain a level when everything else does too. Second, it's hard to do well - Dead Island does ok, but that negation of accomplishment is certainly a factor. Third, in a roguelike where the numbers of enemies can be potentially huge, leveling negates the sort of instant recognition that a tile-based game should have - is that a level 1 goblin that I will swat, or a level 5 goblin that will just destroy me AND my army? That is something I would want to be instant, and there's only so much you can do in 32x32 pixels - but I could instead present a goblin champion as a different graphic, and the player will instantly see that it's different from the base goblin.

Another reason is technical; while I *could* create a system for equipment overlays (and this is in fact planned for the player, and at least weapon display for the creatures) and enhance it to show more "flair" on a stronger creature variant, I am fairly certain that I can't do as good of a job attempting programmatic tile variation as a hand drawn piece of tile art would.

So yeah, no leveling on creatures. There will be a standard progression of weak creatures near the start and stronger creatures towards the end, with creatures having an upper and lower limit of appearance. There may be a little stat randomization at some point, and definitely weapon randomization, but a creature type will always be that same creature type and behave consistently everywhere you see it. That just seems much more playable. This will all be in XML files for ease of tweaking, too.