Hey all, Leqz here. I just contacted Tim Closs, a former developer at Ideaworks3D for a Q&A session and he responded. There's isn't much questions directly relating to the NFS's port, only two that directly address it with the other one vaguely reference it. However, it should give you all some insight on how mobile game development works back in the days.
Here is his response. EDIT : I cut the unnecessary intro and formatted the post a bit better.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Hi Leqz
I've tried as best I can to answer your questions below.
Hope this is of some help!
Best wishes,
Tim
1.What is your role in the development of many of the Ideaworks3D's games ?
I joined Ideaworks3D in 2003 as Lead Programmer on their first original game development, System Rush for N-Gage. I was then initially Lead Programmer on System Rush 2, before handing that over when I took the CTO role in 2005. From then onwards I was more focused on the company's SDK business, where I was lead architect on the 3D graphics engine and game engine "Airplay Studio". The company already had a solid architecture for their mobile OS-abstraction layer, "Airplay System" - together these were eventually rebranded as Marmalade SDK.
2.How did you approach the publishers to start porting their games ?
This was standard games developer business development, much of it originating at international games conferences. When I joined in 2003,the company had already delivered Tomb Raider, Tony Hawks Pro Skater and Pandemonium for BREW, and were building a reputation of pushing 3D mobile games into new possibilities. We were targeting PC/console games publishers, showing them that the world of mobile gaming was approaching something where they could start to deploy their console IP.
A relationship with a games publisher often started with porting an existing console game (PS1 or PC) to mobile, or perhaps an existing mobile game to Airplay SDK so that it could then easily be taken to other mobile platforms. Ideally we then wanted the publisher to start using Airplay SDK themselves, although it took several years before that became a reality (e.g. Konami using Airplay SDK to build Pro Evo Soccer).
Airplay SDK was used in all of the company's games listed here:
en.wikipedia.org/wiki/Ideaworks_Game_Studio...with the exception of "The Sims 2 Mobile" which was a J2ME game.
3.What is the biggest hurdle when porting console games to mobile so it'll be almost 1 to 1 when compared with each other ? I'm mainly referring to the N-Gage ports.
4.What elements you took and left from a main console game when developing a port/spinoff ?
I'll answer these together. The biggest challenges were:
- CPU/GPU performance. In 2003, mobile devices did not have GPUs, and typically had an ARM9 processor running around 100Mhz... massively underpowered compared to PS1
- Memory. A BREW game had to fit within an install size of around 1.5Mb, and was allowed around 5Mb heap memory when running - ridiculous. Compare that to 650Mb of space (or whatever) on a PS1 CD-ROM
- Control interface. Games relying on twin sticks and lots of buttons needed a complete interface re-design for mobile
The observations that Ideaworks3D had made were:
- All mobile devices run ARM CPUs. So if you could compile a game as an ARM static library, with a limited number of external dependencies to an OS-abstraction layer, and then implement that layer identically across platforms (Symbian, BREW, Windows Mobile... and later iPhone, Android) then you could run the same game (i.e. identical ARM machine code, in the static library, which was indeed "the whole game") everywhere
- PS1 games were 99% C code, and this could easily be recompiled for ARM using standard toolchains
- PS1 games used a limited number of calls to Sony libraries, which could easily be re-implemented in terms of the OS-abstraction layer
(e.g. "is this key pressed")
A key achievement was reimplementing the PS1 GPU specification as a software renderer. This was internal tech called "Paella", the 2-year brainchild of a chap called Brian. It wasn't the prettiest code but it was blindingly fast. At the time, other companies were focused on trying to implement the OpenGL ES 1.x specification in software, which was pretty much a dead-end as it contained so much stuff that game developers just didn't need, massively slowed things down, but were required in order to be a conformant implementation.
Hybrid Graphics came closest:
en.wikipedia.org/wiki/Hybrid_Graphics<https://en.wikipedia.org/wiki/Hybrid_Graphics> and were later acquired by NVIDIA.
In fact, the PS1 GPU design was better suited for a software-rendering implementation. It was packet-based, where each tri/quad contained all it needed in order to be drawn. There were a very limited number of drawing modes, so it was possible to write very optimised code specifically for each.
A lot of time was spent getting things to be as small (memory-wise) and as fast as possible. We used ARM assembly language where we needed to. Every bit of every byte counted, so much so that we developed our own variant of ZIP compression that worked across sets of files (rather than individual files, like the standard ZIP algorithm at the time).
5.How did you rework the PS1 version of Need for Speed High Stakes when you developed Need for Speed Underground 2 mobile port ?
Did EA gave you the source code for NFS HS willingly or did you asked for it ?
Fun fact, this isn't the only time that an older NFS game is reused for a port. The second being NFS Undercover PS2/Wii using NFS Carbon as a base. It is just standard practice at the time ?
I don't recall the details of which NFS version was the basis of the mobile game. But yes, in all cases we had the original C code for the PS1 version of a game, and the majority of the code was kept and re-used as the starting point of the mobile game. Obviously a lot of changes were then made, and a lot of content removed, in order to make it suitable for the mobile platforms.
6.Here's a question from my like minded friend,was Marmalade SDK an evolution development of the engine upon which NFS UG2 was built, or was it an entirely new code base?
Entirely new. As above, Marmalade SDK was essentially 2 different things:
- Marmalade System (previously Airplay System), a mobile OS-abstraction layer and associated toolchain that allowed C code to be compiled as an ARM static library, and linked at build time to a mobile OS-specific implementation of the abstraction layer
- Marmalade Studio (previously Airplay Studio), a 2D and 3D graphics engine and lightweight game engine + tools, designed to be used on top of Marmalade System
Marmalade System could be used independently of Marmalade Studio, and that was the route when porting existing C-based games. Marmalade Studio was used for all Ideaworks Game Studio original game development, and as part of Marmalade SDK was also used by 100's other game developers to build original mobile games.
7.How did you communicated with the publishers for ports that were released alongside the console/PC versions of the games ? Did the publishers gave you any insight in the console/PC versions development ?
I can't think of a case where that actually happened - the mobile games were always released after the console/PC version. If the mobile game was a port of a PS1 game, then we would definitely get the full PS1 source code + assets, and make maximum use of those. But in many cases, e.g. Metal Gear Solid, Final Fantasy, Resident Evil, we were just building games from scratch, using the console game for reference... we may possibly have had access to some 2D/3D assets.
8.What influence the choice of mobile platforms to port ? For example, why port NFS UG2 on BREW instead of N-Gage/Symbian or J2ME ?
This was purely a commercial decision. For example, when N-Gage came along, even though games that were already "on Airplay" could be deployed to N-Gage with very little work, the publisher would not bother unless there was sufficient financial incentive from Nokia. Anyone bringing a new mobile platform to market (either a new OS, or a new delivery platform) would have to throw money at the big games franchises in order to persuade publishers to make the effort. Apple and the iPhone was the exception - almost immediately everyone knew it would be successful, and publishers were falling over themselves to be featured on the App Store.
9.What is the most fun game you developed there ?
System Rush 2 was fun as it was the first game that needed to exploit mobile GPUs, so pushed us to add that support within Marmalade Studio,and deliver a really nice looking game onto the Nokia N95 etc. The whole era of working on Final Fantasy, Metal Gear, Resident Evil was also fun as there was a fair amount of travel to Japan, and getting to know these legendary Japanese games publishers.
10.Can you rate every game you developed there ?
Not really! But Metal Gear Solid Mobile would be up there as one of "the best", because of the overall quality and the fact that it was doing things with the mobile device for the first time, e.g. using the camera and microphone as part of the gameplay.
11.How long did a game is developed ?
Some of the PS1 ports only took 2-3 months. I think the original System Rush took just over 1 year, for 2 developers + 1 artist. I believe the big Japanese games took around 6 months, but the teams were larger by then, perhaps 3 developers + 3 artists/designers.
12.What are you thoughts on the current mobile games market ? Did you expect mobile gaming to get as big as it is now back in the days ?
I've lost touch with it now. We could all see that the market was evolving very rapidly, I'm not sure anyone really stopped to forecast 5,10 years into the future. Once iPhone had been around for a year or so, everyone could see where things were heading, and that mobile gaming would have equal place alongside other platforms.
13.Do you still have source code/development builds/assets/tools for the games that you developed there ? If so, can you share footage and/or a download if any of it still exists ? I'm mainly want to preserve the games that were released on BREW as those games rely on a now defunct servers to stream the data.
Sadly no. However I've dug out 3 PowerPoint presentations from 2006 (two from GDC Conference in California, the other from Develop conference in the UK) that talk about the ethos of the company, and reference many of the games that had been built up to that point.
14.Can I post this Q&A online ? If you want to, I'll make it anonymous which you may want if you have anything regarding the previous question.
Yes you can post it online, and you can name me. There is nothing here that is not in the public domain or infringes any IP.
If there anymore stories that you want to share,feel free to do so.
There are lots of stories, but that's where I'd have to be more careful with anonymity!
I think there's a fair amount of info above, so I'll leave it there.
Best regards,
Tim
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Here's the PowerPoint Slides he mentioned