Update. of sorts.

I’m updating this blog in response to
Jeff Lait’s “Failure rates of Roguelike Games” post on r.g.r.d
Relaized my game was gettign figured into the numbers and decided I’d let the world (whatever tiny non-existent portion of it that reads this blog) that this game is still in development.

Its been a pretty long time since I updated this blog and in turn Ravenous, but I am still working on it. Very slowly.
I decided to experiment with 3D graphics and awesome things like lighting, particle effects and post-processing effects.
Not very roguelike-like I know, but its fun to mess around with. Hopefully soon there will be an updated, 3D version of the original Ravenous, followed by later releases adding more actual game content.
Hopefully sooner I’ll have some screen caps to prove I’m not pulling this all out of my ass.

Leave a Comment

Engine ReWrite

So, in order to get Ravenous done in seven days I kept the engine simple. It would update, draw the screen and then wait for the player’s input before it ever updated or drew again. It works well for a turn based game using ascii graphics, but it bugs the hell out of me. So i’m in the process of converting the game to use an engine that continuously loops, drawing and updating as needed regardless of the player’s input.
The game will remain turn-based, and the change will be unnoticeable, but i’ll feel better about myself. Additionally if I ever get around to adding graphics or sound (GASP) this would need to be done anyways.

Other Changes in the PipeLine (in no particular order)
1) Different types of maps. Current ideas (outdoor maps, prison blocks, caves, towns)
2) Different enemy types. Current ideas (enemies that surround you but don’t attack and get pushed as you move into them so they act as a shield. Enemies with ranged attack)
3) Adjusted of the elemental types. (adding cold which will stun. shock will now hit for critical damage. fire will do splash damage)
4) Different terrain tiles, and skills related to interacting with them (water tiles/swim, chasm tiles/leap, acid pools/knock back enemies)
5) Enemies take damage from getting knocked into things
6) Stairs position is common between floors, and the possibility of having rooms that can only be accessed by going down then up a different set of stairs
7) Better leveling system (thinking about having mutations that occur once you’ve received enough experience from eating certain types of enemies [blog post on this idea forthcoming])
8 ) I have an idea for a story. It more a world history and an explanation of why you’re so ravenous, but I need to figure out exactly how to work it in the game
9) adding save/load feature, score, and cross-game score tracking
10) maybe bones files ( i like the idea but it might not jive with this particular game)

Leave a Comment

Ravenous Rl release 0.1.1

So I have decided to go forward and keep developing Ravenous, as well as keep updating this blog.
I’ll post more about anticipated changes in the near future, but for now here is an update to the 7DRL edition:

RavenousRL 0.1.1

Updates:
-Fixed game crashing weirdness that occasionally occurred when traveling between levels
-Fixed bug that caused psychic level to jump to 5.
-Balanced the early and mid game (still have not beaten it, mostly due to finding something I want to fix, quitting and restarting)

More to come

Leave a Comment

Finale, finally

Its been a couple of busy and frustrating days since I updated this. Friday and into the wee hours of Saturday were spent finishing my game and prevented me from updating. Then came the internet failure. Until this morning the only access I had to the internet was my cellphone, so I was unable to post a link to it.

but that’s the past and here’s the link:

Ravenous RL

There it is, the first (non-TI-83) game I’ve ever finished. And its glorious, or atleast playable.
20 levels of corpse-eating, attack-spewing action.

In all seriousness though, I consider it a huge success.

Dungeon Generation

I wrote the entire system myself, though it came up a little short of what I had wanted.  Right now it generates nethack style rooms connected by hallways.  This was originally supposed to be only one of four types of floors.  There would have been:
1) outdoors; mostly open with objects generated to segment off parts of the map
2) dungeons; what is in the game now
3) mazes; labyrinthine floors of winding hallways
4) monster vaults; if you’ve ever played shiren you know what these are and either find them extremely exciting or terribly cheap;

Additionally, I did not put the final touches on the nethack- dungeon style maps that I wanted. I wanted to make the walls more jagged and place more unpasable spaces in the middle of the room. In the current algorithm, the screen is separated into a random number (5-7) of sections and then one of four room shapes ( box, elbow, entrance hall, and tri-overlapped box) is randomly picked, scaled and placed onto the map. Two doorways are selected for each room, and after all the rooms have been made, the doors are connected by hallways.

I had wanted to design several different layouts for each of these room shapes and have them randomly assigned. for example: the entrance hall room shape would have a series of pillars extending back from the doorway in, or a box room would have an island separated in the middle of it.

Finally, I had wanted to include different floor types. Currently it is just open floor and walls. I had wanted water tiles, tree tiles, chasms, acid puddles, etc. and the traversing of these tiles would be limited to what skills you had acquired. The time cost of implementing the skills and figuring out how to verify that each level is finish able made these changes unreasonable.

Line of Sight / Field of Vision
I decided to program everything myself. I decided to not even read about it and just see how far I could get. And here’s where that bit me in the ass the hardest. I went through about 4 major revisions to my line of sight algorithm. Like through everything out and start again revisions. But my final one was about as good as I could hope for, and seeing it in action is the most rewarding thing about this whole project. I would try and explain it here but it require a series of diagrams I don’t have, and add quite a bit to what already a really long post. Just let me know if you find any weird quirks.

AI
This part was exciting. I studied AI in college and it was exciting to get to put all the pieces together for the first time. Enemy AI is three tiered. First, they wander. They pick a direction and move in it. Once they’ve gone that way for a while they pick a new direction. Easy stuff. Second: The player leaves behind a scent as you move through the dungeon. Every turn this scent is reduced and dispersed through out the level. Enemies have different levels at which they can perceive this smell. Once they perceive it they follow the trail. Still pretty easy stuff, but it works well and looks cool.
you may ask: How does it look at all, much less how does it look cool? The answer is in the game. Play it right and you may notice somewhere around floor 5 – 7.
The last tier is that when an enemy can see the player they approach an attack. This creates a gradient of movement costs where the enemy is always moving to the space with the lowest movement cost, plotting an optimal path that should keeps them from running into walls etc.

Unfortunately the AI is the buggiest part of the game. I know that with the right balancing of number the smell tracking system can smooth out any pointless wandering you do, and give the enemy a better path to you. But right know they will follow every little turn you took. Or they’ve move the opposite way. Its weird but not entirely unexpected. AI takes a lot of time to tune, and you don’t get that much time to do in a week long contest. Especially if you don’t start programming the AI until day 5.

Combat and Progression
This is getting long so I’ll make this quick. I like the feel of my game. i thought it would be slow and methodical, but it actually plays pretty fast. The eat/digest/spit mechanics work even better than I hoped for, and with more content and refinement I think it could make for a very good full game. I may be wrong and I’d like to hear other people’s opinions about it.

I was going to discuss my future plans for this game, but this is already too long. That post should come sometime in the next couple of days.

Leave a Comment

wednesday’s progress

well, I can sure find hundreds of ways to ‘waste’ time. Instead of programming in AI I spent hours yesterday trying to fix little things that annoy me. restructured how text messages are written to the screen. Highlight the player when it is their turn. tried and failed to figure out why enemies’ turns take so long. blah blah blah. Luckily I managed to get porjectile attacks and elemental effects programmed in. currnetly:

1)acid: does damage over time

2) fire: adds a random amount of additional damage

3) shock: stuns the opponent for a set amount of turns

4) gust: knocks the target back a certain number of squares

there are a handful of other I would like to add, but their usefulness is limited to small subset of my planned monsters. which brings me to the fact that I STILL HAVE NO ENEMY AI. At least they wander around semi-more intelligently. Will probably have them tracking the player soon, but then comes combat AI and my plan for that is still a bit fuzzy. I’m still close to being able to complete my game by noon on saturday. but not comfortable close. Hopefully I can just hulk out tonight and get a lot done.

Leave a Comment

Tuesday, snoozeday

So very little got accomplished Tuesday. I think the only thing I added was the ability to eat corpses and have them appear in your stomach (inventory). Due to a tiring and extended work day, as well as LOST being on, I didn’t get much farther.
Today is shaping up to be more successful. Need to finish the eat/digest/level-up/ranged attack system and begin the daunting task of program enemy AI. Hopefully touch up some systems (highlight the player when it is his turn to give a visual cue, more robust messages etc). If I can get all of this done tonight, all i will have to do the rest of the time is implement LOS/FOW and add content (more monster types, maybe an additional type of level generation etc)

Leave a Comment

Monday’s progress

Alright, after burning myself out Sunday I predictably did not get a lot done. The game is now playable, including features such as: walking, not walking through walls, killing defenseless, blind enemies, and leaving behind a corpse. Maybe I’ll just make it a zombie themed game and saved my self hours of AI programming….

…I plan to have put in better AI by the end of today, but it will be much harder to code than I am assuming right now (isn’t that always the truth?).
My current plan is to have several states for each enemy:
1) wander – doesn’t even know the player exists, just moves around randomly
2)tracking- Instead of trying to use A* to do pathfinding, I’m going to try and implement a scent based system. When ever the player is on a gridsquare his scent is added to it. Each turn this scent value decreases if the player is not there. Different enemy types will pick up the trail at different values (wolf will switch to this state once they enter a square with any scent, while blobs will need to enter a square with a higher scent value before they begin to track. This system should also be conducive to allowing you to through enemies of your trail by creating false scent paths.
3)attacking – once an enemy is within range of the player, it will make a bee line for him and start attacking. (this will probably work like a small A* pathfinding)

The attacking state will probably vary between creatures. I want some that behave in more passive ways, but we’ll see how far I get.

Future Schedule
tuesday: Enemy AI
wednesday: AI cont., enemy types, projectiles
thursday: LOS, moving between levels, score tracking (?)
friday: finish and test

Its still looking possible that I’ll finish the game I want to make, and pretty definite I’ll have a playable something by noon on saturday

Comments (2)

Older Posts »