pouët.net

Is a new retro architecture necessary, and for what expectations?

category: general [glöplog]
 
Putting my RRPGE aside, I would like to share and get opinions on whether this (a new retro architecture) was necessary, and if so, what would have been your expectations.

Without the deed done I wouldn't think I would have received useful feedback on this matter. For me now it is done, and quite terminally done, that is a huge effort put in, so it will likely stay this way or die if I can't get it to success. But I would still like to hear your opinions on the matter, independent of what I have done.

My opinions, and why I got here are as below.

I am primarily into games, building demos never particularly got to interest me, that's how I never got here into the scene. For game making purpose I actively pushed the C64 with experimental graphics algorithms (scrolling with open borders, sprite multiplexer design etc), but nothing to release (I might, much later). My primary interest however was old style computer RPG's, and for that, the C64 is just too weak (you can't cram a big epic story in 64K, or you end up with lots of disks). For that I pushed the x86, but that was just plain hideous to work with.

We have the C64, the Speccy, the CPC, and a dozen of other 8 bit machines with perfectly functional and free emulators. However even the Amiga is already crippled with legal problems (where you get Kickstart ROMs), and beyond that the problems just go even worse.

And here's the matter of user base. OK, fine, release a game for Amiga. While retro style seems to thrive, good luck getting that Amiga game to the wide public, explaining how to set up WinUAE, fast ram and slow ram and whatnot necessary to get it functional. With DOS you would have more luck thanks the simplicity of DOSBox, but bear the evil of the x86 and spend your nights with Ralph Brown's Interrupt List by your side. Well, rather pick a console from the 90's, and get faced with that you again can't get your work to the wide public at least because of the legal junk.

If one rather picks the current established way, and develops a retro style game for "something", then he will face that to widen his userbase, he has to go in porting and porting stuff, then as years pass, just to keep his game afloat would require constant effort. This encourages simple one time shots (Flappy Bird), and I think greatly discourages more complex games: the systems you target and the technologies you use might well get obsolete by the time you get your game done! I don't mean there are no awesome complex games today, but for the simple developers, getting such done became an impossibility.

So these were roughly the base thoughts on which I did what I done. To get something done which has the possibility to open for a wide user base (simple emulator, easy porting), and is more powerful than old 8 bit systems (powerful enough to get complex, visually pleasing retro RPG games done in it).

And now the "what do you think?" matters.

So do you think such a system is necessary to be created (it is OK to think the legal cripple should be blasted away from an existing one instead)?

If created, what would be your expectations? Which era it should aim for? What capabilities? What style of processor, etc?

What do you think about aiming for a "wide user base"? If you think it is beneficial, what properties your choice of system would have to go for it? How?

Sorry for the long post, but hope some of you are interested. Maybe I can even change some aspects of my system to live up to your expectations, as far as it's current state permits.
added on the 2014-04-01 20:33:12 by Jubatus Jubatus
Isn't "new retro" a bit of a paradox?
added on the 2014-04-01 20:50:37 by Gargaj Gargaj
lft has made a lot of demo productions for purpose-built demo platforms that he designed himself.

One of them even has a programmable shader unit that provides one kind of merge between modern and traditional GPU rendering pipeline. They often closely resemble 8- & 16-bit demo productions. These "retro" (ugh I hate that word) machines are totally modern by design, but limited by the hardware capabilities, either by design or by necessity.
added on the 2014-04-01 20:55:19 by visy visy
Yes, I admire lft's works, those ways he crafts his own platforms are quite insane :) - but guess they won't quite do for the "wide public" which I aimed for.

Ok, yes, retro is a bit paradox here, but if we have new retro style games, why we can't have a new retro style platform to create such upon?

The problem probably is that I have a different mindset with my goals. I always wanted to create games, for the wide public, but the requirements to get one done are just getting crazy. It is different to demos: with a demo if you are interested, you preferably watch it on a compo, otherwise you make it run, or be cheap and watch it on Youtube. With games this does not work unless you target that small audience who is willing and have the skills to deal with computer problems (games are even "worse" than demos since you can't get them near okay by just watching videos - they are interactive media). Otherwise getting a game done is more a chore than fun today.

I realized this problem, and tried to work on a way to get around this. I don't really see any other reasonable way to live up my (here my, with the game mindset) expectations in this matter. I looked in and for years created monsters of interpreters, and even wrecks of game designers, but all these approaches are vain to solve the problem. This seems to be the only possible way: to create a simple base, a near real hardware product which is very definite and simple to emulate. And then things may build upon, probably even drag & drop game designing tools, and then games will run and live happily ever after (TM) as long as there are people who keep working on the emulators.

For you this simple base may or may not be interesting.

And I see as scener, who like to do demos, tinker with the depths of hardware, and probably hardly ever care of legal matters (only if it is a must), the mindset I approach the problem is not quite interesting, and for that yes, I understand it might be very well likely that I get the puzzled "Why?".
added on the 2014-04-01 21:34:01 by Jubatus Jubatus
biggest userbase you can reach is to create your retro game for pc. your job will be easy, and it can still look and feel retro. making your own platform - you will have a handful of ppl as userbase...

or either live with what there already is. for the 8 bits there are a lot of HW extensions which are even nicely emulated. (c64 has reu for memory expansion)
added on the 2014-04-01 21:49:10 by Oswald Oswald
Create my retro game for PC... Well, I designed this thing I have. I designed it with the mindset of making my game plans possible on it, even overpowering it for this purpose. Sooo... If I approach with this mindset, the system will stay alive as far as I create my games, since I see it now a lot less hassle to port a very little interface layer around as needed than an entire retro style game or even more games. So :D
added on the 2014-04-01 22:07:42 by Jubatus Jubatus
No. There is absolutely no reason for such a project to exist. You've created a highly bespoke system - even down to your own CPU that no existing assemblers, tools or well established programming tricks will work with. There is no ready-made base of developers who have experience with the chip and can easily start writing for your platform, they'll need to learn from scratch.

However.. this is the demoscene. A lot of what we do has no reason to exist :)

I seriously considered creating something similar myself - a retro platform that *could* have existed around the 8-to-16bit transition era. I thought of a pimped up 8bit computer with graphics and audio hardware based on what was available at the time. My plan was to invent "the console that never was", invent a back-story about it being created but never released and then write a bunch of "lost" games for it and release it. I understood that I was highly unlikely to get anyone else interested in the idea though, and that it'd all be down to me.

In the end I didn't do this, Pimp My Spectrum was the closest I came - that's a fictional but possible(ish) machine based around a ZX Spectrum with invented graphics hardware.

I think what you've done is impressive and really interesting and you've obviously put in a shit load of effort. I suspect you'll have a hard time getting anyone else interested in the invented hardware aspect of it though - if you don't write great games with it then no-one will really care. If that's not a problem (ie: if this helps you achieve your goal of writing games) then you're winning. But then if you want to write games there sure are easier ways to do it.. most people just write a framework/engine in C++/OpenGL/SDL/whatever ;)
added on the 2014-04-01 22:28:28 by evilpaul evilpaul
Surely if you want to make a retro style game for a wide audience, you just make it for android/ios.
added on the 2014-04-01 22:49:03 by xeron xeron
my thoughts exactly.

Its not an emulator if its not a real thing to begin with. Its a cross-platform custom bytecode interpreter.

Around the time the Raspberry Pi hype was taking off there was a guy who had made a vga based DIY console with a mario clone running on it. he had similar great ideas that the world would adopt it

I've googled but can't find it.. I think it was running off an AVR micro or something similar. He didn't seem to get why people wouldn't write for his platfom which had VGA (as the Raspberry Pi doesn't withing a hdmi->vga lead) but just didnt get that you might attract a few people, but the masses won't flock to something like that.

even funnier to me now i found this http://code.google.com/p/uzebox/ which effectively does what i think he had, but better
added on the 2014-04-01 22:53:32 by Canopy Canopy
Much like evilpaul, I have also had the dream of making my "own" 8-bit computer, and I have started writing the emulator for it. 6502 based, my own video chip design picking the things I like from different 80ies system etc.
All great fun, but doing such a project with the target of having others develop for it is begging for disappointment - do it for yourself and to write your own stuff and don't worry about others!

Talking about "modern" retrosystems my favorite is probably the v6z80p. Nice hw and actually had (has?) a little community around it.
added on the 2014-04-01 22:55:47 by Sdw Sdw
heh. I also made an "emulator" for a made up computer. Even got quite far with writing a BASIC Rom for it in 6502.

then I decided to just write a real emulator, so wrote oricutron instead.
added on the 2014-04-01 23:03:47 by xeron xeron
Personally, I would be much more interested in the game than the actual platform. It's quite easy to start writing the game on something modern, pick a style and limitations and stick to that. I'm sure a lot of people would approve of strict oldschool aesthetics and if you're going to invent your own hardware and expect people to use it, it has to be a PC/iOS/Android executable anyway so there's no difference how it works internally.

But of course, if you (like a lot of us here) enjoy pointless programming exercises, this is an excellent way to do just that :)
added on the 2014-04-01 23:08:50 by Preacher Preacher
Instead of a hardware platform, build the specification for a software platform.

The software platform would have clearly defined instruction set and capabilities aimed for amateur developers.

The specification can be implemented for many types of hardware including consoles, PC, HTML5 smartphones.

The software platform would have major constraints that would only allow retro style games. Something like 1Mhz general purpose CPU for game logic but the platform has 7 layers of tiles and 107 sprites.

Constraints like these would force developers to come up with interesting solutions and requires less work from them to desing and build the game. It also makes it possible to port it to low end devices.

Then the last thing remaining is tutorials and marketing. There are many students who want to develop games but don't have knowledge necessarry to do it. You should exploit this, make tools that show how simple it is to make a flappy bird clone under 10 minutes.

Just throwing around some ideas. It won't be the game engine with the shinyest toys that requires an army of artists and a huge budget but the game engine with the most usable toys that allows you to tinker and experiment with game mechanics.
added on the 2014-04-01 23:11:39 by musk musk
Do it for pure love, not for expecting some userbase.
added on the 2014-04-02 00:02:23 by ham ham
I think it's premature to come out with a new "retro" platform when the existing platforms have not yet been fully explored. Even ones that "have" been "fully explored" like C64 continue to amaze.

Yes, barrier to entry is high. But creating a new platform feels like making a new cryptocurrency. Will your new platform be called dogebox?
added on the 2014-04-02 03:08:05 by trixter trixter
what mu6k says.

Also, from what I know, the easiest I've found to program on is(was) the GP2X.

It's a real machine, runs linux, but operates just one program at a time (like, says, DOS). Everything is always fullscreen and the resolution is neat and kinda standard (320x240x16b).

The beauty of the linux bit is that everything works with, let's call that "fake files". You fopen(fb) and can star writing to the frame buffer directly. To dsp, to write to the sound buffer or read from mic (there's no mic but you could probably find a way to plug one in). Same thing again for the inputs.

You can even connect it to your PC and work through Telnet to read the console buffer.

Oh. And it has 64mb of RAM. And a second multipurpose CPU. And a TV-out. And some strange mode that you can play with 4 layers of video at the same time. But you don't have to!

So, basically, for retro games it's just supercharged. And can be emulated with qemu.

----

But, personally I'd go with a minimalistic game engine (isn't there 300 of them already??) for Android / iOS / PC

----

@evilpaul: brillant (if a bit ambitious) idea. Kindof reminds me of this.
added on the 2014-04-02 05:28:17 by BarZoule BarZoule
Actually, web > IOs/android/etc
(like HTML5 or something)
added on the 2014-04-02 05:38:13 by BarZoule BarZoule
I'm pretty interested in coding on a retro platform at some point. Writing for a platform that's very resource constrained, and has some novel hardware to master too. I'd want to write for it on something modern though, and I'd probably want to dev on an emulator, but see it on real hardware.

Stuff I'd consider essential:

- It should be easy to get into. That means there's an emulator available, and some half decent dev tools, and decent docs for at least the basics needed to get a program running and showing something on the screen.

- It should be hard to master. Writing pixels to the screen is a nice way to start, but playing with say the copper lists on amiga would make it a lot more challenging to learn and get cool things out of. Put funky programmable gfx / sound chips in there - they need to be simple, limited, yet flexible enough to do lots of interesting things.

- It needs to be fixed hardware. A fixed CPU type at a fixed speed, with a fixed amount of memory. People can compete fairly on a fixed platform :) And you can look at the results, compare it with other things on the same platform, you know if it's good or bad without knowing much about the platform usually.

- Some (preferably reasonably cheap) hardware should be available for it.

Note that c64 or amiga OCS meets pretty much all of those requirements, so that's the competition. I reckon for anything to be more popular than those, it needs more interesting hardware and better dev tools :)
added on the 2014-04-02 10:46:33 by psonice psonice
The idea appeals to me too.

Its also been poiinted out that making demo's in emulators doesn't always work on the real hardware. (c64 was the one in question).

However, I decided to write what evilpaul described above.
A simple framework limited to functionality I want to use above Modern style GL.
I want to be able to do "classic" style effects at higher-res's with the benefits of HW accel, but also do more modern stuff too, there are very different methodologies between the two worlds.

Would be nice to abstract this one day to sit above DirectX or other APIs, but I have very little time as it is, and I do want to get a kick out of the end product as well as the journey getting there.
added on the 2014-04-02 11:35:31 by Canopy Canopy
i really don't get the whole "legal junk" crybaby stuff
added on the 2014-04-02 11:50:47 by superplek superplek
canopy: if the platform is developed now, it should be possible to make the emulator accurate, and make the hardware to match the emulator. That could be a big advantage really. It's not like trying to emulate an old platform where perhaps parts aren't documented, and perhaps other parts have undefined behaviour (or different behaviour depending on what manufacturing batch you get).

Anyway, yeah, if you want to make a retro game, do it with modern hardware for pc/mobile. A lot of people will get to experience it. Making it for old or custom hardware guarantees you a tiny audience :)

But there's making a retro game, and there's learning to code on a retro platform, they're not the same thing, and people do like to make stuff on old machines still.
added on the 2014-04-02 11:52:13 by psonice psonice
I like the idea of coding an emulator for an imaginary computer/console (I was also thinking my imaginary 8bit computer and wanted to do that but never started) but without purpose. You don't need to instill a grand purpose, I mean it's fun and if you like it, but I don't see the special purpose of a machine of choice, when one can just grab a modern PC if they want to code some oldschool RPG and without having to look at assembly. My personal favorite choice is still C++ and SDL because retro software rendering is fun and suitable for classic games and also easily portable (Windows, Linux, also all the openhandhelds Gamepark, Dingoo, GCW0 and more) and there is a lot of CPU time for 320*240*16bpp (where most of the openhandhelds target) and you can do great stuff. But yeah, I like your project, but just as a curiosity of an imaginary machine, not look at it with a grand purpose.
added on the 2014-04-02 11:54:46 by Optimus Optimus
Also, I read the purpose is an alternative retro platform for gamedevs or something. Besides a limited fun userbase who likes real hardcore retro coding, most gamedevs won't go for it. People are crazy with high performance, they will prefer to use some script language that really needs the boost. I mean, even with GCW0 (1GHZ ARM, 512MB) people where complaining it's slow and that their phone is faster. And some gamedevs complained saying "Ok, I am not an expert coder who will optimize a huge game for 32MB of ram or something. I want to be able to add content without my game start not fitting or crawling in speed or something". Having started with GP32 with it's 8MB it sounded to me ridiculous 256MB were not enough. So, it would be harder to promote your retro console like a new platform for gamedevs, even for doing oldschool games (I say, they don't find the specs of GCW0 enough for their psudo-retro-style games). So, good luck, do it for fun and maybe few will follow.
added on the 2014-04-02 12:02:47 by Optimus Optimus
Oh, also do like Notch, create a game where your hero can program this imaginary computer inside the game :)
added on the 2014-04-02 12:08:28 by Optimus Optimus
Thanks, at least I got to hear some positive opinions on the matter :)

But even before so (I was at work etc., no time, neither much will to look around in forums etc) I was pretty determined to continue. Just what I meant in my last post: I already polished the prototype pretty well, separating the emulator layer from any external interfacing, so it is the simplest thing to port this to whatever popping in my mind having a C compiler available (not even needing a standard C library). So since I already did this and there is no way to regain the time I "wasted" with it, it's just the best to use it.

Looking around you might have found that there are some quite far-fetched plans laid out. I didn't set these as goals, rather set up the system so that if I see it works towards success, the path is there to take off and beyond. The aim with these was this, to see the path, not to definitely march it right now.

If it wasn't fun for me, I wouldn't have done it. That simple. If it wasn't fun, I would now be utterly pissed that people don't flow in and pay the fees for the specs etc. I did release it under a GPL compatible license, true, leaving a path open for paid stuff, but again, just the path. To have it there should it ever happen.

However it is also true I got a bit overreacted about it, especially in the past months finishing this prototype suitable for public alpha test. This stems from that some concepts of this thing are a decade old. A huge amount of thought, polishing went in this all. Nowadays (if such things get out) the country where I live seems to be getting terribly upset. Should whatever happen to me for this, I didn't want to leave this all going down in the drain with me, so I rather rushed it out before these start to happen. It is now open, if anyone likes the concept for whatever reason, may continue, so in this term mission accomplished, at least the possibility is there that my work was not vain.

If life permits, next things will be along finishing up the emulator etc. are really starting writing games. I already put together a pretty useful assembler (compiled all the examples with it), so technically for the tech-savvy the tools are there. First small steps, such as a Breakout clone and similar stuff, then the grand concepts.

Of course it would be nice if a day I got to get even some money out of it (my job is soo dead boring! - guess not alone with that :) ), but I will be happy to see it just being useful for the purposes I imagined.
added on the 2014-04-02 18:08:27 by Jubatus Jubatus

login