What's possible?
-
- Posts: 508
- Joined: Sat Jul 11, 2020 3:30 pm
What's possible?
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?
What's possible?
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.
What's possible?
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.
-
- Posts: 508
- Joined: Sat Jul 11, 2020 3:30 pm
What's possible?
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.
What's possible?
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)
What's possible?
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.
What's possible?
On 10/19/2021 at 10:57 AM, ZeroByte said:
Now, Diablo would probably be quite doable indeed.
How about a Diablo-type engine, then? That would make a decent interface for an Ultima-like game and map.
-
- Posts: 305
- Joined: Tue Sep 22, 2020 6:43 pm
What's possible?
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.
-
- Posts: 508
- Joined: Sat Jul 11, 2020 3:30 pm
What's possible?
On 10/20/2021 at 11:10 AM, rje said:
I can always rewrite the view code once the thing actually works. Or someone can show me how to do perspective.
javidx9 does a little math:
https://youtu.be/ukkbNKTgf5U
AdamCYounis making isometric art:
https://www.youtube.com/watch?v=OqwQBWEzcxU
-
- Posts: 305
- Joined: Tue Sep 22, 2020 6:43 pm
What's possible?
Interesting. Could the X16 do Ant Attack , I wonder.
(It could probably do anything if you scale the display up enough but then you might as well do it on a ZX81)