Archive for category Uncategorized
Starfront Collision (iPad)
Posted by James in Uncategorized on August 24, 2011
I don’t often review things – but this game got my attention so much I thought it was worth mentioning in better detail. Even then I haven’t explored every last detail of the game, but there’s enough to give someone the bigger picture.
Normally I would be quick to point out that “x copied y”, or at least heavily drew from y’s ideas. You can clearly see that Gameloft – the creators or Starfront, were at least heavily inspired by Starcraft. When I saw the name of the game, and the screenshots, I thought it was a rip-off of Starcraft. But then the game stuck to my mind – is it worth the £5? Are they going to get the controls right for a touch device?
The answer to both of those is a clear YES. When you play it too, it doesn’t feel too much like Starcraft either, despite the glaring similarities. Both have three major races – humans – the all-rounders, a very alien-looking bug-type race – the “build fast, hit fast” approach, and the highly advanced, powerful race – in this case a robotic race.
Campaign? Check!
Starfront comes with a rather varied campaign mode. Missions take you to various scenarios, and require more than just “destroy the enemy base”. You certainly do a bit of base building, and tech-tree climbing, but some missions – particularly mission 8, require some quirky tactics, or ways of progressing. Mission 11 resembles a tower-defence style map, where you build as many turrets as you can to stop waves of enemies getting through a canyon. Mission 10 sees you defending a huge insect as it walks across the map getting tired and stopping for breaks whilst enemies try to attack it. another mission sees you in a central base, holding off waves of enemies with your desperate few units until an evac fleet arrives.
Annoyingly though, what seems to happen with strategy games which in any way involve humans, is that the human side ends up spending half the time battling other human factions. Starcraft was rank with it. Starfront has some of it. Either way it is getting tiring. Hope would have it that, if we become advanced enough to explode the galaxy in such a free-form way, that we would not do it just to set up a rogue faction hell bent on dominating other humans. Either way, for goodness sake, stop telling the same cliche story because it has been done to death, and it’s not going to teach us any more morales on that.
One mission in the game dwarfs the others in terms of difficulty – the apparently dreaded mission 8, which is the final human mission. If you don’t do the ‘easy completion’ tactic, then you will retry again and again, in frustration to the sheer number of problems this mission faces. Either your computer ally won’t actually build anything, or the enemy will change attack strategy, or your computer ally will take over your expansion resources and not actually use them, or the enemy will devastate you will seemingly unlimited cloaked units and conveniently placed air units. As a hint, you can complete this mission with a large pack of ground-firing helicopters, circling the outskirts of the map until you can fly south, from the top centre…
Multiplayer & skirmish
Multiplayer seems to suffer from the problem of players rushing other players, ending the match before anyone can actually get into it. If you are expecting to play against a human player who also wishes to spent at least 15 minutes sending vast armies and tactical knowledge against you, think again. People seem to prefer rushing in with the first unit that happens to walk out their barracks, and giving you grief before you have time to sigh.
Skirmish however, is ridiculously easy. The AI more or less sits there waiting to get annihilated. On anything other than the toughest difficulty, they will send a worker or two towards your base. On the hardest mode, you get a few basic attack units, and a cluster of them sitting in their own base. If there is one area that drastically needs improvement, it is the skirmish AI. Surely someone at Gameloft is adventurous enough to sit and tinker with the AI enough so that it can do more than represent a very rushed feature of the game? Here’s hoping.
Conclusion
In all, it is nice to play a game on the iPad that is more than just the same level again and again (Zombie gunship), or a puzzle game with little story that gets boring quickly (Angry birds, Cut the Rope, loads of others…). The iPad doesn’t seem to enjoy much in the way of in-depth games, or ones that attempt to be more, but suffer some serious gameplay mechanic bugs (Red Alert).
Gameloft, although they are obviously HUGELY inspired by the more serious games out there, at least they are taking the iPad serious enough to give their versions of big-hit games a serious try. People are moaning that they are curiously similar to certain games in a very obvious way, but at least it means the iPad is getting some approach to decent games which the bigger game studios don’t seem interested in exploring. I am watching Gameloft from now on, because their energy for games development is impressive, and the titles they are releasing are very adventurous in a space where others seem reluctant to fully explore.
As for Starfront? I cannot say I have returned to an iPad game after a few days playing, other than Fieldrunners. At long last, a game I can really get in to.
OS X Lion – Current Personal Teething List
Posted by James in Uncategorized on July 24, 2011
[Updated 15th August - green items are those which no longer occur, or a setting changed, blue means "I can live with it".]
OS X Lion is an impressive deal – a “full” operating system update for £20, on all Apple computers you own, is a welcome approach considering the expensive upgrade offerings by Microsoft, and even Apple in the past. The process was simple, did not involve physical media, and thankfully did not require the use of a recent backup. In all, it was cheap, painless, and about time someone turned such an upgrade into something even average users can do without phoning their “IT friend” for help.
I am not going to sit here reviewing it in depth though – you can find endless blogs of reviews, some in a lot more depth and quality of writing than I can hope to do. Instead I am going to list the current teething problems, at least on my machine.
Importantly though, these are early days. Every OS upgrade gets their fair share of problems, however big or small. No one is perfect, especially when deadlines are in place, so take these with a pinch of salt. This list might be of interest to anyone who is thinking of upgrading, and even then, these issues might be related to a certain device, or model of the device. I will also edit this list and add more teething bugs/gripes as time goes on (and cross out any which have been solved).
Also of note is that this isn’t a case where I may have different brands of hardware that are perhaps less supported than others, which is an excuse Microsoft, and Linux can usually get away with – Apple pick their hardware, and develop the OS for that hardware only. I haven’t modified the hardware of this Macbook at all.
The device is, an early 2011 Macbook pro 17″. Also these are problems that seem to happen on Lion, and not on Snow Leopard.
Bugs
- Using an external monitor, the Macbook often confuses which is the primary monitor on wake up. It sorts itself out very quickly, but any windows end up resized to that of the smaller resolution external monitor.
- Performance on the external monitor seems to slow down after hours of use – solved by sleeping and waking the Macbook. Oddly the same applications when moved to the Macbook’s monitor seem to run fine in this case.
- Finder also seems to slow down after use, when using a samba share for hours. This is causing Komodo Edit to have to wait even up to a minute before I can even more a cursor around the text file. Again, seems to be solved by sleeping/waking the Macbook.
- Apple Magic Mouse sometimes ‘sticks’ – the cursor moves smoothly, but it seems to (rarely) forget that I released click, or am not touching the surface of the mouse. Yes, I have been VERY careful. It isn’t so much an unintended scroll, but I have had applications shrink to a tiny square just by moving the mouse upwards.
- Design – minimise, maximise, and close appear smaller, yet seemingly for no real purpose other than to be smaller. It has not freed up room for any other functionality.
- Design – grey? For a company that releases displays capable of incredible colour ranges, Lion seems to have been dulled down. I do miss the older themes.
- Usability gripe – double-finger swiping left does not cause the browser to go back a page, but instead goes to the virtual desktop to the left, or the dashboard if on the first virtual desktop. In fairness, this is likely a setting somewhere, or hopefully will be, meaning this gripe is just laziness on my part. personally I am undecided whether I prefer the virtual desktop switching in this way, or whether I would rather keep the browser back and forth swipe.
It is NOT the start of a new decade…
Posted by James in Uncategorized on January 1, 2011
I am baffled at how many people said “happy new decade” this new years. Upon further annoying questioning, it seems many people think there was no year zero. Oh?
When someone has a baby, it is less than one year old. It may be three months old, or a few weeks, but certainly not one year and three months unless of course, it has had it’s first birthday.
When someone has a birthday, they have been alive for that many years. So, someone’s first birthday means they have been alive for one year, and not born that exact day.
Years are counted from the birth of Jesus, which means that, in the year 2000, it had been 2000 years since his birth. 2001 was NOT the millenium simply because there WAS a year zero – because Jesus on that year had not been alive for one year.
On that same note, the previ0us decade ran from 2000 – 2009 – ten years, starting from the beginning of the year 2000, and ending at the end of 2009. Therefore 2010 was the start of the current decade, and we are now one year into it (the start of 2011).
The way to think of it is that, if it has been 10 years since something, it has BEEN 10 years. It should be obvious, but it seems a lot of people cannot grasp that fact, and instead think that numbers actually label the start of a year’s passing.
Not initially understanding it for whatever reason is one thing, but giving blank stares or replying with “whatever”, then later saying “happy new decade” to someone else who just came in the room… sometimes I lose all hope.
On a lighter note, happy new year everyone!
OpenAuth
Posted by James in Uncategorized on December 4, 2010
I’m a bit late on the bandwagon of mentioning OpenAuth – it has been around for a while now, but I implemented it successfully, as a consumer, before Twitter removed support for the previous method of authenticating users on their API. yesterday I implemented it server-side for our own API, in the space of about 6 hours, sans-security-testing.
In a nutshell, OpenAuth allows users to be authenticated on an API without ever giving out their login credentials. Essentially the end-user gets peace of mind that their password is not stored on the client site or application which makes requests on their behalf.
Implementation though, is harder than the norm. The process (Simplified), is (where “consumer” is the client website, “provider” is the API server):
- Request stage – Consumer obtains a temporary request token from the provider (using a registered ‘application’ on the provider to determine which application requires the token)
- Authentication stage – Consumer redirects user to API server, which asks user if they want the application to be able to access their account (and which permissions). User clicks yes, and is redirected back to the consumer, at a URL specified by the request, or the application’s settings.
- Access stage – consumer sends the request token and token secret to the provider’s access token URL, which, if valid, sends back a permanent access token.
Despite the three stages, the user only ever notices the second one – you certainly do not need a redirect back and forth the servers for the other stages.
The only challenge lay in the confusing slight differences between the three major providers – Facebook, Twitter, and LinkedIn. Facebook have rushed ahead to oAuth 2.0. LinkedIn on the other hand, follows oAuth1.0a very precisely. Whilst this is no difficult fate in itself, the various libraries we scouted for the three were a bit too “try to be re-usable” to be able to do things as flexible as possible. Instantiating a class usually meant that it would try to receive a request token despite us already having the final access token. Naturally, they were given some serious modification so that the three could co-exist with very similar, if not the same, methods.
This is step one for SprayTA’s API, which eventually grants our other projects a much needed catalog of features. It also means soon I can finally build the Iphone/Ipad apps (whilst one of the other developers handles the Android version).
Developer team doubles
Posted by James in Uncategorized on November 22, 2010
After spending most of last week painting walls and building furniture, today was day one in the new offices. It was also the first day the two new developers began work.
As you may know, we did a series of job interviews. I groaned about the worrying lack of skill of those who applied. One person though, stood out. Not only did he annihilate the test, but he shrugged it off as nothing. There are times in your life when you wonder whether you made the right choice turning down an expensive, but better-than-the-rest used car, only to find it was more than worth it because an immaculate one happened to appear at the last minute. This was one of those moments. Just with people, not cars.
What we also found was that the test was surprisingly accurate at determining the skill of each candidate. The voluntary developer didn’t score anything to write home about, and his coding skill is lacking. He is, however, very determined to learn, and all to happy to help, at his expense. The other picked up on the code very naturally. He blitzed a number of bugs in the first few hours, and made interface improvements. This is by no means digging deep into the core, but a very good start considering the incredibly vast codebase, and lack of input from myself. His background is impressively more than most, even dating back as far as programming on the ZX Spectrum, and he confidently told us how he was the best coder in his University. Judging by him, and the other candidates, it really doesn’t surprise me.
The first day was however, quite a shambles on my part. I just could not find a bug which the volunteer might be able to do. I could be wrong, and he could surprise me (he will one day, i’m sure). But the plan of the day seriously fell short after the first hurdle – let them look around the code, pick a first bug, and see how well they fare. The result was that he was sat there, quite atmospherically quiet, probably wondering whether to call me over again. His continued emphasis on us getting a development plan makes me pretty sure of this too – I’m working on it.
The lab
The lab has four white desks, each with two 24 inch Samsung (black) monitors. The computers are black and white coloured Dell Studio XPS’. The walls are white, but the floor is a light laminate. A bookshelf will soon line one wall with coding-related books. Each desk gets a rather tall, ten-drawer cabinate.
The whiteboard is pretty cool, in that there is no whiteboard. Well, why should we? There is a large white wall, and a super large pane of glass – instant, super-sized whiteboard that money can’t buy.
You see, with the ‘unique’ colour scheme, the emphasis on a developer atmosphere, and, of course, the developers, the lab room just wraps your head into ‘the zone’ in a way you wouldn’t believe. It is a vast step up from the ‘war room’ back at the house.
To keep things even further from your average office, people are not required to dress up as if their look determines their worth. You come as yourself, as long as it is reasonable.
The photo is missing the cabinets, the desk lamps, and the white board (which is the wall next to the front door opposite the camera).
In all though, I have been a developer, not a manager. Some form of management is now required to keep the team in some direction, so it is an interesting new experience for me too.
Job Interviews – the other way around
Posted by James in Uncategorized on October 31, 2010
Over much of the last week, we have been conducting job interviews, hoping to find a couple programmers who have just three things – a passion for coding, a strong experience in coding, and an eagerness to learn.
I am astounded at the number of people who applied with Java as their sole language. The job description clearly stated PHP, MySQL, Javascript, CSS, XHTML etc. Yet people, even after a follow up on their application also stated “I just want to do Java as that is my goal”. How on earth they thought applying for a PHP job would get them anywhere, if all they want to do is Java?
All those who applied who were Java fans, had hardly anything under their belt – just a few bog-standard University assignments. We did stress to the job centre that we are not interested in what degree someone got, if at all – just that they can code damn well.
The Candidates
The first day’s shortlist was made up of three candidates. Each candidate was given a test with just four questions.
- The first answered them well, but an incredibly weak ability with both PHP and HTML.
- The second hardly attempted but had a very strong background, and later followed up with a good PHP project demonstration.
- The third put in an excellent effort but got all but the last question wrong.
Out of those three, the last one has the job despite being the least experienced. Why? He is doing it voluntarily. He wants only the industry experience, and has a great desire to learn and improve his ability.
The next day saw us interviewing a 43 year old, who was calm, but extremely verbose. Seriously, you should see his documentation – if he wrote the documentation for even half of the linux man pages, and just a few tutorials, Linux would be winning awards for the easiest Operating System to use. Well I doubt it too, but you get the idea. He was also the first to have a coding background in C++ and DirectX, which will come in useful when we finally get our game-related projects on the go. What I really liked was that he self-taught much of his programming before going to university, and also felt slowed down by university.
The final day saw two possibilities – well, one. The first person’s experience went as far as what he was told to do in University, plus one or two projects for a couple clients. That to me doesn’t show an interest in programming outside of earning money – if you are trully interested in it, then you’d be writing your own projects with something far more tricky than a glorified “hello, world”.
The last guy though, blew me away. He is a greek, with a lot of charisma, and enthusiasm, who only applies for jobs he thinks are suitable for his needs – in short, he only applied to us. He doesn’t want to spent a few days on a site, sending it to some client, and never seeing it again – he’s like me – wants to grow a project over the long term, caring for every detail, and having something to be proud of in the long run, which is exactly what the company is about. Technical-wise, he is another who learned to code in his time, not by instruction. He created sites which look as if they’re full of Flash intros, yet he did all that with Javascript. He has experience in the same API’s we are using in our project. He is not afraid to speak his mind, and if he doesn’t like an idea, he will stand his ground.
The Interview
Being on the other side of the desk was a strange experience – seeing various people come through and say why they want to be with us was pretty interesting – but I was moreso dissaponted. Only one had the extreme enthusiasm and energy – the others made it feel like it was an interview for a job at Tesco.
What surprised almost every candidate was the fact there was a written test at the end. Some of their faces painted a picture of extreme shock and pain at the thought of it. But it was only four questions – all of which no one managed to get more than one right.
The Test
Question one was a simple logic test. It is a somewhat famous one which asks the user to output “Fizz” if the number is a multiple of 3, “Buzz” if it is a multiple of 5, or “FizzBuzz” if it is a multiple of 3 and 5. Obviously this is done over a range of numbers, which can be anything.
Breaking it down, the user should spot some fairly obvious approaches. A for() loop, and the modulus operator in a nice if() statement. This can be done with just two if()’s, but most people would end up with three. I certainly didn”t expect one person who give a switch() statement with a case for EVERY multiple of 3, 5, or 3 and 5, in the number range.
Question 2 was a database-related test involving one table of categories, with a field indicating their parent id. There is an example output listed which should be the result of the code their write underneath. Out of the number of people who said they had a very strong background in databases, NO ONE got this question right, not even close.
The most common answer was to write a separate query for each of the category paths. The correct answer though, was a recursive function that takes the current category_id as an argument, and the path string so far, and uses the id to fetch all records with a parent_id of the id given. Even after hinting this to one candidate, he still didn’t use a recursive function.
Question 3 was meant to be the easiest of them all. Given a path to a file (such as /var/www/somesite/images/green.png), set a variable to hold only the filename (in this case “green.png).
Despite there being so many ways to get it right, only a few got even a working result. One person did it by far the most efficient way.
The correct answer is simply:
$pieces = explode(‘/’, $path); $filename = array_pop($pieces);A few managed to take up half the answer space with code.
The final question is a simple spot the syntax errors. There were nine in total.
- One person only spotted one.
- One person actually asked “what language is this?”
- One person took it home to finish…
The others were rather acceptable.
I can only hope half the trouble people had with the test was that it was on paper, not a laptop, where they can save, run, and try again, in a very short space of time. The test wasn’t actually the be all and end all, as we stated to them – but it did indicate a thought of hopelessness with the quality of candidates being output from certain education systems. Now I understand why a somewhat local software house has had the same job advert up for at least 8 months now – despite the sheer number of candidates, only a select few ever seem to stand out, even beyond average.
If you are struggling to get a programming job, just make sure of two things – you sell your ability to the interviewers well, and you can actually back it up with some logic and skill. Seriously, speaking to someone enthusiastic and full of flare, gave the final candidate a huge spot on my radar after listening to a number of “I code because I liked it in uni” types. His test results left something to be desired, but he also came in with 7 different projects as demos of what he has done.
Command & Conquer Red Alert – iPad
Posted by James in Uncategorized on July 4, 2010
This is a bit of a randomly placed review. But searching for previews of the game before committing any cash to the download was rather sparse.
Red Alert is a somewhat rather welcome difference to the iPad’s rather impressive library of cartoony, but extremely addictive games. It was interesting to see how they handled the various options in Red Alert, on a touch-screen device which would not have keyboard shortcuts or mouse buttons. It was also interesting to see how the player was expected to handle a lot of action on the screen with the potential for his/her hand to block most the screen when performing some actions.
Limitations
EA solved the problem of the lack of input devices by limiting what you could actually do. You get three unit groups. You get less units and structures to build. You get no ore collectors. You get the idea – in fact, pretty much the entire game is simplified which doesn’t necessarily mean a bad thing.
This is in part because the game isn’t trying to be the PC version of Red Alert 3. It is trying to be a version suitable for a portable device with only a touch screen as input. As such it shouldn’t be approached as a port of the PC game, but a separate game in itself. If the Command and Conquer franchise hadn’t been so popular on the PC, and instead this was their first game, I wonder if people’s perception would be different. Fact of the matter is though, there is no avoiding the fact that this game feels as if EA pulled someone from the Red Alert 3 development team, and told him to knock something up for the iPad so they could see whether it is worth investing in. Regardless, it is a game that feels extremely cheap and incomplete in parts:
- All air units behave like Kirovs. They do not land, they do not accelerate and take off, nor do they circle their location. They simply hover. In fact the Century bomber might as well be a Kirov considering that the Kirov’s usually impressive armour has been reduced to balance that of the Century bomber.
- Natasha cannot destroy vehicles or buildings. She is now just a sniper. This makes her a simple shadow of her former self. Heck she cannot even snipe through infantry, so even a small group of mini-gunners or dogs will make her useless.
- You cannot save in the middle of a mission. This is frustrating when Natasha must be kept alive, but you accidentally end up scrolling the screen rather than commanding her to move. This is especially problematic when you are trying to control a number of situations at once as quickly as you can.
- There is almost no point in getting conscripts. Flak cannons actually fire missiles this time, and do extremely heavy damage to infantry compared to Red Alert 3. This reduces the requirement to balance different unit types to get the most effective use from each unit’s strengths and weaknesses.
- Moving a group of units can be frustrating in small areas, as they will go in a single file line and get stuck with each other.
- Attacking units with a group sometimes causes your units to not only move right up to the enemy unit, but to actually go inside the enemy unit.
- In some missions, enemy units simply appeared despite the corresponding war factory having been destroyed.
- Placing a unit in the location of a destroyed enemy building will not prevent it being rebuilt, with the unit physically in the building (but able to move out).
- Tesla troopers are almost the same size as Apocalypse tanks…
Controls
The controls are harder to get used to than for many games, but this is understandable considering the complexity of the game. This doesn’t excuse the fact that there are parts which could do with an improvement. Zooming in and out should not be done in the same fancy was as on the PC – typically on the iPad when you zoom and scroll – whatever is under your fingers when you start the zoom is still under your fingers when you finish the zoom – this makes it extremely predictable. This is not the case with Red Alert.
Training units and building structures is simple – one finger scrolls through the unit menus, one finger touch builds that unit. Units of the same type can be queued up, but you cannot select to build, say, three Conscripts and two Flak troopers. You can build vehicles at the same time as infantry though.
Building placement requires touching the icon for the building you want, and DRAGGING to where you want the building to be placed. This is still buggy however. Numerous times, despite the opaque building placement indicator showing completely green, the building refuses to be built.
Unit controls are, for the most part, easy. In fact you will end up potentially quicker at commanding units on the iPad than on the PC, as you can touch an enemy unit quicker than you can navigate a mouse to them. Touching a friendly unit selects that unit. Touching an enemy unit causes any selected units to attack that unit. There are no fancy unit commands, like being able to get vehicles to move to a destination backwards like on the PC. Units are placed into one of three groups by touching one of the three icons on the left of the screen whilst having the units selected.
Selecting a group of units is the hardest. It required three fingers which naturally means your hand will block most the screen, including the units you are trying to select. It is easier to click the box selection icon, then use the one finger to draw the selection. Double-tapping a unit type will select all units of the same type on screen.
Missions
The single player campaign is rather unbalanced difficulty-wise. Rather than missions gradually getting harder, the final mission of each campaign seemed much easier than some of the earlier missions. In most cases however, a mix of tanks and flak/javalins was enough for any ground-only crusades, whilst air units easily dominated the other missions due in part to the poor enemy air AI, and terrible anti-air defences.
Despite the sometimes frustratingly hard missions, the “cut scenes” which take over the game and take an excessively long time are probably my only other gripe. The HUD dissappears, and you lose control of your units, during which time they continue to move to where you last ordered them to, or fight, or whatever their situation may be. Meanwhile you are whisked off to what is usually an obvious point in the mission, such as the fact there are Tesla coils ahead, and that Tanya shouldn’t get too close…
Multiplayer
The multiplayer is great fun, and shouldn’t be taken as seriously as the PC counterpart. You aren’t going to see many strategies other than race to get air units and something to keep them from being shot down. Then again you aren’t likely to see many multiplayer matches. It’s poor in comparison to any other C&C outing, but certainly beats not having the option.
