Developing for the Playstation 2?
Kentai asks: "Im thinking of building my final year CS project around developing a piece of software for the Playstation 2 and I am wondering what various pitfalls I should expect. Bringing our own software to the living room on nice hardware seems like a whole new computer medium that would be fun to exploit. Problems I am expecting so far include: issues like obtaining a compiler (pretty important), the whole Playstation 2 CDR issue and legal issues. What compilers can one use to develop PS2 software, and how much does each solution cost? Also, has anyone had any luck or placed any hope on a Java VM for this platform?"
At JavaONE this year they had a big demo where they spoke of a JavaVM being part of the PS2 and I wanna say they said something about around Christmas time. The guy showed some interesting demos of going into a chat room and sending out requests to play some networked games.
www.HearMySoulSpeak.com
You might want to keep an eye on www.javagaming.org . A few of the Sun Guys Frequent that site, and will sometimes post little bits of information.
Less Talk, More Beer.
From my own senior design projects, let me discourage you from designing a game. We (3 of us) designed a PC game that used DirectX7, used 2D graphics, sound, and was online only (no AI). After working and designing it all year, we could only get people on the screen fighting one another. The amount of work we put in was the most out of any of the projects.
I don't want to discourage you too much, but designing a game with graphics and everything is a huge task. Most people have no idea what they are getting themselves into when they do it, and it can pay dearly on the other classes you will be taking (I dunno about you, but the last year of college was the hardest classes, all requiring multiple programs to be done all year long). If you want to design a game, may I suggest something similar to a MUD or MOO? You can put more features into it, and people can have fun playing it. But getting a game working (with graphics) on a PS2 will require a ton of time, and a large team of people.
Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
I am wondering what various pitfalls I should expect.
Don't worry, Pitfall hasn't been released for the PS2.
Here is a link to Metrowerks CodeWarrior for Playstation 2. I'm not sure about the pricing, but there is a pricing link there where you can send a request for pricing on it. There is also a datasheet, FAQ, etc.. there. Definitely a place to start.
bbh
well, codewarrior seems to be popular with the kids despite its $5000+ price tag and that isn't even counting the $40,000 sony charges to be a licensed developer, a title without which Metrowerks won't sell you a PS2 compiler. Besides, there has to be something free out there (or maybe make your project a PS2 compiler!!!)
Python has been used for commercial games on the PlayStation 2. I don't think that the development tools are on the Web because of Sony licensing. But if you know who to talk to and where to look, you can probably find them.
The dreamcast has an EXCELLENT community built up around homebrew.
There is an awesome library/miniOS called KOS which gives you hooks into everything, you compile with an SH4/ARM crosscompiled gcc, and it's easy to do once you're set up.
http://dcdev.allusion.net/
The PS2 homebrew crowd is JUST STARTING to get off the ground, but there's still problems of having to hack your ps2 with a soldering iron to get it to boot a cdr/etc, as well as very weak library support.
Homebrew console programming is very fun, but go for dreamcast, ESPECIALLY with how cheap dc's are right now.
There's even ways to get a serial cable hooked up, so you get debug info and can upload your program without burning a disc every revision.
Better support will not be found!
You might want to get in contact with the people doing this...
http://www.jcp.org/jsr/detail/134.jsp
JDK1.4 allows double buffering and full screen control, so start with that as a base (it's in beta at the moment)
If you do decide to use Java, go for something simple that is 2D based and tries to engage the mind rather than blister the fingers.
Good luck!
-- "Gookin! Why do you lie amongst the cheeses?" www.dyingearth.com
Anyone have some informative links to info for coding on the original PS?
I don't even know where to start (not this matters this will probably remain unfinished project #9877586) I'm assuming you'd need a mod chip to play burned discs...
I'm the big fish in the big pond bitch.
It is very expensive, but it is nice to use a compiler that works the same for multiple platforms such as Linux, Windows or the Palm OS. As for cost, you need to contact games@metrowerks.com for a pricing/packaging matrix.
PS2 coding is *very very tough* if you want to get something that's fast. To get the best performance out of the PS2, you have to synchronise a lot of different hardware - it took us 18 months to get a decent engine written, and we're a team of experienced game coders. You have to understand that hardware backwards, and be aware of the various hardware pitfalls that exist.
It's a very, very, very difficult beast to code without using middleware, and that's expensive stuff.
Try using the SDL and OpenGL. These have both been ported to the PS2, see this link for more details. Then you should be able to develop on Linux and port later.
I was discussing this very issue with my supervisor yesterday. I work in a VR lab and we are looking at training tools that run on a PS2, and XBox or a DreamCast or whatever.
The conclusion we reached is that the way to go is to design the project with this in mind but work on PCs and build something going on the PC platform first. The large cost of a console development seat makes doing it for a student project seem a bit unwise. However if you used the SDL you could move it later.
It'll take you ages. Especially if you want to do it on a PS2 (even if you had access to professional tools). Especially if you've got no previous games programming experience.
If you're going to do a game...
a) Write it on a PC - much easier to debug etc..
b) Use as much middleware as you can - if possible, use someone else's engine.
I wrote a game last year called Hunt for the Red Baron in 9 months. I was the only progammer and I had an Artist and a part-time games designer working with me. We used Renderware and a load of our own libraries, and without them I'd never have had time to do it, and I'd already got several years of games programming experience behind me. Believe me, all that boring stuff to load in bitmaps, handle input, etc etc takes ages. Go for a existing engine if you can.
The other option is just to write an engine for your project and forget the game side of things, and just end up with a demo.
cheers,
Tim
That would be me :)
The main thing to expect from the PS2 is that you have minimal to no library support. If you want to get polygons or bitmaps on the screen, you have to manage video memory yourself, you have to talk to the graphics hardware directly, and so on. If you want to really get performance, then you have to write custom assembly code for the vector processors.
The bottom lines are: (A) the learning curve is very steep; and (B) expect to do very embedded-systems type of work, and not be able to rely on fancy C++, Java, or the like.
Wait a minute... is this even about games? He said "Im thinking of building my final year CS project around developing a piece of software for the Playstation 2 ... Bringing our own software to the living room on nice hardware seems like a whole new computer medium that would be fun to exploit." I'm wondering if the project in mind really is a game or something else? I'm not a PS2 guy, but if it (like the DreamCast) has a keyboard / modem (or NIC), couldn't you do things with it besides games?
Just a thought...
After all, isn't it just bits in the end?
If I can't see it in Lynx I'm not interested.
One of the cross-platform multimedia libraries that has already been ported to the PS2 is SDL. f you have the PS2 Linux Dev kit (hard to get) then you can just download PS2 SDL from here.
I have no idea how well the support is... or the speed... but it works well enough that there is a port of Maelstrom for it. I have heard that you may also be able to use the SDL OpenGL wrappers to make 3D PS2 apps.
If you are using the PS2 Linux dev kit, you can use the GCC (I think) as well as autoconf|automake.
As the PlayStation 2 is backwardly compatible, you could try the official NetYaroze development kit for PS1 - this will create fast, efficient code. Unfortunately, with the release of PS2 Sony have stopped making them, but you can probably get a second hand kit from ebay or somewhere. You develop Yaroze programs in C on your PC - you can then burn them onto a CD. There is also a lot of interest groups and free code out there (NetYaroze license means you can never charge for your software). For the PS2 to play these CDs you will have to have it "chipped" which will invalidate your warranty (not something I recommend, but very popular I believe 8-).
Alternatively you can try YaBasic, Sony's "replacement" for Yaroze, which should come on the CD with your PS2. You can save YaBasic programs to memory card (so, small apps), and they will be slower (interpreted). YaBasic is a little simplistic - you will struggle to create anything impressive without extra tools (and a USB keyboard is essential). Like most people, I glanced at it once, then got onto playing DVDs and games, but I am sure others could support you here. PS2 magazine in the UK are currently running a series of YaBasic tutorials that can get you started though. I'll try and dig out some URLs for you.
With the emerging HD/modem for PS2, I believe Sony are releasing a Web Browser CD - which hopefully means a Java Virtual machine. You could investigate this option as it also opens up the wider Internet PC/Digital TV alternatives.
The next thing up is to get a PS2 professional developers' kit which you could only justify if you were seriously thinking of making a business out of this project, and could get financial support to see it through. It is a nice idea, so I wish you luck.
Python runs fine on PS2.
As it has good bindings to C++ performance critical stuff can be moved outside of the scripts.
By the way, see http://www.asbahr.com/papers.html
for some info on python used in Ultima Online 2.
-------------- I don't speak for my boss. My boss can speak himself.
I actually work at a game company who has done development on a lot of consoles. I bet that you will find the PXS stifling. I have spoken with many of the artists here and they found themselves very limited by the memory requirements. The PSX has 2 Megs of memory.. thats not much. Makes those old PSX games that much more impressive.
I've never programmed the PSX itself, but I would venture to guess that you would probably be better off working on a PC. Probably easier to program and allows for a lot more flexibilty. Even so, writing games at all is a major effort.
"Of all days, the day on which one has not laughed is the most surely the one wasted." -Sebastian Roch Nicol
That would be me, too :-)
:-)
The development system costs $10,000 and requires signing an NDA. Also, SCEA generally want to see a business plan or some indication that you're going to release product.
It's very complex hardware to work with in any significant way. Very powerful, but when you have 6 functional units (EE, VU0, VU1, GS, IOP and SPU) all operating in parallel and synchronised (generally) by DMA commands, it's going to be tough to program. At least C++ and STL do work pretty well, there are plenty of companies relying on them for their games. Be thankful for small mercies
In all honesty I would not recommend you look to straight PS2 development for your project. I have some alternate recommendations:
PS2 Linux kit - may not be released in the USA, or not in time for your needs. Runs on the consumer PS2 (with the HDD addon) and has more library support.
Gameboy Advance - has some of the PS2 issues, namely expensive development hardware and NDAs, but much easier for a single programmer to produce something credible on with.
XBox - you can do most of your work on a regular PC under DX8. Easiest programming environment of the 3. But if you do this, maybe you would be better just on a PC with a GeForce 3?
Graham
Um. Its only the number one development environemnt for cell phones. Guess those arent small embedded deices?
Try catching up from 1995.
http://java.sun.com/j2me
I lvoe Slashdot, you can get al lsorts of advcie from people who don't know anything. here are some realities from the industry:
(1) Native PS2 is a closed platform. In order to get the PS2 SDKs you need to convicne Sony yo uare a real developerm, sign serious NDAs and fork out $30,000 for a development system. I doubt this is within your reach.
(2) One true thing posted here is that ANY game paltform is (at most) a bit above bare-metal programming. If you've never done this, trust me, you don't want to start in your senior's project.
(3) Sony has a Linux for the PS2 out in Japan. It may ge treleased ehgre in the US. That is an open platform BUT you MUST have the hard drive add on to use it. It will not work on a stock PS2.
Secondly, at that point all you really have is an alternate Linux PC? You might as well do your Linux development on a PC and be done with it.
(4) Sony and Sun have announced that they will be releasing a Java for the PS2. No other info on that p[roject is yet available. Thre is no gaurantee (or even likelyhood) that sucha Java will be free or open. It is more likely that it will be made part of the Sony developer SDKs.
I think that was a Europe-only deal. I vaguely remember a story about it.
This story covered the inclusion of yabasic on the European PS2 demo disc to get it qualified as a "computer" because importers of "computers" don't have to pay as much tax as importers of "game consoles." However, if Sony tried this in the United States, it would lose the rental market to 17 USC 109(b)(1), which states that computer software (other than game console software) can't be rented without excessive paperwork between the rental store and the copyright owners.
Will I retire or break 10K?
Sure. if anyone could do real PS2 software people all over it.
And there would be lots of crappy software and no way for Sony to control it and thus get revenue out of it. Two things Sony doesn't want.
Bad software makes a platform look bad. This is accepted in the game industry as one of the big reasons the Atari2600 died.
Then you need to understand the revenue model of platofrm development. Somy sells PS2s at a loss. (All platform makers do.) They make their money off of their lciense fees from game developers. This requires a complete control of the platform in order to insure proper licensing.
Sony will release the Linux in the US but don't kid yourself-- you wont be writing real PS2 games with it.
Any tool vendor for the PS2 is forbidden by their licnese agreement from selling that tool to nayoen who isn't a direct Sony PS2 SDK licensee.
Again its all about control of the paltform because thats where the revenue is.
And here's my crappy java game, Anirak [angelfire.com] that I have been developing with a 12-year old in order to teach him how to make games.
You, good sir , are a schollar and a gentleman! That's how I learned to program. Sitting round a VIC-20 with my dad , while he showed me (or worked out with me!) how to make nuggety little games. Now that learning is earning me bucks and position. What an excellent thing to do. Good on you.
Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
(your welcome). As to kids resources... Unfortunately not. I've often thought a ... perhaps python based.. game programming language that lets kids make nifty 3d fun things and imposes all those little math lessons that makes rogramming so mind expanding for kids is in order.
It's a tragedy, but probably the only kid friendly language I can think of is VB... And that'll only encourage bad habits... Kylix tho may be extremely usefull for kids, because it's visual and thus has that instant gratification thing, and actually has a real object model.
I'm sure theres a few bucks to be made in writing that kid's game programming book too!
Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
Thanks for that - I have just got a DC second hand, and was looking for info on programming it. :)
now have two keyboard/mouse adaptors and a serial cable ordered and on their way, and the rereqs for the linux CD are downloading now
-=DaveHowe=-