Archived: Mike MGarcia's Games Development BlogA hobbyist Mobile/PC/Android/Console game development blogBlog | About | Contact |
So I’m working on a Net Yaroze game now (abbreviated to NY or Yaroze for short).
And as a Net Yaroze member, I have access to the old Sony newsgroups
which I search when I get stuck in the hope of finding answers, which I
normally do.. and sometimes it’s even my past self! lol! :/ doh!
Well… today I came across something worth sharing, see newsgroup post below.
Here’s a Commodore 64 intro I coded up on the Net Yaroze:
To the un-aficionados, The Net Yaroze, was the only game console, hobbyist development system, with an official retail release.
Now, If you look even closer at that list, the only other “true” 3D
console in the same era/generation was the Nintendo 64! - 3D console
games were still very new in the mid 90s.
Not only that, but it didn’t require assembly! (programming directly to the hardware)
It was programmed in higher level languages such as C/C++, Lisp and I’m sure others.
This was very important, as it allowed for easy porting (portability)
from other non-assembly platforms ie DOS/Mac/other 32bit machines
because it didn’t talk natively to any hardware.
It’s also a lot easier to read and write code and develop for and at
that time C/C++ was being taught in universities anyway (before Java).
10 Years prior, when the 8-bit computers were in homes, their manuals
included an explanation on how to develop for it, most commonly in
basic.
But people taught themselves assembly and coded games and released them to the public.
Wikipedia says that the Develo PC Engine development accessory predates it, but it’s not a development kit.
A development kit includes a target device to run the actual target builds on, commonly a PC daughter board or a seperate unit.
So the idea wasn’t completely new, except it was the first gaming
console to do it and the last unfortunately (XNA/PSVita aren’t retail
hardware kits and the HYDRA kit isn’t a console, it’s a kit), .
But I still find it strange because at the time (mid 90’s) the idea of
the ‘bedroom indie game developer’ was fading fast in popularity with
the 16-bit micros and PC computers.
Mostly because games required better art assets and more complex logic,
which one person couldn’t do as a hobby in a timely manner (a few
weeks).
The Playstation hardware (Sony dev’s called it PS-X), for it’s time
was very simple (most consoles had a fruit salad of processors).
It basically had, a standard CPU (32-bit RISC CPU Based on MIPS), a
custom graphics and sound processor with audio/video cdrom playback.
The hardware was well abstracted from the programmer and required very little hardware knowledge, only how the GPU/DMA worked.
Infact, the hardware and BIOS resembled more a Unix computer then a gaming console!
So much so, it even has GNU toolchain target support! (NY is: MIPS-Sony-ECOFF and the PS-X is: MIPS-Sony-ELF), and not to mention the serial and parallel ports!
While it was a hobbyist system, it wasn’t completely different to the
pro-kits (from the little I know about it, from the dev’s talking about
it on the NY newsgroup).
The NY members had access to all file format information, except for video playback.
This included 3D(RSD/TMD/TOD/VDF/MIM), 2D(TIM/CLUT) and audio(CDROM/SEQ/VAG/VAB).
While the NY had a cut down library, the missing functions were auxiliary or lower level helper functions.
This was done to:
A: Reduce the size of the dynamically linked library in system RAM
This made the compiled executable (actual game program) a lot smaller in
size so the transfer via the serial cable would be a lot faster!
So the libraries had to be small (500k). Unfortunately the NY only had
the same amount of RAM the retail versions had, 2 megabytes of system
RAM.
The auxiliary routines and lower level helper functions were partly
assets/maths related ie different 3D scale/rotation/translation etc.
These could be recreated with existing functions and help from the newsgroup.
However the NY did not include low level rendering libraries which
handled drawing packets, instead relying on the higher level TMD format.
B: Reduced functionality, obviously to avoid conflicts/competing with the pro dev’s.
0. Double sided polygons and 3D lines was not supported.
1. No CDR reading support (burnable cd’s), we couldn’t play burnt CD’s
nor read data assets of a burnt CD’s - the green/blue debugging PS-X
could.
2. No video playback support.
3. No multitap or controller vibration
4. No serial (unofficial support was created) or parallel port access.
5. It has cdrom access, but only basic reading, ie no data streaming like the pro dev’s can.
It also couldn’t read non official cd’s (Sony produced black cds), so no CDR’s
The NY boot cdrom had some game assets on it, ie: tiles, music, 3D
objects.. but it was only a few megabytes and was very limited.
6. No profiler
The pro dev’s had a playstation on PC boards that were installed into standard PC’s.
This allow the dev dev’s to use profilers which showed things like CPU/GPU stats and bottle necks.
The NY solution was to print CPU/GPU times on the screen, so no big issue really.
Just in case you missed it, not being able to access a CDR is listed twice (#1 and #5) and was seen as a disappointment/disadvantage by some NY owners.
The NY had access to the memory cards, the Namco Guncon light gun,
but not the Konami light gun, analog sticks but not the vibration
feature.
We also had access to assembly, but it was mostly used to speed up custom routines.
Apparently, Sony didn’t even want the pro dev’s to access the PS-X
hardware features via assembly, due to the different hardware revisions.
Also access to most BIOS functionality and we could configure the system RAM, VRAM and screen resolution how we wanted.
In my opinion, what really made the NY semi-pro instead of just hobbyist
was the GDB debugger, which is a powerful text debugger.
There was also an optional IDE package called Code Worrior which had a
GUI debugger like (Visual Studio), but it wasn’t that great.
The NY also has no region lock and can play all region games EU/JP/US, basically being a multi-system, global Playstation!
I’ve recently read the making of crash bandicoot dairy and from my own past experiences, I can relate to the developer’s issues on the hardware.
On top of this, the Playstation asset pipeline was clunky at best, remember it was developed for Windows 95/Dos6+.
Most tools where Dos apps, with very few being windows application and of these, even less work on Windows XP.
There was no 2d/sprite or 3D modeler/animation programs specific for the PS-X/NY.
Instead it relied on a plugins and converters for assets, 2D used BMP and 3D used DXF.
These plugins/converters came from the pro kits so of cause it was the best for the time!
which means 3D Studio 4 (before they added Max) and Photoshop.
Back in the 90s these application weren’t cheap!
Very luckily the Photoshop plugin worked well with the cheap Jac’s paint shop Pro and now the free Gimp.
3D objects were converted from DXF (common format) via Sony tools.
However 3D animation was particularly difficult due to lack of Sony software, requiring plugins.
There were formats (TOD/VDF/MIM), but plugin support by Sony was limited to 3D Sutio (r4) and lightwave.
Unfortunately most avoided 3D animations or kept very simple.
Interestingly, the Japanese release included a 3D modeler called lightwave bundled with the Net Yaroze.
For the other regions, it was an optional extra.
I’m sure the pro dev’s got exactly the same from Sony, but it
wouldn’t have been an issue for them as they would typically would ‘roll
their own’.
Meaning they would normally developed specific tools and formats (especially animation) for their own game engine anyway.
However, this is still the case today, with the art tools pipeline/framework still being a pain to get right.
Limitations or real life?
Yes, it was a hobbyist system and by design was limited for many reasons.
But the limitations were a good idea on Sony’s part because it made everyone’s exceptions a lot smaller and more manageable.
And the art assets issues was just the plain reality of gamedev life!
Maybe time has under-estimated because it was never in the hands of a pro team, but it’s still was a very capable kit!
And if you doubt it, check out F-Racer, developed by Gerhard Rittenhofer in 1999, it’s impressive!
Unfortunately, it was never released on a demo CD.. the Sony exec’s
preferred the author’s other game called Rock’n'Gems (a dig dug clone)
over F-Racer :/
Check the video’s description for a download link to try it out for yourself!
The NY was very closed and proprietary, but this is never a bad thing!
Like the Nintendo seal of quality, it guarantees a level of game quality.
But Sony could never release a retail console which defeated it’s own
copy protection (to use CDR’s) or compete with the full dev kits.
So how were the hobbyist meant to show of their work to others???
Fortunately, by the mid 1990’s the internet was at a point which was mature and available to most people (via dial up).
Sony already had a newsgroup service (like google groups) for it’s pro
kit developers, so they just mirrored it for Net Yaroze members and also
gave personal websites with storage via FTP access.
The Sony Net Yaroze license agreement state members could not share Playstation information nor distribute Net Yaroze binaries.
[It also stated Sony remains the owner of the hardware and it could not be sold]
This was a walled garden ecosystem
(closed platform) but thanks to the newsgroup and the personal websites
and FTP we could share information, ideas, code and binaries.
This really opened up communications with other NY members, Sony
support and Pro kit dev’s (I remember seeing posts from DMA, now
rockstar).
The contribution from newsgroup users actually extended the
functionality of the NY, ie: creating dynamic 3D objects in RAM, the use
of the parallel port with an action replay for faster transfer rates
and even file serving from the PC to the NY via serial or parallel
ports.
And most importantly, users shared their assets and development tools via their personal NY websites!
The Official PlayStation Magazine (OPSM) in PAL regions included NY games/demos.
Well… if you had a playstation you bought the magazine!!
If your game made it onto the demo CD, you had a game you could play anywhere! (in PAL regions)
This was a huge moral boost for most!
In my opinion, just like a car from the 1930’s, people will maintain, preserve and still drive them!
Why? for fun, a charm, a nostalgia.. maybe a hobby? to learn something different? many reasons!
Like cars, I believe there is no end to hardware (or software)!
It will out live us all! :)
The Net Yaroze setup is very dated now, it was built for windows 95/Dos6+ (but works in dosbox).
I wrote about my setup when I first started here.
Now, it’s a lot more mature, I hardly need dosbox now (except for asset converters) and with Code::Blocks and emulation it’s a lot faster then with hardware.
I’m able to build with ALT-Z and run the emulator with ALT-X, very quick!
Why make a Net Yaroze game now a days?
2016, there’s a plethora of products like Unity3D and game engines
like CryEngine and even free, opensourced, multiplatform engines like
Urho3D.
All these are easier, better looking and accessible to the mainstream!
While the NY is very limiting and not very accessible, early 3D games
still hold a charm all to their own, similar to early 8bit games.
Here’s my reasoning:
Nothing facilitates creativity, like physical limitations :P
The library being relatively small, means it’s a lot easier to learn and
use, unlike modern game engines or 3D API’s (OpenGL/DirectX/etc).
And being C/C++ it can be easily ported with some forethought.
This demo is as far as I got, it had textured heads and animated arms and legs.
Click to see more info.
I dedicated a few weeks but never released it as it wasn’t playable and WIP, unfortunately I lost it all over time :(
And now I have now is a few screen shots :’(
So, that’s my motivation, to have something finished before the Net Yaroze’s 20th in 2017!
Unfortunately, there’s no more Net for the Net Yaroze? :X
Looking back and reading the newsgroup now, it’s funny how full of ‘normal people’ it was!
Full of banter, dreaming of what could be… killing time.
Some even philosophizing about action replay, Ez-o-Ray, Caetla, PSEmu, Bleem, backups and mod chips :/
Admittedly I too was a normal person with dreams.
I was studying computer science and had grown up with and programmed
(basic) the commodore 64 and yeah I was gaming a lot more back then!
but was that enough?
Well, without skills and commitment, normal people really don’t have a sense of drive and purpose!
I had the skills, just not the time commitment unfortunately.
Some had the time and the commitment, but really under-estimated the skill required.
Even for a C/C++ programmer to make something playable required a few weeks of straight dedication!
Then there’s the quality of the art assets, which matted even more back then due to polygon limitations.
There wasn’t any drag and drop, Unity3D type of development
environment on the consoles back then, and I doubt it existed on PC
also!
Even the opensource game engines like quake/doom/duke weren’t available and if a game engine was, it most likely used assembly.
So, like the games before the Playstation, every game was unique and had
it’s own game engine written specifically for the game logic.
However because it is in C/C++ this does allow for re-usability.
But for the ‘normal people’ that only spent a few hundred dollars
expecting to make the next AAA title game.. reality quickly sunk in!
Sony did advertise it as hobbyist, explaining the basics of the setup
and the programming requirements but the asset pipeline was never
explained. Thankfully the NY members sharing tools and the homebrew
scene, it was less of a challenge.
In my opinion, If it was a bit more expensive, maybe twice the price and included a better art pipeline/workflow tools, I doubt those people would have been there to begin with or at least not complained so much.
Here’s what I mean, from a newsgroup post asking member’s for a game for the UK magazine “URGENT! OPM Games” dated 22 Jul 1999.
>
> There are too many time wasting activities and hurdles on the Yaroze and
> these contribute to a loss of interest in the project.
>
> 1) Recalculating those stupid Hexadecimal memory addresses every time
> one of your data files changes. (The number of times I’ve been caught
> out by this…..)
>Life’s a bitch, huh? Other NY members have come across the same problems
and have written tools to help, and have been kind enough to share them with
us.> 2) Having to make graphics and sounds in the first place (tiles, sound
> effects and stuff like that should be part of the boot CD)
>But there are textures and GM sounds on the boot CD. Ok, they are limited
and quite poor really, but creating graphics and sounds are all part of game
creation, surely.> 3) No code samples in the (and a lack of consistency in the way things
> are done in the tutorials)
>There’s plenty of source code and information on the NY/members web site.
Personally, I found the manuals explained most things adequately, and where
the didn’t, the FAQ and these newsgroups provided the answers.> 4) Not much info on game design and implementation
>Well, that’s really down to each individual and their talents (or lack of).
The most fun aspect of programming is the problem solving - working out how
to translate your ideas into code and onto the screen.> 5) No proper tools to work with (sprite tools etc)
>It’s up to you to source these tools. Pro developers have to do the same.
Besides, there have been several opportunities to get fully blown graphics
packages (which usually cost more than the complete Yaroze package) for free
on cover discs of magazines etc. - information on which has often been given
on these newsgroups.> 6) No multitap libs (we all know that the good multi-player games can
> sometimes look poor but we accept this because they are so much fun so
> we could produce good 4-player games and people would overlook the poor
> graphics that home-coders produce)
>Agreed. It’s a shame, but we can’t have everything.
> 7) No incentive (if we give a submission for the magazine we get nothing
> and some mainstream coders can take our ideas and make a better
> version).
> SONY could have easily set up some deal with their developers (or at
> least established links) to have our work included on mainstream games
> as sub-games. The developers could then pay us a standard fee for our
> work. Equally, SONY could produce a compilation of the best work (say
> 10 games per disk) and sell them commercially with coders getting a
> royalty (or fixed fee)
>The incentives are: fun, learning, and the fact that the NY project is a
proving ground for new talent, and therefore a possible way into the
industry. It is also very satisfying to get a game published on the OPM
cover disc, not to mention the recognition received. And, your arrogance
bemuses me. You really think that your ideas are too good to share without
someone ripping them off and making a killing from them? Well, in that case
I suggest you start developing your ideas on the PC, then try and find a
publisher. Or, try and get a job in the industry - but then, you need to
prove yourself first to do that.>
> We are supposed to solve these problems in our spare time and produce
> games in a matter of weeks. Mainstream PSX stuff is produced by teams
> and take months or years.
>It’s what game designers/programmers (i.e. you) do - solve the problems. If
you want it all done for you, then that already exists - they’re calledgames retailer.
We do it in our spare time because WE WANT TO. We do what we want, when we
want and at the pace we want, and no one is expecting us to do anything
other than that. Nor is anyone expecting us to compete with professional
development teams.> I don’t want to release something which looks like a load of cack but I
> don’t want to give away something, which represents loads of my spare
> time, for no payment.
>If your talents don’t live up to your own expectations then that’s your
problem.You are not going to get paid! You made a mistake in buying a NY if you
expect to get paid for anything you do with it. It’s a HOBBY. It’s not
work, and it’s not a job.> What about a competition with some prizes? Sony are loaded so they can
> afford it.What like GDUK?
> Or did they only start the Yaroze program to generate new
> game ideas on the cheap!
>Yeah, let’s face it, the NY scene is really bulging with great, new, fresh
ideas. People with great ideas are two a penny. People who can put great
ideas to effect are those in demand.> Rant over*************************************************************
>Thank {insert expletive here} for that.
> Believe it or not I am actually producing a game for Yaroze but I am not
> sure how long it will take. If I had all the graphics and sounds done I
> could finish the code in a couple of weeks. However I have no idea when
> I will be finished because the graphics and sound are such a grey area
> (because they are down to your own personal standards and are limited by
> your tools and artistic ability)
>
>
> My game is a variation on Puzzle Bobble (Bust a Move2,3 etc)
>
>Ah, now who’s stealing who’s ideas exactly?
Oh, I get it! This is a wind up isn’t it? Had me fooled for a while there.
And this guy liked complaining, Is the YAROZE a SCAM?
I posted more Net Yaroze info here.
if you’ve read all this, contact me via twitter @mgarcia_org.