Sunday 16 March 2014

The Joys of Code..

As I'm sure you’ve guessed, this one is all about the progress I’ve made in actually putting the game together. I'd like to start by saying that I have absolutely no programming knowledge so I might as well be trying to build a game in Swahili for all the sense it makes to me. But I have to say that despite having no programming knowledge, I’ve done a pretty good job setting up so far. It hasn’t been without its difficulties though.

Luckily for me I'm using Ren'py which tells me when I have a problem and what the nature of the problem is like so:


This one is fairly self explanatory because it tells me that "colour" is an unknown property (Ren'py goes by American English so its looking for "color"). It’s telling me that I've tried to use a property that doesn’t exist. So it can be very handy when it’s simple and specific. But when it starts giving me unspecific code gibberish back then I start to loose my patience. Even things that would be simple to a programmer, like "X is not a valid child of Y" etc, I find it very difficult because I have no basic knowledge of the correct names and terms nor how to work them properly. This makes solving problems almost impossible for me. So baring that in mind, have a look at the progress I’ve made.

When opening the default game, it looked like this:


Perfectly usable but hardly personalised. Obviously I want this page to scream Hadron Gateway so I set about designing the look I needed for it and came up with this:


As you can see, I went for a wide screen look to give more space for the game content. That and its 2014... who’s not using widescreen? The big difference is that instead of a "Start Game" button I have split the image into three clickable areas, each representing a character and story. I thought this might be more interesting and practical than simply leaving a "Start Game" button at the side with an illustration as mere decoration. Plus it made more sense given that there are three different start options (but I'll come to that later). The main menu on the right side has been spread out and taken out of its individual boxes for a bit of breathing room. I used a font called Octant that reflects the futuristic yet slightly steampunk feel of the game, so that gives it a lot more interest overall. I gave the title a gold and silver shine to jazz it up a bit.

So how does that translate in the code? It’s fairly easy to explain. This is how the default looked:


It has clearly created buttons in a set style then told the game where to put them and what to do when they are clicked. These buttons are separate from the background image and the text on the buttons is separate from the button - think of it like lots of separate layers all piled on top of each other. Unfortunately for me I have no idea how to create my own custom buttons so that made life a little awkward. The easy way around was to simply create one flat image with no buttons and no layers. All I had to do then was create hotspots.

To put it simple, a hotspot is a rectangular area with a command set to it. I place the rectangle then tell the game what I want to do when the player hovers or clicks on that area. It looks like this:


The coordinates tell the game where the rectangle is and then the action tells it what to do. The top line for example tells it to Start - a command which Ren'py understands. It doesn’t understand "begin" or "commence" etc so I have to make sure I'm telling it things it already knows how to do. I'm sure there’s probably a way to define "begin" as meaning "start" but that’s currently over my head. The part after that is just an extra bit to tell it where to start from. I've already previously told it what "laythan_script" is so it has no issues. So that’s not very complicated.

Unfortunately, using hotspots left me unable to do the fun stuff I wanted to do. You see where it says "ground 'MainMenu1Ground.jpg'"? Well that’s image number three in this post and it’s the flat file I used to put hotspots over. The image below is the hover image. Imagine it as being placed underneath the first one and whenever you hover over a hotspot, a little rectangular shape the same size as the hotspot is cut away to reveal the picture beneath. So if I made a hotspot over "Help" and made it so that the world "Help" on the image underneath was bright orange, it would look as if the help button turned orange each time you hover over it.

I wanted it too look as if each character's whole section glowed whenever someone hovered over it. So for example, if the player hovered over Laythan it would look like this:


But what’s the problem? It’s glaringly obvious but it simply didn’t occur to me... hotspots are only rectangular... that hover area is not. There was no way of getting the whole thing to light up without catching parts of the other two. So I had to settle with just making the character names glow as the mouse gets near. I was disappointed but prepared to accept it for the sake of not wasting any more time.

So what’s the problem then? Well... the main menu might work using hotspots but all other menus don’t. I'm currently stuck on the default. The game menu for example currently looks like this:


As with the other defaults, it’s perfectly usable but totally bland. I want it tailored and in keeping with the main menu. In the end it means I'm going to have to work out how to define and use my own buttons... which would be fine if the instructions were made for novices but they’re not. So all my previous work on the main menu is for nothing!

On the upside I worked out how to make Rheeven and D'rosk's stories unlockable! I have set it so that when the reader finishes one story it unlocks the next. I did run into a little trouble though. If the reader had unlocked all of three games and went back to play first game then they would find that the third game had re-locked itself. I worked out that I had to copy and paste the entirety of all three stories under a new heading that I called Game_Complete where there are no locking rules. The reader would arrive into Game_Complete when the third story was complete. I'm thinking of adding in a reset button just in case anyone wants to get back out of Game_Complete mode and start from scratch with the locks back on.

So what do you think of all this? Does it seem strange to see it all coming together?

Monday 3 March 2014

This will be a big one...

Hello again!

Since there’s been a break I'm going to have loads to talk about and plenty to show.
I think it makes most sense to start with the news that I'm now writing one of the two final climaxes of Rheeven's story. There was originally only going to be one but you can blame Requiem for a Dream (which I've refused to let X Factor ruin) for inspiring the second. Zack Hemsey's This is our Legacy also inspired a change to the idea for the first climax and it’s now even better.
I'm sure no one will be surprised to hear that the story is way over my chosen word limit at a full 130 812 words. I've had to accept that the addition of a new climax scenario will force the word count up but I still intend on cutting a good few thousand out at least.

So with Rheeven's story now in the final quarter D'rosk's story is beginning to demand my attention. More accurately, D'rosk is. His personality is coming into much sharper focus and I'm finding myself very curious about him. I think out of all three, D'rosk will be the strongest main character but I have a feeling he's going attract both love and hate - either way, you wont forget him in a hurry.
I have an idea for the main twist of his story but the rest can go in several directions. As you know D'rosk's story will centre around his struggle to control a revolution while trying to assassinate the six people preceding him to one of the most powerful Empires in human existence. I would like to have a power struggle between D'rosk and one of the main rebels whilst another struggle emerges between him and one of his six targets. I had lots of exciting action scenes rushing through my head when listening to Requiem for a Dream but I found that the constraints of Laythan's story keep scuppering me. D'rosk has to be safe in certain places at certain times and that makes it hard to throw him out of his comfort zone or add any amount of struggle or peril.
So all this talk of D'rosk and yet I've still not unveiled him yet... perhaps it’s about time.

Palvan D'rosk

Palvan D'rosk for Hadron Gateway

The design for D'rosk was good fun because it gave me the chance to try to design a face that could look like both a villain for the first two stories and a hero for the last. I went with a tall athletic build that you might expect from an assassin and I think his proportions have worked out quite nicely.
I did come across a problem with his clothes however. D'rosk is the Head of State and his clothes should reflect some aspect of that, but he's not the type to wear finery - it’s far too impractical for such a practical person. And, since he’s not interested in showing off and looking rich, I couldn't go for anything too fancy. In the end I settled with his travelling attire but spruced it up with rich red, cream and gold. Overall he has the look of someone that has status but tends to be in the thick of the action.
So what do you think of him? Was he what you were expecting?

You'll also be pleased to know that I finally got Caelin sorted out so I can finally introduce the youngest member of Laythan’s team!

Caelin Tiel

Caelin Tiel for Hadron Gateway

Caelin (the redesign of the first character in on the right of Design Sheet 1) has had a bit of a makeover. As I had said with several other redesigns, there wasn't a lot of ethnic diversity amongst the cast (and as I write this I've just come to the realisation that all three main characters are white males... how boring! I wonder if there’s room to change any of them.) Anyway, I redesigned the character but I kept the clothes the same because they're great. I did have to change the colour of the t-shirt even though the blue worked better, simply because Laythan and Denji are both already wearing blue and I wanted a little more variety. I chose the natural colours of green and brown because it goes with his gentle personality.
Caelin’s face was drawn to match his kind nature and I tried to give him a look of naivety because he's so young. I went for a gentle rounded face and features, trying to avoid anything to pointy. He has the skinny weak look of a teenager who hasn’t quite broadened out and trustworthy eyes to add to his likability.
 So who likes Caelin?

I was messing around one night when I couldn't concentrate on writing and I wondered what might happen if the two hackers Caelin and Filo ever met. I decided to do a slightly couple-ish image of them together (for those who like that sort of thing). It was just a quick sketch but I'm sure you won’t mind.

Caelin and Filo for Hadron Gateway


So apart from all that, I've started putting the actual game together but I'm going to post about that in detail later because I've got loads to say about it and even more to show!