Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - eclectocrat

Pages: 1 [2] 3 4 ... 6
Programming / Re: Unique PC race abilities?
« on: May 21, 2013, 03:42:46 PM »
That's the best way to make a roguelike interesting! Make sure the abilities (and any exceptions to their rules) are well-documented, otherwise you get spoiler-based gameplay.

Currently I'm keeping a spreadsheet of abilities and their 'point costs' in terms of game power. It's useful, but as new mechanics enter the game, previous abilities that may have been worth, say, 15 points, might jump to being worth 30 points, or even become nerfed to 5 points. It's a hard juggle, and I have no idea how many points being able to teleport tree to tree is worth! It's obviously worth less than restriction free teleport (30 points), but it's so hard to come up with a number. It's usually pretty arbitrary and then gets ironed out later.

Balance isn't too important in a roguelike - it's well accepted that some races and classes are easier or harder to play.  And sometimes things are just "different", not qualitatively superior overall.  Your dryad sounds cool!

Every game ends up with different challenge modes invented by the player. It's nice to actually have these incorporated into the game in the form of race/class choices.

While I agree, I still feel like I need a 'core' set of classes/races (same thing in my game) that I can balance the game to. Then, as I introduce new races, they can be brought into the fold slowly. I'm just worried about the options available to the new player, I don't want anyone to accidentally create a very poorly balanced party, even though it's impossible to prevent that without prescribing a specific party format.

Programming / Unique PC race abilities?
« on: May 21, 2013, 01:40:29 PM »
I make a party based roguelike game and am in the process of adding up to 10 character races. Yesterday I added a cool new race, Dryad, which can shapeshift into a tree and teleport between trees. It is a very non-standard character type, combat is prohibited to a Dryad, so you have to figure out different tactics.

Anyway, this got my noggin thinking, why fiddle with variations of standard attributes? Why not introduce mechanics that are weird? Of course the answer to that is balance, it's so much easier to balance a couple of stat mods; +4 str and -4 int is not hard to figure out. Still, seek and ye shall find, so I am here seeking for new character types with potentially unique abilities. Maybe I'll be able to balance out a few of them. Non humanoids welcome.

Thanks for any advice!

Programming / Re: cfov
« on: May 10, 2013, 03:31:19 PM »
Cool, I'll seriously consider switching to this because it supports more options than my fovlib.

Thanks dude!

Programming / Re: cfov
« on: May 10, 2013, 02:04:22 PM »
Looks great, but in your Map adapter setVisible function, could you also pass the distance from the fov source, so you can simulate a light gradient, for example? Should be pretty easy, and It'd make it useful as a sort of tile based shadow casting.

Regardless, good luck!

Awesome! The Iso-Angband source code has proven really awesomely useful BTW.

Good luck sir!

Programming / Re: The Ultimate Roguelike Tileset
« on: May 01, 2013, 12:52:00 PM »
This makes me want to make a new game. Really great feel, the contrast is so marked, yet pleasant and non-distracting.

Most likely future customer.

Programming / Re: Angband graphical port launchpad
« on: April 16, 2013, 04:39:38 PM »
I gave all the map tiles an attribute:char pair with the high bits set (0x80) so it was possible to tell them from ordinary characters.

I'm looking forward to your project. ZAngband should be a good base since it has much more visual diversity than vanilla Angband. But you'll be really busy drawing all those monsters, and for some I never could figure out how they were meant to look like, so best of luck with that :)

Wow, that's exactly what I was looking for, nice. As far as graphics are concerned, I'm using David Gervais' tileset from dungeon odyssey. It has TONS of creatures, but I don't yet know If I'll have to prune any monsters from the game.

Thanks for the insight, suddenly this seems much more tractable.

Programming / Re: Angband graphical port launchpad
« on: April 15, 2013, 08:38:27 PM »
It took a while to thaw me from my cryotank, sorry for the late reply. Indeed, the PM triggered the wakeup sequence  ;)

If you need help, just ask. It might be possible that I can help, but Iso-Angband used some rather tricky solutions to display the dungeon, and it wasn't even very reliable.

Cool! I may have questions for you, but I'm still trying to comb z-term.c to find out how in the hell do I know when I'm asked to render the map vs. a UI element. I imagine that Term_pict is the function I need to understand, I'll need to make some time in the coming months to really wrap my head around it all. If I can figure that out, then I'll be A-Ok!

I may re-initiate your thaw sequence with another PM in the coming months :)

Programming / Re: Most popular IDE and curses library?
« on: April 15, 2013, 02:54:53 PM »
I have an irrational hatred of MS, and yet I have to concede that Visual Studio really is the best general purpose IDE ever. Credit where it is due...

Programming / Re: pedantic object oriented question
« on: April 14, 2013, 08:20:06 PM »
I have entities with move as a member function, and it basically delegates to the map to do the physical moving, but then the entity can override the virtual move function to do something before or after the move, while if you have a monolithic move function for the map, handling pre-post ops on a type by type basis gets nuts.

I don't think having 'move' owned by the map is wrong per se but I think you can make a stronger argument for something like eclectocrat's design here.

The sky won't fall down whichever way you do it, unless the codebase or the game gets a lot more complicated.

First off why do you need lots of different pre and post steps for movement? ...

Sorry I kind of stopped taking it seriously there, questions such as these raise major red flags for me. This is why I never ask python questions on stack overflow. The whole "why would anyone ever want to...?" thing is just anathema to making positive progress, imho. No offence dude, the rest of your post contained good engineering points.

Slightly OT, I remember discussing boost::shared_ptr when it was being migrated to tr1 and they were not sure what to do with the thread safety/locking template parameter that came after the primary pointer type. The apparent problem was that the combinations of template parameters would create a combinatorial explosion of complexity that would make it very hard to assign pointer to each-other in safe ways. My question was why even force them to be compatible? Why not just say that any pointer can only be compatible with other pointers with the same thread-safety/locking policy? I never really got an answer to that. I usually like to avoid complexity, because the problem space will provide enough without you adding in heaps of your own.

Anyways, I agree with the sky not falling regardless of which method you ultimately use. In my experience, the surest way to have clean code is to review regularly and take the time to care after corner cases. If you do that, then either way is just fine... (unless you are writing nuclear reactor controllers, cmon this is a roguelike board!)

Programming / Re: pedantic object oriented question
« on: April 12, 2013, 08:38:32 PM »
... It's only wrong if it doesn't work.

Agreed, I'm a pragmatist, but today at work, a bunch of people definitely did the WRONG DANG THING! It's my job to clean up the poopy code they wrote the WRONG DANG WAY!

Uuuhhhh.... *sigh of disgust* if you have to maintain code, then there is definitely a wrong way, but in my own codebase, I've been satisfied several times by terrible code held together by tape and staples.

Programming / Re: Angband graphical port launchpad
« on: April 12, 2013, 06:48:50 PM »
Thanks everyone, I ended up asking on the page and got a link. Angband rendering is so wacky, but I hope that in a couple of months I'll have another graphical variant. I've chosen (along with a buddy) to work on a custom ZAngband fork to test with the renderer, as I love the wilderness generation and I have a bunch of wilderness tiles.

Thanks dudes and dudettes!

Programming / Re: pedantic object oriented question
« on: April 12, 2013, 06:45:59 PM »
My two pennies:

Objects are worthless in isolation, while it is good to avoid spurious uplinks to containing data structures, an entity (creature, npc, etc...) is almost just a lump of data unless it interacts with the map, items, other creatures, whatever.

Don't be afraid to put uplinks to containing objects. If your items need to know what race of creature is wielding them, there are many fancy design ways to figure it out, but if(_holder->race == RACE_ELF) is probably the easiest and least error prone.

I have entities with move as a member function, and it basically delegates to the map to do the physical moving, but then the entity can override the virtual move function to do something before or after the move, while if you have a monolithic move function for the map, handling pre-post ops on a type by type basis gets nuts.

BTW, C and Lua is a great combo. My engine is C++ and Lua, and I'm thrilled about it.

PS> There is no 'right' way, only wrong ways, and tradeoffs.

Programming / Angband graphical port launchpad
« on: April 08, 2013, 08:18:16 PM »

I make the game It's got a nifty isometric interface with full support for iOS, pinch zoom (next version!), pixel perfect object selection, and some other crap.

Anyway, I'd like to make a version of Angband that runs atop the isometric engine on iOS, it'd be quite fun in my humble opinion. I have looked through the source code and am beginning to understand what the renderer is doing, but I'm just grasping at straws to figure a few details out.

1. Any tips for a graphical port?

2. I remember, and my google search turns up, Iso-Angband, but can't find the source code to see how they did ISO graphics with it.

3. How does one distinguish when rendering a UI element vs a Map element?

If any of those questions seem dumb, they probably are, I just thought I'd get a heads up from some pros.


Pages: 1 [2] 3 4 ... 6