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 - penguin_buddha

Pages: [1] 2
1
Programming / Leveling/Experience
« on: October 10, 2013, 03:18:56 PM »
So I'm comparing alternatives for how to have the player increase in power as they play my game. I wanted to get your opinions/preferences on some of the different options:

Experience Gain/Leveling:
  • No Experience: No leveling system, players only get more powerful through equipment and simply getting better at the game
  • Experience from Kills: Players gain experience whenever they kill a monster. Experience can be spent to improve stats and buy abilities. Could give rise to players feeling the need to fight everything rather than flee/hide.
  • Experience from Descending: Players gain experience whenever they descend to the next floor. Promotes players just running through floors, though they'd miss out on loot.

Starting Stats:
  • Static: Every game the player starts with the same stats. More balanced gameplay.
  • Point Buy: The player starts with an amount of experience to spend to increase their stats.
  • Random: The player's stats are randomized. Could cause large swings in game difficulty from game to game.
  • Archtypes: The player chooses a starting class/archetype and their starting stats are based off that

2
Early Dev / Re: Escape into Black
« on: October 03, 2013, 06:08:45 PM »
Another progress update




Progress

  • Improved Graphics
  • Gaining and Spending Experience
  • Effects and Events
  • Feats and Traits



Details

Improved Graphics: I've begun messing around with colors and have been making use of Squidlib's built in methods. It has a great library with built in blending functionality. I've also altered how light is treated, creating a more natural gradient from light to shadow.

Gaining and Spending Experience: The player now gains experience from slaying monsters. The amount of exp gained is based on the difference between the player and monster levels. Experience can be spent to upgrade attributes, skills and to buy feats.

Effects and Events: Most of my time has been spent on this. I went though a few frameworks before I finally settled on this one. Whenever anything occurs that would affect an object, an Event is created. The Event determines what objects are affected and then applies Effects to them. The Effects can do anything from dealing damage to boosting stats. The system is very robust and I feel confident I can make almost any spell/ability I could think of. Thanks to AgingMinotaur and all the others who posted in my thread requesting help on this.

Feats and Traits: Traits are things innate to an object, such as blindness. Traits are essentially just flags that the code checks for. Feats are essentially traits that the player can purchase with experience.



Whew, well back to work. I'm working on creating a whole set of cave creatures, each with their own unique AIs. There will also be essentially an ecosystem within the game with an fairly complex food chain.

3
Programming / Re: Creature & item distribution
« on: August 27, 2013, 12:54:32 PM »
I have yet to implement the system for my game, but I plan on randomly placing monster "dens" around the map. Loot will be concentrated in these areas (the monsters have collected it) and monsters of a certain type will be placed around their corresponding den and their AI will lead them back to their dens if they stray to far (and aren't in combat).

4
Programming / Effect Architecture
« on: August 23, 2013, 03:17:27 PM »
I've been working on a roguelike game for a few months now and I've gotten to the hardest part yet, effects! I'm talking about everything from an effect that represents fire by continuously damaging an object to an effect that summons a creature, to an effect that modifies the stats of an object. So obviously there are a lot of potential effects. The question is how to go about implementing effects in an object oriented manner.

My current approach is to have an Effect class that is really broad. It contains multiple hashmaps that can contain game objects, simple values, locations, and other effects. Most instances of the class won't utilize all of these hashmaps. Each effect also has a list of types. These define how the game interprets the effect.

Examples Types: damage, healing, armorModifier, summon, etc.

For example, when an agent suffers damage the game will look for effects on that agent of the type "armorModifier". If an effect with that type exists on the agent, the game knows there should be a key/value pair in one of the hashmaps that tells how much armor should be added/subtracted. This would be for a passive effect, however many effects are active. Such effects have an activate() method that is called. The Effect class then acts based on the types of the effect. So if its a damage effect it will look for a key/value pair for how much damage, what targets to damage, what damage type it is and so on.

So if it wasn't complex enough for you already, there are also effects that really only modify other effects. For example, the activateOverTime type of effect just activates another effect at a certain frequency. The onHit type of effect applies a new effect to whatever an Agent attacks.

Here are some examples of effects and what types they would have:

  • Fireball: damage, aoeBurst
  • Vampirism: damage, healing
  • Alien Parasite: damage, activateOverTime, onTargetDeath (would create the Summon Parasite effect)
  • Summon Parasite: summon


So, I'd like your input on how to best implement this system. My current method can work, but its getting more and more complicated. I've considered creating a child class for each "type" of effect, though that would be a lot of child classes.

Thanks for any help,
Nathan

5
Early Dev / Re: Escape into Black
« on: July 16, 2013, 08:33:23 PM »
Just thought I'd give a brief progress update.




Progress

  • Natural looking rivers
  • Separate levels which retain their items/monsters after leaving and returning
  • Facing and a limited field of view based on the character's perception skill
  • Sounds and hearing


Details

Rivers:
I'm thinking of eventually just creating a height map and creating rivers in the lowest areas but for now I created rivers using vectors. For each river I want to create I make a vector on the edge of the map pointing inwards. Then in steps I just draw a line of river based on the vector, move the vector to the end of the line, randomly alter the vector, and repeat. There is also a chance for the rivers to split. The rivers can change in width as well.

Facing:
I decided to add facing to the game and limit the angle of view for characters and npcs. This makes the game a little bit more more suspenseful as you don't know whats behind you. A character can change their facing without actually moving from their current tile but doing so takes a small amount of time. The angle of view also lets pcs sneak up on npcs, though I haven't added any stealth attack bonus yet.

Hearing:
I decided to go with a rather simple solution for sounds. Each time a sound occurs I use A* pathfinding with a modified heuristic from the sound's origin location to each agent within a distance of the sound less than the sound's volume. If the pathfinding algorithm finds a route the sound reached that agent. I subtract the length of the path (the distance the sound traveled to get to the agent) from the original volume and based on the agent's perception I determine if they actually heard the sound. I haven't added them yet but I plan on having some blind monsters that can only hear.



Obviously my original estimate of when this game was playable was off but I'm steadily chinking away at it.

6
Early Dev / Re: Escape into Black
« on: May 20, 2013, 03:52:19 PM »
The game isn't quite playable yet. Should be within a month.

7
Early Dev / Escape into Black
« on: May 10, 2013, 05:35:24 PM »
Hey guys, I've decided to stop just lurking and post about my current project, Escape into Black. Escape into Black (EIB) is going to be my first RL and I plan on reusing its engine for my future, more ambitious, projects.


Escape into Black


Overview: Escape into Black has a simple story. You are a citizen of a mountaintop city who was framed for murder. You were judged guilty and given a choice, a clean death or the Pit. The Pit is a large hole in the ground near the center of the city which drops into a large series of catacombs that are said to spread all the way to the base of the mountain. Legend says that there is an exit from the catacombs, though it has never been confirmed.  Most don't even survive the drop into the cavern floor, but you decided to try your luck. You stand on the edge of the large hole, looking down at the corpse littered cavern floor nearly 50 feet below. You feel the steel tip of a guardsman's pike pressing against your back, forcing you closer to the edge...

Completed Features:
  • randomly generated caves (modification of BSP)
  • field of view using shadow casting
  • inventory system
  • loading from XML files
  • A* pathfinding for AI
  • looking and targeting
  • melee, ranged, and thrown weapons
  • action-delay based turn system

Planned Features:
  • monster dens
  • rivers flowing through the map
  • stealth
  • additional skills (currently only have combat related skills)
  • crafting
  • injuries (currently just have simple hp system)
  • hunger/thirst/exhaustion
  • experience
  • character creation

Ill add to the to-do list as I go. The game isn't playable yet but here are some screenshots of its current state. Note I'm using squidlib for my graphics.







Let me know what you think!

8
Programming / Re: Lighting Issues
« on: September 26, 2012, 01:55:16 PM »
Ill let you know when I implement it

9
Programming / Re: Lighting Issues
« on: September 24, 2012, 05:52:32 PM »
I suppose thats a possible way, but it would require a major change and a lot of time on my part.

10
Programming / Lighting Issues
« on: September 24, 2012, 03:32:01 PM »
I've successfully set up the FOV and Lighting for my game but there is one thing wrong. As it currently works, a wall tile can be considered "lit" because it is within the LOS and radius of a light source. This is fine, except that the wall tile is considered lit even when being viewed from the opposite side. For example:

. . . . .. . . . Wall . . .. . . .. . . . .
PC . . . . . . Wall . .. . . . . Light
. . . . . . . .. Wall . . .. . . . . .. . .

In such a scenario the player would see the walls as lit up, even though they are getting light from the opposite direction. Any ideas on how to prevent this? My current method of FOV is with a shadowcasting algorithm.

11
Programming / SquidLib: Getting keyboard input
« on: September 13, 2012, 04:22:49 PM »
I've been looking at Squidlib and i'm interested. My only question is whether the library has any build in methods to get keyboard input. As far as I can see, it doesn't. I'm curious how Eben gets input for his games...

12
Programming / Re: Blacken 1.1 Released (Java Roguelike Library)
« on: September 13, 2012, 02:52:49 PM »
Do you have something like a class diagram for blacken?

13
Programming / Re: libjcsi keyboard input
« on: September 13, 2012, 02:33:16 PM »
32 bit win7

14
Programming / libjcsi keyboard input
« on: September 12, 2012, 05:25:26 PM »
I've been having trouble with libjcsi. I'm getting keyboard input via the inkey() method:

CharKey key = csi.inkey()

From this you can get the inputted character's code (key.code). The problem is many keys are giving the same code 116 rather than the code their supposed to. For example, CharKey.PLUS is 55, but the key.code i get when using either plus on the keyboard is 116. Any ideas on what my issue is? Many other keys return the same thing, 116.

15
Programming / Re: libjcsi window size
« on: September 06, 2012, 02:20:35 PM »
Thanks for the links. Ill check out SquidLib for now, and Ill be sure to check out Blacken after the official release!

Pages: [1] 2