Archive for February, 2007

Day 9

[I’m messing around with the wordpress theme at the moment, so you may need to refresh this page to get it to display correctly. If needs be, in Firefox you can hit CTRL-F5 to do a hard refresh and reload the stylesheet.]

Got load of code work done today, though I also ran into a lot more errors that I hadn’t been expecting. There was this one thing in particular where animations weren’t being processed in the battle mode, only in the field mode. That kept me back quite a bit.

I put together a testmap using old graphics from The Guardian:


click the image for a full size screenshot

In the screenshot, I was testing some new targeting code. I was hoping I’d have it finished today, but I ran into problems reversing enemy intentions for actions. It should be dead simple – I check the allegiance of a battle participant, if it’s set to ENEMY, then reverse all the target sets. For some reason though, it’s not working. As bugs go, it’s pretty annoying.

I managed to do a little more damage to that general to-do list:

from quite a few days ago:
Here’s what’s left to add to the “general” side of the engine:

– Battle animations
– Reading battlescripts and itemscripts from a file
– Full implementation of all the target sets
– Status effects

…on top of that, the target sets are basically finished. I just need to fix that bug that prevents enemies from properly understanding target sets, then I’ve got a little graphical thing, and that’s it.

I finished the code for the battle animations today too. I wish I could put together a little video or something – the glowing and the animation look really smooth in game!

I had a lot of the code for the battle animations already in place for the Hecate contest two years ago, but it had been so long since I’d seen it that I’d forgotten how it worked. Actually, it’s a total mess. It’s pretty obvious that I rushed it to have it ready for the contest (in the Hecate demo, the animation controls Nathan’s sword). I’ve basically got this one big method that has access to all the classes in the engine, and it’s a nightmare to even look at it. Along with that, bits and pieces of it are fragmented in the most random places in the code. There’s nothing seriously wrong with how I implemented it – it’s just a little messy, and probably not how I would do it now. If I ever go open source on this thing, I’ll have to remember to clean it up…

The one remaining thing left to do on the basic engine is to add status effects. I think it should be a pretty straightforward job, as I’ve got a very clear idea of how I’m going to implement them. Basically, I’m just going to take a really general approach. My idea is that I’ll just create a status class containing all the status effects, each one with a name, an initial script to run, a secondary script to run, a restore script, and a script interval. It’ll work like this: when the status is first cast, the initial script runs. Then, if the interval is a positive value, a timer counts down every interval*speed frames and runs the secondary script. If the hero dies, all status effects on the hero are cleared. If a suitable restore spell is cast, this runs the restore script, which basically just tells the engine what to fix to restore his stats.

So to take one example, poison say, the primary and secondary scripts are the same (a simple action which shows a poison animation and reduces the hero’s health). For another, say a paralyse status, the primary effect sets the character’s speed to zero, and the secondary and restore scripts both restore his speed after a set amount of time. You can also have other actions act as restore scripts without doing anything noticeable – regular attacks could trigger the sleep effect restore script, for example.

Anyway, I can worry about that tomorrow. I hate how long this is taking, but I don’t think it’s going to take much longer.

By the way, here are my Clean Asia finish times for the Thailand stage! This is the best game I’ve played all year, heh. I am so going to speed run this game before I go back to work.

* Post a Comment

Day 8

Today didn’t start well. I didn’t zip up my laptop bag last night, and when I picked it up this morning, the laptop flung into the air and fell flat onto the floor. I got very lucky – the screen was fine, and the machine seems to be in perfect working order – the only damage was to one of the clips that seal it closed.

I took today off. I hadn’t planned it that way or anything, it just sorta happened.

* 2 Comments

Day 7

Today I did some more engine work. Nothing too interesting really. It’s taking me a little longer than I was hoping, but unfortunately I just can’t rush the engine work. I lost a lot of time today fixing a new error that came up with the item action.

I’m one week into this endeavour, so it seems like a good time to evaluate my progress.

Given the scale of my idea for the game, I estimate that the finished product will need:

* An engine capable of handling a junction system.

* At least 38 enemy graphics, one for each Major Arcana character and about the same number for Minor Arcana and other enemies.

* Character graphics for all the main characters and all the game’s NPCs, and at the moment I’m estimating that will amount to about 20.

* Battle animations for all the main characters.

* Spell effects and miscellaneous graphics like menus, cursors, items, and so on.

* Tiles for all the games areas – a mountain area, a cave, a mountain town, a plain, a forest, a city, city interiors, and a couple of special plot locations.

* A soundtrack to accompany the game, preferably with a song for each area, for each main character and villain, for battles, for boss encounters, and a couple for special encounters too. This will involve quite a bit of work, and I honestly don’t know when I’m going to get a chance to do it.

* A fully designed game world, with a solid history, and a full plan of events that take place throughout the game.

* Actual maps for each area in the game.

* Dialogue.

When I put it like that, it certainly sounds like a lot… I’ve used a quarter of my available time, and guess how much I’ve got done!

Oh, ok. I made a picture to illustrate. You see these in forums everywhere, so I thought I’d make one of my own:

Not too good. The 90% is only because I’ve been working on this engine for years – in terms of what needs to be done for the contest, it should probably be lower. And the 10% on story is perhaps a little high too.

It certainly looks like finishing this thing within the month isn’t really possible. I guess that leaves me with three options.

No. 1: Scale back the idea, and work on something simpler.
No. 2: Ignore the very likely scenario that I won’t finish, and continue as I’m going.
No. 3: Aim to finish only a small portion of the game in this month, and finish the rest afterwards.

Honestly, I’m considering all three. I’ll give it a few more days before I make a decision though.

I’m not sure which to do. There are major pros and cons with all options. What would you do?

* 6 Comments

Day 6

There is one moment, in particular, that sums up today perfectly. I took a screenshot of it so that I could share it with you all.

I could explain why this was a problem for me, but frankly I don’t want to relive the whole thing. Suffice it to say that the engine was not lying to me after all; it really and truly couldn’t find the file it was looking for. As usual in situations like this, it was Microsoft’s fault.

Aside from this, I spent a good deal of the day programming. (Actually, it would be more accurate to say I spent a good deal of the day playing Clean Asia – what I’m really referring to is the proportion of the time I actually spent working, I guess). I fixed a bug in my engine that had been bothering me for a while, and I implemented a simple way for the engine to output a file with debug information. Most importantly though, I managed to strike something pretty major off my to-do list.

from a few days ago:
Here’s what’s left to add to the “general” side of the engine:

– Battle animations
– Reading battlescripts and itemscripts from a file
– Full implementation of all the target sets
– Status effects

In summary, this was quite an unproductive day. I got a whole lot less done than I really should have, and wasted a lot of time trying to get my head around that stupid filename problem.

I’m not going to whine about it though. It’s still early in the contest – I should easily be able to pick up the slack tomorrow.

* Post a Comment

Day 5

Today was my first day working full time on Major Arcana. The thrill I was getting from not having to get up and go to work caused me to arse about and not actually get anything done until about 4pm. At that stage I started working on some new graphics for the game.

First I had to create a blank template. Unfortunatly, the template that I outsourced to an artist from the pixelation forums used selout shading. That meant I had to make some modifications before I could realistically use it – after all, having to do a selective outline on each sprite would double the time it would take me to design and colour my own sprites. While it would certainly look better than just doing simple black outlines, I have a deadline to think of.

So today I first spent about an hour or so drawing flat borders on the template and tinkering with a few pixels here and there, particularly on the head. This is what I ended up with:

From there, I started working on a main character for the game. I wanted to go for something a little gothy, given the theme of the game, and so I gave him dark clothing and long, straight black hair.

I had a little time after that, so I started on a second character. Seeing as the game has a gothic theme, I thought I’d make one token “out and out” goth character. I gave him frizzy black hair and bondage clothing, but when I finished, it looked awful. So I drew a cloak around him instead.

I’m going to be honest here. Graphics aren’t my thing. They never have been.

So I’m simply not going to worry about it. Even when I think I’ve got them looking ok, I stand back and notice something else that’s out of place, and I’m back to where I started. As MRK helpfully pointed out to me, even with the changes I made today, I still managed to miss something blindingly obvious. The arms are too short. Way too short, now that I look at them objectively.

So I give up. It’s crazy that I should waste what little time I have to work on this project nitpicking on every last pixel of these drawings, especially when I don’t really have any flair for this kind of work anyway.

For the rest of the contest, I’m simply going to rush together whatever graphics I absolutely need. If I can’t have them “good”, I’ll at least try to have them presentable. When the contest is over, I’ll see what I can do about saving up some real money and hiring a professional to do this properly.

* 2 Comments

Day 4

As expected, I’ve had quite a slow start. I did make a plan today though. I’m going to use these two weeks to focus on the creative side of this game – the music, the graphics and the dialogue. I’ll then use the final two weeks (while I’m back at work) to focus on the more technical side of the game – level design, engine work, balancing the battles, and so forth.

However, I don’t think I’m going to be able to keep things that separate. Before I do that, I’m going to try and get the first hour or so completely playable, which means doing all the code, art and music that I need for that short portion of the game.

I need to finish the engine before I can do that, so that becomes my first priority. Thankfully, it’s almost done, even still it’s probably going to take a day or two to get right.

So for the next couple of days, I’m going to mostly focus on the engine. I have a lot of the “general” work done – what I don’t have are specifics. I need to design a shell that this game can use.

Here’s what’s left to add to the “general” side of the engine:

– Battle animations
– Reading battlescripts and itemscripts from a file
– Full implementation of all the target sets
– Status effects

When that’s in place, I can start working on the specific part of the engine for Major Arcana. I’ll need:

– A new battle style – i.e. I’ll have to replace the Chrono Trigger style thing I’ve currently got going for something a little more traditional.
– I need to add battle transitions. That shouldn’t be a big deal.

After that comes the hard bit. I need to implement the junction system, which is going to require some exact planning of how the game’s gonna work. I’ll also need to put together a menu system to go with it.

I should have something more interesting to say after tomorrow, heh.

* Post a Comment

Day 3

The only thing I’d planned to do today was to make a plan. It’s 11pm now, so I guess I’ll just have to leave that till tomorrow.

All I did today was think about the game’s story. There’s a lot I haven’t decided on yet, and a lot of background that I haven’t thought about at all. So today I did a little to change that. I got a clear idea in my head about what’s actually going on in the game. I thought a bit about the characters and who they were, and why there were in this situation. I thought about the game’s villain.

As it turns out, it was pretty productive. Naturally I don’t want to post any plot details here – after all, I could change everything before I actually do any real work. And anyway, I don’t want to spoil the story… Oh, and I’ve named the characters! I’ve called the passive male Gladius, the active male Virga, the passive female Stella, and the active female Crystalus. This balance of personalities is my attempt to reflect that they’re based off the Minor Arcana. In fact, the names are simply approximate Latin words for the relevant suits – Gladius means Swords, Virga means Wands, Stella means Star (closest I could get to pentacles without calling her “Orbis” or something dreadful like that), while Crystalus means “Chalice” – or something close enough to it. It’s a little nerdy, and very cumbersome, but as I’ve already gotten used to them I won’t be able to change them, heh.

I think I’m going to try and draw the main character graphics as soon as possible. I hired an artist a couple of weeks ago to create a template for some sprites for the Project Distraction engine. The idea was that I was going to make a new feature demo, seeing as I’m so sick of the old one. I probably won’t be doing that now, but his graphics will still definitely come in useful. Here’s what he came up with:

It’s a perfect base for my own character graphics. Not what I was originally intending to do with them, but I think things have worked out better for it.

Tomorrow I’ve got music practice so I probably won’t get a lot done. I’ll try to at least make a plan for the next month though.

* 6 Comments

Day 2

Well, today wasn’t all that productive either. I spent most of the evening watching TV and chatting on IRC.

Not a good two first days, but about what I expected.

* Post a Comment

Day 1

I knew I’d regret saying that I was going to update on each day of the contest.

With work today dragging on for an extra two hours thanks to month end, when I finally got back to the house I didn’t really feel like working on anything. So I didn’t.

* 1 Comment

« Previous Page