Computers

Wednesday, October 08, 2008

Diagonals suck

I just added diagonals to the psp driver and tested the combat engine.. ugh… its basically impossible to hit them because you cant hit up and left at the same time so one always registers before the other which transacts into two events in the queue…

mmm I dont know if I will invest much time into it as its a PITA.

Other than than that it plays surprisingly well on the PSP…

Posted by Stu on 10/08 at 07:30 PM Permalink to this post.
Filed Under : ComputersDevelopmentFishguts
Commented on by (0) people. Read or Post Comments Here

Tuesday, October 07, 2008

Combat is moving

Added 5 lines of code and now you can move around the map within your movement point limits…

Its very much a roguelike right now, and by that I mean its all bump-attack. If you bump into someone you automatically ‘attack’ them.

Right now you can move on the cardinal directions, and of course everyone else can do diagonals…

The GP2X actually reports diagonals so they may get them for free too. I need to check the PSP can do diags, but from memory it generates a up down responses so you’ll get ‘down’ and ‘left’ registering pressed at the same time.

Looking over my source (its been a long time since I looked at my PSP driver), I’m already tracking internally the key presses and releases so I should with little trouble be able to register diagonals…

I think I will allow them only in combat tho… there is something very old schoolish about only using cardinal directions for movement on main maps… (ok ok I’m also lazy as it would require changing some existing code....)

Posted by Stu on 10/07 at 12:36 PM Permalink to this post.
Filed Under : ComputersDevelopmentFishguts
Commented on by (0) people. Read or Post Comments Here

Saturday, September 27, 2008

Of coops and combat and ai

In between Alexander taking his lunchtime nap and the rain and working on the chicken coop, I did some more combat code. Ive added movement points, calculated off a fatigue level.  Right now fatigue increases each round of combat and slowly affects how many move points per round you get, so the longer combat goes the less chance you get to flee, but this affects everyone in combat not just the PCs. Right now I think its set too high so testing will tell how it goes, plus it depends on how long combat lasts (how many rounds per average).

I’ve also been thinking about simple basic AI. I’m going to have a 1/2/3 range of intelligence on NPC’s. Level 2 would be your standard person, 1 would be for animals and dumb as rock monsters, and 3 for super intelligent.

Dumb monsters cant really make decisions beyond fight or flee.
Middle of the road enemies will be able to go ‘Hmm should I break out my bow and do some ranged combat or not?’
While level 3 monsters will have a little more flexibility in their thought control.

It wont be anything uber extravagant but it should be smart enough…

(Lets not talk about path finding for now.. hopefully combat maps wont require any full A* pathfinding....)

A quick edit; compare and contrast this screenshot with the previous one… small placement fixes…

image

Posted by Stu on 09/27 at 01:51 PM Permalink to this post.
Filed Under : ComputersDevelopmentFishguts
Commented on by (0) people. Read or Post Comments Here

Wednesday, September 24, 2008

Icons

Nothing really thrilling…

image

Posted by Stu on 09/24 at 09:09 PM Permalink to this post.
Filed Under : ComputersDevelopmentFishguts
Commented on by (0) people. Read or Post Comments Here

Friday, September 19, 2008

Wireless router died

Came home from work the other night and Joy asked me to fix the internet. None of the PC’s could get a dhcp lease. So I checked the wireless router and all its leds were lit up like a christmas tree.. It was well and truly hosed. Sigh…

This means no internet until a replacement arrives. I have a DLink DIR655 on the way to replace the old faithful DI624.  I have an 8 port gigabit switch (DLink as well) which all the pc’s are hooked up to, and this new WLAN router has 4 gigabit ports, which will be a nice upgrade, not that we will use all these extra ports since everything hangs off the switch.

Posted by Stu on 09/19 at 08:19 AM Permalink to this post.
Filed Under : Computers
Commented on by (0) people. Read or Post Comments Here

Tuesday, September 16, 2008

Two years in development

Just past the two year in development anniversary mark… That sounds like a lot of time, but considering that I only do an hour or two a week sometimes and then sometimes nothing for a month, two years is not a great deal of time.

Things are still progressing however, and the combat engine is actually coming along nicely.

Posted by Stu on 09/16 at 09:12 AM Permalink to this post.
Filed Under : ComputersDevelopmentFishguts
Commented on by (0) people. Read or Post Comments Here

Something you would think would be easy

So I’m working on my combat engine right now, and its not your daddy’s combat engine from Ultima III that just spaces up to 8 guys on the screen opposite from you. No, this is a lot more complex.

Right now what I want to do is place the enemy combat icons on the map, and they could be placed in any one of 8 directions around the player.

What my script does is this;

 93:function LoadCombat(l)
 94:    local k, v
 95:
 96:    for k,v in pairs(l) do
 97:        CombatAddGroup(v.monster, v.qty, v.rows, v.distance, v.group1, v.group2)
 98:    end
 99:end
100:
101:function COMBAT_EVENT_GUARD()
102:    local l={}
103:
104:    -- 6 guards, in 2 rows, distance of 4 spaces from party
105:    l[1 + #l] = { monster = cbt_Guard,        qty = 5, rows = 2, distance = 4, group1=2, group2=2 }
106:    l[1 + #l] = { monster = cbt_GuardCaptain, qty = 1, rows = 1, distance = 4, group1=2, group2=2 }
107:
108:    ResetCombat()
109:    AddParty()
110:    LoadCombat(l)
111:    Combat()
112:end

Which equates to the “Guard” icon, there are 6 guards total arranged in 2 rows, at a distance of 4 from the party,

The difficulty lies in placing them on the map, moving actors around obstacles on the map, keeping them mostly in formation as well as avoiding putting them on the other side of a wall or something. When I say moving/placing I’m just talking about the initial row/col they start at on the map.

I’m sure I just make things harder for myself sometimes.

I want to add parameters for things like direction from party, so not everyone is just lumped north of the party, and a facing option, think if you surprised monsters from behind, they all should be facing away etc.

It also just randomised combat order too, which has to be changed to support surprising the party or others to allow certain groups first go in the first round etc. I also need to rebase that to use the physical fatigue stat, those with the lower stats should start before those with a higher fatigue rating.

Posted by Stu on 09/16 at 07:04 AM Permalink to this post.
Filed Under : ComputersDevelopmentFishguts
Commented on by (0) people. Read or Post Comments Here

Thursday, September 11, 2008

New PC

After spending several months acquiring bits and pieces, Last night I put together a new PC!

Quick overview;
* Intel Q9550 Quad Core 2.8ghz CPU
* Xigmatek SD964
* G.SKILL 8gb ram (4x2gb) 5-5-5-15
* ASUS P5Q-E mobo
* NVidia 9800 GT 512mb
* Logitech G15 keyboard
* Logitech G5 mouse
* NZXT Alpha case
* Corsair 450vx psu
* 750gb hard drive

After firing it up, it appears blue led fans and blue led lights are all the range these days. well I guess it will give me enough ambient light to work in the dark!!

It all worked quite well, I’m not sure about cpu temp’s tho, with my cooler + OZC freeze extreme paste (if I put it on right...) runs idle at 30C according to the bios, but I dont know how accurate that is since its a bios probe and not onchip sensors in the cpu (iirc...).

Anyway, now will begin the slow migration of all my files from my old laptop to my desktop, which will take a lot of patience as the laptop is bottlle necked by a 100mb lan connection, it will take days to transfer it, but I dont have the patience or disks to burn DVD’s and do it that way.

I tried to install alpha5 of the new ubuntu 8.10 release but the system does not like the new installer, it borks on my SATA where 8.04 installs just fine. I didnt try the alternate installer yet.. maybe I will do that before I go doing much work on the new box…

Posted by Stu on 09/11 at 07:08 AM Permalink to this post.
Filed Under : Computers
Commented on by (0) people. Read or Post Comments Here

Monday, September 08, 2008

Per Player Inventories

I think the switch to per player inventories is at 99%, I’ve recoded all the existing scripts and so-far its all playing ok.

The sucky thing about it, it makes a lot of things less streamlined as you have to choose a player. Before you could enter a shop and buy directly, now you enter, choose buy then select player.  Sometimes it just feels a bit cumbersome.

So all existing code is up to date, but i need to work on being able to move items around in the party.  I’m still thinking it will take the form of some kind of dual pane screen with the From person on the left and the To person on the right.

The suckage part is I’m going to have to write code that lets the user deal with multiples.. think moving arrows and being able to tell the game how many arrows to move..

Options like;

None, All, +1, -1, +10, -10

Painful and tedious is what it is but with limited controls thats what you get.

Posted by Stu on 09/08 at 08:54 AM Permalink to this post.
Filed Under : ComputersDevelopmentFishguts
Commented on by (0) people. Read or Post Comments Here

Sunday, September 07, 2008

Bugs

I’ve had a bug in my code for a long time. A peculiar bug. Occasionally when I would cross map segments and it would shift the segments internally to the left, often wrapping something on the right side, NPC’s in a jail cell (blocked on all sides) would manage to escape..

When a segment loads it overlays various things like doors, on occasion when I would do above said maneuver the door would be placed 1 cell to the south of what it should be…

Then I would be overrun by jail cell denizens.. But because this was ‘off’ map, way on the other side and out of display, it couldnt be seen, so when walking over there it reset correctly..

After hours of going over everything and following the logic flow on paper (yeah sometimes I still do old school debugging techniques) I managed to narrow it down to one routine..

	pr = 32 + (player_row % 32);
	pc = 32 + (player_col % 32);

	pr += row - player_row;
	pc += col - player_col;

	return cmi.flat[ (pr * 96) + pc  ];

vs the correct code;

	pr = 32 + (player_row % 32);
	pc = 32 + (player_col % 32);

	pr += row - player_row;
	pc += col - player_col;

	if(pr < 0) pr += 96;
	if(pr >= 96) pr -= 96;
	if(pc < 0) pc += 96;
	if(pc >= 96) pc -= 96;

	return cmi.flat[ (pr * 96) + pc  ];

It was wrapping the maps but overflowing to the line below rather than wrapping it on the same line.. fun.. at least now I wont have a horde of criminals wandering around my map or errant shopkeepers making a beeline for the player!

Posted by Stu on 09/07 at 08:41 AM Permalink to this post.
Filed Under : ComputersDevelopmentFishguts
Commented on by (0) people. Read or Post Comments Here

Saturday, September 06, 2008

Build Numbers

Hmm revision numbers anyone?

image

Thats a lot of builds, but we are a few days shy of the 2nd anniversary of the development of Fishguts.

Posted by Stu on 09/06 at 11:21 AM Permalink to this post.
Filed Under : ComputersDevelopmentFishguts
Commented on by (0) people. Read or Post Comments Here

From global to per character

I’ve started converting from my global inventory system to a per character system (which is long overdue) and suddenly realised I need to rewrite all my supporting lua game scripts! DOH! It will be better in the long run anyway.

Must.. bite.. bullet…

Another thing I need to do but dont want to (and probably wont) is switch the PSP engine out to using GU / graphics.h over SDL.. I could probably just write SDL equivalents that do as I need but I’d rather not a new backend thats different from the other ports…

Posted by Stu on 09/06 at 08:34 AM Permalink to this post.
Filed Under : ComputersDevelopmentFishguts
Commented on by (0) people. Read or Post Comments Here

Thursday, August 21, 2008

Skills again

Been thinking more about skills lately. I had only 1 attribute, speed, this is used to govern combat ordering.

I’ve been tweaking up some additional things, going to move speed out and create some general skills, something along the lines of;

- physical fatigue
- mental fatigue

All will be 100% based, rather than skill level based, and will probably fluctuate wildly throughout the game. This will impact things like how susceptible to poison the player is etc, ability to cast spells. Beginning players will start out something like 50% or 60%. Advancing physical skills will increase your base physical fatigue, so to learning other things will train the mental aspect. Some spells will require a certain skill level as well as a certain mental level.

Ive decided, the order of combat shall be randomised. Everyone will be put in the list and picked to go randomly.

If in testing that doesn’t pan out very well, I may just end up with a fast/normal/slow designation for every monster (PC’s will be normal) and randomly pick from the fast bucket until empty, then normal bucket then slow bucket etc.

For some reason, I keep getting stuck opon this order of combat thing, when it shouldnt be such a big deal, but I keep wanting to factor in a speed variable or something somewhere.

The skill list has been closed out, I’m finally happy with the result. All weapon types begat a certain skill. Swords require a sword skill, Hammer requires hammer, mace for mace etc etc etc. It was a long skill list. The more I thought about it, the more apparent that it was fairly useless. All the weapons were much the same but changed only in name. This first game is not about trying to add in the complexity of a roguelike which gets years of playing and balancing.

So, to that order I knocked back the skill list to something I had originally but later scrapped,

Weapons now fall into one of two skills
- Melee combat (for all swords, axes, maces etc)
- Ranged combat (for all bows, slings, javelins, darts, stars, meteor hammers, three sectional staff, manriki, etc)

The only downside is that it categorises long distance ranged weapons (bow) with short distance ranged weapons (three sectional staff).

Some weapons just don’t categorise very well, like a spear, its long range but also short range. A hand axe is a melee weapon, but can be thrown..

There are also base line weapons that don’t require any skill (knife, sling etc) giving every character something to start with.

Posted by Stu on 08/21 at 10:48 AM Permalink to this post.
Filed Under : ComputersDevelopmentFishguts
Commented on by (0) people. Read or Post Comments Here

Wednesday, August 13, 2008

Items data

Managed to do some work on Fishguts last night, after a long hiatus.

I’ve had a spreadsheet with item info in it for ages, and occasionally I will add some new stuff or tweak their stats.

Well, after much procrastination I broke open the Open Office Basic and wrote an export.

Ugh, what would have taken 5 minutes in Excel’s VBA took ages in OOBasic. OOB is a real nightmare. The differences are beyond night and day. I dont think I have anything good to say about the OOB implementation.

At any rate, I now have my items exporting correctly, its about 95% done and I need to tweak it a bit since right now it does not export any special fields (eg: +2 vs undead).

Its kinda nice to all of a sudden see items in the shop with correct pricing and such rather than everything costing 1gp and only basic test items present.

It has also forced me to solidify my skill system a bit, now with specific item skills. I did add some new stuff on a whim I had not previously intended to add (lol feature creep) but its a new weapon class mostly intended for thieves and their ilk (a throwing weapons skill)

Posted by Stu on 08/13 at 08:18 AM Permalink to this post.
Filed Under : ComputersDevelopmentFishguts
Commented on by (0) people. Read or Post Comments Here

Thursday, July 31, 2008

BATS

So SmartFirmware starts up in virtual mode, and its memory is mapped back to itself, anyway, its handy to know.
User and Supervisor both have Read/Write access currently. Not sure why we have data mapped at 0x80000000.

IBAT1+DBAT0 corresponds to the MBAR. Maybe the data in DBAT3 is where the x86 video card is residing, its a common PCI memory space address…

The rest of the bats were full of junk and marked no-access more or less.

(BAT’s dump after the jump)

Click HERE to read more

Posted by Stu on 07/31 at 06:53 PM Permalink to this post.
Filed Under : ComputersDevelopmentAROS / EFIKA
Comments are closed There are no comments on this entry.

Page 1 of 11 pages  1 2 3 >  Last »