Fishguts
Sunday, January 31, 2010
Combat
Aaah the smell of freshly upgraded stats when casting a haste spell.. Yes I spent some time this weekend working on the combat engine, I’ve got all spells working that run over set number of rounds and alter stats.. I need to enable the targetting code and the animation code is mostly built to handle the spells being thrown across the map. Once targetting is done I can better do the fireball explosions and other area affect spells. Thankfully code reuse is good, I can use my existing ranged weapon target code.
Filed Under : Computers • Development • Fishguts •
Tags: Combat • CRPG • Design
(0) Comments
Tuesday, December 29, 2009
Two odd thoughts on Pool of Radiance
I was thinking about things to add to my CRPG (Not like it needs MORE stuff added), was two things that stood out for me in Pool of Radiance, the attract screen or demo, and the computer guided introduction for the player.
Now POR was not the first game to have the attract demo screen, the Ultima series had them since what? Number III I think, only it was more cut down, you did not see the real combat action. Pool of Radiance cycled through lots of different screens and displayed a really great demo setup.
The second thing was when the player started a new game, you got that awesome guided tour that brought you into the game. I remember when you first walk in and see ivy on the wall, it was like, AWESOME in its pseudo 3D-ness.
I want this type of introduction in my game, but I’m not sure how to go about it. For the 3Dlik ness of POR it worked, everything is hidden that is not in the immediate view and reveals as you go through doorways and around corners, yet with my 2D tile approach you don’t get so much of the ‘reveal’ factor. Whats there is there, the LOS hiding does not have the same affect.
Right now I have a simple attract screen much like Ultima III with characters walking around the screen in random fashion (unlike Ultima III’s scripted sense). I would like to have an entire scripted display of some 2d tile action with a AI controlled combat (so it should be different each time).
Filed Under : Computers • Development • Fishguts •
Tags: Advanced Dungeons and Dragons • CRPG • Gold Box • Pool of Radiance • SSI
(2) Comments
Sunday, December 27, 2009
Hacking on the combat
Wow, its been ages since I’ve hacked on Fishguts. Tonight I managed to get some free time so I whacked a few thorns on the combat engine.
Managed to split out the Cluebook from the Players guide so I can print separate booklets, for some reason I like that idea more than stuffing it all in one booklet. XeTeX rocks, I wonder why I never bothered with Latex years ago.
Tweaked some AI + A* pathing.
I need to fix some horse issues, and generate a list of enemies from nearest outward so the Next/Prev automatic targeting works.
Filed Under : Computers • Development • Fishguts •
Tags:
(0) Comments
Monday, November 23, 2009
Busy Busy
With the arrival of our new baby (Sebastian) things have been hectic but I did some time on some of my to-do list. Some of the low hanging fruit turned out to be harder than expected.
I have horses appearing on the main map now. I learnt that I cant draw a horse to save myself! Ha, it looks so bad its funny. Adding horses to the main map proved slightly problematic mostly because the main map is handled different from the other maps because of its size and that all the maps are segmented, so a minor technicality on my part and we have horses appear outside town after you buy em.
Added some more attribute extraction to my maps so more things are generated by tools than by hand written code. Map transitions (entering towns, dungeons, etc) are no longer hard coded and handled in the tool.
Filed Under : Computers • Development • Fishguts •
Tags:
(0) Comments
Saturday, November 07, 2009
Some of that fruit
(This post has embedded CSS that does not look good in a RSS Reader)
So I picked some of that low hanging fruit I was talking about before, only what I picked was nothing in my list.. Still I got something done that REALLY needed to be done.
So I went from this (a dummy map used for example);
plus this, hard coded stuff which was a pain to change
596 AddNPCHere(TILE_GUARD, MODE_GUARD, 1, 2, "GUARD_000", "TALK_NPC_GUARD000", "COMBARD_GUARD") 597 AddNPCHere(TILE_GUARD, MODE_GUARD, 8, 12, "GUARD_001", "TALK_NPC_GUARD001", "COMBARD_GUARD") 598 AddNPCHere(TILE_GUARD, MODE_GUARD, 22, 16, "GUARD_002", "TALK_NPC_GUARD000", "COMBARD_GUARD") 599
To this
with this being generated automatically;
604 AddTransCombat(TILE_GUARD, MODE_GUARD, 18, 33, "NPC007", "TALK_NPC_GUARD01", "COMBAT_EVENT_GUARD") 605 AddTransCombat(TILE_GUARD, MODE_GUARD, 20, 33, "NPC008", "TALK_NPC_GUARD01", "COMBAT_EVENT_GUARD") 606 AddTransCombat(TILE_GUARD, MODE_GUARD, 40, 42, "NPC009", "TALK_NPC_GUARD01", "COMBAT_EVENT_GUARD") 607 AddTransCombat(TILE_GUARD, MODE_WANDER, 35, 54, "NPC010", "TALK_NPC_GUARD01", "COMBAT_EVENT_GUARD") 608 AddTransCombat(TILE_GUARD, MODE_WANDER, 51, 40, "NPC011", "TALK_NPC_GUARD01", "COMBAT_EVENT_GUARD") 609 AddTransCombat(TILE_GUARD, MODE_WANDER, 33, 26, "NPC012", "TALK_NPC_GUARD01", "COMBAT_EVENT_GUARD")
639 --%%%LOCKED%%% 640 if r == 1 and c == 1 then 641 PutDoor(s, 49, 49, TILE_DOOR_CLOSED, Difficulty_Incredible); 642 PutDoor(s, 43, 50, TILE_DOOR_CLOSED, Difficulty_Competent); 643 PutDoor(s, 61, 44, TILE_DOOR_CLOSED, Difficulty_Heroic); 644 end 645 --%%%END_LOCKED%%% 646 647 --%%%CHEST%%% 648 if r == 1 and c == 1 then 649 PutChest(s, 42, 49, TILE_BRICKFLOOR, Difficulty_Competent); 650 PutChest(s, 61, 47, TILE_BRICKFLOOR, Difficulty_Heroic); 651 PutChest(s, 62, 43, TILE_BRICKFLOOR, Difficulty_Competent); 652 end 653 --%%%END_CHEST%%%
Basically, I add a couple of properties to my map and my ruby script generates all my code that I need, it will setup doors and chests with lockpicking difficulty, set NPC icons on the map, create shop merchants, write message triggers, etc.
I've added quite a bit of checking to the ruby script too so if I use a function like "TALK_NPC_GUAR" instead of "TALK_NPC_GUARD" it will warn me ahead of time.
XML maps make data extraction and manipulation so much easier, the only downside the REXML built into Ruby is painfully slow on the world map because of its size, but its not something I have to mess with very much at all
Filed Under : Computers • Development • Fishguts •
Tags: CRPG • Mapping • Tools
(0) Comments
Monday, November 02, 2009
Being stubborn
I’ve been pretty stubborn lately, not working on Fishguts (I’ve been working on my compiler), but now its time to get back into the swing of things, so I have picked some low hanging fruit to knock off the todo list.
That being said, sometime in the next couple of weeks I hope to bash out the following;
- Using a horse for transport, this basically is nothing more than an icon change and an enumeration. The game already takes care of food consumption when on a horse or ship. I do need to test some timing so that the party can travel faster on horse than on foot.
- As above, but using a ship
- Proper testing of splitting the party. The code is all there but I need to knock out a script that allows you to choose whom you want in what party based on who is currently in your party (you follow me?!)
- Fix the bestiary, to log how many of each type of monster you kill and have it display other info like a short description to go with its battle icon.
I’m also thinking of rewriting the quest log so its not so much of an “You have 2 open quests. 1 - foo, 2 - bar, You completed 4 quests - .....” type plain boring list of stuff, but to make it more like playing the game writes your open epic.. or more diary like… the problem with going diary like is the diary then is required to be infinite as far as storage goes “You traveled to the city of X, you traveled to the city of Y, you traveled to the city of X, etc” each action is a point of data stored. Showing a plain old open/closed quest list just uses existing data…
meh. If I were not restricting my memory usage…
Filed Under : Computers • Development • Fishguts •
Tags:
(0) Comments