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 - The Great Hippo

Pages: [1] 2
1
Incubator / Re: Imbroglio (Dungeon Generation)
« on: February 08, 2013, 06:21:44 PM »
Fixed all the (known) glitches with enemy pathing. They never attack each other now; they also never move unless they see you (or saw you, and are still moving to the last known position they saw you at).

You can hit '5' to wait a turn instead of taking a turn.

I think next I'll do a revamp on the statistics system, then bring back the inventory system and add the ability to equip things.

2
Incubator / Re: Imbroglio (Dungeon Generation)
« on: February 08, 2013, 01:13:18 AM »
Enemy pathing now works!
It's occasionally glitched (on some semi-rare occasions, enemies will accidentally hit each other on the way to you--I'm not precisely sure why this is happening! But I'm sure I'll figure it out soon), but otherwise works pretty well--enemies see you, move toward you, and proceed to surround you (moving around each other on the way!).

3
Incubator / Re: Imbroglio (Dungeon Generation)
« on: February 07, 2013, 02:11:33 AM »
Also, (re-)instituted automapping underneath the 'Brain' function (entities--IE, creatures that move/do stuff--store walkable/unwalkable terrain in a mask, which in the player's case, I can project as a memory of what they've previously seen)

4
Incubator / Re: Imbroglio (Dungeon Generation)
« on: February 06, 2013, 04:27:06 PM »
I've got floating text (to show when you hit/miss an enemy) working, along with chasms, etc. Everything uses a system inspired by the d20 system--six ability scores, three defense scores (reflex, fortitude, will), with your 'AC' score being a product of fortitude plus whatever armor you're wearing (when you hit an enemy, you roll a d20 against this--if you fail to beat it, you make contact but do no damage; if you beat it, you do as much damage as you beat it by).



In designing this, I've been thinking about the direction I want to go with it a lot, and one of the things I keep coming back to is a really silly, and risky (because it's probably hard to hammer into the roguelike structure) idea: Superheroes. Specifically, a 1930s pulp hero story.

I suppose I should start with something easier for my first foray into this, but I *love* weird stories like that, and I can already think of a few ways to make it work...

5
Incubator / Re: Imbroglio (Dungeon Generation)
« on: February 05, 2013, 11:05:13 PM »
Thanks both for the compliments and the suggestions! Changing the dungeon in response to depth is *definitely* something I want to do--I was actually planning on doing the opposite of what you suggested (dungeons first, then you get deeper--caverns become more common, then chasms...)--I hadn't considered going in the direction you're suggesting. I might end up doing that, depending on how the story hashes out!

Also, I like the platforms/invisible walkways bit--adding more interesting attributes to chasms is something I'm definitely going to do when I return to dungeon generation again.

As an aside (and because I like updating this thread), my thrust has changed slightly--I realized that I'm probably reaching far too high with the whole 'no numbers' system, so I'm going to aim for emulating a very simplified d20 system, with a few distinct (but relatively minor) changes.

6
Incubator / Re: Imbroglio (Dungeon Generation)
« on: February 02, 2013, 05:21:27 PM »
I've been working on the GUI and revamping it heavily; I also got a bunch of other stuff done. The game isn't even close to a 'finished' state, yet--but it runs, you can move around, the GUI stack behaves responsibly (you can create menus with options, mouse clicking works, etc).

I've created a github account that I'm updating as I work; you can see the relevant code here. Any advice/criticism/help is greatly appreciated!


7
Incubator / Re: Roguelike : Work name "Seven Rogues"
« on: January 11, 2013, 01:37:50 PM »
I gave it a try on my laptop (which promptly had a melt-down!). It was interesting--one thing I noticed immediately was that monsters could attack across diagonals even though I couldn't (or could I, and I was just unaware of the ability to perform diagonal attacks?). I'd inevitably get attacked by monsters when there was one around the corner.

8
Incubator / Re: Roguelike : Work name "Seven Rogues"
« on: January 10, 2013, 10:16:26 PM »
Upon attemping to run this program, I get an error saying 'MSVCP100.dll' was not found. If it helps, I'm running a pretty old computer (Windows XP!). I might give it a try later on my laptop, which is more up to date.

9
Incubator / Re: Imbroglio (Dungeon Generation)
« on: January 09, 2013, 09:28:49 PM »
To clarify more deeply, a sword wouldn't have a damage rating--it would instead cause certain status effects (bleeding!) or have certain 'damage types' (cutting!) which would be applied to creatures you successfully hit with it. And depending on the status effects the creature currently has, these status effects would 'interact' to produce various results.

That's just a rough example, though. The point is, I'm trying to avoid number comparisons and reduce things to 'states' that have a variety of interactions with one another.

10
Incubator / Re: Imbroglio (Dungeon Generation)
« on: January 09, 2013, 09:25:52 PM »
There was a brief discussion of the pros and cons of hiding numbers from the player at http://roguetemple.com/forums/index.php?topic=2786.0 .
Thank you for the link! I'm reading through it now.

I should clarify, though--my idea is less 'hide the numbers from the player' and more 'do not use numbers at all'. One of my deeper loves in games is when I am confronted with choices that do not involve simple linear calculations--'What does the most damage? The axe or the sword?'. As an example, in Brogue, axes allow you to hit all enemies around you, while a rapier allows you to attack twice in the same amount of time--and a pike allows you to attack the target and another target behind them!

My idea, then, is to find as many places to make numbers meaningless as I can--to make the majority of decisions a player is confronted with become choices between 'apples' and 'oranges'. I'm not talking about replacing a 30/50 HP bar with an 'Injured' icon; I'm talking about doing away with the 30/50 HP bar entirely--you don't die when you run out of hitpoints; you die when you possess a certain status effect that unless corrected leads to death!

Toward that end, I'm trying to eschew the use of numbers in my thinking entirely. It might turn out to be a silly approach, though--if so, I'm planning on creating space in the code to allow me to return to a more balanced approach between 'numbers' and 'status effects'.

11
Incubator / Re: Imbroglio (Dungeon Generation)
« on: January 09, 2013, 05:27:11 PM »
For now, I'm sticking with Python, I think! That being said, I'm going to use this thread as a place to post some of the stuff I'm working on, organize my thoughts, and possibly (hopefully!) receive advice from those with more experience--I hope that's alright!

Right now, I'm working on rebuilding my GUI interface from the ground up. Previously, I mentioned the GUI was deeply entangled with 'game events', and I wanted to disentangle them--I also wanted to institute a GUI Stack, where each window is its own 'stack' (with the 'game window'--the map that represents the actual game--being at the bottom of the stack). This would be so I could interrupt the user's gameplay to present them with 'inescapable' choices--things they have to click to proceed--but also so I could do things like allow the user to click an item in their inventory, bring it to the main map, and drop it on a tile--causing the user to 'throw' that item toward an enemy/tile/wall.

Here's how it looks so far:

These are all instances of the 'GraphWindow' object; it's a type of window that relies on a particular type of graph (the RectGraph--essentially, it's just a dictionary with a preset number of key: value pairs--you cannot add any new keys to this dictionary--you can only change the values the keys are associated with).

Right now, the interface allows you to 'click' on a potion, thereby creating a new GUI state (the 'ItemState')--your cursor 'becomes' the potion, which you can then move to an empty slot, clicking and dropping it into that slot (at which point the ItemState ends!). So it's possible to rearrange your inventory.

I've got 'Inventory', and I've got 'Status' and 'View'--that's because rather than having a traditional status bar (with hitpoints, status effects, etc), I want to reduce the majority of stats to non-integer-based 'states', or icons. If you're injured, you'll have an 'Injured' icon; if you're seriously injured, you'll have a 'Seriously Injured' icon. Similarly, View is just all the icons of the creatures/items of interest in your current view (since items can be stacked on top of one another in a square, this makes quickly determining the presence of 'valuable' or 'interesting' items easier--you don't have to flip through the stack).

There's a bunch of other stuff I'm glossing over here--but once I clean this up a bit, the next step will be to bring back the 'main map', I think.

12
Incubator / Re: Imbroglio (Dungeon Generation)
« on: January 03, 2013, 07:06:06 PM »
Thanks--and I might end up going with HTML 5 in the long run anyway (like I said, I deeply value portability); if it's well-suited for a roguelike, and it can handle classes in a similar way to Python (one of the reasons I love Python is because of just how well it can handle classes!), I might end up porting my code over to it.

(I actually don't have a tremendous amount of code, so it might not be that hard, depending! I'd have to learn HTML 5, of course, but I'm always willing to learn something new).

13
Incubator / Re: Imbroglio (Dungeon Generation)
« on: January 03, 2013, 04:16:39 PM »
Oh, hey! I beg pardon; I actually did a couple of searches way back to make sure no one else was using this name (but I didn't search particularly hard!). I don't think 'Imbroglio' will be the final name, though--it's mostly just a placeholder. That, and I sincerely doubt much will ever come from my code--I'm doing it because I really enjoy the challenges.

I'm enjoying reading through your blog, though, and some of your posts are giving me ideas for solving various problems I'm going to encounter later down the road!

EDIT: It also reminds me that one of the things I wanted to investigate was the possibility of building the roguelike in HTML 5/Java rather than Python--because I deeply value portability; that being said, I really want a turn-based game, which means I really (probably) don't want a multiplayer game (since turn-based roguelikes are a horrible fit for multiplayer--for a variety of reasons), so HTML 5 might not be the best choice.

14
Incubator / Re: Imbroglio (Dungeon Generation)
« on: January 02, 2013, 01:16:49 PM »
Thanks--and because it's one of my favorite words.

15
Incubator / Re: Imbroglio (Dungeon Generation)
« on: January 02, 2013, 06:30:37 AM »
Thanks! I really appreciate you saying so!

It was a hard trick to pull off while simultaneously keeping everything connected without resorting to 'try-to-connect-everything' loops--it works by defining a big 2D block, splitting the block (and each of the resulting blocks) in two a number of times (generating a BSP tree), building an adjacency map out of the resulting blocks, using it to allow 'zones' to spread a random number of steps and claim each block as they spread (only along edges that are 'perfect' -- ie, one side is *completely* adjacent -- or 'mutually perfect' -- ie, both sides are *completely* adjacent), building a 'connected zone map' out of the zones (figure out which zones are connected to which!), then defining some of the resulting irregularly shaped zones as 'caverns' and just letting the cellular automata algorithm go nuts inside of their space (followed by a few moore neighbor searches on each block or 'region' in the cavern zone is 'symmetrical'--IE, all the points in the block can be reached by any other point in the block). I'm really fond of the resulting look of the caverns--even if they're a bit big!

That being said, I've now got a random map generator that produces a completely connected map each and every time--it includes rooms, caverns, and chasms. I want to do a lot more work on making those things more structured, compact, and interesting--but I think I'm going to take Joonas' advice as far as moving on goes. Because I *am* worried about burning myself out on the dungeon generation stuff, and I suspect if I come back to it later, I'll have a lot more interesting ideas.

I'm going to work on basic monster AI next, I think. Either that, or my lighting system. One of the things I want to do is have a really, really, *really* cheap sort of 'specularity'--something really simple where light bounces off of walls once. I've managed to get a basic version working:


...but there are a few 'interesting' glitches (like walls illuminating space behind them--since I treat lit walls like a new light-source). Interestingly, the 'double-wall' phenomenon fixes that problem, but I think I want to have a more robust solution that doesn't rely on what was initially a glitch anyway. But I'm a little worried my obsession with lighting systems is distracting me from more important tasks, like making sure monsters attack the player instead of each other (right now, they just move about randomly!)

(I also need to work on cleaning up the GUI--it all currently works, but the GUI event system is pretty much piped directly into the game's event system--in other words, GUI events like 'Click' and 'Drag' and 'CloseWindow' are treated alongside things like 'EntityTakeTurn' or 'EntityMove'--and I think that's going to cause me some serious headaches later if I don't fix it now).





Pages: [1] 2