The three virtues of a programmer: Laziness, Impatience, and Hubris. – Larry Wall
Legacy:Eldhrin/Developer Journal
This is going to have to grow a lot before it's useful to anyone. It's also going to be very rambly, so if you can't make sense of it, well... I'm not promising this will be useful to anyone.
Now I've started work on the Sorcery mutator and its accompanying arsenal of spells (see Mod Ideas/Sorcery), I've split the developer thing for Rocket InstaGib onto its own page, which is, strangely enough, at Eldhrin/Rocket InstaGib.
Contents
Sorcery
19th January 2003 (a bit later)
Well knock me down with a feather - as far as I can tell at the present time, ucc make works under WineX. Whaddaya know... now I just need to make my mutators show up in UT2003 in Linux, and blammo, I might do more development work! I have not, however, tested if the WineX ucc make is producing correct code...
Tarquin: cough ... wanna go tell Ucc about it? :D
Eldhrin: I just did, in my rambling kind of way. Not very clearly I'll admit, but I'm not about to give a WineX tutorial. Now if only I could make my mutators show up in the Linux version! It's like the int files aren't there or something.
Tarquin: Look around ... the whole wiki is rambling! (well, anything I've written is).
Eldhrin: Yeah, what you said on your page. I did put a thing on Ucc... I'll write more stuff as and when I know it, but at the moment most of the pages on the Wiki are teaching me things, which is wonderful. This page is my attempt to prevent people from making the same mistakes I'm going to. Bet it doesn't work. Any wisdom that accumulates may end up refactored into 'proper' pages - but no promises :-P
19th January 2003
Well, so, I've fallen victim to the thing that happens to most new coders... I started a project that's too big. Okay, so it's actually going very well, but I just don't have time to code up so many weapon classes for this. Anyone who wanted to help would of course be welcome to, but I very much doubt anyone else is even interested in this, so I'm going to cut it down and attempt to produce a much smaller mutator which adds flyability to all players. Not quite sure if bot AI can be extended to cope with the ability to fly, and I very much doubt I can actually pull that off even if it is possible (I did one AI module and decided it's not for me, so now I'm a programming language theorist instead). If anyone could help with that, I would be greatly appreciative - but I'd better get it working for multiplayer first I think so the bots have something to be taught!
It also occurred to me that I'd do a lot more of this stuff if the development tools were available on Linux. I'm not talking about UnrealEd, I hardly ever use that anyway. All I need is ucc make and the ability to use my custom code with the Linux client (which I currently can't do, it just ignores it - does anyone by any chance happen to know how that works? I should go search forums).
23rd December 2002
Sorcery has recently gained a mutator which recharges the SorceryAmmo pool, thus acting as a regenerating Mana pool without having to reimplement too much stuff. The problem is going to be balancing recharge rate with the amount of Mana the various spells are going to be using, but playtesting is the only way to find that. For testing purposes, I just crank it right up so I have effectively infinite ammo, and can get a good feel for if the weapons are working. The mutator still needs to have the ability to swap out conventional weapons for spells though. Code-wise, this has been fairly easy, just requiring some adaptation of the code from the Regeneration and InstaGib mutators.
I have also implemented another spell, which isn't on the original ideas list and might get dropped again - but it's quite fun and was very quick to code up to a working (if not polished or pretty) state. It's called the Death Spell, which is probably a bad name, and when triggered it drains a substantial amount of Mana and sets off something very like a Redeemer explosion. At the same time it spawns a Redeemer explosion effect. It does this at the player's location, so obviously they die - but so does everyone nearby, and so when triggered at just the right time it can actually increase your score. Not much good outside of individual Deathmatch I guess, although there are a few occasions it might be handy in CTF or BR games - mostly to do with delaying the opposing team members from chasing your ball/flag carrier, then when your mate's far enough away, blowing yourself (and them) to smithereens. Secondary fire on that is the new improved float-into-the-air spell which now accelerates you gradually upwards over time, and I think I'll keep it like that for now.
13th December 2002
Well, I started on Sorcery today... and it's going quite well :-)
After a few hours' work, with some help from Sega 500 Unreal Scripting, I now have a new weapon which fires fireballs and consumes mana to do it. I then couldn't be bothered to code up another weapon, so I changed the secondary fire from precisely identical fireballs to the lift-into-the-air spell, which has a few glitches that need working out. For example, at the moment if you float up and hit the ceiling, then move out from under it while still floating, you don't go up anymore because the spell doesn't notice that it should reset the velocity again. I see two options for this:
- set the velocity based on timer events
- check on timer events if the velocity should be set, and if so set it (i.e. do collision tests)
I'm not sure which will be best, and shall have to try it. One thing is certain - the bots won't have a clue what to do with this one!
I now need to make a general base class for all the spells like lift and heal which aren't actually weapons, just to save myself duplicating code.
My me page at Eldhrin
DJPaul:
>If anyone reading this has a suggestion for determining team colour from inside a Weapon being carried by a team member, please let me know!
If you are in a Weapon class, try: Instigator.PlayerReplicationInfo.Team.TeamIndex - if that == 0, it is red team, if it is == 1, it is blue team.
Eldhrin: Thanks :-) It turns out that code was working fine, it was something else that was mucking up... I can't fix it right now (is it too much to ask for UnrealScript development tools for Linux?) but I know how to do it now.
El Muerte TDS: yes it is too much to ask to get linux dev tools, but I wonder tho, porting UnrealED is not possible, but what about `ucc make` ? I'll check with Ryan.
Trystan: It'd be nice to see ucc make work under Linux. Has anyone ever tried it with Wine or WineX?
Eldhrin: I haven't, although once I've got WineX set up (it's installed, but I haven't sorted out the config yet) I'll give it a go and see what happens. I'm not optimistic though.