About this blog
Adventures in DogCity? No, that might sound weird.
Entries in this blog
How doo gamedev.net? Well it's been too long and I apologise to anyone that it may have concerned for my not keeping of a more consistent journal. It was never a strong point for me; all that writing and formatting which wasn't GAME development. Still, I've found it to be an extremely valuable tool to keep track of my progress when I am developing a game, and so, it is with great humility that I return to this hallowed sanctum of geekyness and ask you fine ladies and gentlemen to enjoy, destroy and something-rymes-with-roy my bi-monthly (hah!) accounts of the creation of a new game and my sometime freelancing at whatever I can get my hands on.
But first, it seems like a good time to get the elephant in the room ...out of the room and through whatever exit will accommodate his hugeimungous ass acreage. Such an ungainly exposition will require nothing less than a gamedev.net sized tube.
For those who remember, I tried to make an MMO. It failed. In this first journal instalment of a new chapter, I will provide a short treatise on Tearsols crashing and burning, including how it ended in great justice.
A gap in the market.
Tearsol was not a labour of love, for me at least. It was conceived as a project compromise between me and my long time co-developer friend, then vacuum packed into a format which I believed held significant value. Though I did come to relate to it almost like a family member, it was more like dealing with the rebellious teenager who you've invested too much precious life force into to let it walk out of the door wearing dungarees, and nothing else. Like most informed adults, I was aware of the immense amount of work, cost, and sleepless nights I'd have to live with, but felt that if I could get that thing out the door with a reasonable set of clothes and a sensible hair cut, I'd complete two key objectives:
1) Be very, very proud of myself and the people who made it happen.
2) Never have to work again.
What I'm trying to say is, I had (and still have) a firm belief that the market we were building Tearsol for is vastly undersupplied and will make a very fine living for the people who manage to tap it. The generous offers of investment I received toward the end of the project demonstrated this, and NCSoft are obviously keen to get a piece of it, which is enough proof for me. This made the ending of the project an extremely welcome break from something which began as indie game development, but rather quickly morphed into an excessively stressful and frankly bizarre pseudo business.
So objective 2 would have to wait for a while. I realised, however, upon finally closing the books on Tearsol, that I had more than fulfilled objective 1. I was immensely proud of what had been produced.
We had a game. When Tearsol was finally put to sleep it had the beginnings, the very faint beginnings, of a great game. I'm sure that I saw our work through rose tinted glasses, but it seemed to me that what we managed to produce had all the makings of a great experience. That is to say: We had done all the right things, and all the right things were being done. Granted, we were barely off the starting grid and our destination was still obscured by the curvature of the earth, but races can be won and lost in their first few moments, and the race was going bloody great right up until we stalled and gently rolled to a halt.
I had the pleasure to write three references for team members while developing Tearsol. One of those members is now in full time game development employ, thanks in no small part to the wonderful artwork he produced for Tearsol. A second found work with a major French game developer; though I suspect his 20 years of programming experience did most of the talking, I do like to think that the time spent on Tearsol and the help I provided with his side projects allowed him to demonstrate that he was capable of game development.
Personally, I learned a vast amount. Mainly from the other members of the team who were patient as saints as I muddled through code, applications, and artistic conventions which I could never have understood without their help. I wrote some 40k words in the course of documenting Tearsol, and that figure could be twice as much if I included the vast MSN verbiage and rambling e-mail correspondence about everything from service structure to dead reckoning. A tangible result of this is my truly terrible 64k word space opera sci-fi novel, which I could never have contemplated writing if I hadn't seen how easy 40k could be.
So we all had a whale of a time, and have made many friends and great contacts for life. To me, that is more than enough cause to be very, very proud of what we produced --even if it's not available for public consumption.
As for the money, well that comes and goes, but such experience and friendship is priceless. True, it won't buy a Porsche, but I'm more of an Aston Martin man anyway. Wait. Those things won't buy an Aston either?
In the end we were victims of our own success. Like lemmings, I suppose. The shining talent inside the team could only have resulted in one unfeasibly ironic result, to which I was utterly blind until the discussions about job hunting and portfolios hit a fever pitch just a few months before we drew the project to a close. Perhaps I should have tried harder to sell the ultimate goal of fame and fortune in those last few weeks as each briefly intersecting agent whirred off on a new tangent, but it felt like an empty plea when we had already achieved so much.
You can download the Tearsol source here. It does not include our licensed networking libraries.
My new project is significantly simpler, in traditional terms, but no less audacious. Stay tuned for more information once it exists.
We have just completed Tearsol's seventh milestone, which was as productive as it was challenging. We originally intended to focus on consolidating our feature list and doing lots of testing in the client and server. Long story short, we did re-unite the graphical client and server, but not to the degree we planned, and I think it's safe to diagnose a case of feature creep as the cause! I'll give a summary of things so far and then talk a little about our plans for the next milestone and how we will conquer feature creep.
One of the key features of this milestone is that is marks the completion of ALL our core services and features at a basic level. That means the gameplay, login and asset services have their functionality ready to roll, although the login and asset services are not actually separate services yet. The gameplay service has LUA script integrated and indeed tested through some AI behaviors and it's all ready to talk with the login and asset services. So that's a huge achievement, specially in nine months!
The milestone itself called for the development of advanced in-game GUI functionality, radar, the markup language used to build the popup's and such. Here's a little preview of the GUI, it's designed to minimize down to the two bars along the bottom when not in use. I hope it looks as good once it's reconstructed in the client.
As some people may know, we are also working on a mini project as an entry in this years 4E contest, we are building it off the Tearsol client and at the moment work on one game is often doubling as work on the other, GUI functionality being one of them, which is neat to know.
We have chosen to actually take it a bit easy with asset production for Tearsol at the moment, this milestone didn't include any audio work and very little 3D development. The art side of the Export-games team is at least as accomplished as our programming side, but we are very aware that if artwork was developed to such an aggressive schedule as programming we would undoubtedly get well ahead of ourselves, and I feel it's important to build up a good portfolio of concept work before any substantial work is done on art assets, as long as time permits. Here's our latest concept - the 'generic' female mage, try to keep control of your jaws, gent's.
So... feature creep. As I mentioned, our main objective with milestone 7 was to get the client and server hooked back up for another developer test and to get a look at our various movement systems working perfectly ;). We did achieve this at a basic level, but haven't had the developer test yet, which means we haven't set up a webstart test. This is essentially because distribution in the form of a webstart simply takes a bunch of work and, when we come to putting everything together the general consensus is: "lets just get x and/or y done too we'll only have to do it all again in a week if we don't". Pretty standard stuff, right? Unfortunately, yes. I'm not a huge fan of any particular development convention, but If I had to compare the standard indie process I guess it's closest to SCRUM. I'd like to get a step closer to it, and produce monthly builds at the least from now on. I'm sure it will become more simple as much of the actual gameplay is developed in scripts on the server, but there feels like a definite widening of our feature base which needs to be continually managed - and that makes the compilation process all the more unpleasant.
Either way, the graphical client and server are now working together again and next milestone will be focused on consolidating and testing the swathes of new features which need integrating. We are going to try our darndest to get a webstart build up for the artists and such on the dev team. I hope you'll all see a very great leap forward in graphics and functionality. Cheerio.
Time for a Tearsol update. I got a little out of sync with the milestones so this is just a general 'hows your father?' progress report.
Last milestone was excellent as usual, 80% of the checkpoints completed, I wonder if it's possible for that to be higher? Anyhow that means we now have full irc like chat functionality which is hooked into our field of view (FOV) system for area / local / zone channels, also you can chose people to talk to in a private channel by dragging their names onto a private box. It'll probably confuse the hell out of people, because at the moment you can have as many people as you want in a private channel but they don't have each other - so yeah, utter confusion ensues even if you understand the system. Anyway, thats the basic functionality for groups / guilds / friends, so not to be eaten raw [smile].
There have been a number of general graphical improvements to the client, some terrain rendering optimizations and the beginnings of a flora scattering system. All basic building features are completed - did I mention how much the building format rules?
So this milestone we have been working on a big range of things already, me and Alan initially worked on the 'live asset database' - which basically allows us to check-in completed artwork and audio with it's descriptive text, name, download priority and vital statistics and then rename the committed item to something which is 'asset service' friendly. The asset service doesn't exist yet, but we figured that was a good place to start, it has a double use because it makes a nice navigable interface, which will help with world building and scripting.
So whats in the pipeline right now? Well Stratboy61 is expanding the FOV functionality and writing some AI behaviors. Alan has just finished work on our dead reckoning code and will probably move back to graphics development. I've just got a big website update out of the way for a client, who produces our concept art in return, so I guess I better get on with making some models. Joe, Matt and Steve are all chilling out while application development catches up with the art schedule.
We're going to be doing some help wanted ads soon, mainly looking for an extra server developer for some long term commitment and also a general client developer for whatever takes their fancy. An OGL wizz would be fantastic. If anyone reading this is interested then send me a PM.
Righto, that's your lot. Here's a house and the completed paladin (we might get him colored later [smile]) Cheerio.
How to write a cliched game design thread title, or "How I learned to write like a writer, writes" ... of mice and men.
I'm going to make christmas hampers of cafepress goodies for the developers who have been with export-games for a while. I'm excited!
It's time to reveal a secret that is so old that Old Man Time himself misplaced it, just last week. To my knowledge, up till today I have been the only living human to know of this fantastical secret - except for the boffins at Core Design I guess. If it's public knowledge then I'm still cool, because I discovered it all by myself!
The Croft mansion roof. (and assorted oddities)
This is do-able in Tomb Raider 2 and 3 I think. Definitely 2.
Load up the Mansion training level, go outside and make your way to the slip line. The rope slidy wheel thingamy. Climb onto the starting block to access the line, but don't slide down it.
Align Lara so she is facing the direction that the slip rope travels, but on the most front right side of the block. Now turn her 45* to face into the front right corner. Make sure she is as close to the edge as she can go by walking forward.
The rope is the brown line. Lara is the green blob standing on the red block, with the pink blocks representing the two higher pillars either side. See where she's facing?
Now hold down the 'Look' button, I think it's a shoulder button and angle the camera so it's directly above her head, looking down on her. Hold the view and jump so she jumps directly up toward the camera a few times. If all goes to plan she will glitch and 'fall' onto the top of the higher pink pillar to her right.
I figure this is because her 'jump straight up' animation actually moves her forward a little each time, if the camera angle and Laras body angle are correct her only place to move to is the otherwise impossible to reach high pillar :).
Ok, once you are there, turn left and do a standing forward jump onto the high pillar on the left of the slip, it's closer to the house roof. Jumping straight at the roof from here doesn't work, she won't grab on, but try it by all means.
Point her in the direction the slip way travels, on the front left side of the pillar. You are going to do a running jump toward a part of the roof which sticks out, it looks like it slopes but in fact has one flat triangle along the closes edge to Lara. You have to do a running jump, initially aiming further left and pulling Lara to the right, so she turns in the air to reach the ledge exactly straight on. If you do all that crap correctly, you'll grab on to the wee flat triangle, climb up and go dance around on her roof!
Well. I'm glad I got that off my chest. So long as the world knows. If anyone does this, please post some screenies. I dumped my PlayStation long ago, so couldn't provide any shots myself.
I figure it's time for a little progress update as a few people have asked how things are going ;).
Artwork is still flowing, but a lack of concept art has made me hesitant to suggest new models until we have some more solid guides for interior styles and such. These concepts are in the pipeline, but there's a few other things to finish first. Maaatt has continued his work on house doodads (windows, doors and furniture) and Joe is working on the Paladin armour set.
Audio sound tracks and effects are well ahead of our targets for this stage of development, so as with artwork these are on the back burner until we start finding more track/effect requirements. The vast majority of work at the moment is going into the Client and Server, and here's what we have been doing:
We are rapidly ticking off the various core functionality required in the server based on a firm technical specification we have developed for the Tearsol Service as a whole. It documents the interaction of login, asset and gameplay services which must work harmoniously to take the user from server / character selection or building, right into the game where they are streamed the required media as they play. We are confident that this three pronged service solution is both elegant and highly expandable to allow for some of the cool player interactions we have planned.
On a more immediate level, Stratboy has made a number of BIG additions to the gameplay service since we last had the team tests a few month ago. Perhaps most immediately noticeable will be the implementation of velocity based predictive movement using UDP, which will eliminate the lag experienced in the previous tests. The server is also hooked up to the database and data cache system, allowing extremely fast access of information and a persistent world. Along with the database system comes some nice functionality, like buddy lists and such.
For the client: I think Alan has more or less finished the building editor, I'll let him talk about the functionality and magical data sizes of the buildings in his own journal entry on export-games.com.
While we have done stacks, there is a lot of stuff still to do before we are ready for another team test which includes the script engine, login service front end and asset service implementation. I hope this stuff will fall into place in quite short order and when it's all in, it will represent the complete Tearsol service, which will be an incredible achievement!
I'll leave ya with a little concept for some paladin armor... Cheers!
Howdy doo. I'm a tad late with this post but it's all the fuller for it. First up I'll just spin through a bunch of things that happened last month, a lot of the news is taken directly from my journal on export-games.com. After that, I'll rattle on about Milestone 5 and 6 in my usual gamedev.net review.
Our first bit of news is that Toggles, the developer of the tnet networking library which Tearsol uses for client/server communication has unfortunately left due to other commitments. He was kind enough to complete tnet and continues to host our project management and source tracking software. I want to say a big thank you to toggles for the work he has done to get our networking and server, which he made an excellent start on. I wish you all the best for the future chap. As a result of this, Stratboy61, who was focused on database implementation and architecture will be taking the reigns for all server development. This stopped server development dead for a couple of weeks, but hasn't caused any long term problems, I'll now be looking for another server dev to help Stratboy out.
During April and the start of May our core team also spent some time working on a small side project for a competition which challenged its participants to create a game featuring the elements of Digging, Earth, Mines and other earthy things, we produced Desperate Digger in around three weeks (yeah, we started a little late). We were extremely pleased with the results and looked forward to hearing how it did in the contest. Although it was playable some weeks ago, the contest due date has been all but forgotten by the organizers, perhaps because of a lack of entries. We do a little testing and polishing before releasing it as a free webstart application later this year.
Apart from Desperate Digger, the majority of our time has been dedicated to Tearsol Online. Joe, Myself and Maaatt have begun work on the first wave of final quality character armour, world items and environment props which are looking exceptional. In addition to this Steve is continuing work on the stunning audio tracks that everyone seems to listen to when they are developing for TO. I can't wait to see all these models in the client, I'll bring you the first shots as soon as the client/server programming is in place to support them.
Alan has continued developing the client with great speed, his current focus is on the building editor system which has been somewhat of a thorn in our side because it's responsible for a large part of the game but is a real challenge to get right, we are now on the right track with it. As soon as Alan is happy with the first version of the system I'll write up a little feature list which should give you all an idea of how the system works and how it impacts the world and gameplay. Here's some shots of an early version.
Milestone 5 got shunted out of the limelight a bit, mainly due to the hiccup of swapping lead server developers. Me and Alan saw this downtime as a good opportunity to re-align our production plan a little so that when server development got back online we would be right there along side it and able to focus his efforts on the client's development rather than worrying about dodgy tools and missing file formats. With that in mind we took the decision to jump into completing the peripheral bits and bobs including completing the terrain editor and our proprietary 3D format and also starting work on the building editor.
Fortunately because the export-games team is quite elite, we did manage to get 80% of our milestone 5 targets completed, oh AND made Desperate Digger too. So all's well that ends well. With a little luck, in a few months we will be pimping Desperate Digger on java webstart for some public appreciation (or indignation) at our work so far. I hope to see you there for tea and crumpets.
-- I wrote the previous stuff a few weeks ago, there's a few other things worth mentioning since then. Firstly the server has come on in leaps and bounds, Stratboy61 is working almost full time on it which has made a fantastic impact on my schedule, I have at least one in-depth architecture/functionality e-mail discussion with him every day, everyone loves those. So right now he's working on BSP trees and player FOV's. Fun stuff :).
Also we will be entering a game in this years 4E contest, we were planning on making it a few weeks before the four elements was announced and by happy coincidence the initial design covered the requirements. It's all about building and smashing castles, it will be multiplayer only, and it will use a lot of code from the Tearsol client and Server.
Milestone 4 completed. In this entry i'll give a quick summery of things that have been completed then go on to look at the most significant client/artistic achievement this month: The customizable male model and .tom 3D format.
This month has been quite a frantic experience for me, I've been in and out of hospital with random intestinal issues which has kept me away from the team for nearly a week, fortunately everyone is really enjoying themselves at the moment and the checkpoint/milestone system helped to keep things on track while I was away. So what have we achieved?
The Tnet server libraries are completed (for now), so we have an excellent foundation for our gameplay server. The database interface and architecture has been in development for the last few weeks, ahead of schedule, so we are now looking forward to getting persistent characters/accounts implemented in the next milestone. Concept artwork and Audio is on track and indeed ahead of schedule. We also now have textured and animated player characters in the world, with instantly swappable armour/body parts, so some great stuff!
I tasked myself with the unenviable checkpoint of gathering and presenting our target market research data this month, which has been... Unpleasant. I've never felt so much like I was back at school doing an utterly pointless exercise. The exception in this case is that the research is terribly important and interesting to me, although I had a very good idea of the situation before starting the project it was nice to confirm and in many cases exceed my market predictions. I can't reveal the research publicly quite yet, it's a little too persuasive :), but I promise to at some time. I hope that a combination of the research and early gameplay examples might help me find some small funding to cover the test server and initial legal costs.
One of the things I'm most pleased with this month is the addition of the rigged, textured and customizable male character model. It's been a nice task to have the artist model, rig and texture to the coders requirements, while at the same time the coder has developed the 3D format for bones, skinning and linked parts to the artists requirements. Before we embarked on this the artist mentioned that a previous project he had been a part of had fallen down because core artwork was developed without any kind of technical outline for its specifications, poly count, format etc. There's no doubt that this can be a huge problem for indie teams which do not spot the potential issues in their artwork pipelines before its too late. In our case we had to be even more careful, because of the sheer number of technical requirements which had to be followed to make the customization possible.
The export method requires us to develop in Max, export to Milkshape, then run through our own editor to set up the joints, that should give you an idea of the complexity of the work flow. If these requirements had not been figured out before the art was in production, we may have lost weeks or months of art development time or worse yet, the artist himself! Thankfully everything went smoothly and communication in IRC and over IM, usually through me, made sure that if anyone was barking up the wrong tree the issue would soon be identified and fixed before it became a problem. So the model format was completed along with the model, textures and initial animation.
I haven't noted it quite like this before, but a key aim in Tearsol Online is that we deliver close to 80% of the game content without any (down)loading screens. This means models, textures, landscapes, audio and GUI elements are constantly streaming to the users computer for caching. As you can imagine this makes every byte saved very important to us and the Model format is an excellent example of how we are working to make this level of streaming possible. By using space saving methods like moving normal calculation to the client and turning indexes into shorts we have roughly halved the size of our models, in addition we will also use compression / decompression systems in the content server and client to further reduce the size. Currently, the human model (that's seven separate body parts and eleven bones on ~1000 poly mesh) weighs in at nearly 10kb. Textures double this size, but I'm sure you'll agree it's an excellent start. We will also limit the number of different meshes and instead use client calculation to add detail and color tints to armour, producing a vast array of types without the additional download time. I'd like to write a more detailed analysis of the various techniques we are using to make this level of content streaming possible at some time in the future. So to finish, here's a shot of our male character in a few of his favourite poses, don't worry the goatee and hair are optional :D.
And finally, a wallpaper created to promote the official name of the game: Tearsol Online. I know its a bit busy for most of you, but I'm sure you can appreciate the artwork!
Visit Export-Games.com for public developer journals by a number of team members - including more frequent updates from me. Cheerio.
I've been yacking on about my excitement at buying some sort of server for a month or two. So now I've finally bought one, here is the definitive service and hardware review - or as I like to call it, "ruddy stream of consciousness, wot?".
We were searching for a low to mid range box that would allow us to comfortably test xxx client connections and generally make the server core / database / script integration and performance evaluation and testing as hassle and variable free as possible. We were also mindful of the need for a lot of on-site support to deal with any errors which might result in unrecoverable crashes caused by running bugged code. I was personally looking for a monthly contract with no setup fee, I am too well aware of the number of 'fake' hosting companies out there.
After searching through a lot of different dedicated and co-location packages in the UK and USA I stumbled upon this bizarre website: Rackmounted.com
Bizarre because the site is technically outdated, bizarre because its a very small company with very great connections and bizarre because its run by "one of the oldest hosting companies on the net", (although maybe the last two explain each other).
In terms of hardware, their budget option is perfect for us at the moment; it includes a 1.8ghz Celeron and 256MB RAM. 200GB's of data transfer each month, which is more than enough for our current uses. It's a fairly standard package for the price (considering a slight premium because of 0 setup fee), but it begins to shine when you take into account their customer service promises, which are closely tied with the fact they are a small team.
Firstly, all customer service staff are trained in server software and hardware maintenance and are able to sort out your problems themselves, no Chinese whispers through ranks of middlemen. Secondly, they claim that any job which takes under half an hour is completely free, i'm sure there are fair-use limits to this, but its an extremely fair offer considering the majority of technical jobs like reboots, hardware checks and installation of hardware and software often take less than 30 minutes. Notably, this is an area where budget hosts tend to charge a small fortune.
So what of the experience itself? One of the fiendish methods employed to maintain a select customer base (/sarcasm) is the requirement that the client must print sign and fax return the signed usage, service and billing contracts. No hardship in my mini-office but quirky to say the least. Once these we're dispatched I sat back and waited for contact, the next day I followed up with an e-mail to customer services asking for confirmation which was soon cheerily confirmed. I was asked what linux distro I wanted on the box and asked for Gentoo, the next day they responded to let me know that it was causing technical probs but that the server would be up later that day. Instead of Gentoo I got fedora (no big loss at this stage), but instead of the 1.8ghz cpu I got a 2.7 to make up for the trouble caused, bonus!
So we got the server on there and had a few test runs. Local pings inside the US are a little high, I think at ~100 but my ping from the UK is right on what it should be from a backbone data center in the US at ~160 so I'm thrilled. I've also had a run of e-mails setting up DNS for a few domains and the conversation got onto talking about Phoenix Feather and how they can help us in the future, which is always nice.
So theres my thoughts. If you are looking for a similar solution I reckon rackmounted is a great service, a slightly higher cost than the super low budget hosts perhaps but a an excellent price overall. Having those small business perks is a real treat with a hosting company and something which is definitely worth while if you are serious about remote hosting in comfort. The only slight fault on their part was the initially slow response and the failure to install gentoo, but later service and the hardware upgrade more than made up for it.
Milestone Three has just passed. We made excellent progress and hit 80% success on the checkpoints, which is great. It means we now have something which passes for a multi user world. People can log on, walk around, chat to each other and log out again. Thrilling stuff! Milestone Four will build on this foundation to introduce the first semblance of gameplay: customizable character models and accounts. I'm short of time so I wont do any focused analysis on progress, you'll have to forgive me because I think this entry will skip around a bit.
I'm now trying to speed up the creation of concept art. Right from square one, I have been determined to encourage the most talented people to join the team, and to give those people the support they need to do their best work. A flick through the CV's and portfolios of our lead developers is a real adventure. The cost of this strategy of setting the bar so high, is that finding more people of the same skill has become really tricky! On the bright side, as screen shots and previews become more impressive, proving the progression and quality of the project does become easier.
Without intending I've begun to segregate the team, I don't know if this is a good or bad move, but it feels quite natural. At the start I was adamant that an official member hierarchy wasn't needed, It was clear who was boss (Me and Alan) and there wasn't any need to 'pull rank' at discussions. But as the team has grown, I've naturally begun to rely on the longer term (read three/four month) members to steer newer members. I'm aware that some people can be turned off by having to deal with team politics, so I keep an eye out. Hopefully nothing too terrible will happen!
We are now just a Fax away from dedicated 1u blade in a backbone data center. Toggles, the lead server dev has mentioned that this may be a little premature, but I'm getting serious urges. The deal seems excellent considering the amount of free, and very low cost support available and the box isn't too shoddy either. We don't have any hosting issues at the moment, but I want to offer you guys and other development communities an iterative build/test cycle so we can get some quality input. I want a platform where the connection speed is a constant, non-issue.
Here's a few nice screens: first, the ranger you saw last time, but in multicolor glory. Second, a look at a medium detail Tearsol capital city concept. Third, a few of the dev team wondering around in the world.
If you would like to see more pics (and a movie and audio track montage) visit my new help wanted post! Thanks for reading!
I'll start where I normally do, a milestone summery. Number two just raced by, so here's our hits and misses for the past month. I think I'll say a few words about the team and its structure too.
First up, a few points about the project at large, which are starting to become relevant. We intend the Phoenix Feather client to be playable on just about any system out there, this seems like a noble and worthwhile endeavor which will give us somewhere in the region of 30% more custom (note, the ratio of Windows machines V's all others is somewhere in the region of 10 to 1. But the people using 'other' machines are so desperate for decent games they are far more likely to check out a nicely presented indie title, thus my seemingly unreasonable user base guess (wow that was a long side note)). The intention is to market strongly to these minority interest groups with an aim of generating recognition from publications / journals / journalists that move in these circles. Where a decent indie game has to work very very hard to get recognized in PCgamer or similar mainstream publication, we will try to break the ice by pimping ourselves to the likes of Linux format and Mac review(?), still extremely notable and very difficult tasks, but also far greater chances. Anyway, thats a good way off yet, but it's worth writing down here.
So multi platform, launches from the web, optimized for a wide range of machine speeds, plans for translation. Indeed, we haven't even ruled out the possibility of future migration to palm/mobile phones. If there is a way to expand our potential market any more, it's illegal.
Our server is written in C++ and draws heavily on scripts for variables - GMscript (almost certainly). We have a custom built base network library (Tnet) which deals with the peculiarities of Java's byte order and takes care of multi platform functionality for the server. Most dynamic data is managed by the usual suspect, mySQL. Ok, on to business.
Client programming got bogged down this month, the issue was caused by a few factors jumping on top of each other to make an unsightly stack. The milestone targets were carefully considered and not particularly optimistic, but a few factors easily set us behind schedule.
Problem 1: Building editor...
We intend to use extremely compact files to store custom house designs in just a few kb's of data. This enables any architecture to be completely dynamic, buildings may be created, edited, moved and deleted without patching. Unfortunately me and the technical lead set ourselves up for a fall by not sitting down to fully design this format. As a result many hours went into development before we realized the system was seriously inefficient. Fortunately, by failing, we saw what NOT to do, and the developer had a stroke of genius which will lead us to a far more satisfying system.
Problem 2: Model format.
Another case of failed planning, we didn't sit down and discuss the requirements of the format as fully as we should have, fortunately this wasn't a huge blow because we caught the problem sooner. It was only after mentioning the progress of the format to a 3D artist that the problems became clear.
Problem 3: New developers...
Don't get me wrong, we're very pleased to have two new programmers joining the team, but there is a good deal of work that needs to be done to fully integrate new programmers (or I suspect any developer) into a current work flow. We had to do a lot of SVN shuffling and re-organizing (hopefully we won't have to repeat this in the future), re-assigning modules is far more difficult than it sounds, specially if some preliminary work HAS been done on them. There is a lot of discussion and explaining involved when you are first introducing a new person to current source code, methods are questioned and people generally 'don't get' whats already been done. It's clear how loosing a lead developer, or having to deal with constant departures and arrivals can kill a project if documentation and commenting isn't kept bang up to date, in any case, its a serious slow down.
Problem 4: Fun stuff...
Theres far more exciting things to be doing. Now that the server is functioning, we chat about newly implemented features each day and its very tempting to spend the entire time simply updating the client to test and play with with these new additions to the server code. Evenings which should have been spent developing the model format are (I won't say wasted, because it'll have to be done at some point) spent doing far less pressing things. This is something the team will have to come to terms with, sooner rather than later.
While these new developers (mentioned as problem 3) are initially a time sink, they are also the solution to our client development friction. The three major tasks, which have hung over our single client developer this last month, can now be spread out between three. I'm confident we can regain lost ground as a result. The next issue is, our client will begin to race ahead of server development [grin] fortunately the client devs all have some crossover skills, so we should be able to move between client/server as it becomes necessary.
Here, take a break and have a look at some lovely concept art :)
As I mentioned earlier, the server is coming along swimmingly. We can start up Phoenix Feather via a webstart link, login and chat away with other developers, which is well ahead of our milestone. Items and movement is being added as I speak. Thats all very exciting, especially so because we haven't used any external packages (raknet for example) [smile].
Perhaps its a little premature, but I went off on one a bit this evening and reviewed our hosting plans. I'm currently fairly sure that we will build a beefy 1u 'blade' of our own and use colocation hosting to get on a backbone. In the cases I looked at colocation cost roughly a tenth of the price of a comparable rented (dedicated hosting) package. The system I intend to build is near the upper echelons of the dedicated packages which cost $150 - $250 a month (depending on provider). With colocation I can build and ship the machine for under $1,000, I own it, and a slot in a data center is around $30 - $60. Bargain. In addition to this, owning the machine means we can reduce the chance of potentially expensive problems by doing 'burn in', compatibility and stress test simulations localy. I'd be particularly interested to hear peoples (_winterdyne_ *nudge nudge*) opinions on the most effective hardware configurations for single box servers dealing with hefty db's.
The next milestone targets aims to get us very comfortably into the realms of a multi user world. Walking, talking and drooping crap on the ground. I'll update again soon, congratulations if you read all the way to the end! I've got to sleep.
We are quickly approaching our second milestone now, which is due for completion in two weeks. Here's a round up of the last few weeks of work, and where I'm hoping it will lead us...
Work on the client engine has continued unabated, with a fairly good list of features now implemented in a rudimentary state, picking, collision detection and billboards are the latest additions, with basic UDP and TCP/IP frameworks also ready to go. We are quickly approaching a 'usable' client. This has been helped along tremendously by a new programmer, who has good networking skills to bridge the gap between our core Server and Client devs.
Artwork has been a bottleneck from the start of the project, because of a lack of good concept artist interest, but that has finally been corrected and guess what, three came along at once! Our first concept art pieces are now in production:
Human male (ranger),
Countryside with house,
A nice range which should stand us in good stead for a while and help us display the high standards we are working toward. As soon as these are completed we will create a round of less functional (but more exciting) artwork for promotional material.
It's worth mentioning that the most recent developer applications all came from help wanted adds posted on other sites. GameDev is an excellent resource, but be sure to spread a wide net on more specialist sites to get the maximum applications. A well structured add posted on more focused sites are a novelty to the readers, will stay on the front page far longer, and generate more interest in your project, even though they have far fewer views. At least, they did in my case!
Audio is coming along excellently, with no trouble to speak of. Our composer has been doing an incredible job so far and has easily met my expectations for the tracks he's produced without any concept art or game media to score too. I think you'll love his work:
1:40 preview from the middle of our main menu track.
I think it's nearly time to start advertising for sound effect and texture artists so we can really get the Asset production ball rolling.
Interest in the project is starting to pick up pace, something which I intend to encourage whole heartedly. To date we have only been visible in help wanted posts (and my signature:) and we have picked up a rather cozy post rate in the forums with a few hardcore fans popping up already. This is fine for now, but in the long run I'll be using every trick in the book to draw visitors.
Another interesting turn of events introduced the possibility of Chinese translation for Phoenix Feather, to be honest, it wasn't something I had considered, but it seem fitting to translate to as many languages as possible. Our software is designed to run (and serve) as many electronic languages / platforms as possible.
Anyway, i'll leave you with a shot that was published on new years day of our client loading a custom house. Yes, the brown cube [grin].
In demonstration against the ungodly amount of Viagra spam blocking up the internets, and EDI loosing his grove. I am now closed.
Also, someone said it would make me look cool...
So first up, milestone 1 report: We did great, we made 15 out of 18 checkpoints and managed to get a head start on a few for the next milestone. The requirements were not very tight for this one because I was testing our pace, but even so we did a lot of work. I've tightened milestone 2's requirements a tad but I forgot about Christmas holidays, so I think that'll be quite easy to reach too ;)!
As readers of previous entrys will know, my GDnet 'help wanted' post performed extremely well, so well that it's now causing problems; I wasn't intending to begin art asset production for another two or three milestones but I've had applications from some incredible artists which I couldn't turn down. As a result we've now got a bottleneck caused by a lack of concept art. So I've done the only thing a responsible game producer can do, and gone 'help wanted' crazya all over the boards of other sites too. Concept art applications usually seem to make up the vast majority of responses to any help request, and yet the pool seems to have gone dry, perhaps I'm being to fussy. Contracting is looking more and more attractive every day.
The good news is that we are powering ahead with both client and server development. Our primary network programmer has been busting his guts to complete our networking libraries, which allow cross platform and multi language networking support which is vital for Phoenix Feathers C++ server and Java client crossover. We have had a couple of successful tests and are now in a position to start seriously developing the server architecture. I know how much you folks like pictures (almost as much as code, right?), So I'm going to lure you to our News and Announcement forum for a pic of our first networking test! Feel free to grab our xml feed for your site...
In other news, Merrrrry Christmas! This year I have almost exclusively requested network and java development books. Boy the holidays will just fly by :).
It occurred to me, that I've only managed one post a month, like clockwork. Now, I'm not a man of many words, but thats clearly not good enough. At this rate my final document will only be a few pages. So here goes, almost twice a month from now on!
We're ten days away from milestone one now. It seems odd to say it but my main focus over this time has simply been project management. Sure I've thrown in my fair share of time on art, audio, and writing but I've spent almost double that simply managing. So what does that mean? "Control freak!", I hear you cry, but I was never like this during my education or work! This is the first time I've felt such a weight of responsibility not only to myself but my other team members as well, and you know what, it works for me. Since we started I've steadily increased my 'project time' up to roughly six hours a day while I've budgeted to cut my employment hours down quite substantially, although I have to keep working a little more than necessary to save up for advertising / hosting expenses. I've decided to aim for GBP3,000 which will be split between hardware purchases, connection rental and advertising for three months. Of course this will be supercharged if I can successfully get sponsorship or investors.
A lot of my last few weeks have been spent on research and discussion about technical requirements and solutions. I've dug the Internet in godly sessions, which generally end in either total browser failure, or a flurry of random bookmarking which are all filed in a severely disorganized 'resources' folder. One of the most important aspects of the game is that is can be launched and played from java webstart, I want people to be able to get into the world and play wherever they can; places like the library, IT labs or work. Me and Alan have had long discussions about features and their costs, most of the time we are trying to figure out the most bandwidth efficient way of doing things.
Part of the first milestone lists the requirement of a specialist server programmer, so my most recent project has been planning and posting our help wanted add, which you can read here. Its drawn five applications in just under a day, which is the best performing help wanted I've ever posted and its hardly kicked it into gear yet! Granted, four of them are from artists, but I'm not complaining :). I made a special page on our website to welcome referrals from the help wanted post, which I thought was a nifty idea, and even though its very basic some applicants have mentioned it positively, and it means I know how many people are visiting from my post.
Anyway, thats quite enough badly formated text for one post. I'm off to make a forest on our test island! Until those pictures get published, I'll leave you with a picture of our terrain editor, don't be fooled by its minimalist layout, it's one powerful piece of kit.
Well the four elements contest is over, we didn't get our entry, "Mad Mad Ninja" finished on time, but I was amazed at how much we achieved in the time we had and I'm extremely happy with our results. The project will be finished off and released at some point in the future.
We had planned a week or so break after the crunch, to get a bit of rest and some distance from each other. Unfortunately I published the Axiom design document the day the contest ended and that lead to much excitement - to cut a long story short we are now two weeks into the actual building of Axiom. So here's an update on what has happened since the end of the contest, and where I plan to go from here.
Most importantly - I've been battling with the xoops content management system to get a team website online. It's actually been a real pleasure but knowing some php does oil the cogs a bit. I can't stress how highly I value a fully kitted out team website to help get things done. The xoops modules repository has something for everyone. In the Developer only section we have a Wiki, File Repository, CVS system and calender(!) It's all anyone could possibly want. Although if your not a developer there really isn't much to see yet, either way please drop by from time to time: www.export-games.com If you make an account you'll get a newsletter whenever something exciting happens.
I have posted up our first development Milestone on the team wiki, one month from now we hope to have the map editor completed and the first sprites and 3d models loading into the engine. If we're successful I will officially announce the project through a press release to a number of game websites.
This stage of development always feels a little strange. All the preparatory work is done, and now its a case of knuckling down for the long haul. Having said that, there's guaranteed be a few surprises along the way; to keep things interesting.
Just a quick post to log where I'm at:
Axiom has been moved to the sidelines until the 4E contest is over. I came into the contest with a team mate from the Axiom project, we left things a little late. I think we started work three weeks ago. Anyway things have moved very quickly, and we are on the brink of having a playable version with all the features added.
It's just the two of us, i'm taking care of all the artwork / animation / sound etc.. while my buddy slaves away on the code. Here's a pic of a bunch of models i've made for the game.
They are just having a drink and chilling out till the killing starts.
Well, I've just come home from a great holiday in the lake district. The place is undoubtedly one of the most glorious areas of the UK, filled with rocky hills and epic views to inspire the imagination. The time spent enjoying the views has certainly made an impact on the mental images I have of the Axiom landscape, hopefully for the better!
Before I went on holiday I got roughly half way through the design document and its peripheral reference guides, which I'm writing simultaneously. I had spent about forty hours on the documents, that includes research time for language features and development tools. I had a read through the work I had done, to remind myself where I had got to and was unpleasantly surprised by how much I was unhappy with. While the core concept remains the same, I have made a few U turns on some fairly big gameplay systems. I also found lots of places where better descriptions were needed. So yesterday I edited for three hours, making the changes I had noted down previously.
I'm fortunate that I learned how to write good design documents a few years ago, at uni, but a refresher is always worth while. Gamedev and Gamasutra host loads of articles about doc's and even have full examples and templates. Here's my favorites...
Monolith's Claw Design doc is a great example of a professional design document.
Tom Sloper's article is a concise look at the main uses of a design document.
Chris Taylors Design document template is invaluable.
I've used Chris Taylors template with nearly every project I have worked on. It saves a huge amount of pen and paper and page formating to have so much of the document framework laid out when I start. Although thats no excuse to sit back and assume I have everything covered! The largest challenge so far, has been keeping track of points I need to expand on in later sections, and then positioning them somewhere appropriate in the design doc. So, some pen and paper note taking has been a necessity, but generally a template is a damn fine thing.
In other news, I've begun work on concept art, nothing flashy for now - just some GUI designs and a little pallet testing. I want to have a few concept pictures in the design doc when version 1.0 is published. Next time I'll hopefully be reporting on the finished design doc, and provide a detailed look at some special sections that will aid remote indie development teams.
Its painfully obvious how many projects start with the best intentions, but fall by the wayside at some point in production. These are not special cases, they are the majority of indie team projects and a good number of professional projects. There are pitfalls at every point of development, sometimes they can be avoided, but often they can't be seen beforehand. Fortunately there are a number of things that can be done before and during development to lessen (or even remove) the threats which cause projects to derail. With that in mind, I went in search of advice that might help me minimize the chances of project failure.
I'm right in the middle of writing my Design Documents, so I want any tips that might help me 'failure proof' those documents. The most valuable resource I found was Lone Wolf Killers, part one, and part two which are specifically written about what can go wrong during the development process, and includes a few good details on the design document, it's worth reading through these at any point in development for some great insight. Also, the following links cover an array of other problems your project might face.
Battling Bad Press
Legal issues:part one, part two, part three.
Even in the early stages of development, its important to understand what you might face in the future, and plan for it accordingly. The articles listed above are useful as individual guides, (if you find yourself in a tight situation) and as a general framework to guide your project from the start of production, gracefully through any hoops that might have normally caused problems..
I also want to mention the Post Mortem section, which is packed with honest examples of success and failure situations in mainstream game development.
What have I learned?: If I don't have every part of Axiom and its development process documented from the start, I'm increasing my chances of failure by a huge amount. It's also terribly important to have a down to earth, honest idea about what can be achieved. Building and managing a team is not like running a business, its about being part of a small community and earning the help of other team members, who in turn, must feel appreciated and be able to see that their valuable input is needed and used well!
Next time, The Design Documents: Part 1.
Feedback is always welcome.. How do you motivate yourself, and avoid failure? Thanks for reading!
Hi, here's a quick introduction to my aims for this journal...
I plan to write a detailed journal of my own indie game's development, documenting everything involved, from the first spark on an idea, to perhaps, the finished games distribution.
At the end I intend to compile this along with the design and production files used, into a guide that might help other amateur developers walk the rocky path with a little more confidence.
I'm very aware of the other articles and tutorials that cover certain aspects of game development, there are also many excellent Journals maintained by some members, which also document their own projects. These are valuable resources, that I will refer to as the need arises. However, this Journal will not be a focused "how to" guide, or a generalized account of the immediate problems I face. It will be a documentation of the development processes I go through, probably including numerous links to other Articles, Journals and Forum threads. I simply hope to provide a good road map of the bridges I will cross, and the potential dangers I may face.
From now, until the final release of Axiom, I aim to update at least three times a week. I'd like to make this journal a down-to-earth example of a complete indie project, from the perspective of a new developer, with some, but by no means all the answers. With that in mind, the majority of my posts will detail my research, experience and reactions to many aspects of development. I intend to make detailed references to my research and quote many pearls of wisdom that help me out. A few of the major topics covered should including the following:
Writing the Design and Concept Documents,
Creating a Production schedule,
Managing Public Relations,
And on, and on...
Most importantly, not failing! Which will be discussed in my next post.
I greatly appreciate your feedback on all my entries. As a starting point I would like your thaughts on my plans outlined above. How can I make it as clear and informative as possible? What information will benefit future readers the most? Am I completely off my head to presume anyone will care in the slightest?
Thanks for reading, come back soon...