Welcome, Guest. Please login or register.

Author Topic: Amiga Game Engine, system compatible engine  (Read 3329 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline balrogsoftTopic starter

  • Full Member
  • ***
  • Join Date: Jan 2006
  • Posts: 186
    • Show only replies by balrogsoft
    • http://www.amigaskoolnet
Amiga Game Engine, system compatible engine
« on: February 28, 2018, 10:17:20 AM »
Hello.

After a few months without progress in this project because I was busy with other hobbies, I learned to paint in watercolor and I took some practice time, I am working again on my Amiga projects.

Finally, this game engine project has a minimum development to share the code, is compatible with the system and includes support for the classic Amiga and MorphOS (AmigaOS 4 is not tested, I do not have any AmigaOS 4 machine), from older systems, below V38 and above, a different approach is used to implement double buffer screens and make it work from older Amiga systems to MorphOS.

Here is the code:

https://github.com/balrogsoft/amiga-game-engine
Balrog Software · http://www.amigaskool.net
Mac Mini G4 1,5ghz · MorphOS 2.7 · Ati Radeon 9200 64Mb · 1 Gb RAM · 80 GB HD
Efika · MorphOS 2.7 · Ati Radeon 9250 128Mb · 120 Gb WD HD
Amiga 1200T · OS 3.9 · Voodoo3 · Blizzard 603e/240mhz 060/50mhz · 98 Mb RAM · 40 GB HD
Amiga 600 · OS 3.1 · ACA 630/25mhz 32 Mb RAM · 4Gb CF
 

Offline SamuraiCrow

  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 2280
  • Country: us
  • Gender: Male
    • Show only replies by SamuraiCrow
Amiga Game Engine, system compatible engine
« Reply #1 on: February 28, 2018, 05:01:46 PM »
Good start!  Does it support Cybergraphics 3 on classic?
 

Offline balrogsoftTopic starter

  • Full Member
  • ***
  • Join Date: Jan 2006
  • Posts: 186
    • Show only replies by balrogsoft
    • http://www.amigaskoolnet
Re: Amiga Game Engine, system compatible engine
« Reply #2 on: February 28, 2018, 06:33:00 PM »
Quote from: SamuraiCrow;836761
Good start!  Does it support Cybergraphics 3 on classic?


It should work, the real job of this engine is to detect the system in which it is running, and use the correct functions to have a basic screen initialization, the use of double buffer, bobs, mod player, joystick and keyboard, without the need to use AmigaOS API that runs from classic Amiga systems to MorphOS with the same executable file. But checking my code, maybe it will fail using the fb_flush function that manages the double buffer, which only manages the MorphOS system, the classic kickstart version of less than 38 or the classic 38 biggest kickstart version. I no longer have a Cybergraphics system, I sold my BVision :(

If you have a Cybergraphics system, check the executable examples of the engine. If it does not work, I'll change it to be compatible.
Balrog Software · http://www.amigaskool.net
Mac Mini G4 1,5ghz · MorphOS 2.7 · Ati Radeon 9200 64Mb · 1 Gb RAM · 80 GB HD
Efika · MorphOS 2.7 · Ati Radeon 9250 128Mb · 120 Gb WD HD
Amiga 1200T · OS 3.9 · Voodoo3 · Blizzard 603e/240mhz 060/50mhz · 98 Mb RAM · 40 GB HD
Amiga 600 · OS 3.1 · ACA 630/25mhz 32 Mb RAM · 4Gb CF
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show only replies by Karlos
Re: Amiga Game Engine, system compatible engine
« Reply #3 on: February 28, 2018, 11:56:32 PM »
I noticed you have a cosine and sine lookup table header. If you are implementing lookup based functions for these, may I suggest storing just the sine range equivalent to 0-90 degrees (the first quarter) and making use of the fact that the curve is symmetrical. The same table can be used to compute sine and cosine and will be much smaller and more cache friendly.
int p; // A
 

Offline balrogsoftTopic starter

  • Full Member
  • ***
  • Join Date: Jan 2006
  • Posts: 186
    • Show only replies by balrogsoft
    • http://www.amigaskoolnet
Re: Amiga Game Engine, system compatible engine
« Reply #4 on: March 01, 2018, 08:30:30 AM »
Quote from: Karlos;836764
I noticed you have a cosine and sine lookup table header. If you are implementing lookup based functions for these, may I suggest storing just the sine range equivalent to 0-90 degrees (the first quarter) and making use of the fact that the curve is symmetrical. The same table can be used to compute sine and cosine and will be much smaller and more cache friendly.


Thanks, I know that trick, but the examples provided are just that, examples to show what can be done with the engine, and they aren't optimized for the size. It's just a showcase of chunky modes and a wolfenstein example developed with this engine compatible with Amiga classic and MorphOS.
Balrog Software · http://www.amigaskool.net
Mac Mini G4 1,5ghz · MorphOS 2.7 · Ati Radeon 9200 64Mb · 1 Gb RAM · 80 GB HD
Efika · MorphOS 2.7 · Ati Radeon 9250 128Mb · 120 Gb WD HD
Amiga 1200T · OS 3.9 · Voodoo3 · Blizzard 603e/240mhz 060/50mhz · 98 Mb RAM · 40 GB HD
Amiga 600 · OS 3.1 · ACA 630/25mhz 32 Mb RAM · 4Gb CF