Archive for the 'major arcana' Category

Extension Day 1

So it turns out there was a cataclysmic stock crash during the week. It means I’m going to be pretty busy for a while at work, which is very bad news for the project… sigh.

Well, regardless I’ve got a treat today. Two, actual, literal screenshots from the game. Have a look see!

First, I made a quick sketch…

Then I processed it the same way as the enemy graphics! VoilÁ ! The first completed area!

From this I also made a proper battle background.

Great! Now I simply need repeat that process 100 times by Sunday week! No problem!

Even way more exciting than this? Josiah has sent me a final version of the game’s boss theme. If you only click one link today, click this one:

Callous (Major Arcana Boss Theme) by Josiah Tobin

* Post a Comment

Day 24

I haven’t written a proper update in almost a week now, so there’s a lot to cover. It’s not that I haven’t been working on the game – it’s just that my time has gotten so scarce now, I haven’t had time to make daily progress updates like I did for the first two weeks.

First, what I managed to get done this week. Then, what I’m going to do with my remaining contest time.

My progress has slowed substantially since I got back to work, though I did get a little time during the week for some relativity small additions:


This is how the battle engine currently looks (The background graphic is temporary). This week, I just added some Major Arcana specific stuff – I implemented those enemy graphics from last week, I changed around the way the battles are displayed, I started working on the junction system, that sorta thing.


I was chatting to Robin last week (the artist I hired on Pixelation to make a sprite template for me), and he made a few changes to the template. He also made some action poses for items and magic and that sorta thing, but I probably won’t have time for that now.

Using his template, I spent the bulk of the week doing graphics work, and managed to finish all the basic sprites that I need for the first area. I’m particularly happy with how Crystalus came out!

Here are the rest of the sprites:


Heh, I’m really happy with this one. The outfit is great, and goes perfectly with her personality.


Gladius is sorta the de-facto main character. Now with standard issue arms!


Stella originally had blond hair, but I thought the purple thing was more interesting, even though I’m not sure it works as well. I may change back before the contest ends.

It took me a very long time to make the female template from the male one – you wouldn’t believe how hard it is to get a 20×40 sprite to look feminine – even when you add a set of tits, it still looks like a man with tits! In the end, I had to change practically the whole sprite – the jaw, the arms, the legs – and you know what? She still looks butch.


So far I’ve shaded only the south facing sprite, but I’m going to do the rest of the directions when I get a chance.

I: The Magician

This was sorta rushed, admittedly.

The Minor Arcana pages: Swords, Wands, Pentacles and Cups respectively

I hadn’t intended to do four separate graphics for the pages, but I’m glad I took the time to do it. They’re all the same basic sprites, but I added a turban to Pentacles and Cups, and recoloured them according to their corresponding cards.


Probably the most exciting development in the past week is that I got an offer of help. Josiah Tobin (probably best known for his work on Lynn’s Legacy) has so far created two excellent songs for the game, and he’s working on a few more. He’s said that he wants to make a final version for the release, so I won’t post the songs just yet, but you can check out some of his music on this RPGDX thread.

Level Design/Story:

I’ve scribbled a few things down throughout the week, but honestly, I’ve done very little in this department.

And now, as for that remaining contest time – thankfully, more of it remains now that we’ve got an extension till the 11th of March. Hopefully it’ll be enough, but I can sorta see myself canvassing for a further extension after that 🙂


Very little remains to be done here – I’ll have to fully implement the menus, I need to make some sorta save system, and then there’s a few bug fixes left. It shouldn’t take more than a day, or maybe two.


All that remains now are the tiles, but I’ve got a sneaky way around this little problem – I’m going to draw the maps.

My basic idea is, that since I’m going to be sketching out level plans anyway, I may as well scan them in and colour them on the computer. Don’t get me wrong, I’m not going to go to a huge amount of work here – but it’s a hell of a lot less work than throwing together some last minute tiles, and if I’m lucky this approach will carry with it a style that could work very well in the game.

Or not. I suppose I’ll see once I’ve made the first map.


Having Josiah on board is a huge boon to the project – there’s no way I was going to have time to make a soundtrack that I would be in any way happy with. Music just isn’t one of those things I can create quickly whenever I want.

The only consideration I have left here is to implement some kind of way to play Josiah’s music – the Project Distraction engine currently uses the Allegro MOD tracking library DUMB, while Josiah creates his music in MP3s. It’s not a big deal, but I’m going to have to find time to implement a new music library into the project. I’ve already tried ALOGG, but even with DevX’s valiant efforts on IRC, I couldn’t get the useless thing working. I think I might try AllegroOGG instead.

Level Design/Story:

This is where the bulk of the work remains to be done. I haven’t really talked about the story yet, but with so little time left in the contest, maybe it’s better I keep it that way 🙂

I think it’s time I went to bed.


Day 18

I have to work in the morning, so I won’t write very much; just thought I’d share the rest of the enemy graphics without any commentary. I managed to find some time this weekend to resize the existing ones down to 200×200, and draw the remaining five:

If this wasn’t a contest situation, I’d redo most of those – but it is, so I don’t care :). Actually, it feels great to be able to put some element of the game behind me – even if it’s just something small like this. The contest has given me an excuse to release something I consider sub-standard, but it may result in me actually finishing something for once.


Day 15

Today I worked on some enemies! This is quite slow work – first I sketched a basic picture of what I wanted, then I inked it, I scanned it, I coloured it, and finally I resized the enemy down to fit in 256×256. However, I think they’re all are going to need further processing, as they’re a little big at the moment compared to the hero characters (at only 40×20).

On the enemy graphics side, here’s what I figure I need for the first two hours of gameplay:

The Fool (Done)
The Emperor (Done)
– The Magician
A representation of Cups (Done)
A representation of Swords (Done)
– A representation of Pentacles
– A representation of Wands
– A Wolf
– A Bat (Every cave needs a bat.)

As a disclaimer, I should point out that I’m (naturally) not particularly happy with how any of these have turned out… Graphics take a lot out of me, so it’s kinda remarkable, in a way, that I actually managed to do four full enemy sprites in one day. My secret? I’ve just been ignoring that tinny little voice in my head nagging about how “it doesn’t look right”. After all, I’m going to replace all this after the contest.

So. Here’s what I’ve got to show for my day’s work.

Based on Minor Arcana 2 of Swords

As the game’s working title implies, I hadn’t originally intended to include the Minor Arcana at all, but when I was trying to come up with enemies, this just seemed ideal. The original card is quite a powerful image – it features the woman in this picture with two swords, blindfolded, sitting with her back to the ocean.

Based on Major Arcana 0, The Fool

Of all the enemies I worked on today, this one most closely resembles the card he’s based on. “The Fool” plays a special role in the game, sort of an optional side quest that you can complete throughout the game. I’d really like to implement at least the first part of that, and I thought if I made the enemy graphic, it would ensure that I wouldn’t have to cut it from the game at the last moment.

Based on Major Arcana 4, The Emperor

I’m quite happy with how this one turned out. In my game, The Emperor is the first “Important” character that you fight against. It’s also where the demo’s going to end.

Based on Minor Arcana 4 of Cups

I made this one last, and it didn’t really work out. The problem is that there isn’t really a character in the first part of the suit of Cups that makes a good enemy. This guy is closest, but the 4 of Cups is meant to represent apathy, boredom, all that sorta thing. I think I was trying to make him look drunk, or at least just disinterested, but it didn’t really work out. It also didn’t help that the resizing process totally ruined his hair.

I’m sad to say that this is it – I’m off for the weekend, so my full time contribution to this project is basically over. I won’t be updating daily anymore either, but judging by my last two posts, I guess that’s not really a big deal 🙂

I know it’s a friendly competition, but I was sorta secretly hoping that the two week vacation would give me a major boost, and at this stage I’d be way ahead of the other competitors. Well, a progress thread has started on RPGDX, and it looks like (at least) two competitors are way ahead of me. Kudos. I don’t know where they get the time for it.

* Post a Comment

Day 14

Working on some new graphics at the moment. Don’t have anything ready to show yet though. Sorry about the brief updates lately. Haven’t felt like rambling.

* Post a Comment

Day 13

Today I have a headache. Ouch ouch ouch.

* Post a Comment

Day 12

Someone I haven’t seen in a while is in town, and earlier I made plans to meet up with them. This meant that I wouldn’t be able to do any serious work on the game today, so I decided to work on something small instead. As the day went on and the meeting time got pushed back, I kept finishing up what I’d been doing and moving onto other, smaller things. In the end, here’s what I have to show for today’s work:

Major Arcana Cards: I sourced some public domain Tarot Cards images on the internet, then converted and resized all 22 Major Arcana cards into one image that I could load into the game.

Cancellations: This is something small that’d I’d been putting off for a while. Before I worked on this, you couldn’t go backwards in menus. As it turns out, it wasn’t a hard thing to add after all – I just kept a history of action numbers as I went, and the whole thing worked out a lot easier than I thought it would. The new code also lets you cycle through your ready heroes.

Icon: I’ve been using the old sprite from the guardian as the icon for the game’s executable. Just a small thing, but I’ve changed that to something more relevant to the game – a wheel of fortune.

Music: With the rest of the evening, I started messing around with a few possible tunes for the game. They sound alright on the guitar, but it’s going to take a while before they sound good on the computer.

Right then. I’m done for the day.

* Post a Comment

Day 11

Yesterday’s post was a bit of a cop out. Truthfully, I just haven’t been in the humour of working on the game these past few days. There’s not a lot you can do when that happens except try to work through it – it’s just a shame about the timing.

Today didn’t go particularly well either, though it did go slightly better. I’ve been thinking about the game’s plotline and I’ve now got a very good idea how the first two hours are going to play. I think that’s a more realistic target than trying to do the whole thing (particularly when I’m working at this rate).

I also did a little coding today. For a start, I fixed that annoying targeting bug – it was quite straightforward to fix after coming back to from a day off.

This blog has been very “I did this, then I did that” for the past few days, so just for giggles, I’m going to go into this problem in detail! To give an example of what was happening, say an enemy chose to use the “standard attack” action, which (at the moment) looks like this:

#animation xoff, yoff, type, startframe, length, speed, refrain, z-order;

action Attack{
    frame 13;
    animation 0, 0, 0, 0, 2, 2, 2, 1;
    damage 120;
    wait 10;

In this case, the first action command is “enemy”, which tells the engine to define a targetset like this:

}else if(battlecommand=="enemy"){ 
  for(int i=partysize; i<totalbattlesize; i++){ 

(i.e. it fills the targetset array with the npc numbers of the enemies.)

This is all well and good for when a hero is performing the action, but when an enemy does it, it’ll mean that he’s attacking his own party – not what we want. So there’s a quick routine to fix this before the commands are processed. Namely, we switch around the command to select the appropriate targetset.

      if(battlecommand=="ally"){ battlecommand="enemy";
      }else if(battlecommand=="allies"){ battlecommand="enemies";
      }else if(battlecommand=="allysplit"){ battlecommand="enemy";
      }else if(battlecommand=="enemy"){ battlecommand="ally";
      }else if(battlecommand=="enemies"){ battlecommand="allies";
      }else if(battlecommand=="enemysplit"){ battlecommand="ally";

Seems straightforward enough, right? I spent about half an hour on it on friday evening trying to figure out why it wasn’t working, before I eventually gave up and just went to bed. It was a particularly confusing bug – sometimes the engine would get the targetsets the right way around – and other times it wouldn’t.

Turns out the problem was really stupid, stupid enough that I found it very quickly when I started coding today. All the information is there, so I’m leaving it as an exercise for the reader, if you’re so inclined. 🙂

With this fix, and the other additions I made to the targeting system (that “quick graphical thing” actually turned out to be a pretty big deal), I’ve now whittled down the engine additions to one final item.

from, like, ages 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

Today marks the end of my first week working full time on this, and I’m honestly not all that happy with how it’s gone. The way I see it, though, it’s no big deal to slack off a little in the first week. To do so in the second week, however, is unforgivable.

* 1 Comment

Day 10

I took today off. Yes, I know, only 18 days left, whatever.

I also changed the skin on the blog – the old one was a little too simple, I think.


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

« Previous PageNext Page »