It seems that the console games industry is on the brink of meltdown due to burnout staff working practices – EA (NASDAQ: ERTS) being the most prominent offender, and the potential recipient of a potential class action lawsuit. This comes in the wake of numerous reports of a corporate culture of abuse, burnout, death march development cycles, and gross management incompetence, according to both firsthand accounts and anonymous rants by family members of developers.
There is talk of forming a Game Developer’s union, not to mention countless op-ed pieces on how to turn out a games project on schedule without losing half your developers in the process. I don’t know how, but I think it’s definitely time for something to change. I’ve eperienced long working hours on both games and web projects, and it’s true that working later and harder on projects is a fact of life in creative industries – however, EA’s alleged approach of a scheduled, unending crunch has got to be a sure way of destroying some of the games industry’s best talent. If I had to work 12 hours a day, seven days a week, that career in carpentry would start to look damned attractive…
I, for one, am not going to be buying any EA games in the foreseeable future – and it’s been a long time since I’ve used any of their graphics applications…
I’m just as guilty as the next guy of bitching about flashcoders being flooded with “broken component whinging” – people asking loads of component specific questions, which have largely eroded the quality of the flashcoders mailing list – however, I think it would be very useful to have a list which specifically dealt with component problems – thereby getting it all in one place and lightening the load on flashcoders. Would people use a list like this? It would be a good place for the component gurus to hang out, and the more abstract AS questions would continue to go to flashcoders.
Anyway, the list page is here, we’ll see if anyone signs up to it.
Well, the talk last night went well, I think, I didn’t screw it up too bad, or fall over or knock down the podium or anything. I had fun and met a lot of interesting new people and generally I think everyone had a good time. A couple of people have asked for the notes for the talk I gave, so I’ve put them online here:
download MMUG conference notes
They’re in flash fomat, just unzip the files and open the html page. Not sure how much sense they’ll make by themselves, but there’s some interesting stuff in there.
I’m really stoked right now, because I’ve just finished the first milestone of GAMEFRAME, my current project. GAMEFRAME is a collection of libraries designed to assist in creating flash games – it’s an AS2 framework which includes things like world management, sprite behaviours & collision detection – stuff that virtually every game needs. I’ll be talking about it at the LondonMMUG.org meeting this thursday.
Here’s a demo: this demonstrates the usefulness of tree based collision detection (which gameframe makes it really easy to implement) – you can have a large number of sprites on screen at once, all moving independantly and reacting to collisions – with only a small drop in performance. This is it the expense of a small amount of accuracy, but for most games this will be good enough. I’m thinking arcade style shoot-em ups, that sort of thing. Anyway, this demo has 30 enemy sprites, and one hero sprite, moving around freely in 2 dimensions. As you can see, it performs pretty well. I’m pretty happy with the collision reactions, which I just got working tonight, thanks to Jobe Makar’s Macromedia Flash MX 2004 Game Design Demystified. Anyway, check it out, let me know what you think.
Instructions: Note – this is not really a game. Just move the black square around with the arrow keys and bash into the other squares. Refresh the page to start again.
View GAMEFRAME collision demo
By Christopher Tremblay – Thomson Course Tehnology
Mathematics For Game Developers is a really unique book. It approaches mathematical subjects from the perspective of the game developer – while still staying in-depth and accurate enough to satisfy the more mathematically minded. It covers all the essential topics – vectors, matrices,physics, calculus, manipulating equations – and it relates them directly to their applications in games programming. It introduces topics one by one, and builds upon existing knowledge – however, it’s also accessible enough that you can just dip into a random chapter and not be too lost. More complex algorithmic subjects like collision detection and space partitioning are covered later on, and these topics are all handled very well. The solutions the book provides are mostly in the form of equations, so you’ll need to do a little work converting them to code, but all in all I think you’ll find the book invaluable. The section on space partitioning is excellent, as is its coverage of understanding lines – a topic usually skipped by math authors as it’s supposedly an ‘elementary’ problem – however the limitations of the conventional y=mx+b approach are explored and worked around in one of the early chapters.
There is so much unique and useful information in this book, and it is presented in such an accessible way, I’d definitely recommend it to anyone who is interested in games development. A basic high school maths knowledge is assumed, but it could be read in parallel with a more conventional book to cover or revise the math basics.
The only things that count against it are the contents of the CD – no Maple evaluation (possibly not the publisher’s fault), and the code samples are a little lacking – absolutely no sample code for collision detection? Unacceptable. There are also some minor typographical errors in one or two of the proofs/expansions, but nothing fatal.
Overall, a great, accessible, knowledgable book, which should find a prominent place in any serious game developer’s library.
I’ve been asked by the London MMUG to do a talk on developing flash games for their next meeting. I’ll be talking about the World/Controller design pattern, which is a flash specific variation on the Model/View/Controller pattern, and also the basics of tree based collision detection. I’ll be posting articles & source on here to go with the talk, either just before or after the meeting.
London MMUG (formerly mmug.co.uk) now have a new website, it’s at:
The meeting is at 6.30pm on Spetember the 18th, doors open 6.00pm.
The details can be found here. Don’t forget to register! Hope to see you there!
André Michelle has released a new package of game related libraries. It’s still in a very early version, but it’s got a good conventional tilemap engine. Check it out here.
As you may know, I’m all about the collision detection. So I was quite pleased to find this tutorial on the Seperating Axis Theorem on the Metanet site. Basically, the seperating axis theorem lets you get early outs on a lot of collision checks, because of the brilliantly simple theorem that if two shapes are projected on a plane, and any one of those projections do *not* intersect, then the objects cannot be in collision. Go check it out! It may solve you sloping platform game problems!