29 May 2014, 21:27 | #1 |
Registered User
Join Date: May 2006
Location: Spain
Age: 42
Posts: 71
|
Need testers for my game engine.
Hello.
I'm working on a system friendly game engine for Amiga coded in C, so don't expect to run it on low end Amigas, some acceleration will be need. The engine also works as an abstraction layer between the system and the game, so it could be ported later to other systems, like Android or iPhone, one source code, multiple platforms supported. On the Amiga side, i have special attention to make it working from AmigaOS 2.0 to the new gen system like MorphOS, the same executable runs fine on all systems. I need to test it on any classic Amiga, and AmigaOS 4 systems, or MorphOS systems. I have tested it succesfully on my MacMini with MorphOS 3.5, EUAE with different configurations, ECS with KS 2.0, ECS with KS 3.1, AGA with KS 3.1, and my Amiga 600 with ACA 630@25mhz, and it works perfectly with the same executable. The source code will be published soon, but I want to make some testings before publish it, it will help any coder to make games for Amiga, and future portings of this engine to commercial platforms maybe helps to brings some games to our favourite platform. The engine have this structure: FrameBuffer - Initialize screen, and manage screen colors and double buffer. Bitmap - Load iff bitmaps, create bitmaps, generating bitmap masks. GraphicContext - Performs graphical operations on bitmap or frame buffer, gfx primitives, chunky 2 planar, blitting, ... InputDevice - Handle input devices, only keyboard is supported at the moment. Music - Play Protracker mods using ptreplay.library and ptplay.library Sprite - Software sprites rendering, handle sprites sheets, generate sprites masks, ... I have two example of my engine, a vertical scroller with a sprite, and a chunky 2 planar example, they don't require AGA chipset, only ECS. Chunky 2 planar uses WritePixelArray8() for systems with gfx cards, and for native chipsets it uses Kalms c2p code. To have music working you will need these libraries: PTPlayLibrary.lha for 68k and MOS ptreplay66 for 68k OR ptreplay_ahi If you could try it, reporting how they worked, and what is your system specs, It will help me a lot. You can download the examples here: RGE_Examples.lha Thanks in advance. |
29 May 2014, 22:59 | #2 |
AmigaMan
Join Date: Oct 2012
Location: Castro Urdiales/Spain
Posts: 760
|
Balrog, I`ll try It tomorrow in my A1200 060.
My Morphos machines are dead so no help there. Bien tio, mola verte en accion! |
31 May 2014, 00:40 | #3 |
Registered User
Join Date: Feb 2013
Location: Argentina
Posts: 281
|
Hello.
My system is: Amiga 1200, 3.0 ROM, 8MB fast. results: EngineScroll Pal and Ntsc Res Low functioning properly. Low Res Laced, in the bottom of the screen flashes. Engine C2p works correctly in all modes |
31 May 2014, 10:44 | #4 |
AmigaMan
Join Date: Oct 2012
Location: Castro Urdiales/Spain
Posts: 760
|
In my A1200 060 rom 3.1 the Scroller has flashing/corrupted graphics at the bottom of the screen every X seconds in LowRes PAL.
In NTSC seems ok but I guess It´s because the bad gfx are in a no visible area of the screen. In laced modes as franchute said there are bad gfx all around. Sound is ok. The cp2 engine seems ok in all modes. |
31 May 2014, 12:32 | #5 |
Registered User
Join Date: Oct 2009
Location: Germany
Posts: 3,303
|
When I start EngineC2P then a empty screenmode requester appears. After click on OK this error message: Can't initialize inputdevice.
When I start EngineScroller then a empty screenmode requester appears. After click on OK this error message: Can't initialize framebuffer. System: A1200 040 AGA OS3.1 |
01 June 2014, 12:15 | #6 | |
Registered User
Join Date: May 2006
Location: Spain
Age: 42
Posts: 71
|
Hello.
Thanks you for test my game engine, although I didn't found any problem, it's clear now that more working is needed on my code, I will check where is the problem, thanks you again, your information will help me to solve these problems. Quote:
To initialize the framebuffer, the screen size are passed to framebuffer, then it open an ASL screen requester showing any screen mode that fits in width and less than 8 bits depth so it should show any screen of 320 width pixels with 256 colors or less. Any screen with more colors won't be showed on the screen requester. If this requirements fails, it won't show any screen mode, but it's very strange, it should show at least a lowres PAL or NTSC mode. |
|
14 June 2014, 12:22 | #7 |
Registered User
Join Date: May 2006
Location: Spain
Age: 42
Posts: 71
|
Hello.
I just updated my engine, I have used a different aproach to handle screens, now it uses BestModeID function to find a compatible screen mode, and only uses ASL requester if BestModeID returns an invalid mode. A new demo to test chunky modes was added, it's a small raycasting engine, it uses EHB mode and dithering to add some shadows to the rendering. I got 8-12 fps on my Amiga 600 with ACA 630@25mhz. RGE_Examplesv2 |
14 June 2014, 13:29 | #8 |
Registered User
Join Date: Oct 2009
Location: Germany
Posts: 3,303
|
The demos are start without error message or requester. EngineRaycasting gives 17-26 FPS on 1240/40. EngineScroller works fine except sometimes (maybe regular) the upper "line" is drawn at the bottom "line" too. I guess also regular the bottom "line" gives gfx flicker sometimes.
|
14 June 2014, 20:58 | #9 | ||
Registered User
Join Date: May 2006
Location: Spain
Age: 42
Posts: 71
|
Quote:
Quote:
But it seems that this version works better, I will start porting to Android very soon. Thanks you for your report! |
||
14 June 2014, 21:54 | #10 |
Registered User
Join Date: Apr 2013
Location: Mallorca
Posts: 758
|
Hola !
Testing on A1200 with BVision. Those programs from first pack seem to work ok, besides little flickers here and there as comented before (only tested for gfx cards), but did notice that chip memory didn't fully recover. Found that if you don't use ptreplay library (lazy of me), some graphic issues with mouse pointer sprite appear after running programs from Example 2 pack. Still have to test with TV set |
15 June 2014, 13:01 | #11 |
AmigaMan
Join Date: Oct 2012
Location: Castro Urdiales/Spain
Posts: 760
|
Hola.
The RayCasting engine works fine. It runs at 25/35 fps in my A1200 060. The scroll engine has the same gfx glitches at the bottom of the screen. |
16 June 2014, 23:54 | #12 |
Registered User
Join Date: May 2006
Location: Spain
Age: 42
Posts: 71
|
Thanks you guys for your reports. I have fixed all memory leaks on Raycasting engine, now this project compiles with vbcc also (the vbcc version seem to work slighty faster than sasc), and I have added another solution for double buffering which uses ks 3.0+ (using ChangeScreenBuffer function).
I didn't found the reason of graphic glitches at the bottom of screen on scroller example, but I found other screen glitches, these glitches are fixed now. I will continue working on scroller to fix the glitches. |
22 June 2014, 18:25 | #13 |
A1260T/PPC/BV/SCSI/NET
Join Date: Jan 2013
Location: Moscow / Russia
Posts: 839
|
First of all, a very nice engine, can't wait to see the source ;-)
Personally, for me the 1st stroller worked best and allowed to choose any screenmode I like. Perfect under CGX 320x200@100Hz, 320x240@100Hz, 320x256@100Hz Only problem if ship is at bottom line, then it drops a frame (flickers) once every second. Works ok in PAL too, but a bit slower compared to CGX. Also the bottom screen 16pxls get trashed every full screen scroll! Pal 320x512 fails, and CGX 320x512 gave a double screen copy type thing. The updated version 2 fails to start under my system, looks like it's opening a DBLPAL screen, and I can't test that at the moment. And I can't get it to work normal PAL or CGX without a requester. Running it without startup works in PAL, there is a green ~4pxl line poping up at the bottom every now and then. C2P example works ok under CGX, the colours are supposed to be odd? Does not run in PAL with a loaded system, but works ok without startup. Wolf engine, works only without startup in PAL, otherwise nothing. Give us requester!!! Almost constant 51 FPS! (in PAL?) drops down to 26 if you are against the wall. (unexpected! usually it should max out and not slow down) One more peculiar thing with scroller. When running it with no startup and software flicker fixer/cgx promoter you get to see all details how the engine does it's tricks ;-) You get to see two screens that scroll and change between each other and how the tiles are copied at the top row, why you are not printing them in a row but place the tiles with gfx first and the fill the gaps with the blank one ? Anyways, this was fun, and the first time I saw a scrolling engine like that, I guess you have done it very system friendly way. |
22 June 2014, 22:23 | #14 |
Alien Breeder
Join Date: Dec 2007
Location: Szigetszentmiklos / Hungary
Age: 46
Posts: 1,096
|
I'm sooooo lazy now to dl and test, could you please post some screenshots?
|
23 June 2014, 01:10 | #15 | ||||||
Registered User
Join Date: May 2006
Location: Spain
Age: 42
Posts: 71
|
Quote:
Quote:
Quote:
Quote:
Quote:
The trick works in this way, forget the double buffering it doesn't affect to this scroller trick, you use a screen at least twice height plus 3-4 rows of tiles, the screen height is 256*2+64=576, all the screen is drawed with the tilemap. The scroll starts at bottom of screen, and scroll position decreases every frame up to the top of screen, meanwhile every frame the tilemap is drawed on top of viewport to show the current map, and at the bottom of viewport the example draws a exact copy of the map at top position, so when we have not more screen to scroll, a exact copy exist to continue scroll at the bottom. Sorry for my bad english, I can't explain better. Maybe this graphic helps to understand the trick: Quote:
This is the new version of raycasting example, with floor and ceiling, the first and second screenshot shows differences of drawing with my shade algorithm for EHB modes. Last edited by balrogsoft; 23 June 2014 at 11:23. |
||||||
23 June 2014, 16:14 | #16 |
A1260T/PPC/BV/SCSI/NET
Join Date: Jan 2013
Location: Moscow / Russia
Posts: 839
|
Very nicely explained. And the method is the correct old school one.
One thing I was wondering was why the tiles are not printer in a row, but rather in an odd sequence starting from middle and then finishing at middle part. Forgetting the above... Have you tried the half pixel scroll on PAL? (hint: screen view position shifting) This technique allows quarter pixel horizontal scrolling. Will the engine implement 8 directional scrolling ? That would be really cool. I guess if the virtual screen is 2x wider + a few blocks with a really tricky algorithm it is possible to do exactly the same trick. Another cool feature would be variable scroll speed, eg for Super Cars style games. |
23 June 2014, 20:17 | #17 | |
Registered User
Join Date: May 2006
Location: Spain
Age: 42
Posts: 71
|
Quote:
An 8way scroller is possible but it will require an accelerated machine, probably my A600 with ACA630@25mhz won't be enough. A problem with horizontal scroll on MorphOS is that ScrollVPort only works every 8 pixels, horizontal scrolling isn't smooth on MorphOS using this function. Just curiosity, how works the half pixel scroll exactly? I don't have enough time to develop things like a TileMap API for this engine, maybe someone can add this after publish my code. I'm working on a more advance 2D game engine for my commercial games (with Box2D integrated on sprites and tilemaps), but it requires a new gen machine, this engine and my game prototype is working on Windows, Linux, Android, and MorphOS, but it's closed source. Last edited by balrogsoft; 23 June 2014 at 22:59. |
|
24 June 2014, 20:45 | #18 |
A1260T/PPC/BV/SCSI/NET
Join Date: Jan 2013
Location: Moscow / Russia
Posts: 839
|
Since we use a lowres screen for the game and the hardware allows hires that's where the half pixel is hiding. We can offset the screen hardware position by 1 scan line (2 lines make 1 lowres pixel)
And for horizontal scrolling it's even better, we get 1/4 pixel possibility. T-Zero uses this technology. But it might not be possible the system friendly way. |
28 February 2018, 10:43 | #19 |
Registered User
Join Date: May 2006
Location: Spain
Age: 42
Posts: 71
|
Amiga Game Engine first version released
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, the 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 |
11 November 2018, 20:12 | #20 |
Registered User
Join Date: Jun 2016
Location: France
Posts: 18
|
I just discovered your engine, it looks great, congratulations. Thank you for sharing it.
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Reality Game Engine | Solid Snake | request.Apps | 10 | 20 March 2019 21:59 |
Reality Game Engine up in the zone :) | ElectroBlaster | request.Apps | 5 | 12 September 2011 14:57 |
Game Engine? | amigang | request.Apps | 1 | 14 October 2010 14:49 |
Game Engine v1.06 | BinoX | request.Apps | 0 | 10 August 2007 19:51 |
Reality Game Engine :) | ElectroBlaster | request.Apps | 4 | 05 October 2006 10:38 |
|
|