Friday, October 30, 2009

Reduced Artwork, reduced excitement

Ok, reduced excitement is in direct relationship with heightened apprehension... Why am i apprehensive? I can tell you it is because this dreamland project is nearing completion, and with that comes the fear that I won't be able to publish it.

Whether the reason is because Peer reviewers don't want to review it, or maybe it is because i think they will discount it as it is ot a game application (and we all know how well those have done for sorcerygames lol). Maybe i am fearful that Microsoft will declare it as not an applicable application for XNA. The reason for this last one is because recently MS has declared this is not a video service, so projects must have soem game that the video supports. Here i am without a game, and a different kind of entertainment.. What will i face? That i will know soon enough i guess...

Thursday, October 29, 2009

Big Fish in a small pond.. Or ?

Small fish in a big pond.

I have been around developing games for some time now. I have been a part of startups, and established compaines. I have generally been a smaller fish ina big pond as far as my games have been concerned, although soem of them have done immensely well, the companies i have worked for have always been a smaller fish. No Disney or EA here.

Here i am with Mass Media, another small fish that i have worked in for a long time now (14 years). Yes we were bought out at one stage by THQ and also let go a year ago when they were doing their cost cutting and laying everyone off.

Now we have re-established Mass Media and are doing well. As a premiere PS3 technology developer it seems our expertise are in demand, which is great. Btu.. ermm where was i going. Oh yeah. We are a small fish and are doing well with it. But we have an opportunity to be a big fish in a small pond. This new pond is called Playstation Home. We have some items out and a cool space called the Neptune suite. But what next ? We are currently developing a whole new area (i cannot disclose at this time , bah!), but is our internal investment going to be worth it ? Only time will tell, but also. The development area is so restrictive that a lot of our expertise is wasted... Do we carry on with this, well for now we will. Maybe even make enough to cover costs, I sure hope so of course.

But which would you choose?

The more interesting, or the more financially rewarding ?

Who takes the reigns?

Sometimes it is obvious who is taking the reigns of a project and moving it forwards. Other times it is not so obvious. Is it the person with authority who moves things forwards, or is it the person that gets stuff done?

This is a tough one and i am not sure i really know the answers. I am sure theya re all situational and personal.

In my current status i have no real design authority, yet i find myself doing a lot of the nitty gritty design work to keep my programmers productive. It is important to me to keep them productive, as it keeps the job more interesting, and i personally hate wasted development time. So here i am finding i am taking the reigns once more and fortunately to god effect it seems. So at least we have lots being worked on and done. Of course the nitty gritty i am doing could easily be described as the grunt work, the stuff that all games need, so i am designing nothing. But you would be amazed how much of this small stuff there is, and the small stuff that newer programmers just do not know. Luckily i guess i am old and wise, lol! Now that's funny!
Have a good'un

Wednesday, October 21, 2009

Debugging code

There are many ways to debug code, and some seem so primitive but are still usefull today. Ok some are not, like for example..
We used to use the border color on the old 8 bit machine to tell us what state we were in, or if something fatal happened it would change color to tell us how it got broken etc. Very useful piece of knowledge that. Of course nowadays the new machines do not have borders to color :o

What they generally do have though is configurations when building. This allows easy setting up of some debg code that could potentially slow down the game or code you are writing. But if you wrap it correctly in debug conditionals, then you will be fine. so during development you can error check just about everything without worrying about the performance loss.

I wish C# worked like the last paragraph, i would love to have the choice to error check my array bounds etc. Instead of it ALWAYS doing it for me, even when i do a full release version for the Xbox. Ahh well, it cannot be helped i guess. It seems we are too thick and need all the help we can get. BAH!

So i am also writing in Lua for the Sony Playstation. This crappy interpretive language has no good things in it as far as i can tell at the moment. It is also missing configuration directives of course. So today i came up with a waay to use debug code, and then simply have a parser that looks at the lua code and strips the debug stuff out of it if desired. Simple yet very effective, and now i can have debug again, woohoo!


Friday, October 16, 2009

Tired Tonight, and why is that ?

It seems it is so easy to be more tired when things are not going your way. So that is how i feel tonight, but even so, after my full day of work and full night of karate going on. I feel tired, too darned tired to work on my own coding issues anyway.

Now tomorrow morning i do not anticipate being tired, so i am going to make a list tonight of what i need to do tomrrow, therefore making tomorrow more productive, and making me feel better about doing nuthin tonight.

Laters everyone

DXT Textures for XNA

Here is my follow up.

It is not all great for me, but then again, it is not all bad either.After following the advice i recieved from Nick and Zman I changed some of my textures to DXT, and waited to see what the complaint about size would be. sure enough it complained that i needed to have the texture multiples of 4 (ok, just one of them, the otehrs were ok). So off i went and altered the canvas appropriatly. This seemed to go through the pipeline fine until i tried to view the results on the PC (currently my Xbox is being replaced). The effect on the title page was terrible. The texture was somehow diminished and stretched off screen. So on with texting various ideas to see whatwent wrong...

Well it was easy enough to actually find out, as one of my first theories worked out, and that is that Textures for DXT needed to be powers of two, and in both X and Y sizes. This is a real downer for me, as it would mean lots of blank texture around my images as my textures are rectangular. This does however bring the size down to about 2.5 times the size of a jpg. So although it still blows my budget for memory it would still be workable with some more effort on my part.

So the facts in a more succinct way...

DXT compression works
DXT textures Must be powers of two in both height and width for the PC
DXT textures are 2.5 times the size of the jpg with a quality setting of 80
No idea currently if the Xbox will accept the DXT texture as just mutliples of 4 and now powers of 2.

This sucks so far. As i have a choice of reducing the size of all my pages, or reducing the number of pages. Both suck a lot!

Wednesday, October 14, 2009

Texture Textures, you are too fat!

So here i am getting very close to basic completion of my Dreamland book, and whaddya know. I am thrown a curve ball. It is a pretty large curve ball, but one that must be hit out of the ballpark, and soon.

I estimate i have a few hours of work left to make this application viable for release into the community for Peer review, or playtest. So i am a bit frustrated with soemthing i guess i should have tested much earlier than now.
Let me tell ya how it went...
I added in all the pages for the book (300 of them), and published a ccGame file (that is the file that one downloads to your xbox to install the game).
The ccGame once it was produced was a whopping 1.4GB, and seeing as how the limit on XNA titles is 150MB, i am in trouble. OUCH!
So i find that my jpg pages are being compressed to 10 times their jpg size. And i based all my calculations on them being around the jpg size (this is where i SHOULD have tested the pipeline out)
I then tried to see how come they are bigger and failed. The numbers did not add up. I knew that XNB files were supposedly well compressed, as nowadays compression techniques are really well understood and documented. So i had no choice. I read all the posts i could find in the XNA forums relating to texture formats etc. Lots of interesting reading there!

finally i had to post my own question, into a thread that was already quite similar. Within seconds of my post i got two answers of soemthing to try, something i had missed, mainly as i thought it defaulted to dxt compression on the textures anyway. So they instructed me on how to do that. Which is awesome! So after reprocessing the textures into DXT i find they are now only about 2.5 times the size of the jpg file.
This will of course still blow my total out of the water, and i haven't at this time seen what effect the DXT compression artifacting will have had on my texture.
As for size ,i can of course use smaller texture :( which will make me sad.

At this time, i do not quite know what to do. As i would have to reprocess all my 300 etxtures to make them multiples of 4 in both height and width to conform to DXT compression. This is a huge undertaking unless the process can be batched, and my debabilizer has run it's trial course :( BAH!

Time will tell how this goes. I'll update at some point.

Monday, October 12, 2009

Moving in on the Details

Ahh soem days it is hard to work on stuff, i am sure you have heard that before in this Blog. Today was no exception to that, but.. i had a plan this time. I had already set in motion what i would need for a day like today. (sunday :o)

I had made a list, and although i had not checked it twice, i knew what parts were going to be naughty, and which nice. With this handy dandy list in place i perused for what would be the easiest job to do first, to get me into the programming mood. Wow was pulling me in, especially with my sons help :o

The list i made was great, it really did allow me to get into the jobs in an easy way. Heck, i even went on to do more than half my list. Which was more than i expected to do today. So that was a bonus. A list also tends to mean that you are not dithering between tasks looking half heartedly for stuff to do. Instead you seamlessly move onto the next job, usually before you finish the last.

so today i got the initial 'Press Start; line on the screen, with a copyrights screen behind. This launches before my real movie credits intro. I quite like the way it turned out. I also sorted out the Buttonhelp, so only the help 'Y' is showing and that toggles on a nice listing of all the other button controls. Then i went overboard for the day and programmed in the extra buttons as well. Like volume control and 10 page super flips.

Now i need to make more items for my list i guess :D

Saturday, October 10, 2009

Tools , the good the bad, and plain ole ugly

There are many third party tools out there. I hate most of themm. Mostly as they sem to be half done. Like someone saw the need for a particular tool, but didn't quite know how to finish it or maybe what was really needed for a development tool.

In house you can take whatever shortcuts ya want with ya tools. have fun with that crappy tool that 10 people will be usng later on in a project, especially at crunch time. I like tools done properly, or as much as they can.

So here i am needing an audio editor, and hating the fact i don't appear to have a good one. so i go looking on the web and find a few different ones to try, a couple even free. After a long frustrating time i dropped one after the other as being too awkward to use, or just plain didn't do what i wanted. then i came across NCH Wavepad editor. Oh man, this is nearly it. Works like you would expect, no surprises. The only thing it is missing is a multi-track editing solution, and then... Hey presto NCH do this as well, and if you buy them both at the moment you can get them for a measley 75 bucks, Woohoo! so my new company purchase tomorrow will be these two third party solutions to my audio woes. I sure hope the Multi-track lives up to the wavepad, which BTW is FREE!!

Thursday, October 8, 2009

Some Nights are just tough

I find it hard to work on stuff at times. Usually when i have had a hard day at work, or have had a great distracting day with my family. So when it comes time for me to spend a little time programming my own thing, it can be tough to do. Especially when i haven't really got a full idea of what i want to get done at the time.

If i put a little forethought into what i will be working on, i can get that done so fast. So last night i am sitting there, knowing i need to put in the Xmarketing screen and also the Upsell screen, but then i struggle. I play around a fair bit with the xmarketing jpeg, and i guess it's ok. But i am just not going very fast or productively with this stuff. Maybe i should have called it quits when i knew i was struggling, but i am too stubborn for that.

So in the end i have the Xmarketing screen in, and the start of the upsell screen. I really just need the correct text fro that screen and it will be done. Then i finish hooking it up to the Trial version flag etc. Hopefully tonight will be better. But first i will have some Wow arena to try with my druid, should be fun :)

Wednesday, October 7, 2009

Listening to others

There is a saying about too many cooks spoil the broth, and although this could be true in cooking. It most certainly is true of making games. Now i could give some real examples, but that would be calling out people i ave worked with and some i currently work with, so that isn't going to happen.

I do believe that one person should have a clear idea of what they are trying to achieve. Then they can ask as many people as they want to, to make the product or idea more rounded and just plain better. There is no magic number to how many people should colaborate on a games design. But too many, or no clear vision will get everyone's ideas in place, and you will end up with a mess, with lots of features, but still a mess to play.

So yesterday i happened to bring round my friend and colleague to look at Dreamlands current development. I had some features of design i was not fully happy with. Well he looked at it and gave me some suggestions. One of which i discounted out of hand. However when i got to actually looking back at the game and programming it, i tried his ideas nonetheless. And whaddya know, his ideas solved my problems. It now works as i wanted it to, but i Needed that help to get me there.

So my vision, someone elses solutions. Simple in essence, not so simple in real life.

Monday, October 5, 2009

Sometimes ya have to take a step back

And look at what you are doing from another angle. Or at least me a bit more objective.

Such was the case with my nice opening sequence. It just wouldn't look how i had envisioned it, and altering numbers and timings didn't seem to help. So i stopped working on it for a bit and let it simmer. The a short while later i came back and just watched it. Finally i analysed what i had seen.

It was fairly obvious, my timings were completely off and rushed. so i decided to space all my timings out for what comes on when, and how fast it scales up and alphas in and out. This helped immensley. so my original problem was i was trying too hard to give an end time of only 12 seconds. This was unreasonable and now it takes about twice that. But i wasn't concerned with the end time, which was the real revelation.. let it goooo i said to myself.

so i started with the sorvery logo, and got that to just feel right, including it's sfx playing. This then allowed me to move onto the second part, 'proudly presents'. Once i had this timed everything went so smoothly and it looks pretty good. Ok, so i can still tweak a few pixel positions, but that is all good.

Now my issue is with the SFX and sound for it in general. I have a nice background dreamy soun supplied by my daughter and synth'd with echo. I like it, but i cannot get it into a format that Xact will load. Boy am i frustrated. It seemd i have now spent more time on sound editing and messing about with xact than i did to write and time the whole intro piece. I hate curveballs.

So what to do ? ... simple! Go find a friend who can sort it out with his better expertise 8]

Yo Paul, how ya doing for lunch tomorrow ? ;) gotta love friends!!

Saturday, October 3, 2009

Classy or Primitive code

This question doesn't seem to come up as much nowadays as it used to. I think it is because games have gotten more complex and any system that needs to be written has to be flexible in ways that would have cost too much memory in the past. as well as memory of course they take up time.

Designing how the features work and what features are needed and how to control all these features in the amazing classy routines that needed to be written. To clarify things a little i will explain more of what i am doing and what all that gibberish means.

I am working on the intro part of the Dreamland chronicles Application for Xbox with XNA. the intro is a simple movie style intro where logos fade in and out over each other. they do not have many requirements. Where, fade speeds and timers are just about all that is really needed. Now i was going to initially write a nice classy approach to handle this. Make it nice and table driven for expandability etc. then as i was doing it i realised that it was a huge waste of time. All i need are a bunch of constants to layout timings etc and just hard code the indices for each image i will use etc. This of course has gone really fast and now all i need to do is finish up the timings so i like them. I am also going to add some scaling now, because it will simply look better.

So this got me to thinking that all those games out there with their dedicated systems that have been designed and written have been a huge time sink. Ok, so a sequel will get the systems re-used, but apart from that. Sometimes designing and writing what you really want is so much faster than designing a system that someone else can manipulate to their hearts content.

Of course this is only possible for me as i am the designer and the programmer, so i do wonder if it would have required an editor had i been working with someone else on this.... hmm...

Friday, October 2, 2009

Buttonhelp is done and Defines

I thought i would maybe make the buttonhelp disappear as you used it's features. That sounded cool. You know, like if you used the left joystick to scroll the picture around, i could then fade out that particular buttonhelp. Although this sounded great to me, it did not look very good in the actual application. It looked dumb tbh, like things were randomly disappearing. Ahh well, so much for fancy ideas.

So now i have a nice generic looking buttonhelp, but it is very very invasive. Also it is not currently screen safe i am sure. So once i move it to the Xbox ill check it all out properly.

so that brings me to Defines! or Constants.
These are so useful. They allow you to place all your adjusting values, be they for gameplay or placement controls etc all in one part of your code. This makes iterative alterations much faster then having multiple code pages open in different places so you can alter a set of values in a minor way.

So i highly recommend Defines.

Thursday, October 1, 2009

Button Help

What is all the fuss with ButtonHelp nowadays ?

I have dealt with it for soo long, but somehow i still feel it is such a waste of my development time. I know it can be nice to have. Although it only really serves a purpose for beginners to learn the game. After that it is just a mess of distraction taking up screen real estate.

It also take time to make it postioned just so. So the button and text for it line up nicely. I wish i didn't have to do it personally. My methd for not crowding my lovely Pages in Dreamland Chronicles is to make it Toggle on and off with the press of the Y button.

I like Help screens, like when you pause you can see what button does what. But Geez, c'mon. The game should not be complex enough or changing along the way it's control scheme.

Well back to aligning buttonhelp for me, bah!

What a Page turner

Ok so the new class is in. It isn't quite up to what i want.

So far it...

Displays the correct page, alows inc and dec of page number.
Allows Scaling of the page.
Keeps it's aspect ratio.
First shows a page as big as it can, retaining it's aspect ratio.
Allows scrolling around the page.

What it doesn't do...
Doesn't feel great, way too linear movement etc i think.
Doesn't stop the scrolling near the edges of a page, when scaled. (this is going to be the tricky one i think)

So what to do next...
I am going to change the buttons that control the page viewer around and put on some button help. I am sure you are all thinking 'LOL', why am i not tackling the issues i just listed. Well i have tried, but so far have come up blank as to what to do. Actually not blank, more like i have too many ideas, but do not want to spend the time to write them all. So while i write something i Need. I can work all the best possible options out in my head.

What is C# again ?

Dancing around so many languages can get quite amusing at times. Others it can be downright frustrating. With C# it is so similar to C++ that it aggravates me they decided to change arbitrarily i think some of the syntax conventions. Luckily i have code i have already written to fall back on for syntax correcting.

Well i finally started tonight. I made my page drawer. It is not pretty yet, but the class is there and the surrounding architecture should be solid, as i ripped it from Pellmell. I love re-using previous code.

So now it displays different pages, at the flick a joystick. But it is bad. I need to come up with a bit of code to generate me a scaling value for the X and Y, as the pages are not all the same size. Once i have these scalars i can use the biggest scalar to display the page with. Then the page will hold it's shape correctly (aspect ratio).

more tomorrow, man i forget how much i love to code.