Wednesday 29 July 2015

Jump the download queue and upgrade to Microsoft's new Windows 10 operating system now, here's how to force the download.

UPDATE: I've been told that this also helps people who have had their windows 10 download not complete, or fail to install. If this happens to you, following the steps in this guide may help.


Windows 10 has launched today, but microsoft is rolling out the upgrade to different people at different times, most likely to avoid server overload.


But, if you don't want to wait for microsoft to start your download, you can force it to start manually by following the steps below:


1) Delete everything from your windows update folder.

This is usually 'C:/Windows/SoftwareDistribution/Download' and deleting this will give you a fresh start, incase something interferes with our method.



2) Open Windows Update.

Open windows update via the control panel or start menu but DON'T check for updates just yet!



3) Open Command Prompt as an administrator.

Search CMD, right click, "Run as Administrator" or right click on the start icon.




4)Type, but DON'T run "wuauclt.exe /updatenow" into the command prompt.

This will save you time, in the next step.



5) Click "Check for Updates" in Windows Update, and the quickly switch back to Command Prompt and press enter.

Windows update should now start downloading Windows 10.



Wednesday 10 June 2015

There's an art project that reposts comments from the 80's and early 90's internet, and it's amazing.

The internet has been around for a long time, and Daniel Rehn, an electronic artist and curator, has been taking a look back at the net before the 1995 commercialisation, mass adoption and multimedia revolution that took the net on the path we know it today.

http://commons.wikimedia.org/wiki/File:Neon2.png#/media/File:Neon2.png
"Neon2" by Massacre - Own work.
 Licensed under CC BY-SA 3.0 via Wikimedia Commons
Project WWWTXT, which reposts comments from old BBS's, Usenet and early services such as CompuServe, on Twitter and Tumblr has been running since 2012.

The author of WWWTXT, Rehn explains the project: "1988–94 represent the final years of a much smaller, non-commercial, and text-dominated Internet."

"The users of this era were not only programmers, physicists, and university residents—they were also tinkerers, early-adopters, whiz kids, and nerds. Their conversations and documents—valiantly preserved by digital archivists—are fractured across numerous services, increasingly offline-only, and incredibly voluminous (100GB+).

"WWWTXT digs deep and resurrects the voices of these digital pioneers as unedited, compelling, and insightful 140-character excerpts.

"The project also unearths and reveals the visual culture of the era, including: magazine scans, early digital artwork, and screenshots/screencasts of early software."

Most of the excerpts come from old BBS's, Usenet and early services such as CompuServe, but some also come from "abandoned personal documents"

I've chosen some of my favourites, below:

Predictions that were horribly wrong.



Predictions that were horribly right.



And predictions that were close enough.



This frustration 00's kids won't remember.



This foreshadowing of Vevo.



These pieces of sage advice that are often still ignored.




This BREAKING news.



These early adopters.



This new console hype.



Before people moaned about smartphones ruining the kids, it was gameboys.



This hot rumor that turned out to be caller ID.



A lot of things have changed since then.




But a lot of it is just the same.




Check out WWWTXT on Twitter and Tumblr. And if you want to see what Google might have been like if it was around in the days of BBS's check out GoogleBBS.












Wednesday 27 May 2015

This is why that text message turns off your iPhone and how you can fix it.

So a new bug in the iOS messages app has been discovered and people are sending it to each other to turn off/reset their phone.

The bug is replicated by sending the following string of text to another user via iMessage:


 لُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ 冗

A lot of people on twitter seem to suspect that the Arabic text is causing the phone to reset. This, however, isn't the whole story.


How it works.


Firstly, it doesn't turn off or reset the phone, It just crashes springboard (The name of the home screen on your phone). It does this because it trys to truncate the text to fit it in the text preview window. However, Arabic text doesn't conform to English text, where removing a character always makes the text length shorter. The OS tries to shorten the text which makes it longer, this confuses the OS and causes the phone to go into a loop and fills the memory allocated to the springboard. 
Springboard realises that it needs to crash and restart to protect and fix itself (In the same way your computer will show the Blue Screen of Death, kernal panic, or your web browser will close the webpage you're viewing telling you that something went wrong).

Secondly, this phone will only restart if the person receiving the message isn't already in the Message app. This is because it's the notification that is handled by springboard and causes it to reset.


How to Fix my iPhone.


Some people lose access to the Message app after receiving this text, and there's a work around to get it back.  

You need to get those unicode characters removed from the preview pane of the message app, so that your phone doesn't try to read them when you open the app and crash again. 
There are a couple of ways of doing this

1) if you have Siri enabled, dictate a text message to the person who sent you the message. "Hey Siri, send a reply to my latest text saying 'thanks, your tried to break my phone. Aren't you a cool person'. " should do the trick. 

2) You can go to any app that allows you to share something via text or iMessage (such as the photo app) and send a photo to the person who sent you the message.


Again, the aim here is to remove the string of characters from the message preview pane. 


3) I'm gonna go out on a limb and say that the Mac Message app isn't affected by this, so you could potentially open the Message app on your Mac and delete the message there and wait for it to sync across to your phone.


How do I stop this from happening again?


To prevent this from happening again, until Apple issues a patch, you can then go to your settings and turn off text previews. 





Monday 11 May 2015

Does Shining Force still shine in 2015?



Nostalgia is great. Thinking back to your favourite games as a kid and the sepia toned, rose-tinted memories of the many hours spent playing them makes it seem like a good idea to go back and play them again.

Shining Force II framed A3 box art hanging in my home.
I recently brought Shining Force II for the Sega MegaDrive. I picked it up from a car-boot sale for £1.50 along with a few other MegaDrive games. Its a steal considering they're going for £20-50 on eBay.

I loved Shining Force I and II so much as a kid, I probably played it more than Bubble Bobble (Which I played a lot!). I have a framed poster of the box art hanging on my wall!

There have been over 20 games in the Shining Series now, but none of them have been as good as Shining Force I or II, or Shining in the Darkness. They perfectly take the top down RPG mechanics of the era (think Phantasy Star, early Final Fantasy) such as towns, story focus, and exploration and match it with tactical strategy games mechanics with squad based battle systems like Advance Wars. 

The story of the games itself are fairly unoriginal. You play as a young boy, who for some reason is the only person who can defeat the recently awoken ultimate evil but only after searching the land for the mythical weapon that is the one thing capable of defeating him. Although unoriginal, the way the story is told and the fictional world created by the games still stands strong and has plenty of lore to explore.

The story is only the trimmings to these games though, the real filling is the battles. These are turn-based tactical combat encounters. The team is made up from characters who join the force as the game progresses and, since the limit is 12 characters, you can switch them out between battles. 

The wonderfully designed characters all had their own personalities and qualities in terms of story and fighting style. I still think Peter the phoenix was OP, yogurt was cute and funny, and Sarah is a kick ass character. 

These characters were split into classes of the usual RPG variety; Knight, Swordsmen, Monk, Mage etc. which meant they also fulfilled different roles in combat and equipped different weapons. With over 25 characters in each game it allowed for different team make-ups and strategy which adds to the replayability.  

I loved these games, and playing Shining Force II again made me remember how good it is. Does it hold up? Well RPG mechanics have come a long way since the early 90s and most games now have some sort of HP/EXP/Stats thing going on, but I have to say "YES!" These games really do stand up today and it's still immensely fun to play through. 

Shining Force II cart. £1 from a Car boot sale.


What are your favourite memories of Shining Force series? let me know in the comments or @lanerobertlane on Twitter.

Saturday 11 April 2015

Mega Drive Livestream (Archive)

I was frustrated with Bloodborne, and needed a break, so spent Friday night chilling and playing some Mega Drive (Thats Sega Genesis across the pond) games. Here's the archive. 


Games Played:
Blue Sphere
Sonic 3 & Knuckles
Dungeons & Dragons: Warriors of the Eternal Sun
Lemmings
Arrow Flash
I also played Two Crude Dudes but Twitch didn't feel like exporting that part over with the rest of the video. So that can be found here.

subscribe to my channel and you can watch live and join the chat.
or subscribe to my youtube channel to get notified when new videos go live.


Friday 20 March 2015

Eclipse 2015 in Pictures

Heres some of the best photos I took of the Eclipse in the UK today:


I used a Nikon D3200 on a tripod with a telescopic lense and a solar filter sheet attached.

I Hope you like them!

Wednesday 4 March 2015

FEATURE: But how was it made? Dungeon Master

FEATURE: I’m continuing to look back at the games that I played when I was younger. Inspired by the ‘#FourGames’ hashtag, I began wondering how these games, that I sank hours into, were made and what was the development process like? You can find all posts in this feature here.

Last week I looked back at Bubble Bobble and revealed the mechanics behind the seemingly random number generator and the game’s development. This week I’m taking a look at Dungeon Master, which has undeniably got a lot more going on.

WHAT IS DUNGEON MASTER?

Dungeon Master is an action-role-playing dungeon crawler made by FTL Games and released in December 1987 for the Atari ST. It was later ported to a variety of home computers such as the Apple II GS and Amiga, as well as consoles such as the SNES. It is the best-selling Atari ST game of all time. 

The game popularised the use of improving character skills by using the skill rather than the Dungeons and Dragons approach of experience points and levelling. Along with the Ultima series, dungeon master popularised the first person grid based gameplay style. 

WHAT ARE THE MECHANICS OF DUNGEON MASTER?

There are several mechanics at work in Dungeon Master. Initially, and rather meta, the player takes the role of Theron, a non-corporeal entity who chooses and guides four heroes in the games. The heroes are chosen from the “Hall of Champions” where the player can choose to keep a hero’s skills, items and attributes, or rename the hero and build them from scratch. Doing this, rather than keeping the original skills allows the player to customise the hero and gives them enhanced attributes going forward. 


The Heroes come in four different classes: fighter, wizard, ninja and priest. They move through the dungeon in a 2 by 2 formation which dictates the effectiveness of any given party. For example, having four fighters would be redundant because the two fighters in the back row would not be able to attack enemies. Ideally a Wizard with ranged magic, and a priest would form the back row of a party. Additionally, only the front row will take damage from enemies attacking from the front with the back row taking damage if an enemy attacks from behind. The game allows for the heroes to swap positions in the formation. This mechanic allows for the player to move heroes in the front row, near death, to be moved out of harm’s way. 

The item management mechanic means the player starting the game with whatever items and weapons their heroes have on them. More are procured throughout the dungeon from shops and chests, or littered around the dungeon itself. Each hero has their own inventory with 14 equipable slots and 16 item slots. On top of this, each hero also has a ‘load’ or carrying limit. 

The most memorable and arguably greatest mechanic of the game is the spell casting system. On the right side of the screen are rune symbols. The game’s manual describes each symbols purpose. The player has to understand the semantics (or sentence structure), and each symbols meaning to cast a spell. This structure is “Power, Elemental Influence, Form, and Alignment”. Not all of these were necessary. For example, PAL VI is a strong healing potion, using a lot of mana, but LO VI is weaker healing potion (see image, above, for symbols). In the middle of combat the player is expected to remember the spells and click the symbols required for the desired spell in the correct order, which proves difficult and impenetrable to newer players. 

Food and water also form an important mechanic throughout the game. Food is treated the same as any other item, except it can be eaten and water is stored in characters water skins. Over time characters will get hungry and thirsty. Managing food and water rations adds extra intensity as sometimes both resources can be few and far between. 

The game also features dynamic lighting. One character must hold a torch or cast a light spell which slowly run down and causes visibility to decrease and darkness to set in. 

Although grid based, the game moves in real time. This means that heroes will get hungry, torches will run out and monsters will attack even if the characters are standing still. 

WHAT’S GOING ON UNDER THE HOOD?

Since there are so many things going on in Dungeon Master, I thought I’d break down some of the more interesting and more complex. 

One of the more interesting things in Dungeon Master is the creation of enemies. The main game file contains a complete description of the game’s dungeon including doors, walls, items, and enemies, and it includes variables regarding them (How many creatures are allowed to be on the map at one time, the difficulty, decorative items on walls etc). The spawn of each enemy is tied to an actuator within the main game file, and the enemy’s statistics are generated randomly using the following formula:

SpawnActuatorHealthMultiplier * EnemyBaseHealth + Random Number between 0 and (BaseHealth / 4 + 1)

If the spawn actuator’s health multiplier is 0 then the level experience multiplier of the floor the player is on is used instead. This ranges from *1 on floor 1 to * 6 on floor 10 and below. This also means that a stab attack that gained 6 experience on floor 1 of the dungeon will gain 36 experience on floor 11. This nullifies the exponential increases in required experience to level up a skill.


Another interesting feature is the games skill levelling system. Skill levels can theoretically range from 0 to as high as the integer being used to store the value in memory can go. This is due to the way the game deals with levelling. Instead of having a fixed number of experience which is needed to level up, the game uses a power of two algorithm. For example: if level 1 is reached at 500xp then level 2 requires 1000, level 3 requires 2000, 4 requires 4000, 5 requires 8000 and so on. Each skill level has a name associated with it, such as “Neophyte” for level 1, “Novice” for level 2, “Master” at level 9. The highest name is “Archmaster” at level 15. (In the scenario earlier this would be reached at 8192000 experience.) 

Like many Role-playing games, there are a lot of maths and algorithms behind the stats and limitations that aren’t necessarily presented to the player. Another example of this is the weight or load limit which restricts how much each hero can carry. Each item has a weight and if the total weight of a hero’s inventory exceeds this limit the hero is encumbered. The limit uses the following formula:

BaseMaximumLoad = (8 * HeroCurrentStrength + 100) / 10 Kg
If HeroCurrentStamina >= HeroMaxStamina/2 then MaxLoad = BaseMaximumLoad
If HeroCurrentStamina < HeroMaxStamina/2 then MaxLoad = BaseMaximumLoad /2 + (((BaseMaximumLoad /2) * Stamina) / (MaxStamina / 2))

The hero’s Maximum load can also be modified based on injured that he hero has sustained. 

The Heroes health, stamina and vitality stats increase when a skill increases. 

HOW WAS THE GAME MADE?

The idea for Dungeon Master began when lead designer and Developer, Doug Bell thought he “could write a better game than Ultima” whilst playing that and Wizardry on an Apple II with his university friend Andy Jaros. After forming a company and running out of money, the pair were picked up by Wayne Holder’s company FTL, who had previously released SunDog. 

The game was originally titled Crystal Dragon and was being written for the Apple II. During development Atari announced the Atari ST and although they wanted to port the project over they felt it more important to release a game at launch and Crystal Dragon wouldn't be ready in time. Because of this, development was halted and they worked on porting SunDog. 

After launch FTL went back to working on the game, which had now been renamed Dungeon Master. Bell, in an interview with RetroGamer said that the game was originally written in Pascal, but in the end the programming language they used was C.

“We wanted to see what the performance was, and it was okay, but we realized that we needed to switch from Pascal to C. I spent three weeks learning C and rewriting the dungeon crawl in C, and the performance was better than expected.”

The game was created with a team of five people. Holder did some programming and handled sound but mainly was the game’s producer, Jaros and David Simon did artwork, which was programmed in assembly, Mike Newton handed the development tools. Dennis Walker and Bell handled the majority of programming. 

The game was originally smaller in scope and planned to release in 1985, but the extra time given by the release of the Atari ST meant that the team could expand their ideas and make a “landmark game”.

The level of immersion and realism was important to the development team. So much so that a lot of time was spent on new compression algorithms to prevent the need for disk swaps or unnecessary loads that would break the immersion.  The end result was a game that when uncompressed was 1.6MB and when compressed would fit on a 360K floppy disk. They also employed compression on items stored in the Atari ST’s RAM, which meant less loading time and more information could be stored. 

Dungeon Master was a massive success in it’s day, and spawned many sequels and clones. Chaos Strikes Back was an expansion that used the same engine as the original, and was also a massive hit in 1989. The game had many clones in it’s era including the great Bloodwych and Captive but it has influenced many games of this era such as Legend of Grimrock, available on steam and Elder Scrolls.

FTL unfortunately ceased operations in 1996. 

Paul R. Stevens, a fan of the Dungeon Master series, spent 8 hours a day for 6 months and poured through all 120,000 lines of code to port Dungeon Master: Chaos Strikes Back to windows, which can be downloaded HERE.


You can find all posts in this feature at http://ralabaloza.blogspot.co.uk/p/but-how-was-it-made.html 

Monday 2 March 2015

13 Favourite Pieces From Video Game Soundtracks


I listen to a lot of music from video games. Here's some of my favourites. I've avoided picking more than one track from a game, so although "One Winged Angel" is good, it's not in the list because I chose a different track.

13. "Guile's Theme", by Yoko Shimomura / Isao Abe - (Super Street Fighter II)

Yoko Shimomura has worked on many video game soundtracks over the years, and is currently working on Final Fantasy XV and Kingdom Hearts III. Out of all of his work, my personal favourite is "Guile's Theme" because not only does it go with everything, it's also upbeat and I defy anybody who listens to it and says they don't feel happier afterwards.


12. "Leaving Earth", by Clint Mansell - (Mass Effect 3)

One of only two tracks credited to Clint Mansell on the OST "Mass Effect 3: Original Videogame Score", Leaving Earth is melancholic and lonely. I'm a sucker for a piano based theme, and the accompaniment compliments it perfectly. This track highlights the helplessness of the world during a dramatic section of the game.


11. "Build That Wall (Zia's Theme)", by Darren Korb & Ashley Barrett - (Bastion)

The first of two tracks composed by Darren Korb to feature in this list. The sound is somber and almost romantic. It's a minimalist acoustic track that wouldn't sound out of place on a Damien Rice album.


10. "Korobeiniki", by Hirokazu Tanaka - (Tetris)

Originally a Russian folk song Hirokazu Tanaka rearranged this song for the GameBoy version of Tetris after it had already appeared on earlier versions. Tetris is the best selling video game of all time, which means so many people know this soundtrack, which later led to a 1992 euro-pop cover which reached number 6 in the UK Singles chart in 1992.


9. "Dragonborn", by Jeremy Soule - (The Elder Scrolls: Skyrim)

This track made it into the Classic FM 2013 "Hall of Fame" where Jeremy Soule was described as the "John Williams of video game soundtracks" and said he bases his work on Debussy's exploration of harmony, Wagner's grand operas and Mozart's form and composition. This track might not be "Clair De Lune" but it's 30 piece choir sings the track 3 times and are layered on top of each other to produce an epic sounding 90 person strong choir.


8. "To Zanarkand", by Nobuo Uematsu - (Final Fantasy X)

Another composer with multiple tracks in the Classic FM "Hall of Fame" and regularly compared to Beethoven and John Williams. As I said before I'm a sucker for a nice piano, and this certainly qualifies as that. The melody is amazing and evokes a strong emotion regardless of it's context within the game.


7. "Boss the Boss", by Akinori Minami - (Sonic & Knuckles / Sonic the Hedgehog 3)

This track starts out with a sound that is instantly recognisable as a Mega Drive (Genesis) soundtrack and sounds more like Streets of Rage than Sonic The Hedgehog. The track then encourages urgency and tension and sounds so classic Mega Drive that i'm instantly filled with Nostalgia.


6. "One Final Effort", by Martin O'Donnell / Michael Salvatori - (Halo 3)

This track is very cinematic and really gets the adrenaline going. Whenever I'm rushing forward in a first person shooter I hear it in my head. The orchestra is constantly building to a crescendo and when playing Halo it helps to make you feel like the badass hero himself.


5. "The Spine (feat Ashley Barrett)", by Darren Korb - (Transistor)

The second outing in this list for Darren Korb. His music combined with the artwork in Transistor made it a really enjoyable game to play. This track in particular is almost juxtaposed from the gameplay creating a soundtrack dissonance during a boss fight. Ashley Barrett's vocals are amazing and make the track sound almost like a Bond theme.


4. "Aerith's Theme", by Nobuo Uematsu - (Final Fantasy VII)

What can be said about this track that hasn't already been said? It reached number 16 in Classic FM's 2012 "Hall of Fame" and rose to Number 3 in 2013. The piano version of this theme is my favourite but any version is great. It was great move to have such a good song tied to Aerith in the game for obvious reasons, and that helps this track stand out of the crowd. The version I've embeded here is the Distant Worlds performance which I was lucky enough to see at the Royal Albert Hall. 


3. "Under Construction", by Jerry Martin - (The Sims)

I said that I was sucker for piano tracks, and this is the epitome of that. Almost Einaudi like, this piece is so interesting and stands alone without the game. It's probably one of the most underrated soundtracks in video games. It's sooooo relaxing.


2. "Bubble Bobble Theme", by Tadashi Kimijima / Zuntata - (Bubble Bobble)

So repetitive, so joyful and so memorable. Whilst this track, perhaps, doesn't stand alone outside of the game, it's almost my favourite soundtrack ever. It brings back so many memories and it's an earworm. Play half hour of Bubble Bobble and you'll have this track in your head for the next 20 years.


1. "Variations on Canon and Gigue in D", by Johann Pachelbel - (Lemmings)

My number 1 pick, is so underrated it's unreal. The entire Lemmings soundtrack is amazing but none of the tracks are mentioned when the question "What's your favourite video game soundtrack?" is asked. Well I'm gonna change that! My Favourite track from Lemmings is the variation of Pachelbel's Cannon, specifically the Mega Drive version. It's upbeat, fun and catchy as well as being great technically with the voices and channels used. Try and listen to it without it adding a spring to your step.


Is there any soundtrack missing from this list that you think belongs here? Let me know in the comments or via Twitter.

Wednesday 25 February 2015

FEATURE: But how was it made? Bubble Bobble

FEATURE: I’m going to be taking a look back at the games that I played when I was younger. Inspired by the ‘#FourGames’ hashtag, I began wondering how these games, that I sank hours into, were made and what was the development process like?


The first game I’m looking back at is Bubble Bobble, an arcade game released by Taito in 1986. The game has been ported to over 15 platforms including the Commodore 64, Sega Master System and PlayStation.


WHAT IS BUBBLE BOBBLE?


Bubble Bobble is a cooperative platformer featuring two dinosaurs, bub and Bob, who must complete one hundred levels to rescue their girlfriends from the evil villain ‘Super Drunk’. The game was revolutionary at the time for being one of the first games to feature two-player cooperative play and have multiple endings.

To complete a level, the dinosaurs have to blow bubbles at enemies and capture them inside. Once an enemy is captured, Bub or Bob must hit the bubble to pop it to  defeat the enemy. Once all enemies on a level are defeated the game progresses to the next level.



WHAT ARE THE MECHANICS OF BUBBLE BOBBLE?


Several mechanics that layer on top of each other make the game more interesting. When all enemies except one have been defeated the last enemy will become enraged, turn red and gain a speed increase. If the dinosaurs take too long to complete the level, Baron Von Blubba - a ghost beluga whale, is spawned and chases them, acting as a time enforcer. 

As the game progresses, more varied types of enemies appear. The most basic enemies are square clockwork robots which do little more than move towards the dinosaurs, but later levels include enemies that can fire projectiles, fly or move diagonally. This means the player must adapt and change tactics to deal with each enemy type.

In addition to these mechanics, power ups which augments the type of bubbles blown are also a factor as well even more subtle mechanics within each level; such as the varying airflow system within a level. Bubbles can also be used as platforms by holding the jump button when above them. This adds variety to the game, and because each playthrough will be different, creates a dynamic session for the player. 

The game also features secret levels and items as well as three endings that are triggered by following a Spelunky-like ridged strategy. For example the game must be completed in two-player mode where it is revealed that although this ending isn’t the bad ending (reserved for one-player mode) it isn’t the true ending either. A code is displayed on screen using strange symbols with the clue “No Miss Clear! Round 1-20! & Enter the silver door !! You will find ‘ABCD…” [sic]. This is a poor translation that means ‘Get to level 20 without losing a life and enter the silver door, here you will find the cypher for this code’.  These secret levels are found on level 20, 30 and 40 which all reveal clues to getting the ending already seen which is sort of recursive, except now the code at the end can be deciphered. The secret code reveals a cheat which must be entered at the title screen and starts the game as ‘Super Bubble Bobble’. One completing the game with two-players in super-mode the happy / true ending is revealed.


WHAT’S GOING ON UNDER THE HOOD?


Very few things in Bubble Bobble are based on a random number generator. The rest is due to a clever design technique. For example, sometimes the bubbles that are burst at the end of a level will turn into fruit. There are several ways to cause this. Collecting the treasure chests and candy canes, being on every 5th level (5, 10, 15, etc…) or if the last 2 digits of your score (excluding the 0 in the units column) are identical.

The lettered bubbles E-X-T-E-N-D appears random but actually uses a counter which increases every frame. This makes the letters predictable and can be used to theoretically get all 6 letters in 1 level. This works because a new bubble spawns every 128 frames after the previous bubble, whilst none will appear if there are already 16 bubbles on the screen. If you take the modulo of the number of frames between spawns and the number of letter bubbles (128 mod 6) you get 2.  Getting consecutive letters means you get either E, T, N or X, E, D repeating. If you create a bubble on the same frame that a new bubble should spawn the bubble is delayed by 1 frame and the letter that will spawn changes.

This style of pseudo-randomness also applies to item spawns. In the NES version of the game, fast shoes spawn on the next level if the counter recording the number of times a dinosaur bounces on a bubble reaches 15, whilst the green candy granting a faster bubble blowing rate will spawn on the next level when the counter recording the number of bubbles blown hits 35. Umbrellas which allow the dinosaurs to skip levels (the number of levels skipped is random) spawns after the counter tracking how many water bubbles have been popped reaches 20. These items are also ranked in priority preventing multiple items from spawning on the same level. For example “Shoes > blue candy > green candy.”

Andrew ‘AND4H’ Shute and Brandon ‘TheFirstKnight’ Shute summarise this on the speed runners community website SDA: “the most important thing about running Bubble Bobble is that it's surprisingly mostly NOT random with its magic items. Each of the magic items has an in-game counter associated with it, and when that counter is met, the next level will spawn said item. If multiple conditions are met, then the item of highest priority spawns first. After that, the counter for the spawned item resets and the item next in line spawns on the next level (provided the players don't meet the requirements for a higher priority item before that next level). This continues until there are no more items in line. Note, however, that even if the item doesn't actually spawn in time due to level completion or game over, it will still count as having spawned.”


HOW WAS THE GAME MADE?


For the Commodore 64, ZX Spectrum and Amstrad CPC port the development team, Software Creations, was tasked by BT’s then software division, Telecomsoft, to handle the conversion for the Firebird label. Once they were completed they later handled the Atari ST and Commodore Amiga versions. Initially they believed it was a simple platforming game, only to realise the depth of the secrets later in development, and in some cases not knowing them at all.

Taito sent Software Creations an arcade machine in free-play mode, so that they could play the game as often as needed.

The coder for the Commodore 64 version, Ste Ruddy, said in an interview with RetroGamer.net: “We spent an awful long time playing the game; it’s a fantastic arcade game! We didn’t understand all of the secrets so we just implemented the game to mimic what we did notice. So how the pick-ups appear isn’t the same as the arcade on the C64, but it should be very similar to how the pickups appear after the machine is powered up.”

They had trouble understanding the secrets because although Taito send some source code to Software Creations, it was commented in Japanese, which after translation was “mostly nonsense”. So too were the annotations showing the level maps and the air flow direction for each tile.

Due to the limitations of the commodore 64, there were some problems with bubbles acting incorrectly, and the number of sprites on the screen at once. To get round this Ruddy created the bubbles as software sprites which were updated every three frames, whilst dinosaur and enemy sprites were updated via an interrupt every two frames. The maximum number of enemies in the arcade version of Bubble Bobble reaches seven at once, this was reduced to six by Ruddy as the Commodore 64 would not cope running with seven. All of Software Creations ports of the game also show 1 less line on screen due to capabilities of the home computer’s frame buffers.

The ZX Spectrum version was coded by Mike Follin which is a far less accurate port. Along with the Amstrad CPC version, coded by Peter ‘Zero the Hero’ Gartside, it only featured 80 levels due to memory limitations. The graphical limitations also meant the game’s graphics on the ZX Spectrum were a poor imitation of the arcade release. A random colour cycling technique was used and all sprites share a colour which changes between levels. This means the Bub and Bob aren’t always green and blue respectively.

The Atari ST and Commodore Amiga versions were programmed David Broadhusrt who later went on to work on the PlayStation, PC and Saturn versions with Probe Entertainment. These ports were started after the 8-bit versions. Ruddy gave Broadhusrt his airflow data from the Commodore 64 port to save on development time. The Atari ST version was made first and that version was then ported to the Commodore Amiga. NTSC versions were then programmed for North America.

The theme music, originally created by Tadashi “KIM” Kimijima, was recreated for each Software Creations version, with Tim Follin working on The 8-bit versions while David Whittaker of ‘Kernkraft 400 – Zombie Nation’ fame, handled the Atari ST and Amiga sounds. The Amstrad version has no theme music, only sound effects.

None of these ports are truly accurate to the original. The most accurate port of the arcade version is Sega Master System version, which makes sense as it was developed by Taito themselves. It has the arcade secrets intact and uses the same counter triggers to spawn items.

Taito also added 30 new levels within the 100 extra levels triggered by collecting three diamonds from the special levels, as well as featuring two more bosses at level 48 and 80 (a giant Mighta and giant Hedgegons respectively). The graphics are very comparable to the arcade version, however due to memory limitations on the cart the game uses small 4x4 sprites for each 8x8 level wall and platform where the arcade version has differing 4x4 sprites for platforms and 8x8 sprites for the level wall. The arcade version sometimes uses unique sprite patterns for the level boarder which is also missing from this version.

I noticed that the Game Gear version, although fairly accurate to the arcade release, has a minor change in level design. The entire playfield is squeezed vertically to account for the resolution and screen size difference. This gives an impression of all sprites looking a little squished.


Probe Entertainment ported the game to PlayStation, Saturn and DOS in 1996. However these ports were reverse engineered from a PCB of the arcade game that Taito sent them. They couldn't send the original source code as in the same year Taito announced they had lost it. However, working as a freelance programmer, David Broadhurst was contracted by Probe Entertainment at the time and managed to fix some of the issues in these versions that were unknown or unable to be ported to the 8 and 16 bit versions that he developed at Software Creations.

When asked in an interview, the late game designer, Fukio “MTJ” Misuji said he believes the game’s endured popularity was due to the “cute character design and unique ability to shoot bubbles”.

Although Space Invaders is by far Taito’s most famous and popular release, Bubble Bobble is my personal favourite Taito arcade game. The game can be played single player, but it’s obviously meant for two players and the cooperative play with you and your friend against the game brings added fun into the mix. It’s also worth mentioning Tadashi “KIM” Kimijima’s iconic theme music is so joyful and an instant earworm.


The game will be 30 years old next year, it’s the same age as me, and it’s nice to see 1 thing from 1986 that’s still good with age.


You can find all posts in this feature at http://ralabaloza.blogspot.co.uk/p/but-how-was-it-made.html

Friday 20 February 2015

Updating a Cocos2D-iPhone application to a 64-bit architecture

At the start of this month, Apple told developers that all future submissions to the App Store (new apps and updates) have to be x64 compatible. I went ahead and migrated Puzzle Dungeon for iPhone over to 64-bit and found a few hurdles along the way to overcome. For existing projects, using the Cocos2D-Swift / Cocos2D-iPhone cross platform engine, there doesn't appear to be an easy fix.

I decided that I'd write an easy 10 step guide to migrating an existing Cocos2D 2.0 app to a 64-bit architecture.

0. Back up your project. This should go without saying.

1. In Xcode, select your project in the Project Navigator, then select Build Settings from the top menu.

2. Click on the Architecture setting and select "Standard Architectures (armv7, arm64) - $ (ARCHS_STANDARD)" from the list


3. Your project will no longer build due to errors in CCDirectoriOS.h. Don't worry, the version of Cocos2D you have doesn't work with 64 bit architecture. Go to This website and download version 2.2 (3.0 will break compatibility with your app, so we don't want that one.)

4. Once downloaded, unzip the archive and find the following 3 folders: "cocos2d", "CocosDenshion" and "Kazmath". Copy these to your project folder, replacing the existing folders.


5. If Xcode has trouble recognising the new files, remove the references by right-clicking on the folder in Project Navigator, and reimporting them.

6. More build errors. This is still normal. CCLabelTTF is looking for the CoreText.framework but can't find it. In Xcode, select your project in the Project Navigator, then select Build Phases from the top menu.


7. Select "Link Binary With Libraries" and add CoreText.framework.

8. One last build error. "Unknown register name 'q0' in asm". In Project Navigator, select search and type "ARM_NEON". There will be 2 results. 

9. Change both instances of "__ARM_NEON__" to "__ARM_NEON_NOT_USED__".

10. Now build your app, and it will be running on 64-bit architecture. 

Wednesday 21 January 2015

Questions and Technical limitations to Microsoft HoloLens and Windows Holographic.

Microsoft has announced an augmented-reality device dubbed Microsoft HoloLens. In case you missed it, here is the concept video.


The device is said to be powered by a high-end graphics and central processing unit, as well as a "Holographic Processing Unit, (HPU)" whatever that is. The device will use Windows Holographic which is baked into Windows 10.

I have a few questions about the technical hurdles based on what's been shown.

Microsoft stated that the device is untethered, without the need to connect to external devices. The first issue this raises with me is Battery life? With the amount of computational power needed to plot X,Y,Z of a model in real-time whilst also accounting for micro-movement of the users head must take some horsepower, which ultimately requires battery power. 


Is the device constantly scanning the environment for objects and surfaces? In the MineCraft image above we can see that the AR models appear as though they are resting on surfaces. This is nothing new, the AR bots in Playroom can stand on surfaces, but that camera isn't moving every frame. 

The Kinect sensor has depth mapping, but it isn't as accurate as the above image seems to suggest of the HoloLens

Part of the bridge structure, resting on the sofa, is out of view because of the sofas armrest. That suggests pixel precision from the depth sensor knowing exactly where the sofa arm is whilst the software then finds out what that means for the models, and renders them accordingly. All within 1 frame, before it has to do it all over again. 

Speaking of frames, Oculus VR have recently stated that there should be around 90 frames per second to be able to hit the 'sweet spot' and immerse the user with VR. I'd hazard a guess that something similar would be required with AR. 

This potentially means the device will scan the room, create a depth map, find out what objects are in front of the models, and render, to pixel perfect accuracy, those models in 3D space, without lag, 90 times a second.
  

This also leads to the question of what happens if somebody walks through or stands inside of your hologram. The videos Microsoft have released have shown multiple users looking at the same objects simultaneously from different viewpoints. Even in the live demo, both the user and the camera had different views of the models. 

This makes me question the tethering again. If they're working over a network and are both manipulating a model, one version must be more true than the other. They're not looking at the identical model.

Another concern is lack of input devices. It appears to work via voice commands and gestures. This is fine for Siri or Kinect. If it fails on either of those then there are alternate inputs, a controller or an on-screen-keyboard. With HoloLens and Windows Holographic they need to work consistently 100% of the time. They can't be janky like Siri or Kinect. Also, everyone feels like an idiot when they gesture or use devices without haptic feedback. 


And finally, How do you draw something that's black on a transparent screen

I really hope that Microsoft have pulled this off, and that they've managed to solve all the limitations of current technology to pull this off in a nice consumer package that won't be priced to high. I'll buy one. I'd probably even work on small projects if something like Unity support it. 
Also, as Forbes pointed out, a holographic Cortana hanging out while answering your Google searches and telling me the weather would be pretty rad.