Jump to content

What's possible?


Ed Minchau
 Share

Recommended Posts

After seeing what some other people have done, and after writing most of a game engine myself, I'm very encouraged by what's possible with this machine. 

Certainly any program that ran on an 8 bit machine in the 1980s is doable. But more is possible. I think any 80s video game is possible,  even stuff that ran on 16 bit machines. Dragon's Lair wouldn't be a problem at all.

Sonic, Mario, other side-scrollers, no problem. 

A first person shooter is definitely possible, as @Jeffrey showed with his Wolf 3D experiment. Doom is doable.  We might even be able to do something like Mechwarrior 2 or 3. Halo?

I'd like to see a port of Diablo or an Age Of Empires type of orthogonal perspective view. Something like SimCity or Farmville should be possible in the same sort of perspective view.

So this all requires tool sets. Game engines, sprite and palette and tile editors. Text editor, music, sound effect libraries... lots of tools. Should we be looking at making some sort of common game engine, and libraries that hook into it?

Edited by Ed Minchau
Link to comment
Share on other sites

I think Dragon's Lair is a stretch, as I just don't think the bandwidth exists for FMV on real HW, or at least without some really good encoding schemes for low-entropy video.

Also, The Wolf3d demo was making the 65c02 give its all to deliver ~12FPS with nothing to do but render. Clearly, it can be optimized more to make room for the game itself to also run at the same time, and FPS is doable, but I think fully 3d experiences like Quake/Halo are a stretch as well.

Now, Diablo would probably be quite doable indeed.

One elephant in the room is the bitbanging IO devices, especially PS/2 and KBD, and to a lesser extent, the Joysticks. I don't know if you've done any kind of profiling tricks to see how much raster time is chewed up by the Kernal whenever there's a key pressed, but it's EXTREMELY taxing of CPU, and for just sitting there in a wait state. The easiest way to see this is to use Box16's CPU Profiling overlay. Set the color mode to CPU command, and the highlight mode to "IRQ" and start pressing a bunch of keys. Watch the CPU spikes when you hit 2 or 3 rapidly together... it makes something like > 10% CPU time spent just doing that PS/2 read.

Link to comment
Share on other sites

On 10/19/2021 at 11:57 AM, ZeroByte said:

...
One elephant in the room is the bitbanging IO devices, especially PS/2 and KBD, and to a lesser extent, the Joysticks. I don't know if you've done any kind of profiling tricks to see how much raster time is chewed up by the Kernal whenever there's a key pressed, but it's EXTREMELY taxing of CPU, and for just sitting there in a wait state. The easiest way to see this is to use Box16's CPU Profiling overlay. Set the color mode to CPU command, and the highlight mode to "IRQ" and start pressing a bunch of keys. Watch the CPU spikes when you hit 2 or 3 rapidly together... it makes something like > 10% CPU time spent just doing that PS/2 read.

Sounds like some games may be gamepad only ... bit banging SNES gamepads should be substantially lower overhead than bit banging the PS/2.

Link to comment
Share on other sites

Dragon's Lair might seem like a lot, but it mostly isn't full motion video; most of the time it is a static background, the stuff moving in the foreground is usually only a couple of things, like Dirk and the Lizard King. The moving stuff could be sprites, so it's only a background image and then a couple kb per frame.  I've actually seen a version of Dragon's Lair for the VIC-20.

 

The wolf 3d could be made a lot faster by casting fewer rays and interpolation between rays when it can. I figure nearly 7/8 of the rays could be interpolated rather than cast.

There's definitely room for improvement on the input side.

Link to comment
Share on other sites

Oaky, so if we're expaning into the realm of "similar, but not exactly the same" experiences, then yeah, a lot more is possible. 😉

On 10/19/2021 at 12:17 PM, Ed Minchau said:

The wolf 3d could be made a lot faster by casting fewer rays and interpolation between rays when it can. I figure nearly 7/8 of the rays could be interpolated rather than cast.

There's definitely room for improvement on the input side.

I remember your contributions to that thread. I'm interested to see what kind of performance would be possible.

I'm also willing to donate my "plays native iD music" routine to add to the demo if @Jeffrey decides to take it any further. (current version requires a huge LUT to convert the freqs, but there may be a better way to compute it on the fly w/o too much overhead)

Link to comment
Share on other sites

On 10/19/2021 at 12:01 AM, Ed Minchau said:

I'd like to see a port of Diablo or an Age Of Empires type of orthogonal perspective view. Something like SimCity or Farmville should be possible in the same sort of perspective view.

So this all requires tool sets. Game engines, sprite and palette and tile editors. Text editor, music, sound effect libraries... lots of tools. Should we be looking at making some sort of common game engine, and libraries that hook into it?

I'm wanting my Pirate Kingdoms thing to be some unholy cross between 7 Cities of Gold, Anno 1602, Civilization, and Pirates.  But, I've been using a top-down view rather than a perspective view.  I figure that it's going to be a challenge just to finish.

I can always rewrite the view code once the thing actually works.  Or someone can show me how to do perspective.

**

A sound envelope engine would be a welcome addition.

I tried out the Sprite Editor in the Downloads section, and I think it is only missing a native binary file load-and-save feature.

And we have PETDRAW.

 

Edited by rje
  • Like 1
Link to comment
Share on other sites

On 10/19/2021 at 6:01 AM, Ed Minchau said:

After seeing what some other people have done, and after writing most of a game engine myself, I'm very encouraged by what's possible with this machine. 

Certainly any program that ran on an 8 bit machine in the 1980s is doable. But more is possible. I think any 80s video game is possible,  even stuff that ran on 16 bit machines. Dragon's Lair wouldn't be a problem at all.

Any vector game would be difficult ; any game with horizontally or vertically scrolling segments (say Frogger) would be interesting to code for. Anything which makes heavy use of the bitmap mode. Much of the speed benefit is lost because much of the data is 16 bit.

Link to comment
Share on other sites

On 10/19/2021 at 12:01 AM, Ed Minchau said:

After seeing what some other people have done, and after writing most of a game engine myself, I'm very encouraged by what's possible with this machine. 

Watching his videos, his target is clearly an 8 bit Commodore with better graphics and sound.

So... as (I think) he mentions, things that 286 machines were capable of.

Edited by rje
Link to comment
Share on other sites

I think that from an end user perspective, ports of existing games aren't the least bit interesting, for the simple fact that the originals (and their many ports!) are already so easily accessible. Sure, it may be a fun project for an enthusiastic programmer, but it's hardly compelling content for everyone else. Such is the world we live in, where even a $35 computer can emulate systems that can play thousands of games.

So...

I think it would be cool if the Commander X16 had its own handful of amusing characters, goofy lore, and whatnot that the community of content creators could build upon.

Nintendo has some really neat secondary characters who have whimsical and entertaining game play mechanics, Kirby being the main one who comes to mind, but there are others too. Other platforms have their own mascots and iconic characters too, even the various Linux and BSD distributions. It's "a thing", I guess. Who are your favorites and why?

Also, I think it's worth going back and playing the 8 and 16 bit games and taking not of all aspects of their game play that's truly fun and then compiling a list of mechanics and observations that can be distilled down into a simple set of guidelines for what it means to be a "Commander X16 Universe" production. It doesn't have to be strict or anything, just clear so that creators have a well defined starting points.

I think this identity is the primary area where the X16 can set itself apart from all the other things. Similarly, a comprehensive set of development tools, from editors to reference art, would greatly assist in the creation of new Commander X16 specific content. 

I'm definitely on board for assisting in the creation of tools and partaking in the creative process for the characters and lore. Bringing folks who know the physical capabilities/limits of the machine together with the other creative types to build a real vision for what is possible could be a lot of fun.

  • Like 3
Link to comment
Share on other sites

On 10/22/2021 at 8:20 AM, Tatwi said:

...I think that from an end user perspective, ports of existing games aren't the least bit interesting...

...it's worth going back and playing the 8 and 16 bit games and taking not of all aspects of their game play that's truly fun and then compiling a list of mechanics and observations that can be distilled down into a simple set of guidelines ...

I was thinking exactly your first point this morning.  

Existing stuff is one source of inspiration, though, and I suggest that cloning has value, especially for those who want to port.  The exercise is good for the developer.  In short, no reason to artificially limit anything; the platform provides its own boundaries.

But that said, when I was a teen I worked on a number of my own games in BASIC (and two with some ML).  They were in known genres but were not clones. 

The efforts paid off even though none of them were ever completed.  Those are the games I'd like to create on the X16.

But some people may not have ever went through that.  For them, doing a clone of a known game is FINE.

 

  • Like 1
Link to comment
Share on other sites

On 10/22/2021 at 10:32 AM, rje said:

I was thinking exactly your first point this morning.  

Existing stuff is one source of inspiration, though, and I suggest that cloning has value, especially for those who want to port.  The exercise is good for the developer.  In short, no reason to artificially limit anything; the platform provides its own boundaries.

But that said, when I was a teen I worked on a number of my own games in BASIC (and two with some ML).  They were in known genres but were not clones. 

The efforts paid off even though none of them were ever completed.  Those are the games I'd like to create on the X16.

But some people may not have ever went through that.  For them, doing a clone of a known game is FINE.

Oh yeah, I totally agree that porting existing software to another platform is a great way to learn. It's just not really all that interesting for everyone else, because they can already use that software on the original platform.

Now let's say you port Asteroids to the X16, but instead of a ship shooting asteroids it's a magical butterfly shooting birds that are trying to eat it. The programming would be nearly identical, but flavor would be unique to the platform. That's a nifty middle ground. Probably a decent starting point for a tutorial on how to use the development tools when they're available (whatever they happen to be).

The magical butterfly from Paper Mario for the Wii is the vision I had for an X16 mascot. Sadly, it's the magical butterfly from Paper Mario, so that's probably not going to fly, so to speak. What caricature hasn't already been trademarked or copyrighted, eh?!

Ultimately people are free (and welcome!) to make whatever they want. No harm in that.

Link to comment
Share on other sites

On 10/22/2021 at 9:08 AM, Tatwi said:

Oh yeah, I totally agree that porting existing software to another platform is a great way to learn. It's just not really all that interesting for everyone else, because they can already use that software on the original platform.

Now let's say you port Asteroids to the X16, but instead of a ship shooting asteroids it's a magical butterfly shooting birds that are trying to eat it. The programming would be nearly identical, but flavor would be unique to the platform. That's a nifty middle ground. Probably a decent starting point for a tutorial on how to use the development tools when they're available (whatever they happen to be).

The magical butterfly from Paper Mario for the Wii is the vision I had for an X16 mascot. Sadly, it's the magical butterfly from Paper Mario, so that's probably not going to fly, so to speak. What caricature hasn't already been trademarked or copyrighted, eh?!

Ultimately people are free (and welcome!) to make whatever they want. No harm in that.

The X16 logo is a butterfly, so maybe you're on to something here.

Link to comment
Share on other sites

On 10/19/2021 at 1:17 PM, Ed Minchau said:

Dragon's Lair might seem like a lot, but it mostly isn't full motion video; most of the time it is a static background, the stuff moving in the foreground is usually only a couple of things, like Dirk and the Lizard King. The moving stuff could be sprites, so it's only a background image and then a couple kb per frame.  I've actually seen a version of Dragon's Lair for the VIC-20.

The graphics for Dragon's Lair were made by an animation studio full of people trained in 2D hand-drawn cel animation. Even if it is possible to 'hijack' the X16's sprite system to try and show frames of cel animation instead of moving sprites, no one here is likely to have the humanpower it would take to create animation like that in the first place.

That said, I'm interested in that VIC-20 version; I'll have to search for that.  I wonder why someone would port that... the game didn't exactly have good gameplay, it was only really known for the animation.

 

On 10/22/2021 at 11:08 AM, Tatwi said:

Oh yeah, I totally agree that porting existing software to another platform is a great way to learn. It's just not really all that interesting for everyone else, because they can already use that software on the original platform.

I used to be involved in the SmileBASIC community, back around 2015 or so. This is a commercially available BASIC implementation for the Nintendo 3DS (via the eShop) made by a small Japanese company; I think there's a Switch version now too but I don't have a Switch yet.

Anyway, all the user-generated code was available online, and there was a Japanese user who 'ported' - as in, rewrote from scratch in SmileBASIC -  all of Megan Man 2.  Besides the fact that this was illegal (and kept getting taken down then reuploaded under a different name), MeganMan 2 / Rockman 2 was already available in the eShop for the exact same device.  But the reason it was so interesting, and so popular, was that it served as a masterclass in how to code a platform game in BASIC.  So lots of us were downloading it and studying how this guy coded it.

 

But, anyway!  If the question is, 

On 10/19/2021 at 1:01 AM, Ed Minchau said:

Should we be looking at making some sort of common game engine, and libraries that hook into it?

...then I think the answer is an enthusiastic 'yes'.  I can't think of any downsides to doing that.  Even better if the engine(s) and libraries are a coordinated community effort rather than one person's labor of love.

 

  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

Please review our Terms of Use