Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 ... 24 25 [26] 27 28 29

Author Topic: My C++ Projects - Tower of Azari v0.31 - "I'm not dead yet."  (Read 51346 times)

timmeh

  • Bay Watcher
    • View Profile
    • My Portfolio
Re: My C++ Projects - Tower of Azari v0.304 - Update 02/17/10, tech-demo!
« Reply #375 on: April 25, 2010, 01:35:56 pm »

Oh wow... I feel incredibly stupid now... I even left myself a note in the selling code to remind myself that I needed to handle selling of equipped items....  Shouldn't take long to fix, and hopefully I can get it optimized fairly quickly and have some sort of mini-release....

[EDIT]:
  • Fixed bug causing an error related to selling equipped items.
  • Optimized path-finding (shortened range)
  • Optimized enemy AI (checks for deaths less often, and more efficiently)
  • Optimized setting, item and enemy loading.

Next up: Map generation optimizations... somehow...

[EDIT2]:  Still have to work on optimizing map generation, and I don't have much free time today (5-page paper due Thrusday... I haven't really even done any of the research...), but I think I've figured out how I want to do magic, although it might not be quite as mod-able as the rest of the game... still, should be interesting.

[EDIT3]:  Working on a mini-library to handle bit-masks to (hopefully) speed up the checks for over-laps in map generation.  Map generation seems to be the only bit that still really needs to be optimized...
« Last Edit: April 27, 2010, 03:35:20 pm by timmeh »
Logged
On the Wall is a Masterfully engraved carving of Urist McHardcastle and Goblins. Urist McHardcastle is surrounded by the Goblins. The Golbins are stamping on Urist McHardcastle. Urist McHardcaste is laughing at the Goblins. The carving related to the prolonged and bloody death of Urist McHardcastle in the Fall of 1659, the Winter of 1659, and the Spring of 1660. On the engraving is an image of Cheese.

timmeh

  • Bay Watcher
    • View Profile
    • My Portfolio
Re: My C++ Projects - Tower of Azari v0.304 - Update 02/17/10, tech-demo!
« Reply #376 on: April 27, 2010, 09:23:41 pm »

Okay, finished the bit-field library (I'll upload it later, once I get it documented and cleaned up).  Working on optimizing map generation.  I considered a complete overhaul, but that would be a pain, and would take ages, so I'm just making smaller changes. 

  • I realized that I was re-loading the room list from the file, every single time it added a room.  Now it only loads it when it needs to generate a new floor.  I could have optimized it further, and had it load it at startup, but it doesn't take long to load (probably less than 1 second), and this way it'll catch updates to the file without restarting the program.
  • Error message output now includes file name and line number.

Next up:  Using bit-masks to speed up placement checking....
« Last Edit: April 28, 2010, 11:10:07 am by timmeh »
Logged
On the Wall is a Masterfully engraved carving of Urist McHardcastle and Goblins. Urist McHardcastle is surrounded by the Goblins. The Golbins are stamping on Urist McHardcastle. Urist McHardcaste is laughing at the Goblins. The carving related to the prolonged and bloody death of Urist McHardcastle in the Fall of 1659, the Winter of 1659, and the Spring of 1660. On the engraving is an image of Cheese.

Outcast Orange

  • Bay Watcher
  • [SOMETIMES_SQUID]
    • View Profile
    • The Outcast Orange
Re: My C++ Projects - Tower of Azari v0.304 - Update 02/17/10, tech-demo!
« Reply #377 on: April 28, 2010, 05:14:22 pm »

I'm still watching and reading.
Logged
[7:53:55 PM] Armok, why did you demand that I don't eat you?
[7:54:34 PM] [Armok]: woooooo

Burried Houses - Platform Explorer Demo H - Cloud Scream

timmeh

  • Bay Watcher
    • View Profile
    • My Portfolio
Re: My C++ Projects - Tower of Azari v0.304 - Update 02/17/10, tech-demo!
« Reply #378 on: April 29, 2010, 10:22:53 pm »

Thanks :)

Okay, progress so far:

  • Changed item weights to floats (decimal values)
  • Added functions for getting the maximum weight the player can carry, as well as the amount currently carried.
  • Added display of the carried and maximum weight to the inventory display.
  • Player cannot pick up anything beyond what he can carry.
  • Added display of the carried and maximum weight to the shop display (buy and sell).
  • Player cannot purchase an item that would put him beyond his weight limit.
  • Fixed a bug causing all enemies on the first floor to be "Blobs".
  • Fixed a bug causing all enemies to be spawned in the first room.
  • Fixed a bug causing non-blob enemies to be spawned with negative AP, effectively preventing them from moving or attacking.
  • Fixed bug causing an error related to selling equipped items.
  • Optimized path-finding (shortened range)
  • Optimized enemy death-checks (checks for deaths less often, and more efficiently)
  • Optimized setting, item and enemy loading.
  • I realized that I was re-loading the room list from the file, every single time it added a room.  Now it only loads it when it needs to generate a new floor.  I could have optimized it further, and had it load it at startup, but it doesn't take long to load (probably less than 1 second), and this way it'll catch updates to the file without restarting the program.
  • Error message output now includes file name and line number.
  • Hallway lengths are checked in steps of two now, so it makes have as many over-lap checks for rooms connected by long hallways.
  • Now uses bit-masks to determine overlaps between rooms, and walls can no longer over-lap when placing rooms.  Seems to be a good bit faster.
  • Added a check before trying to place a room on the node, so it doesn't bother trying all the rooms if the node is up against a wall already.
  • Rather than using a a random value up to an attacker's perception to determine accuracy, I now average that random number with their perception.  Basically, everyone hits more often, should speed up combat a bit.
  • Added additional information to some of the loading screens, and added a loading screen when generating a new floor/map.

Up next:  Tiny bit of cleanup, and a quick check for bugs and such, and then a release of some sort, hopefully tonight or tomorrow...

[EDIT]:  Okay, I didn't realize I'd be home so late, so I didn't get as much done today as I'd like.  I also didn't realize I'd be without internet tomorrow, so it'll likely be Monday that I upload a new version.
« Last Edit: April 30, 2010, 10:37:03 pm by timmeh »
Logged
On the Wall is a Masterfully engraved carving of Urist McHardcastle and Goblins. Urist McHardcastle is surrounded by the Goblins. The Golbins are stamping on Urist McHardcastle. Urist McHardcaste is laughing at the Goblins. The carving related to the prolonged and bloody death of Urist McHardcastle in the Fall of 1659, the Winter of 1659, and the Spring of 1660. On the engraving is an image of Cheese.

Outcast Orange

  • Bay Watcher
  • [SOMETIMES_SQUID]
    • View Profile
    • The Outcast Orange
Re: My C++ Projects - Tower of Azari v0.304 - Update 02/17/10, tech-demo!
« Reply #379 on: April 29, 2010, 11:59:55 pm »

Yay!
Logged
[7:53:55 PM] Armok, why did you demand that I don't eat you?
[7:54:34 PM] [Armok]: woooooo

Burried Houses - Platform Explorer Demo H - Cloud Scream

timmeh

  • Bay Watcher
    • View Profile
    • My Portfolio
Re: My C++ Projects - Tower of Azari v0.304 - Update 02/17/10, tech-demo!
« Reply #380 on: May 03, 2010, 08:58:26 pm »

Uploaded the new version...

Got a 1-week temp position at a company called Ryla, so I won't likely be on much at all until next Monday...
Logged
On the Wall is a Masterfully engraved carving of Urist McHardcastle and Goblins. Urist McHardcastle is surrounded by the Goblins. The Golbins are stamping on Urist McHardcastle. Urist McHardcaste is laughing at the Goblins. The carving related to the prolonged and bloody death of Urist McHardcastle in the Fall of 1659, the Winter of 1659, and the Spring of 1660. On the engraving is an image of Cheese.

Outcast Orange

  • Bay Watcher
  • [SOMETIMES_SQUID]
    • View Profile
    • The Outcast Orange
Re: My C++ Projects - Tower of Azari v0.304 - Update 02/17/10, tech-demo!
« Reply #381 on: May 04, 2010, 06:30:59 pm »

I appear to be missing "MSVCR100.dll".

I've read the readme and everything sounds interesting so far.
I would be happy to write content for this game once it gets further along.

I am excited about seeing it in action.
Logged
[7:53:55 PM] Armok, why did you demand that I don't eat you?
[7:54:34 PM] [Armok]: woooooo

Burried Houses - Platform Explorer Demo H - Cloud Scream

timmeh

  • Bay Watcher
    • View Profile
    • My Portfolio
Re: My C++ Projects - Tower of Azari v0.304 - Update 02/17/10, tech-demo!
« Reply #382 on: May 05, 2010, 05:49:05 pm »

Thanks... I was wondering why the download was so much smaller  :o

I've re-uploaded it having recompiled with some different settings, shouldn't need the DLL anymore, or so I hope...

Got the day off, which is both good and bad... not getting paid, but I got caught up on sleep, and made some progress on magic...
Logged
On the Wall is a Masterfully engraved carving of Urist McHardcastle and Goblins. Urist McHardcastle is surrounded by the Goblins. The Golbins are stamping on Urist McHardcastle. Urist McHardcaste is laughing at the Goblins. The carving related to the prolonged and bloody death of Urist McHardcastle in the Fall of 1659, the Winter of 1659, and the Spring of 1660. On the engraving is an image of Cheese.

skaltum

  • Bay Watcher
  • DRAW!
    • View Profile
Re: My C++ Projects - Tower of Azari v0.304 - Update 02/17/10, tech-demo!
« Reply #383 on: May 12, 2010, 04:46:07 pm »

bump :3
Logged
I just realized, after adding the new body parts to the other races, that I have an entire squad of dwarves with a shield in each hand and swinging their axes with their penises. There's nightmare fuel for those goblins, in more ways than one.

timmeh

  • Bay Watcher
    • View Profile
    • My Portfolio
Re: My C++ Projects - Tower of Azari v0.304 - Update 02/17/10, tech-demo!
« Reply #384 on: May 12, 2010, 05:33:52 pm »

:P  Thanks for the interest :)

There has been progress, I've just been caught up on an aggravating bug causing the game to crash when you quit from inside the tower....  I think I know where the bug is, I just need to figure out how the heck to clean it up...

It's a problem with the bitmasks I think, which definitely complicates things further, since that's not even my code, but something about the way they're deconstructed is causing problems I think...

[EDIT]:  Okay, really, really, really big debate tomorrow as part of my govt. class... not in that it's long, but in that I couldn't get a hold of the other speaker or the research team until yesterday, and a large part of my grade rides on my part in the debate :P  Not worried about it, but I won't have much free time tonight or tomorrow, if any... Friday I'll be busy in the morning picking up a check, and that night at a dance, and Saturday I'll be gone for a few hours in the morning, hopefully to return with a new computer....  Life is crazy at the end of a school year :P

[EDIT2]:  Fixed the problem... it was related to the bit-masks, but it wasn't an issue with their code.  I was creating the bit-masks with the create_bitmask() function they provided, but I was deleting them with the delete keyword.  Normally this would be that big of an issue, but the create_bitmask() function used malloc, so I was getting weird pointer and heap errors.  Fixed now though, back to finishing up magic :)

[EDIT3]:  Magic is all but finished.  It's jokingly unbalanced at the moment (as in, a random spell might add 300+ to a base stat :P ), but once I get some multipliers in to convert the numbers into something a little more fair I should be just about ready or cleanup and a release. 

Basically, magic works as follows.  Energy is no longer a character statistic, it is a part of the map/surroundings.  Each tile can hold energy (anything between 0 and 255), and the player draws energy from nearby tiles.  The radius energy is drawn from increases with the intelligence stat, so characters with a higher intelligence will be able to draw more energy, and thus cast more powerful spells.  What this means though, is that every time a spell is cast in an area, the amount of energy in that area decreases, making future spells weaker.

As you've probably figured out by now, spells don't require a preset amount of energy, but rather take all the energy they can get, and then have a magnitude decided by that amount of energy.  For example, if the player is in an area with a large amount of energy, and casts a spell that heals him, it will heal him far more than if he cast the same spell in an area with less energy (or in the same place again, since it drains the energy from the surroundings).

I've also taken a bit of a sudden design turn with the magic.  Rather than having preset spells in RAWs, I've opted to make it at least a little less predictable.  I wanted magic to be something less normal and simplistic, and to be more seemingly random to the less experienced mage, but something seriously dangerous once understood.  Basically, when you cast a spell, you put in a 4-letter sequence, and it creates a spell from the sequence.  It's not entirely random, in that if you use the same sequence multiple times, you'll get the same effect.  But it will vary between games, and so can't be memorized, preventing novice spell-caster characters from using powerful spells just because the player memorized a pattern from a previous game.

The spells are generate from 4 sub-strings of 2-characters each.  I.E. The sequence "abcd" would be split into "ab", "bc" and "cd".  Each effect type (health+, strength-, etc) is associated with a 2 character sequence (chosen at random at the beginning of a new game).  So if "ab" wasn't associated with anything, but "bc" and "cd" were stre+ and dext- respectively, the spell would increase the strength of the target, and decrease the dexterity.  If none of the sub-sequences are associated with an effect, the spell fizzles.  The amount of energy drawn to cast the spell is divided between the effects, which means that a spell with one health- and two fizzles, would cause the same damage as one with three health- effects.

Still working out how to manage the "magic" screen though.  I'm thinking what'll likely happen, is I'll have it display the "known" effects, which would be determined by a similar "spell knowledge" system as the previous game, so that effects that are cast enough will be recorded, so you know which sub-sequence is tied to which effect.  Characters with a low intelligence might never memorize them, while a character with max intelligence might know all of them, even without using them.

Oh, and I almost forgot.  Energy isn't displayed as a straight up integer value any more.  It's a percentage now (because in a large room, with high energy, and a high intelligence, it might not fit into the small space I allotted to it...)  The accuracy of the percentage is determined by your intelligence.  A character with low intelligence see's the percentage rounded to the nearest 10 (unless it's less than 10%), while a character with very high intelligence can see a decimal point on top of the normal percentage.

[EDIT4]:  Okay, have the multipliers in, and they're loaded from the setting file like the other settings.  Seems to be fairly balanced.  A character with 4 intelligence is nearly useless, while one with high intelligence is far more potent (haven't tested it with maximum intelligence, but it ought to be fun :P )  Just need to get the magic screen written up, and I can clean up and release :)
« Last Edit: May 13, 2010, 09:07:52 pm by timmeh »
Logged
On the Wall is a Masterfully engraved carving of Urist McHardcastle and Goblins. Urist McHardcastle is surrounded by the Goblins. The Golbins are stamping on Urist McHardcastle. Urist McHardcaste is laughing at the Goblins. The carving related to the prolonged and bloody death of Urist McHardcastle in the Fall of 1659, the Winter of 1659, and the Spring of 1660. On the engraving is an image of Cheese.

Outcast Orange

  • Bay Watcher
  • [SOMETIMES_SQUID]
    • View Profile
    • The Outcast Orange
Re: My C++ Projects - Tower of Azari v0.304 - Update 02/17/10, tech-demo!
« Reply #385 on: May 13, 2010, 10:08:56 pm »

Wow! That sounds really awesome!

I hadn't seen those edits before, but now that I've read them
 I am very interested in these new additions.

The only inconsistency that sticks out in my mind is POSSIBLE spells in each game played.
For instance in some games there might be a spell that can perform the players three favorite effects.
In most games though, that will probably be impossible.

Here's what I mean, to clear it up:
If AB is fire, CD is lightning, and BC is self healing, then you could get all three with ABCD.
If it is random, most games won't have a possible spell combination that does that,
Since you might find out fire is GH, lightning is JM, and healing is still CD.

That isn't really an issue, just something I thought I should point out.
Logged
[7:53:55 PM] Armok, why did you demand that I don't eat you?
[7:54:34 PM] [Armok]: woooooo

Burried Houses - Platform Explorer Demo H - Cloud Scream

Alexhans

  • Bay Watcher
  • This is toodamn shortto write something meaningful
    • View Profile
    • Osteopatia y Neurotonia
Re: My C++ Projects - Tower of Azari v0.304 - Update 02/17/10, tech-demo!
« Reply #386 on: May 14, 2010, 08:29:21 am »

Good catch Orange.  Although I think it could be cool to have that kind of spell combos variation between games, there should be some way to control it (during the game initialization?) to ensure that at least some basic combinations are present.

@Timmeh:  You seem to have the skills not only for a programmer but for a game designer :P  Good job.

btw, we need to get on msn one day and have a nice conversation about AI.  I'm learning some really interesting things and would like to share and test them with others.
Logged
“Eight years was awesome and I was famous and I was powerful" - George W. Bush.

timmeh

  • Bay Watcher
    • View Profile
    • My Portfolio
Re: My C++ Projects - Tower of Azari v0.304 - Update 02/17/10, tech-demo!
« Reply #387 on: May 14, 2010, 09:11:46 am »

@Outcast Orange - Thanks!  I hadn't really thought about that, but now that you mention it it's a good point... what I think I'll do is leave it as is for now, and then I can come back to it later and make them a little more procedural, and a little less random.  Right now it assigns a completely random character sequence to each effect, perhaps later I'll add some weighting to sequences that have 1 letter in common with another sequence, but in a different position, or something like that....

@Alexhans - Thank you :D  Spent a lot of time over the past month reading through postmortems, design documents and some of the other design stuff Bungie has put up in particular (there was a slide show with over 100 pages on just the design of the sniper rifle in Halo 3 :P )  Fascinating stuff :)
Logged
On the Wall is a Masterfully engraved carving of Urist McHardcastle and Goblins. Urist McHardcastle is surrounded by the Goblins. The Golbins are stamping on Urist McHardcastle. Urist McHardcaste is laughing at the Goblins. The carving related to the prolonged and bloody death of Urist McHardcastle in the Fall of 1659, the Winter of 1659, and the Spring of 1660. On the engraving is an image of Cheese.

Outcast Orange

  • Bay Watcher
  • [SOMETIMES_SQUID]
    • View Profile
    • The Outcast Orange
Re: My C++ Projects - Tower of Azari v0.304 - Update 02/17/10, tech-demo!
« Reply #388 on: May 14, 2010, 10:54:58 am »

@Alexhans: You should snag Skype, since we are both on there too... unless it lacks support for conversations with more people,
 in which case Timmeh needs to snag MSN. I would really enjoy talking about technical stuff regarding AI.

@Timmeh: That system sounds good. Whenever I add a function to anything,
 I always can think of ways to make it more complex and interesting later when I fill out the game.

I usually like to get a basic version of what I want to do installed, then I come back when it's necessary.
If I can, I will leave some bits of it open for later additions.
Logged
[7:53:55 PM] Armok, why did you demand that I don't eat you?
[7:54:34 PM] [Armok]: woooooo

Burried Houses - Platform Explorer Demo H - Cloud Scream

timmeh

  • Bay Watcher
    • View Profile
    • My Portfolio
Re: My C++ Projects - Tower of Azari v0.306 - Update 05/14/10, tech-demo!
« Reply #389 on: May 14, 2010, 01:51:29 pm »

New release!  Could make some big list of internal changes, but the only real, major, noticeable change... magic :D

Download link is in the first topic, and there's a fair amount of information about magic in one of my last few posts here.  Enjoy :D
Logged
On the Wall is a Masterfully engraved carving of Urist McHardcastle and Goblins. Urist McHardcastle is surrounded by the Goblins. The Golbins are stamping on Urist McHardcastle. Urist McHardcaste is laughing at the Goblins. The carving related to the prolonged and bloody death of Urist McHardcastle in the Fall of 1659, the Winter of 1659, and the Spring of 1660. On the engraving is an image of Cheese.
Pages: 1 ... 24 25 [26] 27 28 29