Recent

Author Topic: Deep Platformer — looking for people for cross-platform testing  (Read 9311 times)

kupferstecher

  • Sr. Member
  • ****
  • Posts: 297
Re: Deep Platformer — looking for people for cross-platform testing
« Reply #30 on: April 05, 2019, 10:03:13 pm »
Before, I had trouble with drawing to a bitmap-canvas in a custom control. Under Windows everything seemed to be fine, but actually my code drew outside the canvas (E.g. with LineTo it happens very easily). No warnings, errors or anything. Under Linux though I got troubles, some bitmaps were aliased like in the screenshot posted by Ñuño_Martínez, under Linux/QT I got a lot of error messages on the command line and even sporadic crashes. In this behalf Windows was more robust, but hid the errors.

No idea if its a similar issue here, but could be.

furious programming

  • Sr. Member
  • ****
  • Posts: 354
  • I click a little.
Re: Deep Platformer — looking for people for cross-platform testing
« Reply #31 on: April 05, 2019, 10:30:33 pm »
Under Windows, the bitmap processing is fabulously simple, I have absolutely no problems with it. But I do not know about Unix, so I do not even know what may be a problem...

I created a new thread — Proper way to use TBitmap.ScanLine on Unixes — and attached the test application. It will be easier to check the operation of several hundred lines of code than several thousand lines.
« Last Edit: April 05, 2019, 10:32:18 pm by furious programming »
Lazarus 2.0.4 with FPC 3.0.4, Windows XP (all 32-bit)

Ñuño_Martínez

  • Hero Member
  • *****
  • Posts: 917
    • Burdjia
Re: Deep Platformer — looking for people for cross-platform testing
« Reply #32 on: April 06, 2019, 11:36:51 am »
Quote
When running, it starts with glitched graphics (see attached screenshot) then freezes after the "presents" text disappears.

Yes, I know this problem. Earlier, we tried to fix it with @Handoko, but it failed — either the frame was too narrow (when the pixel was 24-bit wide) or the game was hanging on just after the intro (when the pixel was 32-bit wide).

Maybe 28-bit wide pixel will work. 8)
I doubt it.  But I agree that's a problem with pixel format (both size and order).

Anyway, this is a good example of why to use game frameworks and game engines instead of trying to do it with plain LCL.
Are you interested in game programming? Join the Pascal Game Development community!
Also visit the Game Development Portal

furious programming

  • Sr. Member
  • ****
  • Posts: 354
  • I click a little.
Re: Deep Platformer — looking for people for cross-platform testing
« Reply #33 on: April 06, 2019, 03:10:52 pm »
Anyway, this is a good example of why to use game frameworks and game engines instead of trying to do it with plain LCL.

No, this is a good example of how to create a more complicated game without using anything to create standard games. No hardware acceleration, no engines and frameworks/API's, no additional libraries — only LCL. It's nothing but a challenge, proof of concept.

If I wanted to create a normal game, I certainly would not use LCL for this, but it was not. I wanted to check how much can be done without a specialized frameworks/engines. And much can be done, but it is needed to know how.

I have achieved 100% success, I implemented everything I wanted, the game works exactly as I wished. Under Windows, because originally only on this platform I cared (but on Linux, you can run this Windows compilation of this game via wine and it will work properly too).

But unfortunately, I came up with the idea to add support for Unix, without having any experience in creating software for this platform. That's why I asked for tests and help in improving the code so that it could be compiled on other platforms than Windows.


So, since we have already explained the reason for creating this project, let's get back to the nature of the problem, that is, to incorrectly rendering bitmaps.
« Last Edit: April 06, 2019, 03:13:37 pm by furious programming »
Lazarus 2.0.4 with FPC 3.0.4, Windows XP (all 32-bit)

lucamar

  • Hero Member
  • *****
  • Posts: 2075
Re: Deep Platformer — looking for people for cross-platform testing
« Reply #34 on: April 06, 2019, 03:17:49 pm »
let's get back to the nature of the problem, that is, to incorrectly rendering bitmaps.

It should be possible to do it; I built some multi-platform image editing software (ported from an earlier Delphi one) that works rather well and IIRC it uses Scanline for quite a few things. Unfortunately I don't have the sources at hand :'(

OK, back to testing :)
Turbo Pascal 3 CP/M - Amstrad PCW 8256 (512 KB !!!) :P
Lazarus 2.0.2/2.0.4  - FPC 3.0.4 on:
(K|L)Ubuntu 12..16, Windows XP SP3, various DOSes.

furious programming

  • Sr. Member
  • ****
  • Posts: 354
  • I click a little.
Re: Deep Platformer — looking for people for cross-platform testing
« Reply #35 on: April 06, 2019, 04:08:30 pm »
Yep, in my windowed application project (other than this game — screenshot with constrols preview) I also use ScanLine for bitmaps and PNG graphics to render different elements of visual components. Only that this application is not intended for Unixes, so I did not have the opportunity to learn about these problems.


Ok, back to the game. 8)
Lazarus 2.0.4 with FPC 3.0.4, Windows XP (all 32-bit)

furious programming

  • Sr. Member
  • ****
  • Posts: 354
  • I click a little.
Re: Deep Platformer — looking for people for cross-platform testing
« Reply #36 on: April 09, 2019, 01:37:08 am »
Ok, I have improved the project code.

First of all, I added a patch to the TBitmapBuffer class, which "converts" the 24-bit bitmaps loaded from files to 32-bit. Thanks to this, only 32-bit ones are used on Unixes, what is correct (on Windows nothing changed).

Secondly, I implemented my own method that copies the given area of the level layer to the frame buffer, working almost identically to TCanvas.CopyRect. This meant that the slave buffer was no longer needed, so it was completely removed. Now the game uses only one back buffer to render the frame.

Changing the rendering process of level layers has made the game run faster. Previously in my hardware, rendering the level with other elements (hero, fireflies and counters) took about 50% of the time allocated to one frame, and now it takes about 41%.

I have introduced a few cosmetic changes that do not affect the game's performance.

I checked the game carefully under the debugger — it does not throw any exceptions, and also does not have any memory leaks. Everything is in the right order (at least on Windows). 8)


So, I added current sources of the game to attachments. The project should be able to compile and run on Unixes, and there should be no problems with image rendering anymore. I am asking for its testing (on any platforms) and for feedback. Thank you very much for your help so far.
« Last Edit: April 09, 2019, 01:43:32 am by furious programming »
Lazarus 2.0.4 with FPC 3.0.4, Windows XP (all 32-bit)

lainz

  • Hero Member
  • *****
  • Posts: 3270
    • Lainz
Re: Deep Platformer — looking for people for cross-platform testing
« Reply #37 on: April 09, 2019, 01:53:25 am »
I like this game, tested on Windows 10,

here you can use my music if you want
https://soundcloud.com/leandrodiazoe

I think 'Musica 8' fits the game
https://soundcloud.com/leandrodiazoe/musica-8

Or ask @circular he has good tunes on youtube and sound cloud as well.
https://www.youtube.com/channel/UCqke7kPVGPMiuJzYoOknNBA

furious programming

  • Sr. Member
  • ****
  • Posts: 354
  • I click a little.
Re: Deep Platformer — looking for people for cross-platform testing
« Reply #38 on: April 09, 2019, 05:01:19 pm »
When I made the decision to develop this proof of concept from a simple parallax test to a simple game, I was also thinking about music and sounds. Due to the fact that it was supposed to be (and is) an NES-style game, I thought about creating music and sounds using the FamiTracker editor.

However, the main assumption of this project is to create an interesting, more advanced game without the use of dedicated libraries or even any other packages than the LCL package. And here comes the problem, because without the use of additional libraries, it is not possible to play more than one sound at the same time. Under Windows, I can use PlaySound function to play the sound, there are probably functions for the same purpose on other platforms. But it is not possible to play two at the same time, so I would have to choose — either music or SFX. That's why I decided that the sounds in the game will not be at all.

In addition, the project was to be finished a long time ago, more than 6 months ago. But instead of completing the basic version and publishing it, I kept adding new elements to the game. Therefore, I will not add new functionalities anymore and I will focus on completing this project. The only thing left is to adapt the current code to the Unixes (generally, for other platforms than Windows), create the final levels and several animations.

I really want to finish this project and get on with the next one waiting… 8)
Lazarus 2.0.4 with FPC 3.0.4, Windows XP (all 32-bit)

lainz

  • Hero Member
  • *****
  • Posts: 3270
    • Lainz
Re: Deep Platformer — looking for people for cross-platform testing
« Reply #39 on: April 09, 2019, 07:26:15 pm »
No problem. As any videogame player knows the background music can be any, just play it from the browser when you're playing the game.

So you had the game finished? So in fact you're the winner of the game contest, if my math is right... 6 months ago...

Is a good game you coded, This foreground-background I've seen in Sonic Mania I think has a part of a level like that. And in another sonic fan game had that too.

Please the next one use a library so it can run fullscreen, or even in android device  :)
« Last Edit: April 09, 2019, 07:29:10 pm by Lainz »

furious programming

  • Sr. Member
  • ****
  • Posts: 354
  • I click a little.
Re: Deep Platformer — looking for people for cross-platform testing
« Reply #40 on: April 10, 2019, 01:20:17 am »
So you had the game finished?

No, because I still do not know if the game works properly after compilation on other platforms. I have provided the latest sources (with improved rendering) in this post, but no one has yet provided information about whether everything works on Unixes or whether there are any problems yet. At the moment I am only sure that the game works properly on different Windows systems (XP, 7, 10).

Therefore, I am asking everyone who wants to help me to get the source and give feedback.

For the publication of this game, I had to adapt the code to the Unix and finish the final levels (because now the game has only a few short levels for test). I would like to do it well, taking care of every detail, so that this game would give a little joy.

Quote
So in fact you're the winner of the game contest, if my math is right... 6 months ago...

Although I wrote about this project in this post, I did not publish the source code, because the work continued and at that time it could not even be compiled. So, in theory, I did not take part in this competition at all. 8)

Quote
Is a good game you coded, This foreground-background I've seen in Sonic Mania I think has a part of a level like that. And in another sonic fan game had that too.

To test this appearance of levels and the ability to change the layer during the game, I was inspired by the Limbo game. Only that this game has layers in the gray scale, and I added some colors to my game.

Quote
Please the next one use a library so it can run fullscreen, or even in android device  :)

The game supports full-screen mode and multi-screen environment. To enlarge or reduce the size of the window, just press few times the non-numeric + or - key. You can also move the window between the screens with the mouse (left button), if the window is smaller than the screen.

The game has a lot of features, which is why I described all of them in the readme.txt file, which I recommend to read.
« Last Edit: April 10, 2019, 04:22:11 am by furious programming »
Lazarus 2.0.4 with FPC 3.0.4, Windows XP (all 32-bit)

lainz

  • Hero Member
  • *****
  • Posts: 3270
    • Lainz
Re: Deep Platformer — looking for people for cross-platform testing
« Reply #41 on: April 10, 2019, 02:06:14 am »
Ok just wanted to be sure that you can be the winner of the contest. Of course if not finished can't be.

About the layers I don't know Limbo game, but I know that in a level of sonic mania there is that effect, but not as part of the normal gameplay, like a bonus stuff in a level to go back and then come back to front.

Cool that the window can be enlarged, for sure I will test it again to enjoy it better.

For me you win, making this game one of the few platforms (or the only one) made with FPC. If there are more platformers like this one made with FPC I sure want to play them as well.

Handoko

  • Hero Member
  • *****
  • Posts: 3181
  • My goal: build my own game engine using Lazarus
Re: Deep Platformer — looking for people for cross-platform testing
« Reply #42 on: April 10, 2019, 06:58:07 am »
I have provided the latest sources (with improved rendering) in this post, but no one has yet provided information about whether everything works on Unixes or whether there are any problems yet. At the moment I am only sure that the game works properly on different Windows systems (XP, 7, 10).

I've just downloaded and tested. So far everything seems to work correctly on Ubuntu 18.10 64-bit Lazarus 1.8.4 GTK2.

lucamar

  • Hero Member
  • *****
  • Posts: 2075
Re: Deep Platformer — looking for people for cross-platform testing
« Reply #43 on: April 10, 2019, 10:34:46 am »
Here are the "results" on a Pentium 4 3Ghz 512Mb ATI Radeon 7000 with Ubuntu 12.04.

I couldn't pass the "deep abbyss" :-[
Turbo Pascal 3 CP/M - Amstrad PCW 8256 (512 KB !!!) :P
Lazarus 2.0.2/2.0.4  - FPC 3.0.4 on:
(K|L)Ubuntu 12..16, Windows XP SP3, various DOSes.

Thausand

  • Full Member
  • ***
  • Posts: 234
Re: Deep Platformer — looking for people for cross-platform testing
« Reply #44 on: April 10, 2019, 02:32:40 pm »
Maybe i not understand ?

First game "meadow" ? not show any floor for can bump or fall ? Then is not easy game  :-\