About this blog
Personal journal of a programmer in the games industry.
Entries in this blog
Many thanks to Ryan at industrybroadcast.com for recording one of my articles. It is very flattering to have been approached and amazing to be able to download a podcast with my own words read back to me on the subject of Agile Vocabulary. Perhaps I should read aloud new articles to myself to make sure they are friendly to that format!
I have another article in draft that I started on the Bank Holiday Monday and will try and finish that over the weekend. If anyone has a subject they might want me to try and cover suggest it and if I can I will over the next few weeks.
Orginally posted at paulecoyote.com
This is the start of a series of articles about agile development. The motivation behind writing these articles is to expand my knowledge of the topic by explaining how I currently understand it. I imagine feedback from readers about their own experiences and understanding of the topics discussed could help my own comprehension of the material.
This entry focuses on some basic vocabulary used in the project management side of agile practices. The vocabulary presented here concentrates on requirement gathering, describing deliverables and estimation and will be used in later articles in this series.
The game team I am currently on use scrum (though purists would called it "scrum but") which is common methodology adopted for managing time on an agile project. I have myself used "agile" style development practices like unit testing and continuous integration (using NUnit, Cruise Control .Net and Trac) in my past life outside of the games industry. I have made sure to make time to read about these agile practices for years.
Most of the week beginning 8th of February 2009 I took part in a lab called Agile Development in C# and I had a glimpse of techniques used in teams around the mother-ship. Spending the week building a project, managing the backlog and taking turns at being the scrum master and team lead was a very educational experience. "Living it" with guidance in this way was like a crucible of learning (there was an element of competition too). It was very rewarding yet quite draining!
My current lead developer attended the same course - thus I am more confident about "buy-in" of some agile practices at that level because of the extra common ground that brought me. I have already had the opportunity to apply some development techniques discussed in that course to the main code base I work with day to day.
Vocabulary: User Stories
User stories are requirements written from the perspective of the customer. A collection of user stories make up the "product backlog" and can be prioritised by how important they are to the user. This allows the developer to concentrate on things that would be immediately useful to the customer for when a vertical slice of the product is delivered at the end of the "sprint".
A user story is an expression of what they want and why, rather than any technical detail of the how.
A good example might be: "I would like my lawn to be short so it is pleasant to lay back and read in the garden."
A poor example might be: "Mow lawn to 2 cm using a rotary petrol mower."
The user stories concentrate on requirement gathering and intent. These stories help communicate how the development team understand the requirements. They also allow quick feedback from the user on any good or bad assumptions made.
Vocabulary: Story Points
Story points were introduced as a way of quantifying an estimate of a user story. Where as estimates are usually expected as a duration, story points are based on an estimation of size and complexity.
For example a gardener might want to estimate the size of the lawn, see how overgrown it is and how much edge work would be necessary to keep it neat before attempting to estimate a time. Depending on weather conditions on the day, it may even take slightly longer on some days than others.
The customer expects a regular fee and period of time spent in the garden rather than taking in to account difficulties from one week to the next. One week the garden may not have grown very much and the whole thing will be quicker to complete. Perhaps the gardener might take the time to make nice little extra touches to the garden to add value that easier week where there is ample time left over.
So a story point is not directly translatable to time because of the various unknowns. The number of story points against something keeps track of how much effort will be required - something with more story points is harder to complete.
Tasks are derived from breaking a user story down in to small chunks of functionality. These tasks are estimated in hours (or story points). The estimated time remaining is updated daily during the scrum.
A task is only counted as "done" when it is verified. A consistent measurement of "done" is important so it can be signed off for the sprint. Quality gates can be used to measure if something is actually complete. This could include passing tests and automated code quality tools.
Once all the tasks for a user story have been completed, functionally tested and verified, then it can be taken from the product backlog.
For example tasks for large garden could be (in the form of Task (verify) - duration):
Mow lawn (lawn appears visibly shorter. Regular straight lines can be seen in the grass) - 2 hours
Tidy garden and rake lawn (no debris can be seen on the lawn or path, grass cuttings bagged and loaded) - 1 hour
Vocabulary: The Daily Scrum
The Daily Scrum is often a short morning stand-up meeting only including people doing the work itself. The scrum master role can be taken up by any member of the team. The scrum master asks the questions:
What did you do?
What will you do today?
What is blocking you?
The estimates are updated on the current tasks, and the scrum master goes about trying to unblock the team where they are blocked. Blockages could be something technical, through to waiting on another team to complete a task.
Continuing the gardening example - if the gardeners have noticed the lawn mower blades have become blunt and causing the team to slow down, it would be up to the scrum master to communicate with the tools team and ask them to sharpen the lawn mower blades.
A selection of user stories are chosen for the sprint. Stories can be added or dropped from a sprint, but the deadline for a deliverable does not change. If the deliverable, demonstrable version of the software is created ahead of time and the team feels confident they can take another story from the backlog and if it's too big, break it down where possible.
The idea of a sprint is to always have something to show for the work everyone has done at a regular interval, to allow the users to feed back. At the point a sprint begins, the requirements of the stories they are working on are locked. A sprint can be completely aborted, or a story dropped... but the requirements of an existing story should not change. The motivation is that the team are not aiming for a moving target and can concentrate on getting the unit of work done.
Ideally each sprint delivers a vertical slice to show progress. For the running gardening example I have been using - this might be completing the more simple front garden entirely to prove the gardeners have understood the requirements sufficiently to maintain the garden to the customer expectations. It also gives the customer an opportunity to feedback or change their mind "actually, I want my lawn to have circles rather than lines".
Vocabulary Cheat Sheet
Daily Scrum: Short stand-up meeting. What did you do? What will do today? What is blocking you?
Product backlog: Prioritised list of user stories.
Quality gate: Checklist of things to verify work against before it is counted as completed.
Scrum master: Leads daily scrum. Tracks work completed and remaining, and organises removal of things blocking the team. Ideally a role rotated between members of the team.
Sprint: A period of time where user stories are chosen to work on. External influences are not allowed to change the requirements of the stories being worked on. Sprints are a fixed length, but stories can be postponed or additional ones taken from the backlog.
Story points: Unit of estimation measuring complexity.
Task: A user story can be broken down in to one or more tasks. Tasks are estimated daily in hours (or story points) remaining by the developer working on them.
User stories: User requirements expressed in sentences from the customer perspective.
Vertical slice: Showing off a feature in an application that works from start to finish but may be limited in scope. For example a rope bridge crossing a chasm is immediately useful and allows people to cross. Having that in place can help to build a better bridge later.
Some of my references are company confidential and cannot be shared here - the web is full of useful information though. The sites below are useful launch pads to further reading.
Agile manifesto clearly states the priorities of an agile developer: http://www.agilemanifesto.org/
Wikipedia has a good overview of scrum and vocabulary discussed here: http://en.wikipedia.org/wiki/Scrum_(development)
Pragmatic Programmers (I've been a fan of their books for quite some time): http://www.pragprog.com
Jeromy Walsh via Joel Bennett's blog for subconsciously planting the idea of a rope bridge I used in my vertical slice definition.
Agile game development site: http://www.agilegamedevelopment.com/
Laura Brandau's blog about her experiences with Agile development: http://www.bridging-the-gap.com/
Andy Barton recommended this to me the other day, but have not had a chance to look at it yet: http://www.infoq.com/minibooks/scrum-xp-from-the-trenches
Please comment any useful links you have stashed away :-)
This entry was first posted to my external blog here: http://paulecoyote.wordpress.com/
I have read a few blogs recently about the industry, how the authors got in and what they think about what is going on right now... I figured I would add my voice to the discussion. The news is full of stories about so many closures and layoffs everywhere and the games industry is not immune. Studios are shedding jobs through publishing deals falling through, bills not being paid or a change of focus and direction. I am acutely aware of how fortunate I am being employed in times like these.
Some companies are quite well known for a high level of churn, especially during the final stages of shipping a game and straight after. Some of this is natural - people leaving for new opportunities of their own choice and looking for a change or promotion. Others have contracts that are due to end and do not get renewed - where as this is difficult for the employee at least it is predictable and they can look for work in advance and perhaps have a financial plan in place. Salaried employees not expecting the chop, contracts terminated prematurely... those people have it the worst.
When you are unexpectedly on the job market, there are all kind of pressures that wouldn't exist if the move was your choice - least of which might be competition for a position with a former colleague. Staff with experience are harder to come by though, and job descriptions for all but the most junior positions seem to expect it. Some programming jobs do put game industry experience down to preferred rather than required.
A high rate of churn means many transient candidates in the recruitment talent pool - it is probably easier to get hired elsewhere at a higher level than to get internally promoted at many companies. Indeed for an open senior position, it may make sense to hire someone from outside because they are proven in the role or because the company has money for the new hire-possibly due to this coming from a different budget from the promotions budget. The company knows that they have someone in the wings capable of the title, but may not be likely to reward that position or money to the individual in question while they are content to stay in their current role.
I have only been in the game industry for just over two years - I came over from the business/government software sector where I had worked my way up to being the lead programmer on a few products. Ever since I was a little kid I had always wanted a credit on a game, so I did not pass up the opportunity to move in to the industry when it came up. I'm proud to say I have achieved that ambition - not just on any game - but a successful game. I worked on a bug here and there for Fable II, but my aptitude and experience from my previous life meant I was employed as part of the tools team. Working on the tools team might not be a glamorous part of the process, but it still can be very rewarding. Your customers are internal and you can immediately see when you improve their day.
As far as career structure goes - I think many software engineering roles in games or business software sometimes require you to jump ship and move around from time to time. Indeed some of the most senior people at Lionhead have moved around pretty frequently before settling there.
People who have left Lionhead tend to do well - a "standard" programmer left recently to become a technical director elsewhere - quite the career leap. The Media Molecule guys are also prime examples of excellent alumni - setting up their own company and publishing a game that garners so much critical acclaim is an impressive feat.
Owning or being a partner in a company is something I see for myself in the long term future. Having your own future in your hands is appealing because although there is relative safety working for someone else responsible for you getting paid - it does not stop a decision high up in the chain of command resulting in your job position being eliminated.
I do not want to leave Lionhead anytime soon though - I feel I have much more to give to the studio - the skills and experience I have are uncommon in the games industry.
For those wanting to get in to the industry despite how turbulent it seems to be - my advice would be to pick something to specialise in and be able to demonstrate it in some way. For students, remember that university is a game itself - where often the grade is the first thing people notice, then the subject and the institution it came from.
When you are starting your university programme, think seriously about what goals you hope to achieve from your course. What are your strongest skills? What skills do you feel you have the most potential to develop? What are your biggest weaknesses? Make sure you choose a mixture of options which help you to maximise your strengths, develop the areas you know will benefit you the most, and challenge the weaknesses without destroying your final grade.
Do not over commit yourself trying to face subjects addressing the areas where you are least capable - keep this in mind especially in the final year when choosing your dissertation / final year project - there are going to be many pressures on your time. While it is important to build those areas up, it is just as vital to be the best you can possibly be at the things that come more easily to you.
It is important to dedicate personal time to build up your own portfolio so you have something to show other than university course work. As for picking the degree itself - if you are a programmer a games degree might not necessarily be the best thing - a good computer science / math degree plus being able to show your own side projects might put you in an even stronger position. A traditional degree adds flexibility to your career too... if the games thing does not work out you have a good basis for plan B. Just as I have made the leap over to games, I have known some game developers that have migrated over to business and banking software.
If you cannot get in to the games industry straight after university do not despair - just make sure you are working in something where the skills might be transferrable in to the game industry and get some experience under your belt. It is very important to get real life experience because even the best university course is still academic and reality is often a little different. Besides, a really good, open minded studio might later see something in you that they want [smile]
Every day I come in to work I see something new and inspiring - and to be in the company of such talented and visionary people is an honour. Being here and learning from those around me is good for my future, and no doubt will open up opportunities for me later on in my career.
Lionhead is hiring... apply via me if you are interested! [grin]
(this is a repost from http://paulecoyote.wordpress.com/)
The Fable II team is going to London tomorrow... I know I haven't had much time to hang out here recently (for obvious reasons) but for those that know me if you want to meet up here are the details [grin]
Not been around these parts so much at the moment, though I do pop in to the IRC now and again. In a few months time things will calm down again I'm sure.
I am glad that MS decided to give away 4 XBox Live Arcade licence opportunities to the top four games. I firmly believe that there is a place for games based on .Net technologies for the mainstream, and continue to grow as a development platform for game related tools and technology.
My hobbyist developments are taking a backseat to work related stuff overflowing into my own time. But that is fine, because it's all helping me learn and grow anyway [smile]
Meh, region locking sucks. The card is only good in the UK.
May be I should just start have a "I live in the UK and deserve your Live Subcription card because" type thing.
Or UK only entrants. Though I'm not sure if there's enough people in the uk interested.
I'm not going to let it go to waste anyway!
It's funny, I've got this X-Box Live 12 month sub I'm trying to give away / do something fun with - and it's turning out to be very difficult.
I thought it might be worth enough to do a little competition with, but I am not sure that it is:
I guess since getting *into* the industry I've not had so much time to hang around here... but I still want to give something back.
I seem to be taking a bit of a hiatus from gamedev since the gamedev pages went dark a few weeks ago. At the moment I don't seem to have the time to trawl the forums, but I have still subscribed to some of your blogs. Though the rss thing still seems to be really buggy though google reader.
I think it's temporary, and once things are more settled I'll be visiting more again. I've got a couple more weeks left before my starting probationary period is up (almost all jobs in the UK are like that) and know that I've succeeded in achieving a dream that seemed very distant only a few months ago.
Wow - survived the first week at the game company I'm working at. Not really sure if I can go in to any detail at all, but it's just like those funky IT Companies you might see at The Movies [wink].
People are great and friendly there, getting decent gear to work on and the whole place just has this... this enormous intellectual and creative energy I guess.
I hope I can make something of myself there. This achieving an ambition - I'm just scared for one reason or another it will end. Probably partially because of the bad luck my Mrs has had over the last year or so with jobs.
I may be just a cog, and have lost responsibilties I had in the last job (where I had loads of other stuff then development to deal with) - but right now, I'm enjoying the prospect of just getting down and dirty with the code again. Gotta learn the ropes again before being able to climb up them I suppose. Plus I'm a part of something big, and *finally* I will be credited on AAA games... well eventually anyway. Whenever games are released of course.
It's all very exciting!
All very busy too, not had so much time for gamedev.net recently - though I did stray in to the IRC chat rooms a couple of times last weekend. Me and the Mrs are moving home to be closer to my work, but still close enough for my wife to commute to her job too. That is all happening at the end of this month. Unfortuntely she's not here helping me pack and stuff right now, because her gran was taken ill and died and she's been over in the states while I've been here in England. I'm missing her and I wish I could have gone with, but you can't help the timing of those things.
So it's all go go go right now.
Well I've been a bit quiet because I'm quitting library software for a developer job in the games industry.
I am so excited I've not posted about it yet because I still can't quite believe it's true.
I got in through experience and skill set that is not obviously applicable to gaming - but heck this forward thinking studio has given me a chance. I intend to do the best I can and look forward to the challenges infront of me.
I spent a lot of time job hunting and related things over the time since I last posted - thus my little side projects have suffered. Going to be moving house *again* so I can be closer to the new job - so have all that hassle to deal with. Moving in Jan.
But it's all going to be worth it. Man I have actually always dreamed of working for this company. It's a scary thing when a dream has a good chance of actually coming true.
Well, 4E5 is well and truely in the midst of things, and I've still not started my entry. Haha! Ah well, if I get something submissible may be I can get the screen capture thingy that's awarded to everyone who submits something thats meets the min criteria.
I did work a bit on my todo list Joel style software schedule thing this weekend, calling it "Enjoyable Stuff To Do" - EnjoyableSoftware.com being my registered domain and all. (Don't bother looking, doesn't go anywhere).
Anyway as part of the XBox Homebrew Competition. I have to keep a blog up to date, so at least for a little while I'll be blogging there more then here I'm sure. http://xbox360homebrew.com/blogs/paulecoyote/default.aspx
When I get the first build done of my scheduler thing I'll make it freely available to anyone who uses it. Once I've proven to myself it's useful anyway!
So my 4E5 entry is going to be an early version of my XNA Homebrew entry. I plan on architecting my entry so it can use either XNA or MDX 1.1. Though from the outset it will be XNA, and ported back to MDX 1.1. Because realistically, I'm not sure how feasible it is to get something in for 4E5 and that would be a bonus, but I really, really want to have an entry in for XBox360 homebrew. The prizes are smaller, but there is less competition [wink]
Too busy at work right now. I really do admire all you people that get these fantastic side projects done - you brilliant, exceptional people!
I've been trying to organise my time at work using bugzilla to create a todo list, see how that goes. I've got in to the habit of using Dokuwiki to keep a daily log book - kind of like a getto blog I guess.
I must have upset someone over the last day, I've dropped 3 points. *shrugs*
The new flat is very small and still overloaded with stuff.
And my car just passed it's 100k Birthday. Happy Birthday Toyota Corolla!
Well, still nothing to show. Still working more for work stuff then hobby gamedev stuff.
I am making progress on my xp / agile dev enviornment on a usb stick. This weekend I might have some more time to work towards it.
It's harder then you might think actually. As a .Net guy (and the fact that the game will be in C#) I've been trying to set up a freebie .Net tool chain.
Here at work currently I'm using subversion + apache + trac (well if it can hack replacing bugzilla + dokuwiki) + cruise control .net + iis + nunit + ncover + fxcop + nant + visual studio pro 2005.
All that was before the suits decided that perhaps they should see if we could afford Team Foundation Server. *sigh*. Anyway it works well for me and my team and I produce code of increasingly quality with the help of that toolset.
Condensing that down to something that can be taken around on a usb stick, and were possible avoid installation is challenging.
Asp .Net doesn't seem to like apache very much, I've not had much success about getting web applications working n apache. Cassini is good, but still requires an install to the Gac.
Thing is subversion doesn't seem to have much good support for IIS, at least without perl installed. One of my goals is to not have too much software installed on each machine - that you could take it with you. So far I think I can get that down to just Visual Studio Express 2005, Subversion and Tortoise SVN.
Perhaps I will let that goal slide a bit, and just expect more stuff to be installed on each machine you may want to develop on.
The main drive of this dev on a stick thing is because I thought it would be useful for us hobbists to be able to take something to work, university or school and do stuff at lunch - and use the same stuff at home.
I also think time management is key - and something I have to get better at myself anyway. So any approach I make should incorporate not only developer tools, but something to better organise time. If there's one thing I see time and again in forums and in life in general it's people who start things and don't finish them. I would like something that would enable me to finish my hobby stuff, as well as the professional development I do and have a balanced relationship with my wife, friends and family.
I could have spent more time on working on game dev and stuff this weekend - if I didn't go to my friends wedding for instance. Or didn't spend as much time with the wife. I guess it's about priorities, and where to snatch time from to actually achieve these other things.
Time flies huh?
Any youngesters still in highschool read this entry - yeah I know the social aspects can really suck at school but honestly, enjoy and cherish all that free time you might have [smile] I know a programmed more little games at school and the first year of college then I have done in the many years since.
Internet screwed up, still can't get on the net at home. Spent weekend looking for cheap car for Mrs. Screwed about by Churchill. Dumped off a ton of stuff at oxfam.
New flat still a disaster zone, still don't have wardrobe or bed. Desktop still not setup. Flat management people screwing us around about fixing shower fitting - currently at 1.5 weeks at being held together with elastic band, 4 non-returned calls.
BT Coming on Thursday to sort out line, so may be get Internet and adsl again.
Big project due for 23rd August, so I expect I'll be pulling off hours doing that rather then anything fun like game dev.
Grandad's dog died, dads not well again, sister got engaged to some guy who works in McDonalads, and my wife is generally stressed out about people pissing us about and general anti-American sentiment she seems to come across increasingly frequently from complete strangers here in England.
Less then no money, so can't come and play with the other Gamedev.net peeps in London on the 18th. Previous landlord is being slow about giving me back about GBP700 worth of deposit.
Yeah. Things are peachy.
Perhaps the weekend after the 23rd I can do fun stuff.
Right, I've decided to try and create a jump-start dev support enviornment that can taken around with you on a USB stick this weekend. The first few entries in my series will be about how to use this system. I'm only going to give my self the weekend to do it as well, or I might just go off on one.
So I was thinking, perhaps I could combine a tutorial on setting up a gamedev tool chain on the cheap with creating my entry for 4E5. Keep this journal up to date with all the dirty inner workings of what is going on.
This entry won't be a winner, but it could serve as a learning experience to anyone monitoring the journal. And the journal entries could provide the basis for articles.
Although I am a professional developer, and do have access to Visual Studio 2005 Pro and all its goodies - I know that a lot of people around here (who care about being legit) won't have copies of that stuff because it's so expensive.
So I've decided to add another constraint to my entry - only using stuff that is free where possible.
I don't have broadband at home yet, and my desk is not even set up. Yeah... a software engineer without his home desktop setup for well over a week - what's that about huh? Flat packs and organising the rest of the flat I guess [smile].
I also want to break up the entries in to documenting blocks of about an hours worth of work. Like everyone else I have other things in my life, and if I can do this stuff in an hour anyone can.
Let see how it goes huh? I've got deadlines for work that might require overtime, one coming up on the 23rd of August and another at the end of October.
Gamedev.net is great. An awesome place, largely free of idiots. Helpful people and enthuastic developers helping each other. Devs that do business application development for a living like me. Those luckier(?) still doing game dev for a living. Students, kids, teens. There is a turn over, people come and go but some stay and keep making a difference.
The C++ workshop is a good example of that. I've flicked through the thread now and again. There are so many people who know lots about C++ around here that whatever I might say has already been said most of the time but those tutors or other helpful people. And it is I'm sure making a valuable contribution to some peoples education - dare I say lives.
I'm kind of feeling a tide change recently on the gamedev forums - where as only a year or so ago most comments would be saying "yeah C# can't hack games" those are being more balanced out by people disagreeing - and indeed disproving this with wowing screenshots and impressive demos.
There are members of the community - I'll just pick out Rob Loach (but there are tons others) whom always seem to be actively creating or making something. Now again, picking on Rob on particular, his website and acitivies if you follow around links from his profile see him active on all sorts of C# related activities. Tao for one looks very interesting to me.
Perhaps there is room now, neigh perhaps even demand for some kind of C# workshop. Though rather then academic exercises, perhaps an start to end simple game project where everything done is directly to do with creating a game. Not just development, but exercises in time management and architecture.
So many people start projects and never finish. I am terrible for that myself for my home grown projects. Demands of getting things in on time for my day job are high, and I do choose to have a life outside of development too, so often things get 80% done then left to gather dust for a while.
I thought a project focused workshop, where we have a central reference / guide implementation that's developed week by week - but everyone participating is encouraged to make their own version of the tasks set, would not only give people ownership of their creation - but also importantly deadlines and goals. And of course help here from anyone else involved. So not only development skills would be worked on, but time management and project skills too.
I do want to be more active, give something back and make games.
Now I think is pretty bad timing for this - what with 4E5 being worked on by so many of the peeps out there. I should be, but outside pressures have again meant I doubt I will be able to get much done for it. Perhaps I will, I don't know, still a long time until November 30th.
Another idea I had was properly documenting my efforts for 4E5 and representing that as a series of articles / steps.
So those are the gamedev things rattling around my brain right now. Having just moved house and being currently lead dev on a high profile project for my day job though, they don't really get much air.
I've been reading 7 Habits of Highly Effective People recently (trying to improve my "soft skills"), and one of the exercises is quite morbid... imagine attending your own funeral in 3 years time. It's to do with trying to get you to start thinking with the end in mind.
One of the things it asks is, what would be said by a member of the community you are involved at your funeral?
Well, I was thinking about it, and I don't really know if anyone would really say much about me from gamedev.net - which is really the only community (outside being a pleasant neighbour etc) I participate in. I try and be helpful, I look out for things on here I can help with and I guess perhaps my rating reflects that a bit. So many times I've got decent and non-flaming help from people around here, I love to give back that kind of assistance. Gives me the warm fuzzies may be!
Right now - again events are conspiring against me - and I've chosen to put my game dev aspirations further down my priority list while I deal with my wife facing yet another redudancy, which has led to us having to pull out very late (just before signing contracts) on buying a house, and meaning we have only until the end of July to find somewhere alternative from where we are living right now to live.
Top it all of, my msi motherboard failed, and I still have not got around to reinstalling Windows on my desktop.
My 9-5 isn't game dev, it's business software dev. The sector I'm in is pretty vertical and quite safe, been here 5 years now.
On Wednesday I took a day off to go to the Develop expo in Brighton. Was alright, if I wasn't down I'd have networked with people with people with the important name badges on like "EA Recruitment Officer" and "Sony Entertainment, Senior Producer". Alas, I thought, well even if I do find myself given an opportunity - things the way they are - debts we've got in to over the last few months - it would be really irresponsible to let go of a decent job to go chase a game dev job - which are inheritently more dodgy.
So in a couple of minutes while something is compiling I'm writing this entry.
I do want to get something in for 4E5 - I hope when I find a new place to live and have a chance to unpack and get things sorted that I will be spending time on an entry. I think, if nothing else, it would be good for my self esteem to get something in. And perhaps if I document my experience as I'm creating it, someone else might be interested and learn from it on here.
You know, if I'm just a Sim in someone's game right now, could you please slip me so Elxir of Life? I think I need a few "days" back of my life please [wink]
Hmm this blog is a little more neglected then my other, but I guess that's cos I try and keep this one talking about dev stuff.
Well my desktop bit the dust. Advice - do not by MSI Motherboards. This last one lasted me about 2 and a half years. Yeah that's alright if you're living off mummy and daddy and upgrade every few months anyway, but it's a bit of a disaster for ol'Paul. The board before that was also MSI, and that lasted just over a year.
Anyway it's a socket 478, and finding a decent cheap 478 board is a bit of a challenge. I guess I'm taking the risk that it didn't take out my CPU and memory too. Anyway so I'm all geared up for 4E5 but without a desktop (sigh).
Other news, buying a house in Southampton. So that I guess is going to eat up tons of free time too.
My tech is conspiring against me though, not only is my desktop bust, but my ps2 is also shot (which doubles as my dvd player). Car is in for it's MOT (cross fingers). Other annoying little bits and bobs have been giving me trouble too, even the damn vacuum cleaner. Arg!
About a month before 4E5 was announced, I started a pure C# implementation of Ogg Vorbis. Not a translation of the C one either - like the csVorbis and jVorbis ones - but back to spec one. Cos I realised looking through the translations that both the Java and C# implementations are just translations, and don't really play to the strengths of those languages.
It's funny, last year I got distracted by sound too instead of doing my 4E4 entry. Superpig wouldn't cough up the stats for the sound cards in the judges machines, and I was so paranoid that the same problems I was having with one particular test machine with OpenAL (OpenAL versus soundcard vendor thing) that I just tried to get that stuff working. To the point of joining the OpenAL mailing list and all sorts. By the time I did get something almost there, there was not enough time left to complete my entry so I had a few more projects enter my unfinished pile. Meh. That's not blaming Superpig by the way, it was part of the rules, I made a choice and perhaps it was the wrong one *shrug*
Work wise, day job as business app developer wise, things pretty good - actually have to finish that stuff [wink]. Underpaid and all that, but I get on well with the other developers and it almost feels like a family here. Still it's been 5 years now, straight out of uni. I really should move on if things don't improve a lot around here.
So that's it really. Should I manage to clear up the chores of life in time, I'll get down and write a kick-ass 4E5 entry. C# this time around, as that's what I seem to code in most these days anyway, plus it's rapid. C++ is great and all, but realistically speaking I don't think I could code a game as fast in C++ as I could in C# - and time is def my limiting factor.
Oh and at some point I cancelled my GDNet subscription by mistake. So before it ran out I just now updated it. Was pleased to see the extra year was added to my previous expiry date, not today [smile]
... Happy Birthday To Me!
Yep, two years ago today I got married to this lovely lady
Gonna go out to a Greek Restaurant tonight to eat great food and drink good wine.
I'm a lucky guy! [grin]
Ubuntu can suck my balls. Though, come to think of it I wouldn't want such a dirty teasing slut near them. Gah!
I lost a weekend because of it. It managed to install Grub in a way that not only meant it wasn't accessible, but neither was Windows or anything else. That was Friday night. Sunday night I had my desktop back to the way it was.
I had to move drives around on the controllers (infact leaving out one completely), I tried to Win2K3 rescue process which I would NOT recommend (it basically reinstalls and kills stuff in Windows directorty, it doesn't do much of a rescue) - all to no avail.
I tried Gentoo 2006.0 - that didn't even get through the livecd enough to be interactive. I tried Mandriva - and that ended up being my savour. It wrote enough to actually let me boot in with Mandriva and fiddle with Grub to get Windows booting again.
MSI 875P Neo-FIS2R ... if you have that board and want to duel boot linux on a seperate drive watch out... I think infact it might that the current crop of linux doesn't sit well with the Intel 875 chipset, or ICH5R.
I've done this before by the way, I'm not a complete noobie. I use Gentoo alot at work, and set it up myself on a server. I've tried and installed many different distros on many different boxes. Grub error 21 intermitently (anything intermintent is a bad sign of quality somewhere), then there was error 15 - which is easier (file not found - why not just SAY that instead of "15" or "21"?!). Mandriva installed grub with no load errors, but I had to fiddle with the config to get it to get it using the NT Loader properly.
May be if I had found out about fixmbr sooner I would have just given up on linux. Infact I thought part of the recovery process on the disks includes "inspecting start enviornment" and "inspect boot record" - but it didn't overwrite it.
Whole weekend wasted. Did get out of the flat and do some fun things, and did manage to fix a burnt out bulb behind the dash of the car... and see 5 spitfire circling Calshot on the beach. But at home... rubbish! I even manage to scratch my Win2K3 Server CD... thankfully not fatally. At least I don't think so, I copied all the files off the CD without any error with XCOPY /v, and Nero didn't detect any errors when I made an image of it. Goodness knows how hard / expensive it could be to send it back to MS and get a replacement.
I've been trying to do a clone of Biplanes (Dogfight, Bips, etc) for years. I get so far, have fancy graphics and all that... then get stuck. I've got versions in C++ using Dx7 through to Java and C++ v9 things.
Then before Christmas I decided to do a different approach. You see, I'm pretty damn good programmer - but day to day I don't have to do much math. Library and learning centre stuff doesn't really need much of it.
However what I'm trying to do does. Even though it's not realistic physics I'm going for... but fun physics... it's still proving challenging.
Over the weekend I resorted to getting batteries for my long neglected Texas Ti83, buying some graph paper and other bits and bobs. And went back to math. Anything I didn't understand or was rusty on, I went back further and further. Man am I rusty.
But I think you know, there could be a saying "the pen is mighter then the keyboard". Sometimes it's useful just leaving it alone and figuring things out that way. I was over confident in my math, now I'm going through everything I thought I knew and making sure I've got it right. It's caused me to think of the problem domain differently.
What the biggest thing that is holding me up though is the lack of people to bounce ideas off of. Yeah #gamedev is great and all, but everyone is plenty busy with their own stuff, and it takes ages to convey what I want to say in just writing that could be done on a back of a beer placemat in a pub in 5 seconds.
Been helpful talking to a friend I've made over the net at Digipen too. And knowing that I'm not stupid, that what I'm doing is learning something new and I shouldn't be hard on myself - just getting on with it.
It's a bit uneasy for me, I'm used to know just about everything I ever need to know (or at least how to go about it and understand it) when it comes to code. Math... well... I've not used it for a while so I guess it's lost some of it's meaning to me.
But slowly I'm getting to know Math again...
SOHCAHTOA, sometimes things are just THAT simple.